/* Maya Bazaar — concept 03 "open pricing bazaar" */
:root{
  --ink:#171210; --ink-2:#221b17; --ink-3:#32271f;
  --paper:#fff; --paper-2:#f4f1ec; --card:#fff; --receipt:#f7f5f1;
  --saffron:#ef9d10; --marigold:#ffc233; --chili:#d1402f; --leaf:#2f7d5d;
  --muted:#7d6c5e; --muted-inv:#c3b2a1;
  --line:rgba(23,18,16,.12); --line-inv:rgba(253,248,238,.16);
  --r:18px; --r-sm:12px; --shadow:0 18px 40px -24px rgba(23,18,16,.55);
  --ui:'Inter',system-ui,sans-serif; --display:'Outfit',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px;overflow-x:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui);font-size:16px;line-height:1.55;overflow-x:hidden}
img{max-width:100%;display:block}
button,input,select{font:inherit;color:inherit}
button{border:0;background:none;cursor:pointer}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--chili);outline-offset:3px;border-radius:4px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.05;letter-spacing:-.035em;margin:0}
h1{font-size:clamp(38px,5.1vw,66px)}
h2{font-size:clamp(27px,3.1vw,40px)}
h3{font-size:20px;letter-spacing:-.02em}
em{font-style:normal;font-weight:700;color:var(--chili)}
.kicker{margin:0 0 10px;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--saffron)}
.lede{color:var(--muted);font-size:15px;margin:14px 0 0;max-width:46ch}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:999px;padding:13px 22px;font-size:14px;font-weight:700;white-space:nowrap;transition:transform .16s,background .16s,color .16s}
.btn:hover{transform:translateY(-2px)}
.btn-accent{background:var(--saffron);color:var(--ink);box-shadow:0 10px 24px -12px rgba(239,157,16,.9)}
.btn-accent:hover{background:var(--marigold)}
.btn-solid{background:var(--ink);color:var(--paper)}
.btn-solid:hover{background:var(--ink-3)}
.btn-ghost{border:1.5px solid var(--line);color:var(--ink)}
.btn-ghost:hover{background:var(--paper-2)}
.icon-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--paper-2);color:var(--ink)}
.lnk{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--chili)}

/* ticker + masthead */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;padding:10px 0;font-size:12px;font-weight:600;letter-spacing:.04em}
.ticker-track{display:flex;width:max-content;animation:ticker 32s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
/* each copy carries its own trailing gap, so the join between copies is invisible */
.ticker-track>span{display:flex;gap:40px;padding-right:40px}
.ticker-track span span{white-space:nowrap;color:var(--marigold)}
@keyframes ticker{to{transform:translateX(-25%)}}
.masthead{display:grid;grid-template-columns:auto minmax(200px,1fr) auto;align-items:center;gap:22px;max-width:1280px;margin:0 auto;padding:18px 26px}
.logo img{width:186px;height:78px;object-fit:contain}
.finder{position:relative;display:flex;align-items:center;gap:10px;background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:0 16px;height:50px;transition:border-color .16s,box-shadow .16s}
.finder:focus-within{border-color:var(--ink);box-shadow:0 0 0 4px rgba(239,157,16,.2)}
.finder .i{color:var(--muted)}
.finder input{flex:1;min-width:0;border:0;background:none;outline:0;font-size:14px}
.finder kbd{font-family:var(--ui);font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 7px}
.acts{display:flex;gap:10px}
.act{display:flex;align-items:center;gap:8px;height:46px;padding:0 17px;border-radius:999px;background:var(--paper-2);font-size:13px;font-weight:700;transition:background .16s,color .16s}
.act:hover{background:#ecdcc2}
.act b{min-width:21px;height:21px;display:grid;place-items:center;border-radius:999px;background:var(--ink);color:var(--paper);font-size:11px}
.act-primary{background:var(--ink);color:var(--paper)}
.act-primary:hover{background:var(--ink-3)}
.act-primary b{background:var(--saffron);color:var(--ink)}
.act.on{background:var(--chili);color:#fff}
.act.on b{background:#fff;color:var(--chili)}

/* category rail */
/* all food categories: wrapped on wide screens so none hides off the edge,
   one swipeable row on phones */
.rail{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 12px;max-width:1280px;margin:0 auto;padding:6px 26px 22px}
.rail::-webkit-scrollbar,.chips::-webkit-scrollbar{display:none}
.rail button{display:flex;flex-direction:column;align-items:center;gap:9px;width:98px;flex:none;font-size:12px;font-weight:700;color:var(--muted)}
.rail button.on{color:var(--ink)}

/* hero slideshow: full-width slides in the logo's palette (forest green,
   vermilion, cream, marigold). The track slides sideways; each slide fills it. */
.slideshow{
  --forest:#0f3d2a; --cream:#fbf5e8; --vermilion:#d8321f;
  position:relative;width:calc(100% - 52px);max-width:1228px;margin:0 auto;overflow:hidden;border-radius:24px}
.slides{display:flex;transition:transform .6s cubic-bezier(.65,0,.35,1)}
.slide{position:relative;flex:0 0 100%;height:440px;overflow:hidden;background:var(--forest);color:var(--cream)}
.slide-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;height:100%;max-width:600px;padding:40px 48px 40px 84px} /* clear of the arrows */
.slide .kicker{color:var(--marigold)}
.slide h1,.slide h2{font-size:clamp(32px,3.6vw,50px);line-height:1;letter-spacing:-.035em;color:var(--cream);margin:0}
.slide h1 em,.slide h2 em{font-style:normal;color:var(--marigold)}
.slide .lede{color:rgba(251,245,232,.85);max-width:42ch;margin:14px 0 0;font-size:15.5px}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.slide .btn-accent{background:var(--marigold);box-shadow:0 12px 28px -14px rgba(255,194,51,.9)}
.slide .btn-accent:hover{background:#ffd35f}
.slide .btn-ghost{border-color:rgba(251,245,232,.45);color:var(--cream)}
.slide .btn-ghost:hover{background:rgba(251,245,232,.12)}

.slide{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center}
.art{width:100%;max-height:100%;padding:28px 72px 28px 0;overflow:visible}

/* one background per slide, all from the logo's palette */
.slide-spice{background:radial-gradient(120% 120% at 85% 10%,#1d5a40 0%,var(--forest) 60%)}
.slide-compare{background:radial-gradient(120% 120% at 85% 10%,#fffaf0 0%,var(--cream) 60%);color:var(--ink)}
.slide-compare .kicker{color:var(--vermilion)}
.slide-compare h2{color:var(--ink)}
.slide-compare h2 em{color:var(--forest)}
.slide-compare .lede{color:var(--muted)}
.slide-compare .btn-accent{background:var(--forest);color:var(--cream);box-shadow:none}
.slide-city{background:linear-gradient(180deg,#ffe9c2 0%,#fbf5e8 70%);color:var(--ink)}
.slide-city .kicker{color:var(--vermilion)}
.slide-city h2{color:var(--ink)}
.slide-city h2 em{color:var(--vermilion)}
.slide-city .lede{color:var(--muted)}
.slide-city .btn-accent{background:var(--ink);color:#fff;box-shadow:none}
.slide-mutton{background:radial-gradient(120% 120% at 100% 0%,#e64a33 0%,var(--vermilion) 55%,#b8261a 100%)}
.slide-mutton .kicker,.slide-mutton h2 em{color:#ffe08a}
.slide-mutton .btn-accent{background:var(--cream);color:var(--ink);box-shadow:none}
.slide-wa{background:radial-gradient(120% 120% at 90% 0%,#2aa564 0%,#127a45 60%,#0d5b33 100%)}
.slide-wa .kicker{color:#c9f7d8}
.slide-wa h2 em{color:#ffe08a}
.slide-wa .btn-accent{background:#fff;color:#0d5b33;box-shadow:none}

/* artwork motion: plays each time a slide comes in (.live), never with reduced motion */
.slide.live .bowl{animation:pop .55s cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--d)}
.flag{animation:swing 3.6s ease-in-out infinite;animation-delay:var(--d)}
.spark{animation:twinkle 2.4s ease-in-out infinite}
.spark.s2{animation-delay:1.2s}
.slide.live .row{animation:fadein .4s ease-out both;animation-delay:var(--d)}
.slide.live .row .bar{animation:grow .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
.slide.live .crown{animation:pop .5s cubic-bezier(.3,1.6,.5,1) 1.3s both}
.van{animation:drive 7s linear infinite}
.steam path{animation:rise 2.6s ease-in-out infinite}
.steam path:nth-child(2){animation-delay:.6s}
.steam path:nth-child(3){animation-delay:1.2s}
.slide.live .bubble{animation:pop .45s cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--d)}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes swing{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes twinkle{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes grow{from{transform:scaleX(.05)}to{transform:scaleX(1)}}
@keyframes drive{from{transform:translateX(-200px)}to{transform:translateX(540px)}}
@keyframes rise{0%{opacity:0;transform:translateY(10px)}40%{opacity:.9}100%{opacity:0;transform:translateY(-14px)}}
.bowl,.bubble,.spark{transform-box:fill-box;transform-origin:center}

/* controls */
.slide-nav{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:44px;height:44px;margin-top:-22px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);box-shadow:0 8px 20px -10px rgba(0,0,0,.5)}
.slide-nav.prev{left:14px}
.slide-nav.prev .i{transform:rotate(180deg)}
.slide-nav.next{right:14px}
.slide-nav:hover{background:#fff}
.slide-dots{position:absolute;left:50%;bottom:14px;z-index:3;display:flex;gap:8px;padding:6px 10px;border-radius:99px;background:rgba(23,18,16,.35);transform:translateX(-50%)} /* visible on light and dark slides */
.slide-dots button{width:9px;height:9px;padding:0;border-radius:99px;background:rgba(255,255,255,.55);transition:width .25s,background .25s}
.slide-dots button[aria-current="true"]{width:26px;background:#fff}

/* sections */
.section{max-width:1280px;margin:0 auto;padding:62px 26px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.sec-head h2 br{display:none}
.sort{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
select{margin-left:8px;padding:10px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);font-size:12px;font-weight:600}
.scroller{display:flex;gap:14px;overflow-x:auto;padding:4px 4px 18px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.scroller .card{width:232px;flex:none;scroll-snap-align:start}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:14px}
.chip{padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);font-size:12.5px;font-weight:700;color:var(--muted);transition:.16s}
.chip:hover{border-color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.count{margin:0 0 18px;font-size:12px;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
/* searching or opening a category is shopping, not landing: the hero, price
   intel, bundle and promises step aside so results start at the top */
body.browsing [data-landing]{display:none}
body.browsing #shop{padding-top:26px}
.pager{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:28px}
.pg{min-width:42px;height:42px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);font-size:13px;font-weight:700;color:var(--ink);transition:.16s}
.pg:hover:not(:disabled){border-color:var(--ink)}
.pg.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.pg:disabled{opacity:.35;cursor:not-allowed}
.rail-pic{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--tint-bg,var(--paper-2));color:var(--tint-fg,var(--ink));border:1.5px solid transparent;transition:transform .18s,border-color .18s,box-shadow .18s}
.cat-ico{width:36px;height:36px;object-fit:contain}
.rail button:hover .rail-pic{transform:translateY(-3px)}
.rail button.on .rail-pic{border-color:currentColor;box-shadow:0 0 0 3px var(--tint-bg,var(--paper-2))}
.rail button.on{color:var(--ink)}
/* category tints: pastel ring, saturated glyph */
.t-ink{--tint-bg:#efece7;--tint-fg:#171210}
.t-chili{--tint-bg:#fbe7e3;--tint-fg:#c33c2b}
.t-saffron{--tint-bg:#fcefd8;--tint-fg:#b8770c}
.t-green{--tint-bg:#e2f1e9;--tint-fg:#2f7d5d}
.t-blue{--tint-bg:#e4edf9;--tint-fg:#356ea6}
.t-brown{--tint-bg:#f3e9e0;--tint-fg:#8a5a33}
.t-gold{--tint-bg:#f8f0d5;--tint-fg:#9c7a16}
.t-violet{--tint-bg:#eee8f7;--tint-fg:#6b4c9a}
.chip small{opacity:.55;font-weight:600}
.blank{text-align:center;padding:56px 20px;border:1.5px dashed var(--line);border-radius:var(--r)}
.blank p{color:var(--muted);margin:8px 0 18px}

/* product card */
.card{position:relative;display:flex;flex-direction:column;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);padding:16px;transition:transform .18s,box-shadow .18s,border-color .18s}
.card:hover{transform:translateY(-4px);border-color:rgba(23,18,16,.26);box-shadow:var(--shadow)}
/* the photo is pinned inside a fixed square rather than laid out in it: Odoo's
   images come in any shape, and a tall one otherwise stretches the box (and
   in Safari spills out over the title and past the card) */
.card-media{--pad:16px;position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--r-sm);background:linear-gradient(180deg,#faf9f7 0%,#f1eee8 100%);margin-bottom:13px}
.card-media img{position:absolute;inset:var(--pad);width:calc(100% - 2 * var(--pad));height:calc(100% - 2 * var(--pad));max-width:none;object-fit:contain;mix-blend-mode:multiply}
.sticker{position:absolute;left:10px;top:10px;z-index:2;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;background:var(--saffron);color:var(--ink);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:6px 11px;border-radius:999px}
.sticker .i{width:12px;height:12px;stroke-width:2.4}
.sticker.sale{background:var(--chili);color:#fff}
.sticker b::after{content:' · '}
.sticker i{font-style:normal}
.fav{position:absolute;z-index:2;right:8px;top:8px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:rgba(255,253,247,.9);color:var(--muted);transition:.16s}
.fav:hover{color:var(--chili)}
.fav.on{color:var(--chili)}
.fav.on .i{fill:var(--chili)}
.card h3{font-size:15px;font-family:var(--ui);font-weight:700;letter-spacing:0;line-height:1.3;margin:5px 0 3px}
.card-meta{font-size:11.5px;color:var(--muted)}
.card-price{display:flex;align-items:baseline;gap:4px 8px;flex-wrap:wrap;margin-top:11px}
.card-price b{font-size:21px;font-weight:800;font-variant-numeric:tabular-nums}
.card-price .ref{font-size:11px;color:var(--muted);white-space:nowrap}
.card-price s{text-decoration-color:var(--chili)}
[hidden]{display:none!important}
.save{display:inline-flex;align-items:center;gap:5px;margin-top:9px;font-size:11px;font-weight:700;color:var(--leaf);background:rgba(47,125,93,.1);border-radius:999px;padding:4px 10px;align-self:flex-start}
.save.lose{color:var(--muted);background:rgba(125,108,94,.12)}
.card-foot{display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:13px;border-top:1px solid var(--line)}
.save{margin-bottom:13px}
.vs{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;height:40px;border-radius:999px;border:1.5px solid var(--line);font-size:12px;font-weight:700;color:var(--ink);transition:.16s}
.vs:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.add{width:44px;height:40px;display:grid;place-items:center;border-radius:999px;background:var(--saffron);color:var(--ink);transition:.16s}
.add:hover{background:var(--marigold)}
.step{display:flex;align-items:center;gap:4px;height:40px;padding:0 4px;border-radius:999px;background:var(--ink);color:var(--paper)}
.step button{width:32px;height:32px;display:grid;place-items:center;border-radius:50%}
.step button:hover{background:var(--ink-3)}
.step span{min-width:20px;text-align:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}

/* dark comparison slab */
.slab{background:var(--ink);color:var(--paper);margin-top:70px;padding:66px 26px 70px}
.slab>*{max-width:1280px;margin-inline:auto}
.sec-head-inv{align-items:flex-start}
.sec-head-inv h2 br{display:inline}
.sec-note{max-width:34ch;font-size:12px;color:var(--muted-inv);margin:0}
.stores{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin-bottom:26px}
.store{border:1.5px solid var(--line-inv);border-radius:var(--r-sm);padding:15px}
.store.us{background:var(--saffron);color:var(--ink);border-color:transparent}
.store h4{margin:0 0 3px;font-size:13.5px;font-weight:800}
.store p{margin:0;font-size:11px;color:var(--muted-inv)}
.store.us p{color:rgba(23,18,16,.7)}
.board{border:1.5px solid var(--line-inv);border-radius:var(--r);overflow:hidden;max-width:100%}
.board-scroll{overflow-x:auto;max-width:100%}
.board-cards{display:none}
.board-table{width:100%;border-collapse:collapse;font-size:13px;min-width:740px;font-variant-numeric:tabular-nums}
.board-table th,.board-table td{padding:13px 16px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line-inv)}
.board-table thead th{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-inv);font-weight:700}
.board-table th:first-child,.board-table td:first-child{position:sticky;left:0;text-align:left;background:var(--ink);min-width:206px;white-space:normal}
.board-table tbody tr:hover td{background:var(--ink-2)}
.board-table tbody tr:hover td:first-child{background:var(--ink-2)}
.board-table td.best{color:var(--marigold);font-weight:800;background:rgba(239,157,16,.12)}
.board-table tfoot td{border-bottom:0;font-weight:800;background:var(--ink-2)}
.board-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;background:var(--ink-2)}
.board-foot p{margin:0;font-size:12px;color:var(--muted-inv);max-width:46ch}

/* bundle + promises */
.bundle{display:grid;grid-template-columns:1fr 1.05fr;gap:28px;align-items:center;background:linear-gradient(140deg,#ffd97a,#ef9d10);border-radius:26px;padding:40px}
.bundle .kicker{color:var(--ink)}
.bundle .lede{color:rgba(23,18,16,.72)}
.bundle .btn-solid{margin-top:24px}
.bundle-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.bundle-items div{background:rgba(255,253,247,.86);border-radius:var(--r-sm);padding:12px;text-align:center}
.bundle-items img{height:74px;object-fit:contain;margin:0 auto 8px;mix-blend-mode:multiply}
.bundle-items p{margin:0;font-size:11px;font-weight:700;line-height:1.3}
.bundle-items span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.promises{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding-bottom:70px}
.promise{border-top:2px solid var(--ink);padding-top:16px}
.promise h4{margin:12px 0 6px;font-size:14px;font-weight:800}
.promise p{margin:0;font-size:12.5px;color:var(--muted)}

footer{margin-top:72px;background:var(--ink);color:var(--paper);padding:54px 26px 40px} /* the gap above it holds whichever section ends the page */
footer>*{max-width:1280px;margin-inline:auto}
.foot-brand{display:flex;align-items:center;gap:20px;padding-bottom:28px}
.foot-brand img{width:150px;filter:invert(1) grayscale(1) brightness(1.7)}
.foot-brand p{margin:0;font-size:13px;color:var(--muted-inv)}
.foot-cols{display:grid;grid-template-columns:repeat(4,minmax(0,240px));gap:26px;padding:28px 0;border-top:1px solid var(--line-inv);border-bottom:1px solid var(--line-inv)}
.foot-cols h5{margin:0 0 12px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--marigold)}
.foot-cols a{display:block;font-size:13px;color:var(--muted-inv);padding:4px 0}
.foot-cols a:hover{color:var(--paper)}
.foot-meta{display:block;font-size:12px;line-height:1.45;color:var(--muted-inv);opacity:.75;padding:2px 0 8px}
.foot-copy{margin:22px auto 0;font-size:12px;color:var(--muted-inv);text-align:center}
.foot-note{margin:6px auto 0;font-size:11px;color:var(--muted-inv);max-width:70ch;text-align:center;opacity:.8}

/* floating + tabbar */
.float-cta{position:fixed;right:22px;bottom:22px;z-index:40;display:flex;align-items:center;gap:9px;padding:15px 22px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:13px;font-weight:700;box-shadow:0 18px 36px -14px rgba(23,18,16,.7)}
.float-cta b{background:var(--saffron);color:var(--ink);border-radius:999px;padding:1px 9px;font-size:12px}
.float-cta[hidden]{display:none}
.tabbar{display:none}

/* dialogs */
dialog{position:fixed;inset:0 0 0 auto;width:min(460px,100%);max-width:100%;height:100%;max-height:100%;margin:0;border:0;padding:0;background:var(--paper);color:var(--ink);overflow:hidden}
dialog[open]{display:flex;flex-direction:column}
dialog::backdrop{background:rgba(23,18,16,.55);backdrop-filter:blur(3px)}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 18px;border-bottom:1.5px solid var(--line);position:sticky;top:0;background:var(--paper);z-index:2}
.drawer-head h2{font-size:24px}
#cart-body,#pc-body,#rc-body,#qc-body{flex:1;min-height:0;padding:20px 24px 24px;overflow-y:auto;overscroll-behavior:contain}
#cart-foot{flex:none;background:var(--card);border-top:1.5px solid var(--line);padding:18px 24px 22px}
.crow{display:flex;gap:13px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.crow img{width:56px;height:66px;object-fit:contain;mix-blend-mode:multiply}
.crow h4{margin:0 0 2px;font-size:13.5px;font-weight:700}
.crow p{margin:0 0 8px;font-size:11.5px;color:var(--muted)}
.crow strong{margin-left:auto;font-size:14px;font-variant-numeric:tabular-nums}
.crow .step{width:fit-content}
.crow>div{min-width:0}
.meter{height:7px;border-radius:99px;background:var(--paper-2);overflow:hidden;margin:2px 0 9px}
.meter i{display:block;height:100%;background:var(--leaf);transition:width .4s}
.sum{display:flex;justify-content:space-between;font-size:15px;font-weight:800;margin:10px 0 4px;font-variant-numeric:tabular-nums}
.fine{font-size:11.5px;color:var(--muted);margin:6px 0 0;line-height:1.5}
#cart-foot .btn{width:100%;margin-top:12px}
.empty{text-align:center;padding:40px 10px;color:var(--muted)}
.empty h3{margin-bottom:8px;color:var(--ink)}

.pc-head{display:flex;gap:14px;align-items:center;padding-bottom:16px;border-bottom:1.5px solid var(--line)}
.pc-head img{width:74px;height:88px;object-fit:contain;mix-blend-mode:multiply}
.pc-head h3{font-family:var(--ui);font-size:16px;font-weight:800}
.pc-head p{margin:2px 0 0;font-size:12px;color:var(--muted)}
.pc-row{display:flex;align-items:center;gap:10px;padding:12px 10px;border-radius:10px;font-size:13.5px}
.pc-row span{flex:1}
.pc-row b{font-variant-numeric:tabular-nums;font-size:15px}
.pc-row.win{background:rgba(239,157,16,.16);font-weight:700}
.pc-row.us span::after{content:'your store';margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--saffron)}
.pc-note{font-size:11.5px;color:var(--muted);margin-top:16px;line-height:1.5}

.receipt{position:relative;background:var(--receipt);padding:26px 22px;margin:8px 0 18px;box-shadow:0 10px 30px -22px rgba(23,18,16,.7)}
.receipt::before,.receipt::after{content:'';position:absolute;left:0;right:0;height:12px;background:radial-gradient(circle at 6px 0,transparent 0 6px,var(--receipt) 6px) 0 0/12px 12px repeat-x}
.receipt::before{top:-12px;transform:scaleY(-1)}
.receipt::after{bottom:-12px}
.receipt h4{margin:0;text-align:center;font-family:var(--display);font-size:19px}
.receipt .rmeta{text-align:center;font-size:11px;color:var(--muted);margin:4px 0 16px}
.rline{display:flex;gap:10px;font-size:12.5px;padding:5px 0;font-variant-numeric:tabular-nums}
.rline span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rdash{border-top:1px dashed var(--line);margin:12px 0}
.rank{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:12px;border:1.5px solid var(--line);margin-bottom:9px}
.rank.win{border-color:var(--saffron);background:rgba(239,157,16,.12)}
.rank i{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--paper-2);font-size:12px;font-weight:800;font-style:normal}
.rank.win i{background:var(--saffron)}
.rank div{flex:1}
.rank h5{margin:0;font-size:13.5px;font-weight:800}
.rank p{margin:1px 0 0;font-size:11px;color:var(--muted)}
.rank b{font-size:16px;font-variant-numeric:tabular-nums}

#toast{position:fixed;left:50%;bottom:26px;z-index:60;transform:translate(-50%,16px);opacity:0;pointer-events:none;transition:.22s;background:var(--ink);color:var(--paper);font-size:13.5px;font-weight:600;padding:13px 22px;border-radius:999px}
#toast.on{opacity:1;transform:translate(-50%,0)}

@media(max-width:1060px){
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stores{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bundle{grid-template-columns:1fr}
  .promises{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
  .masthead{grid-template-columns:1fr auto;gap:10px 12px;padding:12px 16px}
  .finder{grid-column:1/-1;order:3;height:46px;padding:0 14px}
  .finder kbd{display:none}
  .acts{gap:8px}
  .act span{display:none}
  .act{position:relative;width:44px;height:44px;padding:0;justify-content:center;border-radius:50%}
  .act b{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;font-size:10px;border:2px solid var(--paper)}
  .rail{flex-wrap:nowrap;justify-content:flex-start;padding:2px 18px 18px;gap:8px;overflow-x:auto;scrollbar-width:none}
  .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-18px;padding:0 18px 4px}
  .chip{flex:none;white-space:nowrap}
  .logo img{width:154px;height:58px;margin-left:-6px}
  .rail button{width:78px;font-size:11px}
  .rail-pic{width:54px;height:54px}
  .cat-ico{width:30px;height:30px}
  .section{padding-inline:18px}
  .slideshow{width:calc(100% - 36px);border-radius:20px}
  .slide{height:560px}
  .slide-copy{justify-content:flex-end;padding:24px 22px 44px;max-width:none}
  .slide h1,.slide h2{font-size:32px}
  .slide .lede{font-size:14px;margin-top:10px}
  .hero-cta{margin-top:16px;gap:8px}
  .slide .btn{padding:11px 15px;font-size:13.5px}
  .slide{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;align-items:stretch}
  .art{grid-row:1;padding:14px 10px 0;height:100%;max-height:250px;margin:0 auto}
  .slide-copy{grid-row:2;height:auto}
  .slide-nav{display:none}
  .slide-dots{bottom:14px}
  .section{padding-top:46px}
  .sec-head{flex-direction:column;align-items:flex-start;gap:12px}
  .sec-head-inv h2 br{display:none}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .slab{padding:48px 18px 54px;margin-top:52px}
  /* the seven-column board becomes stacked cards on phones */
  .board-scroll{display:none}
  .board-cards{display:block;padding:6px 6px 2px}
  .bcard{padding:14px 12px;border-bottom:1px solid var(--line-inv)}
  .bcard:last-child{border-bottom:0}
  .bcard h5{margin:0 0 10px;font-size:13.5px;font-weight:700;line-height:1.35}
  .bprices{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .bp{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:9px;background:rgba(253,248,238,.05);font-variant-numeric:tabular-nums}
  .bp i{font-style:normal;font-size:11px;color:var(--muted-inv);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bp b{font-size:13px;font-weight:700}
  .bp.win{background:rgba(239,157,16,.16)}
  .bp.win i,.bp.win b{color:var(--marigold)}
  .bcard-total{background:var(--ink-2)}
  .bcard-total h5{font-size:14px}
  .stores{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bundle{padding:28px 22px}
  .bundle-items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .promises{grid-template-columns:1fr;padding-bottom:54px}
  .foot-cols{grid-template-columns:1fr 1fr}
  .float-cta{display:none}
  body{padding-bottom:74px}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--card);border-top:1.5px solid var(--line);padding:9px 8px calc(9px + env(safe-area-inset-bottom))}
  .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--muted);position:relative}
  .tabbar .i{width:21px;height:21px;color:var(--ink)}
  .tabbar b{position:absolute;top:-4px;right:calc(50% - 22px);background:var(--chili);color:#fff;font-size:9px;border-radius:99px;padding:0 5px}
  dialog{width:100%}
}
@media(max-width:600px){
  .sticker b{display:none}
  .sticker{font-size:9px;padding:5px 9px;left:8px;top:8px;letter-spacing:.04em}
  .sticker .i{width:11px;height:11px}
}
@media(max-width:430px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card{padding:12px}
  .card-media{--pad:12px}
  .vs{font-size:11.5px;gap:5px}
  .add{width:40px}
  /* narrow cards can't fit badge and heart on one line, so the badge drops
     to the foot of the image instead of shrinking to fit at every width */
  .sticker{font-size:8.5px;padding:4px 8px;gap:4px;left:6px;top:auto;bottom:6px}
  .sticker .i{width:10px;height:10px}
  .fav{width:30px;height:30px;right:6px;top:6px}
  .fav .i{width:17px;height:17px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .ticker{overflow-x:auto;scrollbar-width:none}
}

/* account drawer */
.act.signed{background:#e7f1eb;color:var(--leaf)}
#acct-body{flex:1;min-height:0;padding:22px 24px 28px;overflow-y:auto;overscroll-behavior:contain}
.auth{display:flex;flex-direction:column;gap:14px}
.auth[hidden]{display:none}
.auth-lead{margin:0 0 4px;font-size:14px;line-height:1.55;color:var(--muted)}
.auth-lead strong{color:var(--ink);word-break:break-all}
.auth label{display:flex;flex-direction:column;gap:7px;font-size:12.5px;font-weight:700}
.auth input{height:48px;padding:0 16px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--card);font-size:15px;font-weight:500;transition:border-color .16s,box-shadow .16s}
.auth input:focus{outline:none;border-color:var(--saffron);box-shadow:0 0 0 4px rgba(239,157,16,.18)}
.auth .btn{width:100%;margin-top:4px}
.auth .btn:disabled{opacity:.55;pointer-events:none}
.auth-msg{margin:0;font-size:13px;line-height:1.5;min-height:0}
.auth-msg:empty{display:none}
.auth-msg.bad{color:var(--chili)}
.auth-msg.ok{color:var(--leaf)}
.auth-msg a{font-weight:700;text-decoration:underline}
.auth-link{align-self:center;padding:4px;font-size:13px;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.auth-switch{margin:6px 0 0;text-align:center;font-size:13px;color:var(--muted)}
.me-links{display:flex;flex-direction:column;border-top:1.5px solid var(--line)}
.me-links a{display:flex;align-items:center;justify-content:space-between;padding:16px 2px;border-bottom:1.5px solid var(--line);font-size:14.5px;font-weight:700}
.me-links a:hover{color:var(--saffron)}
.me-links .i{width:18px;height:18px}
#cart-foot a.busy{opacity:.6;pointer-events:none}

/* BasketWise quick cart summary */
#qc-foot{flex:none;border-top:1.5px solid var(--line);padding:18px 24px 22px;display:grid;gap:10px}
#qc-foot:empty{display:none}
#qc-foot .btn{width:100%}
.qc-lead{margin:0 0 14px;font-size:14px;color:var(--muted)}
.qc-lead b{color:var(--ink)}
.qc-row{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.qc-row img{width:48px;height:56px;object-fit:contain;mix-blend-mode:multiply;flex:none}
.qc-row div{min-width:0;flex:1}
.qc-row h4{margin:0 0 2px;font-size:13.5px;font-weight:700}
.qc-row p{margin:0;font-size:12px;color:var(--muted)}
.qc-row strong{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.qc-missed{margin:18px 0 0;padding:14px 16px;border-radius:14px;background:#fff4de;font-size:13px}
.qc-missed h5{margin:0 0 6px;font-size:13px}
.qc-missed ul{margin:0;padding-left:18px;color:var(--muted)}
.qc-undo{justify-self:center;padding:4px;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px;color:var(--muted)}
.qc-wait{display:flex;align-items:center;gap:12px;padding:28px 0;color:var(--muted);font-size:14px}
.qc-wait::before{content:'';width:20px;height:20px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--ink);animation:qcspin .8s linear infinite}
@keyframes qcspin{to{transform:rotate(360deg)}}
.foot-note a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* top brands: equal white tiles, logos contained */
.brand-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.brand-grid li{display:flex;align-items:center;justify-content:center;height:96px;padding:0 18px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:#fff;overflow:hidden}
/* pixel cap, not a percentage: a percentage height inside a grid cell is not honoured everywhere */
.brand-grid img{display:block;max-width:100%;max-height:64px;width:auto;height:auto;object-fit:contain}
@media(max-width:780px){
  .brand-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .brand-grid li{height:72px;padding:0 12px}
  .brand-grid img{max-height:48px}
}

/* Dussehra relaunch intro (dist/intro.js), shown until 30 Oct 2026 */
.intro-open{overflow:hidden}
.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;padding:24px;
  background:radial-gradient(90% 80% at 50% 38%,#2a1408 0%,#140a05 70%);color:#fbf5e8;text-align:center;
  animation:intro-in .5s ease-out both}
.intro.leaving{animation:intro-out .7s cubic-bezier(.7,0,.3,1) forwards}
.intro-stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;max-width:560px}
.intro-art{position:relative;display:grid;place-items:center}
.intro-glow{position:absolute;inset:-8%;border-radius:50%;background:radial-gradient(circle,rgba(255,170,40,.55) 0%,rgba(216,50,31,.25) 40%,rgba(0,0,0,0) 70%);animation:glow 2.8s ease-in-out .4s infinite both}
.intro-face{position:relative;width:min(380px,74vw);height:auto;animation:reveal 1.5s cubic-bezier(.2,.8,.2,1) .2s both,float 5s ease-in-out 1.8s infinite}
.intro-greet{margin:6px 0 4px;font:700 15px var(--ui);letter-spacing:.06em;color:#ffc233;opacity:0;animation:rise-in .7s ease-out 1.3s forwards}
.intro-greet span{font-size:20px}
.intro-title{margin:0;font-family:var(--display);font-size:clamp(34px,6vw,58px);line-height:1;letter-spacing:-.03em;color:#fbf5e8;opacity:0;animation:rise-in .7s ease-out 1.6s forwards}
.intro-title em{font-style:normal;color:#ffc233}
.intro-sub{margin:12px 0 18px;max-width:40ch;font-size:15px;color:rgba(251,245,232,.8);opacity:0;animation:rise-in .7s ease-out 1.9s forwards}
.intro-enter{background:#ffc233;color:#171210;opacity:0;animation:rise-in .7s ease-out 2.2s forwards}
.intro-enter:hover{background:#ffd35f}
.intro-skip{position:absolute;top:18px;right:18px;z-index:2;padding:8px 16px;border-radius:999px;background:rgba(251,245,232,.12);color:#fbf5e8;font-size:13px;font-weight:700}
.intro-skip:hover{background:rgba(251,245,232,.22)}
.intro-petals{position:absolute;inset:0;pointer-events:none}
.petal{position:absolute;top:-30px;width:var(--s);height:calc(var(--s) * 1.3);border-radius:60% 0 60% 0;background:linear-gradient(135deg,#ffc233,#f08a24);opacity:.85;
  animation:fall var(--t) linear var(--d) infinite}
.petal:nth-child(3n){background:linear-gradient(135deg,#ff8a3d,#d8321f)}
@keyframes intro-in{from{opacity:0}to{opacity:1}}
@keyframes intro-out{to{opacity:0;transform:translateY(-6%)}}
@keyframes reveal{from{clip-path:circle(0% at 50% 45%);transform:scale(.88);filter:blur(6px) brightness(1.5)}to{clip-path:circle(75% at 50% 45%);transform:none;filter:none}}
@keyframes glow{0%,100%{opacity:.7;transform:scale(.95)}50%{opacity:1;transform:scale(1.06)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes rise-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fall{0%{transform:translateY(0) rotate(0)}100%{transform:translateY(110vh) rotate(540deg)}}
/* reduced motion: everything shown at once, nothing moves (the global rule stops the animations) */
@media(prefers-reduced-motion:reduce){
  .intro-greet,.intro-title,.intro-sub,.intro-enter{opacity:1}
  .intro-petals{display:none}
}
/* BasketWise switch (app.js BW): .bw-only shows only when it's on, .bw-off only when it's off */
html:not(.bw) .bw-only{display:none!important}
html.bw .bw-off{display:none!important}
.card-foot > :last-child{margin-left:auto}
/* product cards: name and photo open the product page; sizes pick the variant */
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{text-decoration:underline;text-underline-offset:2px}
.card-media > a{display:contents}
.sizes{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 6px}
.size{padding:5px 11px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}
.size:hover{border-color:var(--ink)}
.size.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
/* product panel (product.js) */
#pd-body{flex:1;min-height:0;padding:20px 24px 28px;overflow-y:auto;overscroll-behavior:contain}
.pd-media{position:relative;aspect-ratio:1;border-radius:18px;background:var(--paper-2);overflow:hidden;margin-bottom:16px}
.pd-media img{position:absolute;inset:8%;width:84%;height:84%;object-fit:contain}
.pd-name{font-size:24px;line-height:1.15;margin:0 0 6px}
.pd-price{margin:0 0 14px;font-size:14px;color:var(--muted)}
.pd-price b{font-size:24px;color:var(--ink);font-family:var(--display,inherit)}
.pd-price s{margin-left:6px}
.pd-sizes{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;border:0}
.pd-sizes legend{width:100%;margin-bottom:8px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.pd-sizes .size{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:78px;padding:9px 14px;border-radius:14px;font-size:15px}
.pd-sizes .size small{font-size:11.5px;font-weight:600;opacity:.75}
.pd-buy{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.pd-buy .btn{flex:1;min-height:46px}
.pd-qty{height:46px}
.pd-qty span{min-width:22px;text-align:center;font-weight:800}
.pd-have{margin:0 0 6px;font-size:13px;color:var(--leaf)}
.pd-info{margin-top:18px;padding-top:16px;border-top:1.5px solid var(--line);font-size:14px;line-height:1.6}
.pd-info h3{font-family:var(--ui);font-size:15px;font-weight:800;letter-spacing:0;margin:16px 0 6px}
.pd-info h3:first-child{margin-top:0}
.pd-info p{margin:0 0 8px}
.pd-info p.li{padding-left:14px;position:relative}
.pd-info p.li::before{content:"•";position:absolute;left:2px}
.pd-wait{color:var(--muted)}
.pd-specs{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}
.pd-specs dt{font-weight:700}
.pd-specs dd{margin:0;color:var(--muted);text-align:right}
/* cards: Details button and "from" price */
.card .info{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border-radius:999px;border:1.5px solid var(--line);font-size:12.5px;font-weight:700;color:var(--ink)}
.card .info:hover{border-color:var(--ink)}
.card .info .i{width:15px;height:15px}
.card-price .from{font-size:12px;color:var(--muted);font-weight:600}
/* ribbons from Odoo and sold-out products */
.sticker.r-new{background:#16a34a;color:#fff}
.sticker.r-cold{background:#2563eb;color:#fff}
.sticker.r-out{background:#57534e;color:#fff}
.card.sold-out .card-media img{opacity:.55;filter:grayscale(.6)}
.sold-tag{white-space:nowrap;padding:8px 10px;border-radius:999px;background:var(--paper-2,#f1ece2);font-size:11.5px;font-weight:800;color:var(--muted)}
.pd-sizes .size.out{opacity:.5;text-decoration:line-through}
.pd-out{margin:0 0 8px;padding:12px 14px;border-radius:12px;background:#fff4de;font-size:14px;font-weight:600}
.card .info{min-width:0}
