:root { color-scheme:light; --paper:#fffdfa; --surface:#fff; --cream:#f6f0e8; --ink:#241d19; --muted:#776d65; --red:#a52c24; --red-dark:#7d1d18; --line:#e8dfd5; --soft-red:#f2dfdb; --header-bg:rgba(255,253,250,.96); --hero-bg:#241d19; --hero-text:#fff; --lenten-bg:#f2dfdb; --loyalty-bg:#e8dccb; --map-bg:#eee9e2; --success-bg:#eaf1e3; --success-text:#4c672f; --shadow:0 20px 55px rgba(52,39,28,.12); }
:root[data-color-scheme="dark"] { color-scheme:dark; --paper:#181513; --surface:#221e1b; --cream:#2b2521; --ink:#f5eee8; --muted:#b8aca3; --red:#d35a50; --red-dark:#ed776d; --line:#403832; --soft-red:#472925; --header-bg:rgba(24,21,19,.96); --hero-bg:#0f0e0d; --hero-text:#fff; --lenten-bg:#382622; --loyalty-bg:#302922; --map-bg:#292724; --success-bg:#263323; --success-text:#a8cf8b; --shadow:0 20px 55px rgba(0,0,0,.36); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:134px; scrollbar-gutter:stable; }
body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
html.is-modal-open { overflow:hidden; overscroll-behavior:none; scrollbar-gutter:auto; }
body.is-modal-open { position:fixed; inset-inline:0; width:100%; overflow:hidden; overscroll-behavior:none; }
/* Keep the document's scroll position and sticky header under the language picker. */
html.is-modal-open.is-language-anchored { scrollbar-gutter:stable; }
html.is-language-anchored body.is-modal-open { position:static; overflow:visible; }
button,input,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
.order-header { position:sticky; top:0; z-index:20; background:var(--header-bg); box-shadow:0 1px 0 var(--line); backdrop-filter:blur(15px); }
.header-main { width:min(1220px,calc(100% - 40px)); min-height:86px; margin:auto; display:grid; grid-template-columns:170px 1fr auto auto; align-items:center; gap:28px; }
.brand img { display:block; width:150px; height:auto; }
.delivery-summary,.header-contact { display:grid; }
.header-contact[hidden] { display:none; }
.header-contact a { color:inherit; text-decoration:none; }
.header-contact a:hover { text-decoration:underline; }
.header-contact a:focus-visible { outline:2px solid var(--red); outline-offset:4px; border-radius:2px; }
.delivery-summary span,.header-contact span { color:var(--muted); font-size:.75rem; }
.delivery-summary strong,.header-contact strong { font-size:.95rem; }
.delivery-summary small { color:var(--red); font-size:.7rem; font-weight:750; }
.header-actions { display:flex; align-items:center; justify-self:end; gap:10px; margin-left:auto; grid-column:-2 / -1; }
.login-link,.cart-link { display:inline-flex; align-items:center; justify-content:center; min-height:42px; border-radius:999px; text-decoration:none; font-weight:800; }
.login-link { padding:0 17px; background:var(--cream); color:var(--ink); }
.cart-link { gap:8px; padding:0 18px; border:0; background:var(--red); color:white; cursor:pointer; }
.mobile-cart-link { display:none; }
.cart-icon { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.cart-link #cart-count { min-width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:var(--surface); color:var(--red); font-size:.7rem; }
.language-open,.theme-toggle,.mobile-menu-toggle { width:42px; height:42px; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink); cursor:pointer; }
.language-open svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.mobile-menu-toggle { display:none; place-content:center; gap:4px; }
.mobile-menu-toggle span { width:20px; height:2px; border-radius:999px; background:currentColor; }
.mobile-menu-dialog { --drawer-bg:var(--paper); --drawer-text:var(--ink); --drawer-muted:var(--muted); --drawer-line:var(--line); width:min(370px,88vw); max-width:none; height:100dvh; max-height:none; margin:0 0 0 auto; padding:0; overflow:hidden; border:0; border-radius:22px 0 0 22px; background:var(--drawer-bg); color:var(--drawer-text); box-shadow:-18px 0 48px rgba(0,0,0,.22); }
.mobile-menu-dialog::backdrop { background:rgba(20,14,11,.56); backdrop-filter:blur(3px); }
.mobile-menu-dialog[open] { animation:mobile-menu-enter .28s cubic-bezier(.2,.8,.2,1) both; }
.mobile-menu-dialog[open]::backdrop { animation:mobile-menu-backdrop-enter .28s ease both; }
.mobile-menu-dialog.is-closing { animation:mobile-menu-exit .22s ease-in both; }
.mobile-menu-dialog.is-closing::backdrop { animation:mobile-menu-backdrop-exit .22s ease-in both; }
@keyframes mobile-menu-enter { from { opacity:0; transform:translateX(100%); } to { opacity:1; transform:translateX(0); } }
@keyframes mobile-menu-exit { from { opacity:1; transform:translateX(0); } to { opacity:0; transform:translateX(100%); } }
@keyframes mobile-menu-backdrop-enter { from { opacity:0; } to { opacity:1; } }
@keyframes mobile-menu-backdrop-exit { from { opacity:1; } to { opacity:0; } }
@media(prefers-reduced-motion:reduce){.mobile-menu-dialog[open],.mobile-menu-dialog[open]::backdrop,.mobile-menu-dialog.is-closing,.mobile-menu-dialog.is-closing::backdrop{animation-duration:.01ms}}
.mobile-menu-head { min-height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 22px; border-bottom:1px solid var(--drawer-line); }
.mobile-menu-head h2 { margin:0; font:1.45rem Georgia,serif; }
.mobile-menu-head button { width:42px; height:42px; border:1px solid var(--drawer-line); border-radius:50%; background:transparent; color:var(--drawer-text); font-size:1.8rem; line-height:1; cursor:pointer; }
.mobile-menu-body { display:grid; }
.mobile-menu-action { width:100%; min-height:72px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px; padding:0 22px; border:0; border-bottom:1px solid var(--drawer-line); background:transparent; color:var(--drawer-text); text-align:left; cursor:pointer; }
.mobile-menu-action svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.mobile-menu-action strong { font-size:1.03rem; }
.mobile-menu-action>span:last-child { color:var(--drawer-muted); font-size:1.7rem; }
.mobile-menu-account { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px; min-height:72px; padding:0 22px; color:var(--drawer-text); text-decoration:none; font-size:1.03rem; font-weight:850; }
.mobile-menu-account>span:last-child { color:var(--drawer-muted); font-size:1.7rem; }
.language-dialog { width:min(390px,calc(100% - 28px)); margin:auto; padding:0; border:0; border-radius:20px; background:var(--paper); color:var(--ink); box-shadow:var(--shadow); }
.language-dialog::backdrop { background:rgba(20,14,11,.56); backdrop-filter:blur(3px); }
.language-dialog-head { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 20px; border-bottom:1px solid var(--line); }
.language-dialog-head h2 { margin:0; font:1.45rem Georgia,serif; }
.language-dialog-head button { width:38px; height:38px; border:0; border-radius:50%; background:var(--cream); color:var(--ink); font-size:1.7rem; cursor:pointer; }
.language-dialog-options { position:relative; isolation:isolate; display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:16px 20px 20px; padding:4px; border:1px solid var(--line); border-radius:999px; background:var(--cream); }
.language-dialog-options::before { content:""; position:absolute; z-index:-1; top:4px; bottom:4px; left:4px; width:calc((100% - 8px)/3); border-radius:999px; background:var(--surface); box-shadow:0 2px 10px rgba(34,24,18,.12); transition:transform .22s ease; }
.language-dialog-options:has(button:nth-child(2).is-active)::before { transform:translateX(100%); }
.language-dialog-options:has(button:nth-child(3).is-active)::before { transform:translateX(200%); }
.language-dialog-options button { min-width:0; min-height:48px; display:grid; place-items:center; gap:1px; padding:4px 8px; border:0; border-radius:999px; background:transparent; color:var(--muted); cursor:pointer; }
.language-dialog-options button.is-active { color:var(--red); }
.language-dialog-options button strong { font-size:.82rem; }
.language-dialog-options button span { color:inherit; font-size:.62rem; font-weight:850; }
@media(min-width:621px){.language-dialog.is-anchored{position:fixed;top:var(--language-dialog-top);right:var(--language-dialog-right);bottom:auto;left:auto;width:min(330px,calc(100% - 24px));margin:0}.language-dialog.is-anchored::backdrop{background:transparent;backdrop-filter:none}.language-dialog.is-anchored .language-dialog-head{min-height:60px}.language-dialog.is-anchored .language-dialog-options{margin:12px 16px 16px}}
.category-nav { border-top:1px solid var(--line); }
.category-nav-shell { width:min(1220px,calc(100% - 40px)); height:54px; margin:auto; display:flex; align-items:center; min-width:0; }
.category-nav-list { min-width:0; height:100%; display:flex; flex:1 1 auto; align-items:center; gap:26px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; }
.category-nav-list::-webkit-scrollbar { display:none; }
.category-nav-list a { position:relative; flex:0 0 auto; color:var(--ink); text-decoration:none; font-size:.88rem; font-weight:750; transition:color .18s; }
.category-nav-list a.is-overflowed { display:none; }
.category-nav-list a::after { content:''; position:absolute; right:0; bottom:-9px; left:0; height:2px; border-radius:999px; background:var(--red); opacity:0; transform:scaleX(.35); transition:opacity .18s,transform .18s; }
.category-nav-list a.is-active { color:var(--red); }
.category-nav-list a.is-active::after { opacity:1; transform:scaleX(1); }
@media(hover:hover) and (pointer:fine){.category-nav-list a:hover{color:var(--red)}}
.category-nav-actions { z-index:1; display:flex; flex:0 0 auto; align-items:center; gap:8px; padding-left:14px; background:var(--paper); box-shadow:-14px 0 18px var(--paper); }
.category-nav-actions .cart-link,.category-nav-actions .login-link { min-height:38px; }
.category-nav-actions .cart-link { padding:0 14px; }
.category-nav-actions .login-link { max-width:190px; gap:8px; padding:0 12px 0 7px; }
/* Keep the overflow budget independent of the current category label. */
.category-overflow { position:relative; flex:0 0 clamp(140px,18vw,180px); min-width:0; }
.category-overflow[hidden],.category-overflow-menu[hidden] { display:none; }
.category-overflow-open { width:100%; max-width:180px; min-height:38px; display:flex; align-items:center; justify-content:center; gap:7px; padding:0 12px; border:0; border-radius:999px; background:var(--cream); color:var(--ink); font:inherit; font-size:.82rem; font-weight:800; cursor:pointer; }
.category-overflow-open.has-current { background:var(--soft-red); color:var(--red); }
.category-overflow-open span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.category-overflow-open svg { flex:0 0 14px; width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform .18s ease; }
.category-overflow.is-open .category-overflow-open svg { transform:rotate(180deg); }
.category-overflow-menu { position:absolute; z-index:24; top:calc(100% + 8px); right:0; width:max-content; min-width:210px; max-width:min(290px,calc(100vw - 40px)); max-height:min(60vh,420px); display:grid; gap:4px; overflow:auto; padding:8px; border:1px solid var(--line); border-radius:16px; background:var(--paper); box-shadow:var(--shadow); }
.category-overflow-menu a { padding:11px 13px; border-radius:11px; color:var(--ink); text-decoration:none; font-size:.84rem; font-weight:750; white-space:nowrap; }
.category-overflow-menu a.is-active { background:var(--soft-red); color:var(--red); }
@media(hover:hover) and (pointer:fine){.category-overflow-open:hover,.category-overflow-menu a:hover{background:var(--soft-red);color:var(--red)}}
@media(min-width:621px){.category-nav-list{overflow-x:hidden}}
.account-avatar { flex:0 0 26px; width:26px; height:26px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:var(--ink); color:white; font-size:.65rem; font-weight:900; }
.account-avatar img { width:100%; height:100%; object-fit:cover; }
.account-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
main { width:min(1220px,calc(100% - 40px)); margin:auto; }
.promo-strip { display:grid; grid-template-columns:1.35fr .8fr .8fr; gap:16px; margin:26px 0 30px; }
.promo-card { min-height:240px; padding:28px; overflow:hidden; border-radius:24px; position:relative; }
.promo-card span { font-size:.68rem; font-weight:900; letter-spacing:.14em; }
.promo-card h1,.promo-card h2 { margin:18px 0 10px; font:500 clamp(2rem,3.6vw,3.5rem)/.95 Georgia,serif; letter-spacing:-.04em; }
.promo-card h2 { font-size:clamp(1.8rem,2.6vw,2.7rem); }
.promo-card p { max-width:330px; margin:0; line-height:1.55; }
.promo-welcome { background:var(--hero-bg); color:var(--hero-text); }
.promo-welcome:after { content:""; position:absolute; width:210px; height:210px; right:-35px; bottom:-70px; border:38px solid var(--red); border-radius:50%; opacity:.9; }
.promo-welcome span { color:#d8aaa4; }
.promo-welcome p { color:#d8cec7; }
.promo-lenten { background:var(--lenten-bg); color:var(--red-dark); }
.promo-lenten:after { content:attr(data-label); position:absolute; right:-8px; bottom:4px; color:rgba(165,44,36,.08); font:900 4.4rem/1 Inter,sans-serif; transform:rotate(-10deg); }
.promo-loyalty { background:var(--loyalty-bg); }
.promotion-cards { display:contents; }
.promo-offer { width:100%; border:0; color:var(--ink); text-align:left; cursor:pointer; box-shadow:inset 0 0 0 1px transparent; transition:transform .18s ease,box-shadow .18s ease; }
.promo-offer:nth-child(3n+1) { background:var(--loyalty-bg); }
.promo-offer:nth-child(3n+2) { background:var(--soft-red); color:var(--red-dark); }
.promo-offer:nth-child(3n) { background:var(--cream); box-shadow:inset 0 0 0 1px var(--line); }
.promo-offer:hover { transform:translateY(-3px); box-shadow:0 14px 34px rgba(52,39,28,.14); }
.promo-offer:focus-visible { outline:3px solid color-mix(in srgb,var(--red) 32%,transparent); outline-offset:3px; }
.promo-offer-image { display:block; width:100%; height:150px; object-fit:contain; margin:0 0 16px; border-radius:14px; }
.promo-offer-image[hidden],.promotion-header-image[hidden] { display:none; }
.promo-offer:has(.promo-offer-image:not([hidden])) { padding-bottom:64px; }
.promo-offer .promo-action { position:absolute; right:24px; bottom:22px; display:inline-flex; align-items:center; gap:6px; color:var(--red); font-size:.72rem; letter-spacing:0; }
.promo-offer .promo-action::after { content:'→'; font-size:1rem; }
.promo-card.promo-bonus { cursor:default; color:var(--ink); background:var(--loyalty-bg); --artwork-base:var(--loyalty-bg); box-shadow:none; }
.promo-bonus:hover { transform:none; box-shadow:none; }
.promotion-dialog { width:min(1060px,calc(100% - 28px)); max-height:calc(100dvh - 28px); margin:auto; padding:0; overflow:hidden; border:0; border-radius:24px; background:var(--paper); color:var(--ink); box-shadow:var(--shadow); }
.promotion-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.promotion-dialog::backdrop { background:rgba(31,20,15,.55); backdrop-filter:blur(3px); }
.promotion-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:24px 28px 20px; border-bottom:1px solid var(--line); }
.promotion-dialog-head>div { flex:1; min-width:0; max-width:760px; }
.promotion-header-image { flex:0 0 auto; width:clamp(100px,18vw,210px); height:140px; object-fit:contain; border-radius:16px; }
/* Configured artwork stays in a fixed, clipped frame and a card-local stacking context. */
.promo-offer.has-artwork-presentation,.promotion-dialog-head.has-artwork-presentation { isolation:isolate; overflow:hidden; background:var(--artwork-light,var(--artwork-base,var(--paper))); }
.promo-offer.has-artwork-presentation:nth-child(3n+1) { --artwork-base:var(--loyalty-bg); }
.promo-offer.has-artwork-presentation:nth-child(3n+2) { --artwork-base:var(--soft-red); }
.promo-offer.has-artwork-presentation:nth-child(3n) { --artwork-base:var(--cream); }
.promo-card.promo-bonus.has-artwork-presentation { --artwork-base:var(--loyalty-bg); background:var(--artwork-light,var(--loyalty-bg)); }
:root[data-color-scheme="dark"] .promo-card.promo-bonus.has-artwork-presentation { background:var(--artwork-dark,var(--loyalty-bg)); }
:root[data-color-scheme="dark"] .has-artwork-presentation { background:var(--artwork-dark,var(--artwork-base,var(--paper))); }
.promotion-artwork-frame { --artwork-fit:var(--artwork-desktop-fit); --artwork-scale:var(--artwork-desktop-scale); --artwork-x:var(--artwork-desktop-x); --artwork-y:var(--artwork-desktop-y); --artwork-layer:var(--artwork-desktop-layer); display:block; position:relative; overflow:hidden; isolation:isolate; pointer-events:none; z-index:var(--artwork-layer); }
.promotion-artwork-card { width:100%; height:150px; margin:0 0 16px; border-radius:14px; }
.promotion-artwork-header { flex:0 0 auto; width:clamp(100px,18vw,210px); height:140px; border-radius:16px; }
.promotion-artwork-frame > img { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none; max-height:none; margin:0; border-radius:0; object-fit:var(--artwork-fit); object-position:center; transform-origin:center; transform:translate(var(--artwork-x),var(--artwork-y)) scale(var(--artwork-scale)); pointer-events:none; z-index:var(--artwork-layer); }
.promotion-artwork-frame:has(img[hidden]) { display:none; }
.promo-offer.has-artwork-presentation .promotion-artwork-copy { position:relative; z-index:3; display:block; background:var(--artwork-base); border-radius:10px; font-size:inherit; font-weight:inherit; letter-spacing:normal; }
.promo-offer.has-artwork-presentation .promo-action { z-index:3; background:var(--artwork-base); border-radius:8px; }
.promotion-dialog-head.has-artwork-presentation > div,.promotion-dialog-head.has-artwork-presentation > button { position:relative; z-index:3; background:var(--paper); border-radius:10px; }
@media(max-width:620px) {
  .promotion-artwork-frame { --artwork-fit:var(--artwork-mobile-fit); --artwork-scale:var(--artwork-mobile-scale); --artwork-x:var(--artwork-mobile-x); --artwork-y:var(--artwork-mobile-y); --artwork-layer:var(--artwork-mobile-layer); }
  .promotion-artwork-header { width:100%; height:110px; grid-column:1; grid-row:1; }
}
/* Background artwork is out of flow: it never adds a row or an image-sized gap.
   Percentage translation/scale now reference the whole unchanged card rectangle. */
@media(min-width:621px) {
  .promo-offer.has-artwork-background-desktop { padding-bottom:28px; }
  .promo-offer.has-artwork-background-desktop > .promotion-artwork-card { position:absolute; inset:0; width:100%; height:100%; margin:0; border-radius:inherit; }
  .promo-offer.has-artwork-background-desktop .promotion-artwork-copy { width:fit-content; max-width:100%; }
  .promotion-dialog-head.has-artwork-background-desktop { position:relative; }
  .promotion-dialog-head.has-artwork-background-desktop > .promotion-artwork-header { position:absolute; inset:0; width:100%; height:100%; margin:0; border-radius:inherit; }
}
@media(max-width:620px) {
  .promo-offer.has-artwork-background-mobile { padding-bottom:28px; }
  .promo-offer.has-artwork-background-mobile > .promotion-artwork-card { position:absolute; inset:0; width:100%; height:100%; margin:0; border-radius:inherit; }
  .promo-offer.has-artwork-background-mobile .promotion-artwork-copy { width:fit-content; max-width:100%; }
  .promotion-dialog-head.has-artwork-background-mobile > .promotion-artwork-header { position:absolute; inset:0; width:100%; height:100%; margin:0; border-radius:inherit; }
}
.promotion-artwork-text { white-space:pre-wrap; overflow-wrap:anywhere; transform-origin:center; pointer-events:none; }
.has-artwork-text .promo-action,.promotion-dialog-head.has-artwork-text > button { z-index:4; }
.has-artwork-text .promotion-artwork-text[hidden] { display:none!important; }
.has-artwork-transparent-text .promotion-artwork-copy,.promotion-dialog-head.has-artwork-transparent-text > div { background:transparent!important; }
.has-artwork-transparent-text .artwork-text-site-background { background:var(--artwork-base,var(--surface)); }
.promotion-dialog-head.has-artwork-transparent-text .artwork-text-site-background { background:var(--paper); }
.promotion-dialog-head span { color:var(--red); font-size:.68rem; font-weight:900; letter-spacing:.12em; }
.promotion-dialog-head h2 { margin:5px 0 6px; font:500 clamp(2rem,4vw,3.3rem)/1 Georgia,serif; letter-spacing:-.035em; }
.promotion-dialog-head p { margin:0; color:var(--muted); }
.promotion-dialog-head button { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:var(--cream); color:var(--ink); font-size:1.7rem; cursor:pointer; }
.promotion-dialog-body { min-height:420px; max-height:calc(100dvh - 260px); overflow:auto; padding:22px 28px 28px; }
.promotion-size-panel[hidden],.promotion-workspace[hidden],.promotion-modifier-panel[hidden],.promotion-choice-head[hidden],.promotion-options[hidden] { display:none!important; }
.promotion-size-panel { width:min(680px,100%); min-height:390px; display:grid; align-content:center; justify-items:center; gap:10px; margin:auto; text-align:center; }
.promotion-size-panel h3 { margin:4px 0 0; font:500 clamp(2rem,4vw,3.1rem)/1 Georgia,serif; }
.promotion-size-panel p { max-width:460px; margin:0; color:var(--muted); }
.promotion-size-options { width:min(520px,100%); display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin-top:20px; }
.promotion-size-options button { min-height:104px; display:grid; place-content:center; gap:4px; padding:14px; border:1px solid var(--line); border-radius:20px; background:var(--surface); color:var(--ink); cursor:pointer; }
.promotion-size-options button:hover,.promotion-size-options button:focus-visible { border-color:var(--red); outline:0; box-shadow:0 8px 24px rgba(52,39,28,.12); }
.promotion-size-options strong { font:500 2rem/1 Georgia,serif; }
.promotion-size-options span { color:var(--muted); font-size:.72rem; font-weight:800; }
.promotion-workspace { display:grid; grid-template-columns:minmax(0,2fr) minmax(250px,.82fr); align-items:start; gap:clamp(14px,2.1vw,22px); }
.promotion-catalog { min-width:0; }
.promotion-summary { min-width:0; position:sticky; top:0; padding:16px; border:1px solid var(--line); border-radius:18px; background:var(--cream); }
.promotion-summary-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.promotion-summary-head strong { font:1.2rem Georgia,serif; }
.promotion-summary-head span { color:var(--muted); font-size:.72rem; font-weight:800; }
.promotion-slots { display:grid; gap:9px; }
.promotion-slot { width:100%; min-width:0; display:grid; gap:2px; padding:12px 13px; border:1px solid var(--line); border-radius:13px; background:var(--surface); color:var(--muted); text-align:left; cursor:pointer; }
.promotion-slot.is-active { border-color:var(--red); box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 16%,transparent); }
.promotion-slot.is-filled { color:var(--ink); background:var(--success-bg); }
.promotion-slot strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:1rem; }
.promotion-slot small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:inherit; font-size:.66rem; }
.promotion-slot-select { display:grid; gap:4px; width:100%; min-width:0; padding:0; border:0; border-radius:0; background:transparent; color:inherit; text-align:left; cursor:pointer; }
.promotion-slot-copy { display:grid; min-width:0; gap:4px; }
.promotion-slot-image { display:none; }
.promotion-slot-extras { justify-self:start; margin-top:8px; padding:6px 12px; border:1px solid var(--line); border-radius:20px; background:var(--surface); color:var(--red); font-size:.8rem; font-weight:800; cursor:pointer; }
.promotion-slot-extras:disabled { opacity:.5; cursor:default; }
.promotion-master-prices { display:grid; gap:10px; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); font-size:.86rem; }
.promotion-master-prices[hidden] { display:none; }
.promotion-master-prices > div { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:4px 12px; }
.promotion-master-prices p { margin:0; color:var(--muted); }
.promotion-master-prices s { color:var(--muted); }
.promotion-master-prices .promotion-final-price { padding-top:10px; border-top:1px solid var(--line); font-size:1rem; }
.promotion-master-prices button { padding:8px 14px; border:1px solid var(--line); border-radius:20px; background:var(--surface); color:var(--red); cursor:pointer; }
.promotion-choice-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:5px 0 13px; }
.promotion-choice-head strong { font:1.35rem Georgia,serif; }
.promotion-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.promotion-option { min-width:0; display:grid; grid-template-rows:145px auto; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:17px; background:var(--surface); color:var(--ink); text-align:left; cursor:pointer; }
.promotion-option:hover,.promotion-option:focus-visible { border-color:var(--red); outline:0; box-shadow:0 8px 22px rgba(52,39,28,.1); }
.promotion-option.is-selected { border-color:var(--red); box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 18%,transparent); }
.promotion-option img,.promotion-option-image { width:100%; height:145px; display:grid; place-items:center; object-fit:contain; background:var(--surface); color:var(--red); font:1.3rem Georgia,serif; }
.promotion-option-copy { min-width:0; display:grid; gap:3px; padding:11px 12px 13px; }
.promotion-option-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.86rem; }
.promotion-option-copy span { color:var(--muted); font-size:.7rem; }
.promotion-empty { grid-column:1/-1; margin:0; padding:26px; border:1px dashed var(--line); border-radius:16px; color:var(--muted); text-align:center; }
.promotion-modifier-dialog { position:fixed; inset:auto; left:var(--modifier-left,16px); top:var(--modifier-top,16px); width:var(--modifier-width,calc(100vw - 32px)); height:var(--modifier-height,calc(100dvh - 32px)); max-width:none; max-height:none; margin:0; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:17px; background:var(--paper); color:var(--ink); box-shadow:var(--shadow); }
.promotion-modifier-dialog::backdrop { background:rgba(0,0,0,.38); }
.promotion-modifier-dialog[open] { display:block; }
.promotion-modifier-dialog.is-short:not(.is-required-choice) .promotion-modifier-panel { display:block; overflow:auto; overscroll-behavior:contain; }
.promotion-modifier-dialog.is-short:not(.is-required-choice) .promotion-modifier-head { padding:8px 12px; }
.promotion-modifier-dialog.is-short:not(.is-required-choice) .promotion-modifier-head h3 { font-size:1rem; }
.promotion-modifier-dialog.is-short:not(.is-required-choice) .promotion-modifier-body { overflow:visible; padding:12px; }
.promotion-modifier-dialog.is-short:not(.is-required-choice) .promotion-modifier-footer { position:static; padding:12px; }
.promotion-modifier-panel { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.promotion-modifier-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line); }
.promotion-modifier-head h3 { margin:0; font:500 clamp(1.2rem,2.4vw,1.65rem)/1.1 Georgia,serif; overflow-wrap:anywhere; }
.promotion-modifier-head button { flex:0 0 auto; width:44px; height:44px; border:0; border-radius:50%; background:var(--cream); color:var(--ink); font-size:1.7rem; cursor:pointer; }
.promotion-modifier-body { min-height:0; overflow:auto; overscroll-behavior:contain; padding:16px; }
.promotion-modifier-body>p { margin:0 0 20px; color:var(--muted); }
.promotion-modifier-footer { min-height:0; display:flex; align-items:center; justify-content:flex-end; gap:0; padding:12px 16px; border-top:1px solid var(--line); background:var(--paper); color:var(--ink); }
.promotion-modifier-footer button { min-width:0; max-width:100%; }
.promotion-modifier-dialog:not(.is-required-choice) .promotion-modifier-footer { padding-bottom:max(12px,env(safe-area-inset-bottom)); }
.promotion-modifier-dialog:not(.is-required-choice) .promotion-required-options.modifier-card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:760px) {
  .promotion-modifier-dialog:not(.is-required-choice) .promotion-modifier-head { padding:12px; }
  .promotion-modifier-dialog:not(.is-required-choice) .promotion-modifier-body { padding:12px; }
  .promotion-modifier-dialog:not(.is-required-choice) .promotion-required-group { min-width:0; padding:12px; }
  .promotion-modifier-dialog:not(.is-required-choice) .promotion-required-options.modifier-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .promotion-modifier-dialog:not(.is-required-choice) .promotion-modifier-footer button { width:100%; }
}
/* Extras use the viewport; short mandatory choices keep their compact layout. */
.promotion-modifier-dialog.is-required-choice { inset:0; width:min(560px,calc(100vw - 32px)); height:fit-content; max-height:calc(100dvh - 48px); margin:auto; border:1px solid var(--line); border-radius:24px; box-shadow:0 24px 80px rgba(0,0,0,.28); }
.promotion-modifier-dialog.is-required-choice::backdrop { background:rgba(0,0,0,.38); }
.promotion-modifier-dialog.is-required-choice[open] { display:flex; flex-direction:column; }
.promotion-modifier-dialog.is-required-choice .promotion-modifier-panel { width:100%; min-height:0; height:auto; max-height:inherit; }
.promotion-modifier-dialog.is-required-choice .promotion-modifier-head { gap:12px; padding:16px 20px; }
.promotion-modifier-dialog.is-required-choice .promotion-modifier-head h3 { font-size:clamp(1.35rem,3vw,1.65rem); overflow-wrap:anywhere; }
.promotion-modifier-dialog.is-required-choice .promotion-modifier-body { padding:20px; }
.promotion-modifier-dialog.is-required-choice .promotion-modifier-footer { padding:14px 20px; }
.promotion-modifier-dialog.is-required-choice .promotion-modifier-footer button { min-width:0; max-width:100%; }
.promotion-required-groups { display:grid; gap:14px; }
.promotion-required-group { min-width:0; margin:0; padding:15px; border:1px solid var(--line); border-radius:16px; }
.promotion-required-group legend { padding:0 6px; font-weight:850; }
.promotion-required-group p { margin:0 0 11px; color:var(--muted); font-size:.72rem; }
.promotion-required-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.promotion-required-option { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink); text-align:left; cursor:pointer; }
.promotion-required-option.is-selected { border-color:var(--red); background:var(--soft-red); box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 16%,transparent); }
.promotion-required-option small { color:var(--muted); }
.promotion-modifier-confirm { justify-self:end; min-height:46px; padding:0 20px; border:0; border-radius:12px; background:var(--red); color:white; font-weight:850; cursor:pointer; }
.promotion-modifier-confirm:disabled { cursor:not-allowed; opacity:.45; }
.promotion-dialog-footer { display:grid; grid-template-columns:1fr auto; align-items:center; gap:18px; padding:16px 28px calc(16px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:var(--paper); }
.promotion-dialog-footer p { margin:0; color:var(--muted); font-size:.73rem; }
.promotion-dialog-footer button { min-height:48px; padding:0 22px; border:0; border-radius:12px; background:var(--red); color:white; font-weight:850; cursor:pointer; }
.promotion-dialog-footer button:disabled { cursor:not-allowed; opacity:.45; }
.delivery-panel { display:grid; grid-template-columns:auto minmax(270px,.7fr) minmax(340px,1fr); align-items:center; gap:20px; margin-bottom:54px; padding:18px 22px; border:1px solid var(--line); border-radius:18px; background:var(--cream); }
.delivery-panel[hidden] { display:none; }
.address-preview-dialog.pickup-route-dialog { width:min(900px,calc(100vw - 28px)); max-width:none; box-sizing:border-box; }
.pickup-route-body { padding:16px; display:grid; gap:12px; }
.pickup-route-body p { margin:0; overflow-wrap:anywhere; }
.pickup-route-modes { display:flex; gap:8px; }
.pickup-route-modes button { padding:9px 18px; border:1px solid var(--line); border-radius:999px; background:var(--cream); color:var(--ink); font-weight:750; cursor:pointer; }
.pickup-route-modes button[aria-pressed="true"] { background:var(--red); color:white; border-color:var(--red); }
#pickup-route-map { display:block; width:100%; height:clamp(260px,55dvh,520px); min-width:200px; min-height:200px; border:0; border-radius:12px; background:var(--cream); }
#pickup-route-map[hidden] { display:none; }
.pickup-route-help { color:var(--muted); font-size:.875rem; }
#pickup-route-external { color:var(--red); font-weight:750; justify-self:start; }
.pickup-route-panel .address-control,.pickup-route-panel .address-copy { min-width:0; }
@media(max-width:300px) {
  .address-preview-dialog.pickup-route-dialog { width:calc(100vw - 12px); }
  .pickup-route-body { padding:8px; min-width:0; }
  .pickup-route-modes button { min-width:0; padding:8px 10px; font-size:.875rem; }
  .pickup-route-dialog .address-preview-head { padding:12px 10px; gap:8px; }
  .pickup-route-dialog .address-preview-head>div { min-width:0; }
  .pickup-route-dialog .address-preview-head h2 { font-size:1.15rem; overflow-wrap:anywhere; }
  .pickup-route-dialog .address-preview-head button { flex:0 0 32px; }
}
.delivery-icon-button { width:48px; height:48px; display:grid; place-items:center; padding:0; border:0; border-radius:12px; background:transparent; cursor:pointer; transition:background .16s ease,transform .16s ease; }
.delivery-icon-button:hover { background:rgba(165,44,36,.08); transform:translateY(-1px); }
.delivery-icon-button:focus-visible { outline:3px solid rgba(165,44,36,.22); outline-offset:3px; }
.pickup-route-panel .delivery-icon-button[aria-busy="true"] { opacity:.55; cursor:progress; }
.delivery-icon { width:48px; height:48px; display:block; color:var(--ink); }
.address-preview-dialog { width:min(550px,calc(100% - 28px)); max-height:calc(100dvh - 20px); margin:auto; padding:0; overflow:auto; border:0; border-radius:20px; color:var(--ink); background:var(--paper); box-shadow:var(--shadow); }
.address-preview-dialog.is-checkout-map { width:min(600px,calc(100% - 28px)); height:min(760px,calc(100dvh - 40px)); max-height:calc(100dvh - 40px); overflow:hidden; box-sizing:border-box; }
.address-preview-dialog.is-checkout-map[open] { display:flex; flex-direction:column; }
.is-checkout-map .address-preview-head { flex:0 0 auto; }
.is-checkout-map .address-preview-body { display:flex; flex:1 1 auto; flex-direction:column; min-height:0; overflow:auto; overscroll-behavior:contain; }
.is-checkout-map .address-preview-map { flex:1 0 auto; min-height:min(300px,35dvh); }
.is-checkout-map .address-preview-help { display:none; }
.is-checkout-map .address-order-button { flex-shrink:0; }
@media(max-width:620px) { .address-preview-dialog.is-checkout-map { height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); } }
.address-preview-dialog::backdrop { background:rgba(31,20,15,.46); backdrop-filter:blur(2px); }
.address-preview-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:19px 20px 15px; border-bottom:1px solid var(--line); }
.address-preview-head>div { display:grid; gap:2px; }
.address-preview-head span { color:var(--red); font-size:.66rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.address-preview-head h2 { margin:0; font:1.45rem Georgia,serif; }
.address-preview-head button { width:34px; height:34px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:var(--cream); color:var(--muted); font-size:1.55rem; line-height:1; cursor:pointer; }
.address-preview-body { display:grid; gap:12px; padding:16px 20px 20px; }
.address-preview-search-wrap { position:relative; }
.address-preview-search { display:grid; gap:6px; color:var(--muted); font-size:.72rem; font-weight:750; }
.address-preview-search input { width:100%; min-height:44px; padding:11px 13px; border:1px solid var(--line); border-radius:11px; background:var(--surface); color:var(--ink); }
.address-preview-search input:focus { outline:3px solid rgba(165,44,36,.14); border-color:var(--red); }
.address-preview-search input:disabled { cursor:not-allowed; opacity:.55; }
.address-preview-suggestions { position:absolute; z-index:20; top:calc(100% + 5px); right:0; left:0; max-height:210px; display:grid; gap:7px; overflow:auto; padding:7px; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:0 14px 32px rgba(0,0,0,.2); }
.address-preview-suggestions[hidden] { display:none; }
.address-preview-suggestion { width:100%; display:grid; gap:2px; padding:10px 11px; border:0; border-radius:8px; background:transparent; color:var(--ink); text-align:left; cursor:pointer; }
.address-preview-suggestion:hover,.address-preview-suggestion:focus-visible { outline:0; background:var(--cream); }
.address-preview-suggestion strong { font-size:.84rem; }
.address-preview-suggestion span { color:var(--muted); font-size:.72rem; }
.address-autocomplete,.checkout-address-autocomplete { position:relative; min-width:0; }
.address-autocomplete input { width:100%; }
.address-inline-suggestions { top:calc(100% + 5px); }
.checkout-address-autocomplete .address-inline-suggestions { top:calc(100% + 5px); }
.address-map-marker { display:block; width:34px; height:43px; }
.address-preview-map { min-height:288px; display:grid; place-items:center; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:var(--map-bg); color:var(--red); font:1rem Georgia,serif; }
.address-preview-map.is-google-ready { border-color:transparent; background:var(--map-bg); }
.address-preview-help { color:var(--muted); font-size:.72rem; text-align:center; }
.address-preview-body p { margin:0; padding:15px 16px; border-radius:13px; background:var(--cream); color:var(--ink); font-size:.92rem; font-weight:750; line-height:1.5; overflow-wrap:anywhere; }
.delivery-zone-status { margin:0; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--cream); color:var(--muted); font-size:.78rem; font-weight:750; line-height:1.45; }
.address-preview-body p.delivery-zone-status { padding:12px 14px; font-size:.78rem; }
.delivery-zone-status.is-checking { color:var(--muted); }
.delivery-zone-status.is-success { border-color:var(--success-text); background:var(--success-bg); color:var(--success-text); }
.delivery-zone-status.is-warning { border-color:var(--line); background:var(--cream); color:var(--ink); }
.delivery-zone-status.is-error { border-color:var(--red); background:var(--soft-red); color:var(--red); }
.address-order-button { width:100%; min-height:46px; padding:11px 18px; border:0; border-radius:12px; background:var(--red); color:white; font-weight:850; cursor:pointer; }
.address-order-button:hover { background:var(--red-dark); }
.address-order-button:focus-visible { outline:3px solid rgba(165,44,36,.22); outline-offset:2px; }
.address-order-button:disabled { cursor:not-allowed; opacity:.48; }
.address-copy { min-width:0; }
.address-copy span { color:var(--red); font-size:.68rem; font-weight:850; text-transform:uppercase; letter-spacing:.09em; }
.address-copy h2 { margin:2px 0 1px; font-size:1rem; }
.address-copy p { margin:0; color:var(--muted); font-size:.72rem; }
.address-control { display:grid; grid-template-columns:1fr auto; gap:8px; }
.address-control input { min-width:0; padding:12px 14px; border:1px solid var(--line); border-radius:11px; background:var(--surface); color:var(--ink); }
.address-control > button { padding:8px 18px; border:0; border-radius:11px; background:var(--red); color:white; font-weight:800; }
.address-control :disabled { cursor:not-allowed; opacity:.55; }
.map-shell { display:none; }
.menu-section { margin-bottom:90px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:30px; }
.section-heading h2 { margin:5px 0 0; font:500 clamp(2.4rem,4.5vw,4.3rem)/.95 Georgia,serif; letter-spacing:-.045em; }
.section-eyebrow { color:var(--red); font-size:.7rem; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }
.preview-badge { padding:7px 11px; border-radius:999px; background:var(--soft-red); color:var(--red); font-size:.68rem; font-weight:900; }
.menu-empty { min-height:300px; display:grid; place-items:center; padding:40px; border:1px dashed #cdbba8; border-radius:22px; text-align:center; background:var(--cream); }
.menu-mark { width:70px; height:70px; display:grid; place-items:center; border:1px solid var(--red); border-radius:50%; color:var(--red); font:1.8rem Georgia,serif; }
.menu-empty h3 { margin:18px 0 0; font:1.8rem Georgia,serif; }
.menu-empty p { color:var(--muted); }
footer { min-height:190px; padding:38px max(20px,calc((100vw - 1220px)/2)); display:grid; grid-template-columns:1fr auto; gap:18px; align-items:start; background:var(--hero-bg); color:#cfc4bc; }
footer img { width:115px; filter:none; }
footer p { font-size:.8rem; }
footer nav { display:flex; gap:22px; }
footer a { color:inherit; }
footer>span { grid-column:1/-1; color:#8d8179; font-size:.72rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:900px){.header-main{grid-template-columns:145px 1fr auto}.header-contact{display:none}.promo-strip{grid-template-columns:1fr 1fr}.promo-welcome{grid-column:1/-1}.delivery-panel{grid-template-columns:auto 1fr}.address-control{grid-column:1/-1}.menu-section{margin-top:10px}}
@media(max-width:620px){html{scroll-padding-top:122px}.header-main{width:calc(100% - 24px);min-height:68px;grid-template-columns:1fr auto;gap:10px}.brand img{width:123px}.delivery-summary{display:none}.header-actions{gap:6px}.header-actions .language-open-header,.header-actions .theme-toggle-header{display:none!important}.mobile-menu-toggle{display:grid}.category-nav-shell{width:calc(100% - 24px);height:52px}.category-nav-list{gap:20px}.category-nav-list::before,.category-nav-list::after{content:'';flex:0 0 50%}.category-nav-actions{width:0;gap:0;padding:0;box-shadow:none}.category-overflow,.category-nav-actions .login-link,.category-nav-actions .cart-link{display:none!important}.mobile-cart-link{position:fixed;z-index:60;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));min-width:54px;min-height:54px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:2px solid var(--paper);border-radius:999px;background:var(--red);color:white;box-shadow:0 10px 30px rgba(0,0,0,.3);font-weight:850;cursor:pointer}.mobile-cart-link.is-empty{display:none}.mobile-cart-link span{min-width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--red);font-size:.7rem}.cart-label{display:none}.promo-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-top:16px}.promo-card{min-width:86%;min-height:210px;scroll-snap-align:start}.delivery-panel{grid-template-columns:auto 1fr;margin-bottom:38px;padding:15px}.address-control{grid-template-columns:1fr}.address-control > button{min-height:44px}.address-preview-body{padding:14px}.address-preview-map{min-height:260px}main{width:calc(100% - 24px)}.section-heading{align-items:start}.section-heading h2{font-size:2.7rem}footer{grid-template-columns:1fr}footer nav{flex-direction:column;gap:8px}}
@media(max-width:849px){.promotion-workspace{grid-template-columns:minmax(0,2fr) minmax(220px,.9fr)}.promotion-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){
  .promotion-dialog{inset:0;width:100vw;max-width:none;max-height:none;height:100dvh;margin:0;border-radius:0}
  .promotion-dialog-head{padding:16px}.promotion-dialog-head h2{font-size:2rem}.promotion-dialog-head p{font-size:.82rem}
  .promotion-dialog-body{min-height:0;max-height:none;height:auto;padding:14px 16px 18px}
  .promotion-size-panel{min-height:100%;align-content:center}.promotion-size-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .promotion-workspace{grid-template-columns:1fr;gap:14px}
  .promotion-workspace[data-mobile-view="summary"] .promotion-catalog,
  .promotion-workspace[data-mobile-view="catalog"] .promotion-summary{display:none}
  .promotion-summary{position:static;padding:0;border:0;background:transparent}
  .promotion-slots{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  .promotion-slot{padding:12px}.promotion-slot-select{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;min-height:72px}
  .promotion-slot-image{display:grid;place-items:center;width:72px;height:72px;border-radius:12px;object-fit:contain;background:var(--surface);color:var(--red);font:1.8rem Georgia,serif}
  .promotion-slot strong,.promotion-slot small{white-space:normal;overflow-wrap:anywhere}
  .promotion-slot small{font-size:.75rem}.promotion-slot-extras{margin-left:84px;min-height:40px}
  .promotion-dialog-head:has(.promotion-header-image:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:12px}
  .promotion-dialog-head:has(.promotion-header-image:not([hidden]))>div{grid-column:1/-1;grid-row:2}
  .promotion-header-image{width:100%;height:110px;grid-column:1;grid-row:1;object-position:left center}
  .promotion-dialog-head.has-artwork-presentation.has-artwork-background-mobile { position:relative; display:flex; gap:24px; }
  .promotion-dialog-head.has-artwork-presentation.has-artwork-background-mobile > div { grid-column:auto; grid-row:auto; }
  .promotion-modifier-footer button{width:100%}
  .promotion-master-prices{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--cream)}
  .promotion-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.promotion-option{grid-template-rows:116px auto}
  .promotion-option img,.promotion-option-image{height:116px}.promotion-required-options{grid-template-columns:1fr}
  .promotion-dialog-footer{grid-template-columns:1fr;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .promotion-dialog-footer button{width:100%}.promotion-dialog-footer p{display:none}
}
.account-cart-sync-status{margin:0 0 16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--cream);font-size:.9rem;overflow-wrap:anywhere}
.account-cart-sync-status[hidden],.shared-order-notice[hidden]{display:none!important}
.account-cart-sync-status p{margin:0 0 8px}
.account-cart-sync-status button{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:4px 6px 0 0;background:var(--paper,#fff);color:var(--ink);font:inherit;cursor:pointer;max-width:100%;white-space:normal}
.account-cart-sync-spinner{width:18px;height:18px;flex:0 0 18px;margin-left:auto;border:2px solid color-mix(in srgb,var(--red) 25%,var(--line));border-top-color:var(--red);border-radius:50%;animation:account-cart-spin .7s linear infinite}
.account-cart-sync-spinner[hidden]{display:none!important}
@keyframes account-cart-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.account-cart-sync-spinner{animation-duration:1.6s}}
.shared-order-notice{margin:8px auto 16px;max-width:1180px;padding:0 16px;font-size:.9rem;overflow-wrap:anywhere}
.checkout-options-status{margin-top:10px;font-size:.875rem;overflow-wrap:anywhere}
.checkout-options-status p{margin:0 0 8px}
.checkout-options-action{font:inherit;font-weight:700;border:1px solid var(--line);border-radius:11px;padding:8px 12px;background:var(--cream);color:var(--ink);cursor:pointer;max-width:100%;white-space:normal}
.checkout-options-status[hidden],.checkout-options-action[hidden],.payment-choice label[hidden]{display:none!important}
.fulfillment-picker label.is-unavailable{opacity:.65}
.fulfillment-picker label{min-width:0}
.fulfillment-picker [data-options-reason]{display:block;padding:4px 7px;font-size:.75rem;line-height:1.3;overflow-wrap:anywhere}
.fulfillment-picker [data-options-reason][hidden]{display:none}
