/* Cherry Berry — the easy ordering flow (product sheet, cart, 3-step checkout,
   confirmation). Every value below is taken from prototypes/order-easy-v2: spacing,
   radii, font sizes, colours, shadows, breakpoints. All classes are ez-* and the
   tokens live on .ez, so nothing here can touch — or be touched by — the rest of
   the site's stylesheet. The prototype's dark theme is not carried over: the
   site has none. */
.ez{
  --plum:#49315D; --cherry:#A61C24; --cherry-soft:#f7e3e4; --gold:#C8912F;
  --bg:#FBF6F3; --surface:#ffffff; --paper:#F3E8E3; --ink:#2a2230; --muted:#6f6276; --line:#e8dbe1;
  --ok:#2f7a4a; --ok-soft:#e3f2e8; --scrim:rgba(33,20,40,.48);
  --f-display:'Amiri',Georgia,serif; --f-body:'Cairo',system-ui,sans-serif;
  --r:16px;
  font-family:var(--f-body);font-size:15px;line-height:1.65;color:var(--ink)
}
html[lang="en"] .ez{--f-display:'Fraunces',Georgia,serif;--f-body:'Jost',system-ui,sans-serif}
.ez,.ez *{box-sizing:border-box}
:where(.ez) :where(button,input,textarea,select){font-family:inherit;color:inherit}
:where(.ez) button{cursor:pointer}
.ez[hidden],.ez [hidden]{display:none!important}
.ez :where(button,input,textarea,select):focus-visible{outline:2px solid var(--cherry);outline-offset:2px}
.ez p{margin:0}
html .ez h3,html .ez h4{font-family:var(--f-display);font-weight:700;line-height:1.25;margin:0;text-wrap:balance}
.ez-btn{text-decoration:none}
body.ez-lock{overflow:hidden}

.ez-btn{border:0;border-radius:999px;padding:12px 18px;font-weight:700;font-size:15px;background:var(--cherry);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.ez-btn.ez-wide{width:100%}
.ez-btn.ez-ghost{background:transparent;color:var(--plum);border:1.5px solid var(--line)}
.ez-btn[disabled]{opacity:.45;cursor:not-allowed}
.ez-btn small{font-weight:600;opacity:.9}
/* sticky cart bar */
.ez-cartbar{position:fixed;inset:auto 0 0;z-index:56;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));padding-top:10px;background:linear-gradient(to top,var(--bg) 70%,transparent)}
.ez-cartbar .ez-in{max-width:640px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.ez-cartbar button{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-radius:999px;background:var(--plum);color:var(--bg);padding:12px 20px;font-weight:700;font-size:15px;box-shadow:0 8px 24px rgba(40,20,50,.25)}
.ez-cartbar .ez-cnt{background:rgba(255,255,255,.2);border-radius:999px;padding:0 10px;margin-inline-start:6px}
/* toast */
.ez-toast{position:fixed;z-index:95;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));width:min(440px,calc(100% - 32px));background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:12px 14px;box-shadow:0 14px 40px rgba(40,20,50,.22);display:flex;gap:12px;align-items:center;animation:ez-up .3s}
.ez-toast .ez-ic{width:34px;height:34px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-weight:800;flex:none}
.ez-toast .ez-t{flex:1;min-width:0;font-size:14px}
.ez-toast .ez-t b{display:block}
.ez-toast .ez-t span{color:var(--muted);font-size:12.5px}
.ez-toast .ez-go{border:0;background:none;color:var(--cherry);font-weight:800;font-size:14px;white-space:nowrap}
@keyframes ez-up{from{transform:translate(-50%,20px);opacity:0}}
/* sheet */
.ez-scrim{position:fixed;inset:0;background:var(--scrim);z-index:90;display:flex;align-items:flex-end;justify-content:center}
.ez-sheet{background:var(--bg);width:100%;max-width:480px;max-height:calc(100% - 24px - env(safe-area-inset-top,0px));border-radius:24px 24px 0 0;display:flex;flex-direction:column;animation:ez-sheet .28s ease-out;overflow:hidden}
@media(min-width:720px){.ez-scrim{align-items:center}.ez-sheet{border-radius:24px;max-height:88vh}}
@keyframes ez-sheet{from{transform:translateY(40px);opacity:.4}}
@media (prefers-reduced-motion:reduce){.ez-sheet,.ez-toast,.cartbtn.bump{animation:none}}
.ez-sh-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px 10px;border-bottom:1px solid var(--line)}
.ez-sh-head h3{font-size:22px;color:var(--plum)}
.ez-x{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;border-radius:50%;font-size:18px;line-height:1;flex:none}
.ez-sh-body{overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:18px;flex:1}
.ez-sh-foot{border-top:1px solid var(--line);padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.ez-lbl{font-weight:800;font-size:13px;color:var(--plum);letter-spacing:.2px;margin-bottom:8px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.ez-lbl em{font-style:normal;color:var(--muted);font-weight:600;font-size:12.5px}
/* sizes */
.ez-sizes{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.ez-size{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 12px;text-align:start;display:flex;flex-direction:column;gap:0}
.ez-size b{font-size:14px}
.ez-size span{font-size:12.5px;color:var(--muted)}
.ez-size i{font-style:normal;font-weight:800;color:var(--ink);margin-top:4px;font-variant-numeric:tabular-nums}
.ez-size.ez-on{border-color:var(--cherry);background:var(--cherry-soft)}
/* segmented */
.ez-seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ez-opt{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:12px;text-align:start;display:flex;flex-direction:column;gap:2px}
.ez-opt b{font-size:14.5px}
.ez-opt span{font-size:12.5px;color:var(--muted);line-height:1.5}
.ez-opt.ez-on{border-color:var(--cherry);background:var(--cherry-soft)}
.ez-tag{display:inline-block;background:var(--gold);color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:0 8px;margin-inline-start:6px;vertical-align:middle}
/* flavours */
.ez-meter{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}
.ez-bar{flex:1;height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.ez-bar i{display:block;height:100%;background:var(--cherry);transition:width .2s}
.ez-meter.ez-full .ez-bar i{background:var(--ok)}
.ez-meter.ez-full{color:var(--ok)}
.ez-flv{display:flex;flex-direction:column;gap:6px}
.ez-fr{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:6px 10px}
.ez-fr.ez-on{border-color:var(--cherry)}
.ez-dot{width:14px;height:14px;border-radius:50%;flex:none}
.ez-fr .ez-nm{flex:1;font-weight:600;font-size:14px}
.ez-step{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--bg)}
.ez-step button{border:0;background:none;width:34px;height:32px;font-size:18px;font-weight:700}
.ez-step button[disabled]{opacity:.3;cursor:default}
.ez-step output{min-width:24px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.ez-quick{display:flex;gap:8px;flex-wrap:wrap}
.ez-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600}
.ez-chip.ez-on{border-color:var(--cherry);background:var(--cherry-soft);color:var(--cherry)}
.ez-mixnote{background:var(--paper);border-radius:14px;padding:12px 14px;font-size:13.5px;color:var(--ink)}
.ez-mixnote b{color:var(--plum)}
/* cart */
.ez-line{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:start;padding-bottom:14px;border-bottom:1px solid var(--line)}
.ez-line img{width:56px;height:56px;border-radius:12px;object-fit:cover}
.ez-line .ez-t b{display:block;font-size:14.5px}
.ez-line .ez-t span{font-size:12.5px;color:var(--muted);display:block}
.ez-line .ez-t .ez-acts{display:flex;gap:14px;margin-top:4px}
.ez-link{border:0;background:none;padding:0;color:var(--cherry);font-weight:700;font-size:12.5px;text-decoration:underline;text-underline-offset:3px}
.ez-price{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.ez-tot{display:flex;flex-direction:column;gap:4px;font-size:14px}
.ez-tot div{display:flex;justify-content:space-between}
.ez-tot .ez-big{font-size:18px;font-weight:800;color:var(--plum);border-top:1px solid var(--line);padding-top:6px;margin-top:2px}
.ez-tot span:last-child{font-variant-numeric:tabular-nums}
/* checkout */
.ez-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 18px 0}
.ez-steps div{font-size:12px;font-weight:700;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.ez-steps div::before{content:"";height:4px;border-radius:9px;background:var(--line)}
.ez-steps .ez-on{color:var(--cherry)}.ez-steps .ez-on::before,.ez-steps .ez-done::before{background:var(--cherry)}
.ez-steps .ez-done{color:var(--ink)}
.ez-field{display:flex;flex-direction:column;gap:5px}
.ez-field label{font-size:13px;font-weight:700}
.ez-field input,.ez-field textarea{font-family:inherit;font-size:15px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;width:100%}
.ez-field textarea{min-height:64px;resize:vertical}
.ez-field .ez-hint{font-size:12px;color:var(--muted)}
.ez-field.ez-err input,.ez-field.ez-err textarea{border-color:var(--cherry)}
.ez-field .ez-msg{font-size:12px;color:var(--cherry);font-weight:700}
.ez-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ez-zones{display:flex;flex-direction:column;gap:6px}
.ez-zone{display:flex;justify-content:space-between;gap:10px;border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:9px 12px;text-align:start;font-size:13.5px}
.ez-zone.ez-on{border-color:var(--cherry);background:var(--cherry-soft)}
.ez-zone b{white-space:nowrap;font-variant-numeric:tabular-nums}
.ez-days{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.ez-day{flex:none;border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:6px 12px;text-align:center;min-width:72px}
.ez-day b{display:block;font-size:13.5px}.ez-day span{font-size:11.5px;color:var(--muted)}
.ez-day.ez-on{border-color:var(--cherry);background:var(--cherry-soft)}
.ez-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px}
.ez-time{border:1.5px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 0;font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums}
.ez-time.ez-on{border-color:var(--cherry);background:var(--cherry-soft);color:var(--cherry)}
.ez-info{background:var(--paper);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--muted)}
details.ez-more{border:1px dashed var(--line);border-radius:14px;padding:10px 12px}
details.ez-more summary{font-weight:700;font-size:14px;cursor:pointer;color:var(--plum)}
details.ez-more[open] summary{margin-bottom:10px}
.ez-sum{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:4px 14px}
.ez-sum .ez-r{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.ez-sum .ez-r:last-child{border-bottom:0}
.ez-sum .ez-r .ez-k{color:var(--muted);flex:none;width:72px}
.ez-sum .ez-r .ez-v{flex:1;min-width:0}
.ez-pts{background:var(--paper);border-radius:12px;padding:10px 12px;font-size:13px}
.ez-pts b{color:var(--gold)}
.ez-foot-total{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--muted)}
.ez-foot-total b{font-size:18px;color:var(--plum);font-variant-numeric:tabular-nums}
.ez-fbtns{display:flex;gap:8px}
.ez-fbtns .ez-btn{flex:1}
.ez-fbtns .ez-btn.ez-ghost{flex:0 0 auto;padding-inline:20px}
.ez-reassure{text-align:center;font-size:12px;color:var(--muted)}
/* success */
.ez-done-ic{width:64px;height:64px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-size:30px;margin:4px auto 0}
.ez-center{text-align:center}
.ez-ordno{display:inline-block;border:1px dashed var(--line);background:var(--surface);border-radius:12px;padding:6px 16px;font-weight:800;letter-spacing:.5px;color:var(--cherry);direction:ltr}
.ez-next{display:flex;flex-direction:column;gap:8px;font-size:13.5px}
.ez-next div{display:flex;gap:10px;align-items:flex-start}
.ez-next i{font-style:normal;width:22px;height:22px;border-radius:50%;background:var(--plum);color:var(--bg);font-size:12px;font-weight:800;display:grid;place-items:center;flex:none;margin-top:2px}

/* ---- additions the (single-product, static) prototype does not draw ---- */
.ez-sh-head{background:var(--bg)}
.ez-sh-head h3{font-size:22px;color:var(--plum)}
html .ez-sh-head h3{font-size:22px;color:var(--plum)}
/* product header inside the sheet */
.ez-ph{width:64px;height:64px;border-radius:12px;object-fit:cover;background:var(--paper);flex:none}
.ez-phead{display:flex;gap:12px;align-items:center}
.ez-phead b{font-size:16px;display:block}
.ez-phead span{font-size:12.5px;color:var(--muted)}
/* the sizes grid: a struck-through price when an offer applies */
.ez-size i s{color:var(--muted);font-weight:600;margin-inline-end:4px}
.ez-size.ez-fixed{pointer-events:none}
/* pick rows that toggle (whole cake, trifle, tiramisu) */
.ez-fr .ez-chk{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:var(--bg);display:grid;place-items:center;font-size:15px;font-weight:800;color:transparent;flex:none}
.ez-fr.ez-on .ez-chk,.ez-fr.on .ez-chk{background:var(--cherry);border-color:var(--cherry);color:#fff}
.ez-fr.ez-tap{cursor:pointer;text-align:start;width:100%;background:var(--surface)}
.ez-fr.ez-tap[disabled]{opacity:.45;cursor:not-allowed}
.ez-flv .ez-fr button.ez-rowbtn{all:unset;display:flex;align-items:center;gap:10px;width:100%;cursor:pointer}
.ez-fr.on{border-color:var(--cherry)}
.ez-qtyrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ez-offerline{font-size:12.5px;color:var(--ok);font-weight:700;text-align:center}
/* cart */
.ez-line img,.ez-line .ez-imgph{width:56px;height:56px;border-radius:12px;object-fit:cover;background:var(--paper)}
.ez-line .ez-t .ez-off{color:var(--ok);font-weight:700}
.ez-feehint{color:var(--muted);font-size:12.5px}
.ez-alt{border:0;background:none;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:3px;padding:2px;align-self:center}
.ez-empty{text-align:center;color:var(--muted);padding:12px 0}
/* checkout extras */
.ez-field .ez-msg{display:block}
.ez-err-top{background:var(--cherry-soft);border:1px solid #e9c3c6;border-radius:14px;padding:10px 12px;font-size:13.5px}
.ez-err-top b{display:block;color:var(--cherry)}
.ez-field select{font-size:15px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;width:100%}
.ez-bd{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ez-more textarea{min-height:64px}
.ez-sum .ez-r .ez-v small{display:block;color:var(--muted)}
.ez-sum .ez-r .ez-link{align-self:flex-start;flex:none}
.ez-sum .ez-r .ez-v .ez-ok{color:var(--ok);font-weight:700}
.ez-tot .ez-ok{color:var(--ok)}
.ez-gift .ez-field{margin-top:0}
.ez-stack{display:flex;flex-direction:column;gap:10px}
/* prize picker */
.ez-pz{display:flex;align-items:center;gap:10px;width:100%;text-align:start;border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:8px 12px}
.ez-pz.on{border-color:var(--cherry);background:var(--cherry-soft)}
.ez-pz[disabled]{opacity:.5;cursor:not-allowed}
.ez-pz .ez-pzb{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.ez-pz .ez-pzb b{font-size:14px}
.ez-pz .ez-pzb span{font-size:12.5px;color:var(--muted)}
.ez-pz .ez-pzc{font-weight:800;font-size:13px;color:var(--gold);white-space:nowrap}
/* confirmation */
.ez-saved{background:var(--ok-soft);border-radius:12px;padding:10px 12px;font-size:13.5px;display:flex;flex-direction:column;gap:4px}
.ez-saved div{display:flex;justify-content:space-between;gap:10px}
.ez-note{background:var(--paper);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--muted)}
.ez-share{border:1px dashed var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px;font-size:13.5px}
.ez-share input{width:100%;font-family:inherit;font-size:13px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:8px 10px;direction:ltr}
.ez-pbar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.ez-pbar i{display:block;height:100%;background:var(--gold);border-radius:99px}
.ez-gold{color:var(--gold)}
/* reduced motion */
@media (prefers-reduced-motion:reduce){.ez-sheet,.ez-toast{animation:none}}

/* the homepage's own mobile "order now" bar steps aside while the cart bar is showing */
body.ez-hasbar .hp-mbar{display:none!important}
/* room for the sticky cart bar so it never covers the last thing on the page */
body.ez-hasbar{padding-bottom:84px}
