/* Product sheet: fixed collapse control, scrollable choices, persistent total. */
body.product-open{overflow:hidden}
dialog.product-dialog{--product-height:min(660px,90dvh);width:min(980px,calc(100vw - 48px));max-width:none;height:var(--product-height);max-height:90dvh;padding:0;overflow:hidden;border-radius:24px;background:#fff}
.product-dialog #modalContent{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%}
.product-dialog .product-action{min-width:0;flex-shrink:0}
.product-collapse{position:absolute;left:18px;top:18px;z-index:5;display:grid;place-items:center;width:42px;height:42px;background:#ffffffd9;border:1px solid #eee8e0;border-radius:50%;color:#38332e;backdrop-filter:blur(12px);box-shadow:0 4px 16px #30201010;transition:background .2s,transform .2s}
.product-collapse:hover{background:#fff0e6;transform:translateY(2px)}
.product-collapse svg{width:22px;height:22px}
.product-collapse .collapse-desktop{color:var(--orange)}
.product-collapse .collapse-mobile{display:none}
.product-scroll{min-height:0;overflow:hidden;padding:24px}
.product-dialog .product-detail{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:stretch;gap:28px;padding-top:0;height:100%;min-height:0}
.product-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:0;min-width:0}
.product-visual img{display:block;width:100%;max-height:100%;object-fit:contain;border-radius:0}
.pizza-stage{position:relative;flex-shrink:0;width:min(100%,470px,calc(var(--product-height) - 160px));aspect-ratio:1;isolation:isolate}
.product-visual .pizza-photo{position:absolute;left:6%;top:6%;width:88%;height:88%;max-height:none;object-fit:contain;transform:scale(var(--pizza-scale));transition:transform .65s cubic-bezier(.22,1.16,.36,1);will-change:transform}
.pizza-guides{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.pizza-guide.is-turning{animation:pizza-ring-turn 1.4s cubic-bezier(.2,.65,.3,1) both}
.pizza-guide{fill:#ff641e;stroke:none;opacity:.48;transition:opacity .4s;transform-box:view-box;transform-origin:50% 50%}
.pizza-guide.active{opacity:1}
.pizza-guide.covered{opacity:0}
.pizza-turn-accent{opacity:0}
.pizza-guide.is-turning .pizza-turn-accent{animation:pizza-accent-glow 1.4s ease both}
@keyframes pizza-ring-turn{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes pizza-accent-glow{0%,100%{opacity:0}12%,75%{opacity:1}}
.pizza-size-badge{display:inline-flex;align-items:center;justify-content:center;min-width:66px;padding:6px 13px;border:1px solid #ffe1ce;border-radius:100px;background:#fff8f2;color:#d85e20;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.product-config{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 8px 4px 0;scrollbar-width:thin;scrollbar-color:#e8dfd5 transparent}
.product-config>.eyebrow{font-size:8px}
.product-dialog .product-detail h2{font-size:26px;line-height:1.15;margin:7px 0 10px;letter-spacing:-.7px}
.product-dialog .product-detail h2#productTitle{font-size:28px;line-height:1.2;color:#242322;margin-bottom:17px}
.product-title-text{padding-bottom:4px;background:linear-gradient(180deg,#ffd0adcc 0%,#ffae73b3 45%,#f58d49a6 100%) left bottom/100% 3px no-repeat;box-decoration-break:clone;-webkit-box-decoration-break:clone;animation:product-title-line 2s cubic-bezier(.4,0,.2,1) .15s both}
@keyframes product-title-line{from{background-size:44px 3px}to{background-size:100% 3px}}
.product-dialog .product-detail p{font-size:15px;line-height:1.72;color:#786f66;margin-bottom:18px}
.product-dialog .option-title{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;color:#877d71;margin:10px 0 5px}
.option-title svg{width:16px;height:16px;color:#ef7834}
.product-dialog .options{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(var(--option-count),minmax(0,1fr));background:#f3f1ee;padding:4px;border-radius:14px;gap:0;box-shadow:inset 0 1px 2px #40301804}
.product-dialog .options::before{content:'';position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/var(--option-count));border-radius:11px;background:linear-gradient(180deg,#fff,#fffcf8);box-shadow:0 2px 8px #3220110f,inset 0 0 0 1px #ffffffa6;transform:translateX(calc(var(--selected-index)*100%));transition:transform .38s cubic-bezier(.25,1.35,.4,1);z-index:-1;pointer-events:none}
.product-dialog .option{position:relative;border-radius:10px;padding:7px 6px;font-size:11px;background:transparent;color:#8a8178;box-shadow:none;transition:color .22s,transform .2s;font-weight:600}
.product-dialog .option.selected{background:transparent;color:#25221f;box-shadow:none;font-weight:800}
.product-dialog .option:active{transform:scale(.96)}
.extras-heading{margin-top:20px;margin-bottom:10px}
.extras-heading h3{font-size:19px;margin:0 0 3px;letter-spacing:-.5px}
.extras-heading>span{font-size:9px;color:#a29485}
.extras-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.extra-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px 11px;min-width:0;min-height:134px;border:1px solid #eee9e2;border-radius:14px;background:linear-gradient(155deg,#fffdfb,#f8f5f0);text-align:center;transition:border-color .2s,background .2s,box-shadow .2s,transform .2s}
.extra-card:hover{background:#fff4eb;transform:translateY(-2px)}
.extra-card.selected{border-color:#ff8b4f;background:#fff0e5;box-shadow:inset 0 0 0 1px #ff8b4f}
.extra-card img{display:block;width:100%;height:65px;object-fit:contain;border-radius:0;mix-blend-mode:normal;filter:drop-shadow(0 5px 5px #6141260b);transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.extra-card:hover img{transform:translateY(-2px) scale(1.035)}
.extra-name{font-size:10px;line-height:1.35;min-height:27px;font-weight:600}
.extra-card strong{font-size:11px;margin-top:auto}
.extra-card strong small{font-size:8px;font-weight:500}
.extra-mark{position:absolute;top:7px;right:7px;width:19px;height:19px;display:grid;place-items:center;border:1px solid #e8ded4;border-radius:7px;color:#a69586;background:#ffffffc9;font-size:14px;z-index:2;transition:background .2s,border-color .2s,color .2s,transform .25s}
.extra-card.selected .extra-mark{background:var(--orange);border-color:var(--orange);color:#fff;font-size:12px}
.extra-mark{line-height:1}
.extra-mark svg{display:block;width:11px;height:11px;flex-shrink:0}
.product-action{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 24px;background:#ffffffed;border-top:1px solid #eee8e0;box-shadow:0 -8px 30px #3e251006;z-index:4}
.product-note{font-size:10px;line-height:1.55;color:#918478;max-width:310px}
#extrasSummary{font-size:11px;color:#e46f2f;margin-top:4px}
#extrasSummary:not([hidden]){display:block}
.product-action .detail-add{margin:0;width:350px;flex-shrink:0;padding:13px 18px;align-items:center;border-radius:14px}
.product-action .detail-add span,.product-action .detail-add b{font-size:13px}
@media(max-width:700px){dialog.product-dialog{width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.product-scroll{padding:18px 18px 24px}.product-dialog .product-detail{grid-template-columns:1fr;gap:6px}.product-visual{position:static;padding-top:8px}.product-visual img{width:100%;max-height:340px;aspect-ratio:1;object-fit:contain;margin:auto}.product-config{padding-top:0}.product-config>.eyebrow{font-size:8px}.product-dialog .product-detail h2{font-size:27px;margin:8px 0 12px}.product-dialog .product-detail p{font-size:11px;margin-bottom:20px}.product-collapse{left:16px;top:max(16px,env(safe-area-inset-top));width:38px;height:38px}.product-dialog .option{font-size:11px;padding:10px 6px}.extras-heading{margin-top:27px}.extras-heading h3{font-size:20px}.extras-grid{gap:8px}.extra-card{min-height:149px;padding:10px 7px 13px;border-radius:14px}.extra-card img{width:65px;height:65px}.extra-name{font-size:10px}.product-action{padding:12px 16px max(12px,env(safe-area-inset-bottom));display:block}.product-action .detail-add{width:100%;padding:16px 20px;border-radius:15px}#extrasSummary{display:none}}
@media(max-width:700px){.extra-card{min-height:162px;padding:12px 7px 13px}.extra-card img{width:100%;height:80px}.product-dialog .option-title{margin-top:18px}.option-title svg{width:19px;height:19px}}
@media(max-width:700px){.product-scroll{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.product-dialog .product-detail{height:auto}.product-visual{padding:8px 0 14px;gap:10px}.pizza-stage{width:min(100%,340px)}.product-visual .pizza-photo{aspect-ratio:auto;max-height:none;margin:0}.product-config{overflow:visible;padding-right:0}.pizza-size-badge{font-size:11px;padding:6px 13px}.product-note{max-width:none;font-size:9px;text-align:center;margin-bottom:9px}.product-note #extrasSummary{display:none}}
@media(max-width:700px){.product-collapse .collapse-desktop{display:none}.product-collapse .collapse-mobile{display:block}}
@media(prefers-reduced-motion:reduce){.product-collapse,.extra-card,.product-dialog .options::before,.product-dialog .option,.extra-card img,.pizza-photo,.pizza-guide{transition:none}.pizza-guide.is-turning,.pizza-guide.is-turning .pizza-turn-accent{animation:none}}

/* The processed canvas has a 90% food diameter: keep its rim close to the guide. */
.product-visual .pizza-photo.photo-normalized{left:1.111111%;top:1.111111%;width:97.777778%;height:97.777778%}

/* Small orange glass labels for the announced new dishes. */
.product-image{position:relative}
.new-badge{position:absolute;top:15px;left:12px;z-index:2;display:inline-block;padding:4px 8px;border-radius:50px;background:linear-gradient(160deg,#ff9c4c40,#ffffff00 42%,#d74d081f),linear-gradient(115deg,#ff5a00e0,#ff6f26b8);border:1px solid #ffb97d9c;backdrop-filter:blur(12px) saturate(1.7);-webkit-backdrop-filter:blur(12px) saturate(1.7);box-shadow:inset 0 1px 0 #ffffffa1,inset 1px 0 0 #ffffff32,inset 0 -2px 1px #b83b0024,0 3px 0 #c4471629,0 5px 12px #ae49171f;color:#fff;font-size:8px;font-weight:800;line-height:1.1;letter-spacing:.4px;text-transform:uppercase;text-shadow:0 1px 1px #b1370029;transform:rotate(-7deg);pointer-events:none}
.new-badge:before{content:'';position:absolute;top:2px;left:13%;right:13%;height:1px;border-radius:50%;background:linear-gradient(90deg,transparent,#ffffffb3,transparent)}
@media(max-width:700px){.new-badge{top:11px;left:8px;padding:3px 6px;font-size:7px;letter-spacing:.3px}}
@media(max-width:700px){
 dialog.product-dialog{inset:0 auto auto 0;height:min(100dvh,var(--dialog-viewport-height,100dvh));max-height:min(100dvh,var(--dialog-viewport-height,100dvh))}
 .product-dialog #modalContent{min-height:0;overflow:hidden}
 .product-dialog .product-detail h2#productTitle{font-size:26px;margin:8px 0 17px}
 .product-dialog .product-detail p{font-size:14px;line-height:1.75;margin-bottom:20px}
 .product-action{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){.product-title-text{animation:none;background-size:100% 3px}}

/* Reuse the catalogue badge flag and compact glass style inside the product. */
.product-meta{display:flex;align-items:center;gap:10px;min-height:16px;flex-wrap:wrap}
.product-meta>.eyebrow{font-size:8px}
.product-meta .new-badge{position:static;flex-shrink:0;transform:none}
.home-continuous-menu .product-image>.new-badge{padding:6px 11px;font-size:10px;letter-spacing:.5px}
@media(max-width:700px){.home-continuous-menu .product-image>.new-badge{padding:5px 9px;font-size:9px;letter-spacing:.4px}}
