/* Présentation de la carte. Les règles de commande sont dans shared.js. */
:root{
  --bg:#f5f5f5;--surface:#fff;--ink:#171717;--muted:#666;--line:#dedede;
  --red:#d81220;--red-ink:#b60916;--board:#151515;--board-ink:#fff;--gold:#dadada;
  --display:var(--body);--script:Georgia,'Times New Roman',serif;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#151515;--surface:#212121;--ink:#f5f5f5;--muted:#aaa;--line:#393939;--red:#c82c39;--red-ink:#ff8992;--board:#101010;--board-ink:#fff;--gold:#595959}}
:root[data-theme="dark"]{--bg:#151515;--surface:#212121;--ink:#f5f5f5;--muted:#aaa;--line:#393939;--red:#c82c39;--red-ink:#ff8992;--board:#101010;--board-ink:#fff;--gold:#595959}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #e66770;outline-offset:3px}
.wrap{max-width:1040px;padding-inline:24px}
.top{padding:30px 0 34px}
.top .wrap{display:grid;grid-template-columns:1fr auto;gap:22px 32px;align-items:center}
.brand{gap:23px;align-items:center}
.wordmark{width:116px;flex:none;display:block;border:5px solid #fff;background:#fff;padding:3px;text-decoration:none;box-shadow:0 0 0 1px #ffffff25}
.wordmark span{display:block;text-align:center;font-family:Georgia,'Times New Roman',serif;line-height:.95;font-weight:900;letter-spacing:-.065em}
.wordmark-royal{background:#d81220;color:white;font-size:25px;padding:6px 0 5px}
.wordmark-pizza{background:#fff;color:#151515;font-size:27px;padding:4px 0 2px}
.brand .brand-eyebrow{font-family:inherit;font-weight:400;font-size:11px;line-height:1.5;letter-spacing:.025em;color:#c3c3c3;margin:0 0 8px;opacity:1}
.brand .brand-tagline{font-family:var(--body);font-size:30px;line-height:1.06;font-weight:800;letter-spacing:-.045em;margin:0}
.header-details{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.status{font-size:12px;margin:0;border-radius:4px;padding:6px 10px;background:#ffffff0b}
.status i{width:7px;height:7px;flex:none}
.status.open i{box-shadow:none}
.call{font-size:11px;margin:0;color:#b8b8b8;text-decoration:none}
.call:hover{color:white;text-decoration:underline}
.call span{margin-left:5px}
.cta{grid-column:1/-1;display:flex;gap:10px;margin:0}
.cta a{flex-direction:row;gap:24px;border-radius:5px;min-height:51px;padding:12px 20px;font-size:16px;text-align:left}
.cta b{font-size:13px;font-weight:800}
.cta .c1{min-width:198px}
.cta .c2{gap:18px;background:#fff;color:#151515}
.cta .c2 b{font-size:17px;letter-spacing:-.025em}
.cta .c2 small{font-size:10px;color:#686868;opacity:1}
.cta .c3{margin-left:auto;color:#fff;background:transparent;border:1px solid #ffffff35;gap:20px}
.cta .c3:hover{background:#ffffff0c}
.mode{margin-top:-13px}
.seg{border-radius:6px;padding:4px;max-width:432px;margin:0;border-color:var(--line);box-shadow:0 2px 14px #00000004}
.seg button{border-radius:4px;padding:10px 8px;font-size:13px;min-height:41px}
.deal{border-radius:5px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--red);color:var(--ink);font-size:18px;line-height:1.25;padding:16px 18px;margin-top:15px;letter-spacing:-.02em}
.deal small{font-size:12px;color:var(--muted);font-weight:400;line-height:1.6;opacity:1;letter-spacing:0;margin-top:5px}
.cats{margin-top:18px;background:var(--bg);box-shadow:0 1px 5px #00000003}
.cats .wrap{padding-block:11px;gap:8px}
.cats a{font-size:12px;font-weight:600;min-height:40px;display:flex;align-items:center;border-radius:4px;padding-inline:14px}
.cats a:hover{border-color:var(--ink)}
.menu-tools{padding-top:29px}
.menu-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px}
.section-eyebrow{font-size:9px;font-weight:800;color:var(--red-ink);text-transform:uppercase;letter-spacing:.14em;margin:0 0 8px}
.menu-intro h2{font-size:29px;line-height:1.15;font-weight:800;letter-spacing:-.045em;margin:0}
.menu-intro>p{font-size:11px;line-height:1.5;color:var(--muted);margin:0 0 3px}
.menu-search{display:flex;align-items:center;gap:20px;background:var(--surface);border:1px solid var(--line);padding:12px 16px;border-radius:5px}
.search-input{display:flex;align-items:center;position:relative;background:var(--bg);border:1px solid var(--line);border-radius:4px;flex:1;max-width:620px}
.search-input input{width:100%;background:transparent;border:0;padding:13px 40px 13px 15px;color:var(--ink);font-size:13px;border-radius:4px;min-height:44px}
.search-input input::-webkit-search-cancel-button{appearance:none}
.search-icon{width:14px;height:14px;border:1.8px solid var(--muted);border-radius:50%;margin-left:17px;position:relative;flex:none}
.search-icon:after{content:'';position:absolute;width:6px;height:1.8px;right:-5px;bottom:-3px;background:var(--muted);transform:rotate(45deg)}
#searchClear{position:absolute;right:5px;top:4px;min-height:36px;min-width:36px;background:transparent;color:var(--muted);border:0;font-size:24px;cursor:pointer}
#searchCount{font-size:11px;color:var(--muted);margin:0;min-width:154px}
.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}
.visual-note{font-size:10px;color:var(--muted);margin:12px 0 0}
section.cat{padding-top:30px}
.cat h2{font-family:var(--body);font-size:25px;font-weight:800;line-height:1.2;letter-spacing:-.035em;margin-bottom:7px}
.cat .legend{margin:11px 0 15px;gap:7px}
.cat .legend span{font-size:11px;border-radius:4px;padding:5px 10px}
.cat .rule{font-size:12px;margin-bottom:14px;line-height:1.6}

.list{background:none;border:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;overflow:visible;border-radius:0}
.item{border:1px solid var(--line)!important;border-radius:6px;background:var(--surface);gap:12px;min-height:90px;padding:18px 16px;transition:border-color .15s,background .15s}
.item:has(.th){min-height:128px;align-items:center}
.item:hover{background:var(--surface);border-color:var(--red)!important}
.item .th{width:88px;height:88px;filter:none;overflow:hidden;flex:none;background:#f2f2f2;border-radius:4px}
.pizza-photo{display:block;object-fit:contain;aspect-ratio:1;max-width:100%;border-radius:4px}
.item .th .pizza-photo{width:88px;height:88px}
.item .th.has-caption{height:auto}
.thumb-caption{display:block;text-align:center;color:var(--muted);font-size:8px;line-height:1.4;margin-top:4px;white-space:nowrap}
.item b{font-size:15px;letter-spacing:-.025em;line-height:1.2}
.item .d{font-size:11px;margin-top:7px;line-height:1.55}
.item .p{font-size:14px;padding-top:0;color:var(--red-ink);min-width:58px;text-align:right}
.item .p small{display:block;color:var(--muted);font-size:9px;margin-right:0;font-weight:400}
.item .plus{width:26px;height:26px;border-radius:4px;font-size:19px;font-weight:600}
.item em{font-size:8px;font-weight:800;padding:2px 4px;vertical-align:2px;margin-left:4px}
.hero{filter:none;padding:4px 0 0}
.hero .pizza-photo{width:min(250px,75%);height:auto;margin:auto;border-radius:6px}
.ill{font-size:10px;margin-top:7px}
.search-empty{text-align:center;padding-block:55px}
.search-empty h2{font-size:23px;letter-spacing:-.03em;margin:0 0 10px}
.search-empty p{font-size:13px;color:var(--muted);margin:0 0 20px}
#searchReset{border:0;background:var(--red);color:white;border-radius:4px;padding:13px 20px;font-weight:800;font-size:13px;cursor:pointer}
.bar button{max-width:992px;border-radius:6px;box-shadow:0 5px 18px #0003;font-size:16px}
.bar button:disabled{background:var(--ink);color:var(--surface);opacity:.8;box-shadow:none}
.bar .n{border-radius:4px}
dialog{border-radius:12px 12px 0 0}
.sh-head h3,.done h4{font-family:var(--body);font-weight:800;letter-spacing:-.035em;font-size:25px;line-height:1.1}
.sh-head p{font-size:13px;line-height:1.6}
.x,.size,.opt,.qty,.go,.sum,.loyal,.nudge,.err,select,input[type=text],input[type=tel],input[type=email],input[type=time],textarea,.pay label{border-radius:5px}
.lbl{font-size:13px}
.opt{font-size:13px}
.loyal{border-color:var(--line);font-size:12px}
.nudge{background:var(--bg);border-left:3px solid var(--red);font-size:12px}
.go.rev{background:var(--ink);color:var(--surface)}
.find{border-radius:6px;background:var(--surface)}
.find a.rev{border-radius:4px;background:var(--ink);color:var(--surface);font-size:12px}
.seo{padding-top:42px}
.seo h2{font-size:23px;letter-spacing:-.025em;font-weight:800;margin-bottom:18px}
.seo h3{font-size:14px;margin-top:19px}
.seo p{font-size:12px;line-height:1.75}
footer{font-size:12px;line-height:1.7;border-top:1px solid var(--line);padding-top:24px!important;margin-top:27px}
@media(min-width:640px){dialog{border-radius:12px}}
@media(max-width:800px){.top .wrap{grid-template-columns:1fr;gap:18px}.header-details{flex-direction:row;justify-content:space-between;align-items:center;text-align:left}.brand .brand-tagline{font-size:28px}.brand{gap:20px}.cta{gap:8px}.cta a{padding:12px 16px}.cta .c1{min-width:0;gap:18px}.cta .c3{gap:12px}.cta .c2{gap:9px}.cta .c2 small{display:none}.menu-intro{gap:20px}.list{grid-template-columns:1fr}.item:has(.th){min-height:125px}.item .th{width:91px;height:91px}.item .th .pizza-photo{width:91px;height:91px}.item b{font-size:16px}.item .d{font-size:12px}.item .p{font-size:15px}.item .plus{width:29px;height:29px}.menu-search{gap:15px}#searchCount{min-width:128px;font-size:10px}}
@media(max-width:600px){.wrap{padding-inline:16px}.top{padding:25px 0 28px}.top .wrap{gap:18px}.wordmark{width:89px;border-width:4px;padding:2px}.wordmark-royal{font-size:20px;padding-block:5px 4px}.wordmark-pizza{font-size:22px;padding-top:3px}.brand{gap:16px}.brand .brand-tagline{font-size:24px;line-height:1.08;letter-spacing:-.045em}.brand .brand-eyebrow{font-size:9px;letter-spacing:0;margin-bottom:7px}.header-details{gap:10px;align-items:flex-start;flex-direction:column}.status{font-size:11px;max-width:100%;padding:6px 9px;line-height:1.5}.call{font-size:10px}.cta{gap:8px;display:grid;grid-template-columns:1fr 1fr}.cta a{min-height:47px;padding:12px 10px;border-radius:4px;justify-content:center}.cta .c1{gap:12px}.cta b{font-size:11px}.cta .c2 b{font-size:15px}.cta .c3{grid-column:1/-1;justify-content:center;margin-left:0;border:0;min-height:30px;padding:2px;font-size:11px;gap:9px;background:none}.cta .c3 b{font-size:10px;font-weight:600;color:#bbb}.mode{margin-top:-11px}.seg{max-width:none}.seg button{font-size:12px;min-height:40px;padding-block:9px}.deal{font-size:16px;padding:14px 13px;margin-top:12px}.deal small{font-size:11px;margin-top:6px}.cats{margin-top:14px}.cats .wrap{padding-block:9px;gap:7px}.cats a{font-size:11px;min-height:38px;padding-inline:12px}.menu-tools{padding-top:24px}.menu-intro{display:block;margin-bottom:17px}.menu-intro h2{font-size:27px}.menu-intro>p{font-size:10px;margin-top:9px}.section-eyebrow{font-size:8px;letter-spacing:.12em;margin-bottom:8px}.menu-search{display:block;padding:10px 11px}.search-input{max-width:none}.search-input input{font-size:12px;padding-left:13px}#searchCount{font-size:10px;margin-top:9px;margin-left:3px;min-width:0}.visual-note{font-size:9px;margin-top:11px}section.cat{padding-top:27px}.cat h2{font-size:23px}.cat .legend{gap:5px;margin-bottom:12px}.cat .legend span{font-size:9px;padding:4px 7px}.cat .rule{font-size:11px;line-height:1.6}.list{gap:9px}.item{padding:14px 12px;gap:11px;min-height:82px}.item:has(.th){min-height:118px}.item .th{width:82px;height:82px}.item .th .pizza-photo{width:82px;height:82px}.item b{font-size:14px;line-height:1.2}.item .d{font-size:10px;margin-top:5px;line-height:1.55}.item .p{font-size:13px;min-width:52px}.item .plus{width:24px;height:24px;font-size:17px}.item .p small{font-size:8px}.item em{font-size:7px;padding:2px 3px;margin-left:3px;vertical-align:1px}.bar button{font-size:15px;padding:15px 16px}.sh-head{padding:17px 16px 10px}.sh-body{padding-inline:16px}.sh-foot{padding-inline:16px}.sh-head h3{font-size:23px}.sh-head p{font-size:12px}.hero .pizza-photo{width:224px}.ill{font-size:9px}.seo{padding-top:33px}.seo h2{font-size:20px}.seo p{font-size:11px;line-height:1.75}.find{font-size:12px;line-height:1.7;gap:10px;padding:12px}.find svg{width:30px;flex:none}.find a.rev{font-size:11px;padding:7px 11px}footer{font-size:11px}}
@media(max-width:360px){.brand{gap:12px}.brand .brand-tagline{font-size:21px}.wordmark{width:80px}.wordmark-royal{font-size:18px}.wordmark-pizza{font-size:20px}.brand .brand-eyebrow{font-size:8px}.cta .c2 b{font-size:13px}.item{gap:8px;padding-inline:10px}.item .th,.item .th .pizza-photo{width:70px;height:70px}.item b{font-size:13px}.item .p{min-width:48px;font-size:12px}.item .plus{width:20px;height:20px;font-size:16px}.item .d{font-size:9px}}
/* Couleurs des familles de pizzas. */
#c-classiques,#c-traditions,#cats a[data-cat="classiques"],#cats a[data-cat="traditions"]{--cat-ink:#b71625;--cat-fill:#b71625}
#c-cremeuses,#cats a[data-cat="cremeuses"]{--cat-ink:#245f9b;--cat-fill:#245f9b}
#c-speciales,#cats a[data-cat="speciales"]{--cat-ink:#875d1f;--cat-fill:#875d1f}
section.cat:is(#c-classiques,#c-traditions,#c-cremeuses,#c-speciales) h2{color:var(--cat-ink);background:color-mix(in srgb,var(--cat-ink) 8%,var(--surface));border-left:5px solid var(--cat-ink);padding:13px 16px;border-radius:4px}
#cats a:is([data-cat="classiques"],[data-cat="traditions"],[data-cat="cremeuses"],[data-cat="speciales"]){color:var(--cat-ink);border-color:color-mix(in srgb,var(--cat-ink) 38%,var(--line));background:color-mix(in srgb,var(--cat-ink) 7%,var(--surface))}
#cats a:is([data-cat="classiques"],[data-cat="traditions"],[data-cat="cremeuses"],[data-cat="speciales"]).on{color:#fff;background:var(--cat-fill);border-color:var(--cat-fill)}
@media(prefers-color-scheme:dark){
  :root:not([data-theme="light"]) :is(#c-classiques,#c-traditions,#cats a[data-cat="classiques"],#cats a[data-cat="traditions"]){--cat-ink:#ff8d97}
  :root:not([data-theme="light"]) :is(#c-cremeuses,#cats a[data-cat="cremeuses"]){--cat-ink:#91bdf0}
  :root:not([data-theme="light"]) :is(#c-speciales,#cats a[data-cat="speciales"]){--cat-ink:#ebc480}
}
:root[data-theme="dark"] :is(#c-classiques,#c-traditions,#cats a[data-cat="classiques"],#cats a[data-cat="traditions"]){--cat-ink:#ff8d97}
:root[data-theme="dark"] :is(#c-cremeuses,#cats a[data-cat="cremeuses"]){--cat-ink:#91bdf0}
:root[data-theme="dark"] :is(#c-speciales,#cats a[data-cat="speciales"]){--cat-ink:#ebc480}
@media(prefers-reduced-motion:reduce){.item{transition:none}}
/* Commande, suppléments et suivi. */
.quick-info{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding-top:18px;font-size:14px}
.quick-info a,.quick-info button{color:var(--ink);font-weight:700;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px 14px;text-decoration:none;min-height:44px}
.secondary{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 16px;color:var(--ink);font:inherit;font-weight:700;cursor:pointer;min-height:44px}
.eyebrow{font-size:12px!important;color:var(--red-ink);font-weight:700;margin:0 0 6px}
.extras-box{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}
.extras-box h4{margin:0 0 8px;font-size:19px}
.extras-box p{font-size:13px;color:var(--muted);line-height:1.6}
.extras-box details{border:1px solid var(--line);border-radius:6px;margin-top:8px;background:var(--surface)}
.extras-box summary{padding:13px 14px;cursor:pointer;font-weight:700;min-height:46px}
.extra-opt{display:flex;gap:10px;align-items:center;padding:12px 14px;border-top:1px solid var(--line);font-size:14px;min-height:48px}
.extra-opt input{width:20px;height:20px;accent-color:var(--red);flex:none}
.extra-opt span{flex:1}.extra-opt b{white-space:nowrap;color:var(--red-ink)}
.extras-total{color:var(--ink)!important;border-top:1px solid var(--line);padding-top:10px}
.upsell-lead{font-size:21px;font-weight:800;line-height:1.4}
.upsell-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}
.upsell-choices button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 6px;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:inherit;cursor:pointer}
.upsell-choices button:hover{border-color:var(--red)}
.upsell-choices img{width:88px;height:88px}.upsell-choices b{font-size:14px}.upsell-choices span{font-size:12px}
.upsell-actions{flex-wrap:wrap}.upsell-actions .secondary{flex:1}
.line .line-edit{padding:7px 0;background:none;border:0;text-decoration:underline;color:var(--red-ink);font-size:13px;min-height:40px}
.field-help{font-size:13px;color:var(--muted);line-height:1.6}.marketing-opt{display:flex;gap:12px;align-items:flex-start;font-size:14px;margin:12px 0 20px}.marketing-opt input{width:20px;height:20px;flex:none;accent-color:var(--red)}
.delivery-min{padding:12px;background:var(--bg);border:1px solid var(--line);border-radius:6px;font-size:14px}.delivery-min.missing{border-color:var(--red);color:var(--red-ink)}
.nudge p{margin-top:0}.nudge .secondary{font-size:13px}.go:disabled{opacity:.55;cursor:not-allowed}
.tracking-state{padding:18px;background:var(--bg);border-left:4px solid var(--red);border-radius:6px}.tracking-state h4{font-size:22px;margin:0 0 12px}.tracking-state p:last-child{margin-bottom:0}.tracking-state.is-cancelled{border-color:var(--muted)}
.tracking-eta{font-size:18px}.tracking-eta small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.tracking-update{font-size:13px;color:var(--muted)}
.tracking-steps{list-style:none;margin:22px 0;padding:0;display:grid;gap:12px}.tracking-steps li{display:flex;gap:12px;align-items:center;color:var(--muted)}.tracking-steps li span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--bg);border:1px solid var(--line);font-weight:700;flex:none}.tracking-steps li.current{font-weight:800;color:var(--ink)}.tracking-steps li.current span{background:var(--red);color:white;border-color:var(--red)}.tracking-steps li.complete span{background:#e4f5e9;color:#21623b}
.tracking-link{display:block;font-size:14px;font-weight:700}.tracking-link input{width:100%;padding:12px;margin-top:7px;background:var(--bg);border:1px solid var(--line);color:var(--ink);font-size:12px}
@media(max-width:600px){.item .d{font-size:13px;line-height:1.5}.item{flex-wrap:wrap}.item .t{min-width:0;flex:1}.item .th,.item .th .pizza-photo{width:72px;height:72px}.item .p{min-width:60px}.item .plus{min-width:32px;min-height:32px}.item .p small{font-size:10px}.item:has(.th){min-height:130px}.cat .legend span{font-size:11px}.sh-foot{gap:8px;flex-wrap:wrap}.sh-foot .go{min-height:46px;flex:1}.sh-body input,.sh-body select,.sh-body textarea{font-size:16px}.sizes{gap:6px}.size{padding-inline:5px}.size .pr{font-size:13px}.quick-info{padding-top:14px;gap:8px}.upsell-choices{gap:7px}.upsell-choices img{width:72px;height:72px}.upsell-choices b{font-size:13px}.upsell-choices span{font-size:11px}.line{flex-wrap:wrap}.line .t{flex-basis:100%}.extra-opt{font-size:14px}.sh-body{max-height:70dvh}}
@media(max-width:360px){.item .th,.item .th .pizza-photo{width:62px;height:62px}.item .d{font-size:12px}.item .plus{display:none}}

.product-rule{padding:12px;border:1px solid var(--line);border-radius:10px;font-size:14px}.tracking-receipt{margin:18px 0;border:1px solid var(--line);padding:14px;border-radius:12px}.tracking-receipt summary{font-weight:700;cursor:pointer}.tracking-receipt p{font-size:13px;color:var(--muted)}.receipt-line{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.receipt-line small{display:block;margin-top:4px;color:var(--muted)}.receipt-line>span{white-space:nowrap}.receipt-company{margin-bottom:0}#dTracking .sh-foot{flex-wrap:wrap}
@media print{body>*{display:none!important}body>#dTracking{display:block!important;position:static;margin:0;padding:0;width:100%;max-width:none;max-height:none;border:0;box-shadow:none}#dTracking::backdrop{display:none}#dTracking .sh-body{max-height:none;overflow:visible}#dTracking .sh-head{position:static}#dTracking .x,#dTracking .sh-foot,#dTracking .tracking-link,#dTracking .field-help,#dTracking .tracking-update,#dTracking .tracking-steps{display:none!important}#dTracking .tracking-receipt{break-inside:avoid}}

/* Feuille compacte : seul le contenu central défile, les actions restent en bas. */
dialog{height:fit-content;min-height:0;max-height:calc(100dvh - 32px);max-height:calc(100vh - 32px)}
@supports(height:100dvh){dialog{max-height:calc(100dvh - 32px)}}
dialog[open]{display:flex;flex-direction:column}.sh-head,.sh-foot{flex:0 0 auto}.sh-body{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain}.sh-foot{background:var(--surface)}
.go:disabled{opacity:1;background:#e7eaee;color:#4b5563;cursor:not-allowed}.grid2>*{min-width:0}
.promotion{--promo:#8b5100;--promo-bg:#fff6dd;--promo-line:#e9c467;padding:16px;margin:16px 0;border:1px solid var(--promo-line);border-left:5px solid var(--promo);border-radius:10px;background:var(--promo-bg);color:#1b1b1b}
.promotion--applied{--promo:#17633c;--promo-bg:#eaf7ee;--promo-line:#8ebd9f}.promotion--single,.promotion--info{--promo:#154e83;--promo-bg:#eaf3fc;--promo-line:#91b9df}.promotion-heading{display:grid;gap:9px}.promotion-badge{justify-self:start;padding:5px 8px;border-radius:5px;background:var(--promo);color:white;font-size:11px;font-weight:800;letter-spacing:.04em}.promotion-heading strong{font-size:18px;line-height:1.3}.promotion p{margin:10px 0;font-size:14px;line-height:1.5}.promotion-terms{display:block;font-size:12px;line-height:1.6;color:#49515a}.promotion-progress{display:flex;align-items:center;gap:7px;margin:12px 0}.promotion-progress>span{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;border:1px solid var(--promo-line);background:white;color:#5c626a;font-weight:700}.promotion-progress>span.is-counted{background:var(--promo);border-color:var(--promo);color:white}.promotion-progress small{margin-left:3px;color:#49515a;font-size:12px}.promotion-total{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--promo-line);font-size:13px}.promotion-total b{font-size:19px;white-space:nowrap;color:var(--promo)}.promotion .secondary{margin-top:12px;border-color:var(--promo);color:var(--promo);background:white}.promotion-next{padding-top:8px;border-top:1px solid var(--promo-line)}
.size[aria-pressed="true"]{background:color-mix(in srgb,var(--red) 9%,var(--surface));border-color:var(--red);box-shadow:0 0 0 2px var(--red)}.sum .free{background:#eaf7ee;color:#17633c;margin-top:7px;padding:9px;border-radius:5px;font-weight:700}.deal{background:#fff6dd;border-color:#e9c467;border-left-color:#8b5100;color:#241c00}.deal small{color:#49515a}
@media(max-width:600px){dialog{max-height:calc(100dvh - 16px);max-height:calc(100vh - 16px)}@supports(height:100dvh){dialog{max-height:calc(100dvh - 16px)}}.sh-body{max-height:none}.promotion{padding:13px}.promotion-total{flex-wrap:wrap}.sh-head{max-height:28dvh;overflow-y:auto}.sh-foot .go{flex:1 1 180px}}
@media(max-width:520px){.grid2{grid-template-columns:1fr}.sh-head p.alg{font-size:12px}}
@media print{dialog{max-height:none;height:auto}}

.cart-mode{margin-bottom:18px}
.line-edit{min-height:32px;padding:5px 8px;margin-left:6px}
.field-error{margin:6px 0 0;color:var(--red-ink);font-size:13px}
[aria-invalid="true"]{border-color:var(--red-ink)!important}

/* Focus visible des paiements et dimensions tactiles. */
.pay label:has(input:focus-visible){outline:3px solid #a95100;outline-offset:3px}
.qty button,.x{min-width:36px;min-height:36px}
@media(forced-colors:active){.pay input{position:static;opacity:1;pointer-events:auto}}

/* Complementary food atlases, each product selects its own cell. */
.product-photo{position:relative;display:block;width:var(--photo-size,88px);max-width:100%;aspect-ratio:1;overflow:hidden;background:#f4f2ed;border-radius:4px;flex:none}
.product-photo>img{position:absolute;display:block;width:calc(var(--photo-cols)*100%);height:calc(var(--photo-rows)*100%);max-width:none;left:calc(var(--photo-col)*-100%);top:calc(var(--photo-row)*-100%);object-fit:fill}
.item .th .product-photo{width:100%;height:100%;max-width:none}
.hero .product-photo{margin-inline:auto}

/* Photos des vrais emballages et ruptures */
.product-packshot{display:block;width:var(--photo-size,88px);max-width:100%;aspect-ratio:1;overflow:hidden;background:#fff;border-radius:4px;flex:none}
.product-packshot>img{display:block;width:100%;height:100%;object-fit:contain;padding:4px;box-sizing:border-box}
.item .th .product-packshot{width:100%;height:100%;max-width:none}
.hero .product-packshot{margin-inline:auto}
.stock-badge{display:block;font-size:12px!important;font-weight:800;color:#9a3d09;background:#fff0d9;padding:4px 7px;border-radius:6px;margin-bottom:5px}
.stock-badge[hidden]{display:none}
.item.sold-out{opacity:.7;background:#faf7f1;cursor:default}
.stock-alert{padding:14px;border-radius:8px;background:#fff0d9;color:#813400;font-weight:700}

.pack-cristaline-50>img{transform:scale(1.8)}

.item.sold-out .plus{visibility:hidden}
