@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500&family=Inter:wght@300;400;500;600&display=swap');
:root{--ink:#36251f;--muted:#7c6f68;--cream:#fffaf7;--blush:#f4d3d0;--rose:#d98e91;--rose2:#b96669;--sage:#788368;--line:#eadfd9;--white:#fff;--shadow:0 18px 50px rgba(80,50,40,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(#fff,#fffaf7 72%,#fff);color:var(--ink);font-family:Inter,Arial,sans-serif}.serif,h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif}.shell{max-width:1320px;margin:auto;padding:0 36px}.topbar{font-size:11px;letter-spacing:.22em;text-align:center;padding:8px 16px;background:#fbefec;color:#8d6660}.header{height:82px;display:flex;align-items:center;border-bottom:1px solid rgba(80,50,40,.08);background:rgba(255,255,255,.92);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50}.nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%}.brand{font:600 36px/1 'Cormorant Garamond',serif;text-decoration:none;color:var(--ink);position:relative}.brand small{display:block;font:500 8px/1.5 Inter;letter-spacing:.24em;color:#9c817a;text-align:center;margin-top:5px}.navlinks{display:flex;gap:28px;align-items:center}.navlinks.right{justify-content:flex-end}.nav a{text-decoration:none;color:var(--ink);font-size:13px;position:relative}.navlinks a:after{content:"";position:absolute;height:1px;left:0;right:100%;bottom:-8px;background:var(--rose2);transition:.25s}.navlinks a:hover:after,.navlinks a.active:after{right:0}.pill{border:1px solid var(--line);padding:10px 15px;border-radius:999px}.cart{position:relative}.badge{position:absolute;top:-9px;right:-10px;background:var(--ink);color:#fff;border-radius:20px;font-size:9px;padding:3px 6px}.mobilemenu{display:none}
.hero{min-height:590px;display:grid;grid-template-columns:.86fr 1.45fr;align-items:stretch;position:relative}.hero-copy{padding:88px 54px 70px 0;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:11px;letter-spacing:.35em;color:#8d6f67;text-transform:uppercase;margin-bottom:24px}.hero h1{font-size:76px;line-height:.9;font-weight:500;margin:0 0 26px}.hero p{font-size:15px;line-height:1.8;color:#6f625d;max-width:430px}.btn{display:inline-flex;align-items:center;gap:14px;margin-top:24px;background:var(--rose);color:#fff;padding:14px 24px;border-radius:999px;text-decoration:none;font-family:'Cormorant Garamond';font-size:19px;width:max-content;border:none;cursor:pointer}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--rose)}.hero-image{min-height:560px;background-size:cover;background-position:center;border-radius:0 0 0 28px;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.08),transparent 40%)}
.sakura-left,.sakura-right{position:fixed;pointer-events:none;z-index:3;opacity:.72}.sakura-left{left:-28px;top:85px;width:150px}.sakura-right{right:-35px;bottom:5px;width:160px;transform:rotate(180deg)}.petal{position:fixed;pointer-events:none;color:#eeb7bb;opacity:.55;font-size:20px;animation:float 9s ease-in-out infinite;z-index:2}@keyframes float{50%{transform:translateY(14px) rotate(14deg)}}
.section{padding:90px 0}.section.soft{background:linear-gradient(180deg,#fffaf8,#fff)}.section-head{text-align:center;margin-bottom:46px}.section-head .eyebrow{margin-bottom:14px}.section h2{font-size:52px;font-weight:500;margin:0 0 10px}.section-head p{color:var(--muted);font-size:13px}.category-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}.category-card{text-decoration:none;color:inherit}.category-card img{width:100%;aspect-ratio:1.25;object-fit:cover;border-radius:12px;display:block;box-shadow:0 8px 28px rgba(80,50,40,.07);transition:.28s}.category-card:hover img{transform:translateY(-5px)}.category-card h3{font-size:24px;font-weight:500;margin:14px 0 3px}.category-card p{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#9c817a;line-height:1.6}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:55px;border-top:1px solid var(--line);padding-top:35px}.feature{text-align:center}.feature .icon{font-size:24px}.feature h4{font-family:'Cormorant Garamond';font-size:21px;margin:9px 0 4px}.feature p{font-size:11px;color:var(--muted)}
.page-hero{padding:82px 0 48px;text-align:center;position:relative;overflow:hidden}.page-hero h1{font-size:68px;font-weight:500;margin:7px 0}.page-hero p{color:var(--muted)}.filters{display:flex;justify-content:center;gap:28px;margin:20px 0 40px;flex-wrap:wrap}.filters button{border:0;background:none;font:500 12px Inter;color:#76665f;cursor:pointer;padding:8px 2px;border-bottom:1px solid transparent}.filters button.active{color:var(--rose2);border-color:var(--rose2)}.products{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.product{background:rgba(255,255,255,.82);border-radius:14px;overflow:hidden;box-shadow:0 10px 35px rgba(80,50,40,.06);transition:.25s}.product:hover{transform:translateY(-4px)}.product img{width:100%;aspect-ratio:1.4;object-fit:cover}.product-body{padding:20px}.product h3{font-size:26px;font-weight:500;margin:0}.price{font-size:13px;color:#7d6d65;margin-top:5px}.tags{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap}.tag{font-size:9px;letter-spacing:.08em;background:#f9e9e6;padding:5px 8px;border-radius:999px}.product-actions{display:flex;align-items:center;gap:12px;margin-top:18px}.qty{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.qty button,.qty span{border:0;background:#fff;padding:8px 10px}.add{border:0;background:var(--ink);color:#fff;border-radius:999px;padding:10px 15px;cursor:pointer}
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.split img{width:100%;border-radius:20px;box-shadow:var(--shadow)}.split h2{font-size:58px;line-height:.95}.pairing{background:#f9ece8;border-radius:22px;padding:30px;margin-top:30px}.pairing-row{display:flex;justify-content:space-between;border-top:1px solid rgba(100,70,60,.1);padding:13px 0;font-size:13px}.gift-box{background:linear-gradient(135deg,#fff,#fff2f0);border:1px solid #f2ded9;border-radius:24px;padding:50px}.tier-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.tier{padding:28px 18px;border:1px solid var(--line);border-radius:18px;text-align:center;background:#fff}.tier.featured{background:#fff2ef;border-color:#e9bab6;transform:translateY(-8px)}.tier h3{font-size:27px}.points{font:500 58px 'Cormorant Garamond';margin:10px 0}.progress{height:8px;background:#f1e5e1;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;width:64%;background:var(--rose)}
.footer{margin-top:80px;background:#f8e7e4;padding:55px 0 35px}.footergrid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:45px}.footer h4{font-family:'Cormorant Garamond';font-size:22px;margin:0 0 15px}.footer a,.footer p{display:block;color:#73645e;font-size:12px;text-decoration:none;line-height:2}.copyright{text-align:center;margin-top:35px;padding-top:25px;border-top:1px solid rgba(100,70,60,.13);font-size:10px;letter-spacing:.2em;color:#927871}
.modal{position:fixed;inset:0;background:rgba(45,30,25,.35);display:none;align-items:center;justify-content:center;z-index:100}.modal.open{display:flex}.modalbox{width:min(460px,92vw);background:#fff;border-radius:24px;padding:36px;box-shadow:0 20px 70px rgba(0,0,0,.15)}.modalbox input{width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;margin:8px 0}.close{float:right;border:0;background:none;font-size:24px;cursor:pointer}
@media(max-width:900px){.shell{padding:0 20px}.header{height:68px}.nav{grid-template-columns:auto 1fr auto}.navlinks{display:none}.brand{font-size:26px;text-align:center}.mobilemenu{display:block;border:0;background:none;font-size:22px}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:60px 8px 34px}.hero h1{font-size:56px}.hero-image{min-height:390px;border-radius:20px}.category-grid{grid-template-columns:repeat(2,1fr)}.products{grid-template-columns:1fr}.split{grid-template-columns:1fr}.tier-grid{grid-template-columns:1fr 1fr}.footergrid{grid-template-columns:1fr 1fr}.sakura-left,.sakura-right{width:90px;opacity:.45}.page-hero h1{font-size:54px}}
/* =========================
   V22 · ROOM MARGIN SYSTEM
   Same house, different room.
   ========================= */
body{overflow-x:hidden}
.page-wrap{position:relative;isolation:isolate}
.margin-room{position:fixed;inset:0;pointer-events:none;z-index:4;overflow:hidden}
.margin-room .decor{position:absolute;will-change:transform;transition:opacity .35s ease;filter:saturate(.92)}
.margin-room .left{left:-64px;top:118px;width:245px;transform:translate3d(0,var(--decor-y,0px),0) rotate(calc(-1deg + var(--decor-r,0deg)))}
.margin-room .right{right:-74px;bottom:22px;width:245px;transform:translate3d(0,calc(var(--decor-y,0px) * -0.7),0) rotate(calc(180deg + var(--decor-r,0deg)))}
body.room-home .margin-room .decor{opacity:.72}
body.room-menu .margin-room .decor{opacity:.52;width:210px}
body.room-tea .margin-room .decor{opacity:.58;width:200px}
body.room-gift .margin-room .decor{opacity:.43;width:205px}
body.room-rewards .margin-room .decor{opacity:.50;width:180px}
body.room-about .margin-room .decor{opacity:.20;width:270px;filter:blur(.3px) saturate(.55)}
body.room-menu .margin-room .right{transform:translate3d(0,calc(var(--decor-y,0px)*-.45),0) rotate(calc(8deg + var(--decor-r,0deg)))}
body.room-tea .margin-room .left{left:-48px;top:160px;transform:translate3d(0,var(--decor-y,0px),0) rotate(calc(-7deg + var(--decor-r,0deg)))}
body.room-tea .margin-room .right{right:-42px;bottom:70px;transform:translate3d(0,calc(var(--decor-y,0px)*-.65),0) rotate(calc(14deg + var(--decor-r,0deg)))}
body.room-gift .margin-room .left{left:-58px;top:210px}
body.room-gift .margin-room .right{right:-40px;bottom:110px;transform:translate3d(0,calc(var(--decor-y,0px)*-.55),0) rotate(calc(-12deg + var(--decor-r,0deg)))}
body.room-rewards .margin-room .left{left:-20px;top:160px}
body.room-rewards .margin-room .right{right:-18px;bottom:80px;transform:translate3d(0,calc(var(--decor-y,0px)*-.45),0) scaleX(-1)}
body.room-about .margin-room .left{left:-80px;top:120px}
body.room-about .margin-room .right{right:-80px;bottom:40px;transform:translate3d(0,calc(var(--decor-y,0px)*-.35),0) scaleX(-1)}

.room-petal{position:fixed;width:8px;height:14px;border-radius:70% 30% 70% 30%;background:rgba(230,164,169,.34);z-index:3;pointer-events:none;transform:translateY(var(--petal-y,0px)) rotate(25deg)}
.room-petal.p1{left:7%;top:34%}.room-petal.p2{right:8%;top:62%;width:6px;height:11px}.room-petal.p3{left:13%;top:78%;width:5px;height:9px}

/* page accents */
body.room-home{--room-wash:#fffaf8}
body.room-menu{--room-wash:#fffdfb}
body.room-tea{--room-wash:#fbfcf7}
body.room-gift{--room-wash:#fff9fa}
body.room-rewards{--room-wash:#fffdf7}
body.room-about{--room-wash:#fdfbf8}
body[class*="room-"] main{background:linear-gradient(180deg,var(--room-wash),#fff 38%,var(--room-wash))}
body.room-tea .page-hero,body.room-tea .section.soft{background:linear-gradient(180deg,#fbfdf7,#fff)}
body.room-gift .gift-box{background:linear-gradient(135deg,#fff,#fff2f5)}
body.room-rewards .tier.featured{box-shadow:0 18px 44px rgba(171,135,72,.10)}

/* menu filtering */
.product[hidden]{display:none!important}
.filters button{transition:color .2s,border-color .2s,background .2s}
.filters button:hover{color:var(--rose2)}

/* richer pairing guide */
.pairing-lab{margin-top:42px;background:linear-gradient(135deg,#fbefec,#fff7f5);border-radius:28px;padding:34px;box-shadow:0 15px 45px rgba(80,50,40,.05)}
.pairing-lab-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:26px}
.pairing-lab-head h3{font:500 42px/1 'Cormorant Garamond';margin:0}
.pairing-lab-head p{max-width:520px;color:var(--muted);font-size:12px;line-height:1.7}
.pairing-sweets{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.pairing-sweets button{border:1px solid #ecd9d4;background:#fff;padding:9px 13px;border-radius:999px;color:var(--ink);cursor:pointer;font-size:11px}
.pairing-sweets button.active{background:#d98e91;color:white;border-color:#d98e91}
.pairing-focus{display:grid;grid-template-columns:.9fr 1.1fr;gap:22px}
.pairing-sweet-card,.pairing-tea-card{background:rgba(255,255,255,.84);border:1px solid rgba(160,110,100,.10);border-radius:20px;padding:20px}
.pairing-sweet-card img{width:100%;aspect-ratio:1.65;object-fit:cover;border-radius:14px}
.pairing-sweet-card h4,.pairing-tea-card h4{font:500 28px 'Cormorant Garamond';margin:12px 0 6px}
.pairing-teas{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pairing-tea-card.recommended{box-shadow:inset 0 0 0 1px #dfa19d}
.pair-badge{display:inline-block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;background:#f2d1ce;padding:5px 8px;border-radius:999px}
.flavor-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.flavor-chips span{font-size:9px;background:#f8ebe7;padding:5px 8px;border-radius:999px}
.pairing-note{font-size:12px;line-height:1.7;color:#6f625d}

/* gift sets */
.gift-section{padding:88px 0;background:linear-gradient(180deg,#fff,#fff7f5)}
.gift-intro{display:grid;grid-template-columns:.75fr 1.25fr;gap:38px;align-items:center;margin-bottom:34px}
.gift-intro h2{font-size:58px;margin:0 0 10px}.gift-intro p{color:var(--muted);line-height:1.7}
.gift-intro img{width:100%;border-radius:20px;box-shadow:var(--shadow)}
.gift-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.gift-card{background:#fff;border:1px solid #f0e3df;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px rgba(80,50,40,.05)}
.gift-card img{width:100%;aspect-ratio:1.35;object-fit:cover}.gift-card .body{padding:14px}
.gift-card h3{font-size:22px;margin:0}.gift-card p{font-size:10px;line-height:1.5;color:var(--muted)}
.gift-card .price{margin-top:5px}
.tea-gift-banner{margin-top:22px;padding:28px;border-radius:20px;background:linear-gradient(90deg,#f8e9e5,#fff8f5);display:flex;justify-content:space-between;gap:30px;align-items:center}
.tea-gift-banner h3{font-size:32px;margin:0 0 5px}.tea-gift-banner p{margin:0;color:var(--muted);font-size:12px}

/* tea six-card layout */
.tea-products{grid-template-columns:repeat(3,1fr)!important}

/* motion accessibility */
@media(prefers-reduced-motion:reduce){
  .margin-room .decor,.room-petal{transform:none!important;transition:none!important}
}
@media(max-width:900px){
  .brand{font-size:30px}
  .margin-room .decor{width:115px!important;opacity:.28!important}
  .margin-room .left{left:-46px;top:110px}.margin-room .right{right:-50px}
  .pairing-lab{padding:22px 16px}.pairing-lab-head{display:block}.pairing-lab-head p{margin-top:10px}
  .pairing-focus,.pairing-teas,.gift-intro{grid-template-columns:1fr}
  .gift-grid{grid-template-columns:repeat(2,1fr)}
  .tea-products{grid-template-columns:1fr!important}
}

/* =========================
   V23 · Clean hero + dedicated Gift Sets
   ========================= */
body.room-home .margin-room,
body.room-home .room-petal{display:none!important}
body.room-home main{background:#fff}

.hero{grid-template-columns:.82fr 1.55fr;min-height:620px}
.hero-image{min-height:590px;background-position:center 46%;border-radius:0 0 0 24px}
.hero-copy{padding-right:56px}
.home-category-grid{grid-template-columns:repeat(7,1fr);gap:15px}
.home-category-grid .category-card h3{font-size:22px}

.pairing-showcase{padding:82px 0;background:linear-gradient(180deg,#fff,#fffaf8)}
.pairing-showcase-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:66px;align-items:center}
.pairing-showcase img{width:100%;aspect-ratio:1.35;object-fit:cover;border-radius:22px;box-shadow:var(--shadow)}
.pairing-showcase h2{font-size:58px;line-height:.98;margin-bottom:18px}
.pairing-showcase p{max-width:520px;color:var(--muted);font-size:14px;line-height:1.8}

body.room-tea .split>img{aspect-ratio:1.42;object-fit:cover;object-position:center}
.pairing-visual{display:grid;grid-template-columns:1.25fr .75fr;gap:28px;align-items:stretch;margin-top:52px;padding:0}
.pairing-visual img{width:100%;height:100%;min-height:350px;object-fit:cover;border-radius:22px;box-shadow:var(--shadow)}
.pairing-visual-copy{background:#fff7f4;border:1px solid #f0dfda;border-radius:22px;padding:38px;display:flex;flex-direction:column;justify-content:center}
.pairing-visual-copy h3{font:500 40px/1 'Cormorant Garamond';margin:0 0 14px}
.pairing-visual-copy p{font-size:13px;line-height:1.8;color:var(--muted)}

body.room-giftsets{--room-wash:#fff9fa}
body.room-giftsets main{background:linear-gradient(180deg,#fffaf9,#fff 45%,#fff9fa)}
body.room-giftsets .margin-room .decor{opacity:.32;width:190px}
.giftsets-hero{background:linear-gradient(180deg,#fff9f9,#fff)}
.giftsets-hero p{max-width:620px;margin:0 auto;line-height:1.8}
.gift-grid-page{grid-template-columns:repeat(5,1fr)}
.gift-grid-page .gift-card .add{margin-top:12px}
.giftset-customizer{display:grid;grid-template-columns:.65fr 1.35fr;gap:56px;align-items:start}
.giftset-customizer h2{font-size:58px;line-height:1;margin:0 0 16px}
.giftset-customizer>div:first-child p{color:var(--muted);line-height:1.8}
.tea-addon-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.tea-addon{display:block;cursor:pointer}
.tea-addon input{position:absolute;opacity:0;pointer-events:none}
.tea-addon span{display:grid;grid-template-columns:1fr auto;gap:4px 18px;padding:18px 20px;border:1px solid #ecdeda;border-radius:16px;background:#fff;transition:.2s}
.tea-addon b{font-family:'Cormorant Garamond';font-size:22px;font-weight:500}
.tea-addon small{grid-column:1;color:var(--muted)}
.tea-addon em{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;color:#b87372}
.tea-addon input:checked+span{background:#fff0ef;border-color:#d99c98;box-shadow:0 8px 25px rgba(150,90,80,.08)}

@media(max-width:1100px){
  .home-category-grid{grid-template-columns:repeat(4,1fr)}
  .gift-grid-page{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .hero{grid-template-columns:1fr}
  .hero-image{min-height:420px;border-radius:18px;background-position:62% center}
  .home-category-grid{grid-template-columns:repeat(2,1fr)}
  .pairing-showcase-grid,.pairing-visual,.giftset-customizer{grid-template-columns:1fr}
  .gift-grid-page{grid-template-columns:repeat(2,1fr)}
  .tea-addon-grid{grid-template-columns:1fr}
}

/* =========================
   V24 · Layout cleanup
   ========================= */

/* Home hero: slightly smaller image, more breathing room */
body.room-home .hero{
  grid-template-columns:minmax(390px,.95fr) minmax(560px,1.28fr);
  gap:32px;
  min-height:560px;
  align-items:center;
}
body.room-home .hero-copy{
  padding:68px 18px 58px 0;
}
body.room-home .hero-image{
  min-height:500px;
  max-height:540px;
  border-radius:22px;
  background-size:cover;
  background-position:center;
  box-shadow:0 18px 50px rgba(65,43,34,.08);
}
body.room-home .hero-image:after{
  background:linear-gradient(90deg,rgba(255,255,255,.03),transparent 25%);
}

/* Discover section: categories and features are two distinct rows */
.discover-section .section-head{
  max-width:850px;
  margin:0 auto 46px;
  text-align:center;
}
.home-category-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:18px;
  align-items:start;
  width:100%;
}
.home-category-grid .category-card{
  min-width:0;
}
.home-category-grid .category-card img{
  width:100%;
  aspect-ratio:1.18;
  object-fit:cover;
}
.home-category-grid .category-card h3{
  font-size:21px;
  line-height:1.05;
  margin-top:13px;
}
.home-category-grid .category-card p{
  min-height:34px;
}

.home-features{
  width:min(760px,100%);
  margin:68px auto 0;
  padding-top:36px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:42px;
  align-items:start;
}
.home-features .feature{
  text-align:center;
  padding:0 12px;
}
.home-features .feature .icon{
  line-height:1;
  min-height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.home-features .feature h4{
  font-size:24px;
  line-height:1.05;
  margin:10px auto 8px;
}
.home-features .feature p{
  font-size:12px;
  line-height:1.55;
  max-width:190px;
  margin:0 auto;
}

/* High quality pairing block: no squeeze/cropping */
.pairing-showcase-grid{
  grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);
  gap:72px;
}
.pairing-showcase img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:center;
  border-radius:20px;
  image-rendering:auto;
}
body.room-tea .pairing-visual img{
  aspect-ratio:16/10;
  min-height:0;
  object-fit:cover;
  object-position:center;
  image-rendering:auto;
}

/* Menu & Tea: no floating margin art */
body.room-menu .margin-room,
body.room-menu .room-petal,
body.room-tea .margin-room,
body.room-tea .room-petal{
  display:none!important;
}

/* Desktop centering */
@media(min-width:1101px){
  .discover-section .shell{max-width:1420px}
}

/* Responsive */
@media(max-width:1100px){
  body.room-home .hero{
    grid-template-columns:1fr 1.25fr;
    gap:22px;
  }
  .home-category-grid{
    grid-template-columns:repeat(4,1fr);
  }
}
@media(max-width:900px){
  body.room-home .hero{
    grid-template-columns:1fr;
    gap:0;
  }
  body.room-home .hero-copy{
    padding:54px 0 30px;
  }
  body.room-home .hero-image{
    min-height:360px;
    max-height:none;
  }
  .home-category-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .home-features{
    grid-template-columns:1fr;
    gap:28px;
    margin-top:48px;
  }
  .pairing-showcase-grid{
    grid-template-columns:1fr;
    gap:32px;
  }
}

/* =========================
   V25 · HQ Pairing Photography
   ========================= */
.pairing-showcase,
.pairing-visual{
  overflow:hidden;
  border-radius:22px;
}
.pairing-showcase img,
body.room-tea .pairing-visual img{
  display:block;
  width:100%;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  filter:none!important;
  image-rendering:auto;
}
.pairing-showcase:before,
.pairing-showcase:after,
.pairing-visual:before,
.pairing-visual:after{
  display:none!important;
  content:none!important;
}
@media(min-width:901px){
  .pairing-showcase-grid{
    align-items:center;
  }
  .pairing-showcase{
    align-self:center;
  }
}

/* =========================
   V26 · Clean all pages + expanded pairings
   ========================= */

/* Absolutely no margin decoration imagery on any page */
.margin-room,
.room-petal,
[class*="room-"] .margin-room,
[class*="room-"] .room-petal{
  display:none!important;
}

/* Keep page edges clean, no decorative overflow */
body{overflow-x:hidden}
main{position:relative;z-index:1}

/* Gift set images: natural photo ratio and no squash */
.gift-card img{
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
  object-position:center;
  height:auto;
}

/* Rewards / Menu feature imagery stays natural */
body.room-rewards .split>img,
body.room-menu .split img{
  width:100%;
  height:auto;
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:center;
}

/* Expanded pairing options: 3 or 4 cards fit cleanly */
.pairing-teas{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-content:start;
}
.pairing-teas[data-count="3"]{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.pairing-teas[data-count="4"]{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.pairing-tea-card{
  min-width:0;
  min-height:205px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.pairing-tea-card h4{
  margin-top:12px;
}
.pairing-tea-card .pairing-note{
  flex:1;
}
@media(min-width:1250px){
  .pairing-focus{
    grid-template-columns:.72fr 1.28fr;
  }
  .pairing-teas[data-count="4"]{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .pairing-teas[data-count="3"]{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:900px){
  .pairing-teas,
  .pairing-teas[data-count="3"],
  .pairing-teas[data-count="4"]{
    grid-template-columns:1fr;
  }
}

/* =========================
   V27 · MOBILE READY
   ========================= */

/* mobile utility nav */
.mobile-drawer{
  position:fixed;
  inset:0;
  z-index:120;
  pointer-events:none;
  visibility:hidden;
}
.mobile-drawer.open{
  pointer-events:auto;
  visibility:visible;
}
.mobile-drawer-backdrop{
  position:absolute;
  inset:0;
  background:rgba(45,30,25,.28);
  opacity:0;
  transition:opacity .25s ease;
}
.mobile-drawer.open .mobile-drawer-backdrop{opacity:1}
.mobile-drawer-panel{
  position:absolute;
  top:0;
  left:0;
  width:min(86vw,380px);
  height:100%;
  background:#fffdfb;
  padding:22px 22px 30px;
  box-shadow:18px 0 50px rgba(50,30,20,.12);
  transform:translateX(-102%);
  transition:transform .28s ease;
  overflow:auto;
}
.mobile-drawer.open .mobile-drawer-panel{transform:translateX(0)}
.mobile-drawer-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.mobile-drawer-brand{
  font:600 28px/1 'Cormorant Garamond',serif;
}
.mobile-drawer-brand small{
  display:block;
  font:500 8px/1.5 Inter;
  letter-spacing:.18em;
  color:#9c817a;
  margin-top:5px;
}
.mobile-drawer-close{
  border:0;
  background:none;
  font-size:28px;
  line-height:1;
  padding:6px;
  cursor:pointer;
}
.mobile-drawer-links{
  display:grid;
  gap:2px;
  padding:18px 0;
}
.mobile-drawer-links a{
  text-decoration:none;
  color:var(--ink);
  font-family:'Cormorant Garamond',serif;
  font-size:27px;
  padding:11px 4px;
  border-bottom:1px solid rgba(80,50,40,.07);
}
.mobile-drawer-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:18px;
}
.mobile-drawer-actions a{
  text-decoration:none;
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:999px;
  padding:11px 14px;
  text-align:center;
  font-size:13px;
}
body.mobile-nav-open{overflow:hidden}

/* tablet */
@media(max-width:1100px){
  .shell{max-width:100%;padding-left:24px;padding-right:24px}
  .navlinks{gap:16px}
  .nav a{font-size:12px}
  .brand{font-size:31px}
  .products{grid-template-columns:repeat(2,1fr)}
  .gift-grid,.gift-grid-page{grid-template-columns:repeat(2,1fr)!important}
  .tier-grid{grid-template-columns:repeat(3,1fr)}
}

/* phone */
@media(max-width:900px){
  html{scroll-padding-top:74px}
  .topbar{
    font-size:9px;
    letter-spacing:.13em;
    padding:7px 12px;
  }
  .header{
    height:66px;
    position:sticky;
    top:0;
  }
  .shell{padding-left:18px;padding-right:18px}
  .nav{
    display:grid;
    grid-template-columns:42px 1fr 42px;
    padding:0!important;
  }
  .nav .brand{
    justify-self:center;
    font-size:25px;
    white-space:nowrap;
  }
  .nav .brand small{
    font-size:6px;
    letter-spacing:.14em;
  }
  .mobilemenu{
    display:block;
    font-size:0;
    width:38px;
    height:38px;
    position:relative;
    border-radius:50%;
  }
  .mobilemenu:before,
  .mobilemenu:after,
  .mobilemenu{
    color:var(--ink);
  }
  .mobilemenu:before{
    content:"";
    position:absolute;
    left:8px;right:8px;top:13px;
    height:1px;background:currentColor;
    box-shadow:0 7px 0 currentColor;
  }
  .navlinks{display:none!important}
  .nav>.cart{
    display:block!important;
    justify-self:end;
    font-size:0;
    width:38px;height:38px;
  }
  .nav>.cart:before{
    content:"Bag";
    font-size:11px;
    position:absolute;
    right:2px;top:11px;
  }
  .nav>.cart .badge{top:0;right:-4px}

  /* Typography */
  .eyebrow{font-size:9px;letter-spacing:.26em;margin-bottom:16px}
  .section{padding:58px 0}
  .section h2,.split h2,.giftset-customizer h2{
    font-size:40px!important;
    line-height:1!important;
  }
  .page-hero{padding:54px 18px 30px}
  .page-hero h1{font-size:48px}
  .page-hero p{font-size:13px}

  /* Home */
  body.room-home .hero,
  .hero{
    display:flex!important;
    flex-direction:column;
    gap:0!important;
    min-height:0!important;
  }
  body.room-home .hero-copy,
  .hero-copy{
    padding:46px 0 28px!important;
  }
  .hero h1{
    font-size:50px!important;
    line-height:.93!important;
    margin-bottom:20px;
  }
  .hero p{font-size:14px;line-height:1.7}
  body.room-home .hero-image,
  .hero-image{
    min-height:0!important;
    height:auto!important;
    aspect-ratio:4/3;
    border-radius:18px!important;
    background-position:center!important;
    margin-bottom:10px;
  }

  .discover-section .section-head{
    margin-bottom:30px;
  }
  .home-category-grid,
  .category-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px 12px!important;
  }
  .category-card img{
    aspect-ratio:1/1!important;
    border-radius:10px;
  }
  .category-card h3,
  .home-category-grid .category-card h3{
    font-size:19px!important;
    margin-top:10px;
  }
  .category-card p{
    font-size:8px!important;
    line-height:1.45;
  }
  .home-features{
    grid-template-columns:1fr!important;
    gap:24px!important;
    width:100%;
    margin-top:44px!important;
  }
  .home-features .feature{
    padding:0 28px 22px!important;
    border-bottom:1px solid rgba(80,50,40,.08);
  }

  /* Products / menu / tea */
  .filters{
    justify-content:flex-start;
    gap:10px;
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:6px;
    margin:10px 0 28px;
    scrollbar-width:none;
  }
  .filters::-webkit-scrollbar{display:none}
  .filters button{
    flex:0 0 auto;
    padding:9px 11px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#fff;
  }
  .filters button.active{
    background:#fff0ee;
    border-color:#d99c98;
  }
  .products,
  .tea-products{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .product img{
    aspect-ratio:4/3!important;
  }
  .product-body{padding:16px}
  .product h3{font-size:24px}
  .product-actions{
    justify-content:space-between;
    flex-wrap:wrap;
  }
  .product-actions .add{
    flex:1;
    min-width:130px;
  }

  /* Generic two-column sections */
  .split,
  .pairing-showcase-grid,
  .pairing-focus,
  .pairing-visual,
  .gift-intro,
  .giftset-customizer{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .split>img,
  .pairing-showcase img,
  .pairing-visual img{
    order:-1;
    width:100%;
    aspect-ratio:4/3!important;
    object-fit:cover!important;
    border-radius:16px!important;
  }

  /* Pairing guide */
  .pairing-lab{
    margin-top:28px;
    padding:22px 14px!important;
    border-radius:20px;
  }
  .pairing-lab-head{
    display:block!important;
    margin-bottom:18px;
  }
  .pairing-lab-head h3{font-size:34px!important}
  .pairing-sweets{
    flex-wrap:nowrap!important;
    overflow-x:auto;
    padding-bottom:6px;
    scrollbar-width:none;
  }
  .pairing-sweets::-webkit-scrollbar{display:none}
  .pairing-sweets button{flex:0 0 auto}
  .pairing-sweet-card{padding:14px}
  .pairing-sweet-card h4{font-size:26px}
  .pairing-teas,
  .pairing-teas[data-count="3"],
  .pairing-teas[data-count="4"]{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .pairing-tea-card{min-height:0!important;padding:16px}
  .pairing-tea-card h4{font-size:25px}

  /* Gift sets */
  .gift-grid,
  .gift-grid-page{
    grid-template-columns:1fr!important;
    gap:16px!important;
  }
  .gift-card img{
    aspect-ratio:3/2!important;
  }
  .gift-card .body{padding:16px}
  .tea-addon-grid{grid-template-columns:1fr!important}
  .tea-gift-banner{
    display:block!important;
    padding:22px!important;
  }
  .tea-gift-banner .btn{margin-top:18px}

  /* Rewards tiers */
  .tier-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .tier.featured{
    transform:none!important;
  }
  .points{font-size:48px}

  /* Footer */
  .footer{
    margin-top:52px;
    padding:42px 0 26px;
  }
  .footergrid{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .footergrid>div:not(:first-child){
    padding-top:18px;
    border-top:1px solid rgba(100,70,60,.1);
  }
  .copyright{
    font-size:8px;
    letter-spacing:.12em;
    line-height:1.7;
  }

  /* Dialog */
  .modalbox{
    width:calc(100vw - 28px);
    max-height:90vh;
    overflow:auto;
    padding:24px;
    border-radius:18px;
  }
}

/* small phones */
@media(max-width:480px){
  .shell{padding-left:14px;padding-right:14px}
  .hero h1{font-size:44px!important}
  .home-category-grid,.category-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px 10px!important;
  }
  .category-card h3,
  .home-category-grid .category-card h3{font-size:17px!important}
  .btn{font-size:17px;padding:12px 19px}
}

/* =========================
   V28 · Gift Cards + Secret Menus
   ========================= */
.giftcard-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.giftcard-option{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(80,50,40,.05);
}
.giftcard-option img{
  display:block;
  width:100%;
  aspect-ratio:1.45;
  object-fit:cover;
}
.giftcard-body{padding:18px}
.giftcard-body h3{
  font-size:26px;
  margin:0 0 4px;
}
.giftcard-body p{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.11em;
  color:#9c817a;
}
.giftcard-custom{
  grid-column:1/-1;
  background:linear-gradient(135deg,#fff,#fff4f3);
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px;
  display:flex;
  justify-content:space-between;
  gap:28px;
  align-items:center;
}
.giftcard-custom h3{font-size:30px;margin:0 0 6px}
.giftcard-custom p{font-size:12px;color:var(--muted);margin:0}
.custom-amount-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:min(100%,430px);
}
.custom-amount-row input{
  flex:1;
  min-width:0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  font:inherit;
}
.giftcard-benefits{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
  margin-top:44px;
  padding-top:32px;
  border-top:1px solid var(--line);
}
.giftcard-benefits>div{text-align:center}
.giftcard-benefits span{font-size:24px}
.giftcard-benefits h4{font:500 24px 'Cormorant Garamond';margin:10px 0 4px}
.giftcard-benefits p{font-size:11px;color:var(--muted)}
.instagram-banner{
  margin-top:44px;
  padding:28px 30px;
  border-radius:20px;
  background:linear-gradient(90deg,#fff7f5,#fff);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.instagram-banner h3{font-size:30px;margin:0 0 6px}
.instagram-banner p{font-size:12px;color:var(--muted);margin:0}

.secret-access-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  background:linear-gradient(135deg,#fff7f3,#fff);
  border:1px solid #eadbd6;
  border-radius:22px;
  padding:30px;
  box-shadow:0 12px 36px rgba(80,50,40,.05);
}
.secret-access-tier{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:#f6dedb;
  color:#9f615f;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.secret-access-card h3{
  font-size:36px;
  margin:10px 0 5px;
}
.secret-access-card p{font-size:13px;color:var(--muted);max-width:580px}
.secret-tier-preview{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:12px;
  margin-top:18px;
}
.secret-tier-preview>div{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:16px;
}
.secret-tier-preview span{
  display:block;
  font:500 21px 'Cormorant Garamond';
}
.secret-tier-preview small{color:var(--muted);line-height:1.4}

.secret-menu-page main{
  background:linear-gradient(180deg,#fffaf8,#fff);
}
.secret-hero{
  padding:90px 0 50px;
  text-align:center;
}
.secret-hero h1{
  font:500 64px/.95 'Cormorant Garamond';
  margin:0 0 16px;
}
.secret-hero p{
  max-width:700px;
  margin:0 auto;
  color:var(--muted);
  line-height:1.7;
}
.secret-products{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.secret-product{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(80,50,40,.05);
}
.secret-product img{
  width:100%;
  aspect-ratio:1.35;
  object-fit:cover;
}
.secret-product-body{padding:20px}
.secret-product-body h3{font-size:28px;margin:0 0 4px}
.secret-product-body p{font-size:12px;line-height:1.65;color:var(--muted)}
.secret-product-body .add{margin-top:12px}

@media(max-width:900px){
  .giftcard-grid{grid-template-columns:1fr}
  .giftcard-custom{display:block}
  .custom-amount-row{margin-top:16px;min-width:0}
  .giftcard-benefits{grid-template-columns:1fr;gap:18px}
  .instagram-banner{display:block}
  .instagram-banner .btn{margin-top:18px}
  .secret-access-card{display:block}
  .secret-access-card .btn{margin-top:18px}
  .secret-tier-preview{grid-template-columns:1fr 1fr}
  .secret-products{grid-template-columns:1fr}
  .secret-hero{padding:58px 0 30px}
  .secret-hero h1{font-size:46px}
}
@media(max-width:480px){
  .secret-tier-preview{grid-template-columns:1fr}
}

/* =========================
   V29 · Shopping polish
   ========================= */

/* Quick Pairing Guide: compact in-card add buttons */
.pair-add{
  width:100%;
  margin-top:16px;
  border:0;
  background:#cf8f90;
  color:#fff;
  border-radius:999px;
  padding:9px 12px;
  font:500 12px Inter,sans-serif;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease;
}
.pair-add:hover{transform:translateY(-1px);background:#bd797c}
.flavor-chips .pair-add{
  flex-basis:100%;
}
.sweet-add{
  margin-top:14px;
}

/* Gift Set cards: keep every Add to Bag button on the same baseline */
.gift-card{
  display:flex!important;
  flex-direction:column!important;
  height:100%;
}
.gift-card .body,
.gift-card .gift-card-body{
  display:flex!important;
  flex-direction:column!important;
  flex:1!important;
}
.gift-card .body .btn,
.gift-card .body .add,
.gift-card .gift-card-body .btn,
.gift-card .gift-card-body .add{
  margin-top:auto!important;
  align-self:flex-start;
}
.gift-grid,.gift-grid-page{
  align-items:stretch!important;
}
.gift-grid>*,
.gift-grid-page>*{
  height:100%;
}

/* Gift cards are now genuinely distinct visual treatments */
.giftcard-option img{
  aspect-ratio:1.54!important;
  object-fit:cover!important;
  background:#fffaf7;
}
.giftcard-option:nth-child(1){box-shadow:0 12px 34px rgba(191,120,130,.08)}
.giftcard-option:nth-child(2){box-shadow:0 12px 34px rgba(185,150,81,.08)}
.giftcard-option:nth-child(3){box-shadow:0 12px 34px rgba(105,140,111,.08)}
.giftcard-option:nth-child(4){box-shadow:0 12px 34px rgba(115,110,165,.08)}

/* Bag drawer */
.cart-drawer-v29{
  position:fixed;
  inset:0;
  z-index:250;
  pointer-events:none;
  visibility:hidden;
}
.cart-drawer-v29.open{
  pointer-events:auto;
  visibility:visible;
}
.cart-backdrop-v29{
  position:absolute;inset:0;
  background:rgba(50,34,28,.26);
  opacity:0;transition:.24s;
}
.cart-drawer-v29.open .cart-backdrop-v29{opacity:1}
.cart-panel-v29{
  position:absolute;
  top:0;right:0;
  width:min(430px,92vw);
  height:100%;
  background:#fffdfb;
  box-shadow:-18px 0 60px rgba(50,30,20,.13);
  transform:translateX(102%);
  transition:transform .28s ease;
  display:flex;
  flex-direction:column;
}
.cart-drawer-v29.open .cart-panel-v29{transform:translateX(0)}
.cart-head-v29{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  padding:28px 24px 20px;
  border-bottom:1px solid var(--line);
}
.cart-head-v29 h3{font-size:34px;margin:2px 0 0}
.cart-close-v29{
  border:0;background:none;font-size:28px;cursor:pointer;
}
.cart-items-v29{
  flex:1;
  overflow:auto;
  padding:10px 24px;
}
.cart-line-v29{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  padding:18px 28px 18px 0;
  border-bottom:1px solid rgba(80,50,40,.08);
}
.cart-line-copy-v29 h4{
  font:500 21px 'Cormorant Garamond';
  margin:0 0 4px;
}
.cart-line-copy-v29 span{font-size:12px;color:var(--muted)}
.cart-qty-v29{
  display:flex;align-items:center;
  border:1px solid var(--line);
  border-radius:999px;
  overflow:hidden;
  align-self:center;
}
.cart-qty-v29 button,.cart-qty-v29 span{
  border:0;background:#fff;padding:6px 9px;font-size:12px;
}
.cart-qty-v29 button{cursor:pointer}
.cart-remove-v29{
  position:absolute;right:0;top:20px;
  border:0;background:none;color:#9d8078;font-size:18px;cursor:pointer;
}
.cart-footer-v29{
  padding:20px 24px 26px;
  border-top:1px solid var(--line);
  background:#fffaf8;
}
.cart-subtotal-v29{
  display:flex;justify-content:space-between;
  margin-bottom:12px;font-size:14px;
}
.cart-footer-v29 .btn{
  width:100%;justify-content:center;margin-top:10px;
}
.cart-footer-v29 small{
  display:block;margin-top:12px;color:var(--muted);
  font-size:10px;line-height:1.5;text-align:center;
}
.cart-empty-v29{
  text-align:center;padding:70px 20px;color:var(--muted);
}
.cart-empty-v29 span{font-size:32px}
.cart-empty-v29 h4{font:500 27px 'Cormorant Garamond';margin:12px 0 6px}
.cart-empty-v29 p{font-size:12px}
body.cart-open-v29{overflow:hidden}

/* Ensure clean Gift Card hero image has no accidental lower UI strip */
body.room-giftcard .split img,
.gift-card-hero img{
  object-fit:cover!important;
  object-position:center!important;
}

@media(max-width:900px){
  .pair-add{font-size:11px;padding:9px 10px}
  .cart-panel-v29{width:min(390px,94vw)}
}

/* =========================
   V30 · Checkout choices, reservations, contact, visit
   ========================= */
.checkout-options-v30{
  position:fixed;inset:0;z-index:320;display:none;align-items:center;justify-content:center;padding:22px;
}
.checkout-options-v30.open{display:flex}
.checkout-options-backdrop{position:absolute;inset:0;background:rgba(44,30,25,.38);backdrop-filter:blur(4px)}
.checkout-options-box{
  position:relative;width:min(980px,96vw);background:#fffdfb;border-radius:26px;padding:38px;box-shadow:0 30px 90px rgba(40,25,20,.18)
}
.checkout-options-close{position:absolute;right:22px;top:18px;border:0;background:none;font-size:28px;cursor:pointer}
.checkout-options-box h2{font-size:48px;margin:0 0 10px}
.checkout-options-intro{color:var(--muted);max-width:700px;line-height:1.7}
.checkout-option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.checkout-option-card{
  text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;transition:.2s;min-height:230px
}
.checkout-option-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(80,50,40,.08)}
.checkout-option-card>span{font-size:10px;letter-spacing:.18em;color:#b87979}
.checkout-option-card h3{font-size:29px;margin:15px 0 8px}
.checkout-option-card p{font-size:12px;line-height:1.65;color:var(--muted)}
.checkout-option-card strong{display:block;margin-top:24px;color:#b56769;font-size:12px}

.reservation-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.reservation-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 14px 40px rgba(80,50,40,.05)}
.reservation-card h2{font-size:40px;margin:0 0 18px}
.reservation-cart article{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid rgba(80,50,40,.08)}
.reservation-cart h4{font:500 22px 'Cormorant Garamond';margin:0 0 4px}.reservation-cart span{font-size:11px;color:var(--muted)}
.reservation-total{display:flex;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:14px}
.reservation-form{display:grid;gap:14px}.reservation-form label{display:grid;gap:6px;font-size:11px;letter-spacing:.06em;color:#6f625d}
.reservation-form input,.reservation-form textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 13px;font:inherit;background:#fff}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fulfillment-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fulfillment-choice button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:11px;cursor:pointer}
.fulfillment-choice button.active{background:#f5d9d7;border-color:#d99a99;color:#80504e}
.form-note{font-size:10px!important;color:var(--muted)!important;line-height:1.5!important;margin:0}
.reservation-submit{width:100%;justify-content:center}
.reservation-success{text-align:center;padding:60px 10px}.reservation-success h3{font-size:42px;margin:8px 0}
.reservation-empty{text-align:center;padding:40px 10px;color:var(--muted)}

.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.contact-card{text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;text-align:center;transition:.2s}
.contact-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(80,50,40,.08)}
.contact-card>span{font-size:30px}.contact-card h3{font-size:31px;margin:12px 0 5px}.contact-card p{color:var(--muted)}.contact-card strong{font-size:12px;color:#b56769}
.contact-note{margin-top:30px;display:flex;justify-content:space-between;align-items:center;gap:22px;background:#fff8f6;border-radius:20px;padding:26px 30px}
.contact-note h2{font-size:38px;margin:0 0 4px}.contact-note p{margin:0;color:var(--muted)}

.visit-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:30px;align-items:stretch}
.visit-info{background:#fff8f6;border-radius:22px;padding:32px}.visit-info h2{font-size:43px;margin:0 0 8px}.visit-address{line-height:1.7;color:var(--muted)}
.visit-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.location-status{font-size:11px;line-height:1.6;color:var(--muted);margin-top:18px}
.route-info{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.route-info>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:12px}.route-info p{font-size:11px;color:var(--muted);line-height:1.6}
.map-card{min-height:480px;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.map-card iframe{width:100%;height:100%;min-height:480px;border:0}

.admin-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.admin-toolbar p{font-size:11px;color:var(--muted)}
.admin-reservations{display:grid;gap:16px}.admin-reservation-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}
.admin-reservation-head{display:flex;justify-content:space-between;gap:24px}.admin-reservation-head h3{font-size:28px;margin:7px 0 3px}.admin-reservation-head p{margin:0;color:var(--muted);font-size:11px}
.admin-status{display:inline-flex;background:#f5d9d7;color:#8e5a58;border-radius:999px;padding:5px 9px;font-size:9px;text-transform:uppercase;letter-spacing:.1em}
.admin-reservation-time{text-align:right;display:grid;gap:5px;font-size:12px}.admin-reservation-time span{color:var(--muted)}
.admin-address,.admin-notes{font-size:11px;color:var(--muted);background:#fff8f5;padding:10px;border-radius:10px}
.admin-items{margin-top:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0}.admin-items>div,.admin-total{display:flex;justify-content:space-between;padding:6px 0;font-size:12px}
.admin-total{font-size:14px;padding-top:12px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.admin-actions button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}
.admin-empty{text-align:center;padding:60px;background:#fff;border-radius:18px;color:var(--muted)}

@media(max-width:900px){
  .checkout-options-box{padding:28px 18px}.checkout-options-box h2{font-size:38px}.checkout-option-grid{grid-template-columns:1fr}
  .reservation-layout,.visit-layout{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr}.form-two{grid-template-columns:1fr}
  .contact-note,.admin-toolbar,.admin-reservation-head{display:block}.contact-note .btn,.admin-toolbar .btn{margin-top:18px}
  .admin-reservation-time{text-align:left;margin-top:12px}.map-card,.map-card iframe{min-height:360px}
}

/* V31 · Visit distance/ETA display */
.route-info>div{
  padding:10px 0;
  border-bottom:1px solid rgba(80,50,40,.06);
}
.route-info>div:last-of-type{border-bottom:0}
.route-info>div span{
  color:var(--muted);
  font-size:12px;
}
.route-info>div strong{
  font:600 20px 'Cormorant Garamond',serif;
}
.route-live-note{
  margin-top:14px!important;
}

/* =========================
   V32 · Delivery notice + Rewards state
   ========================= */
.delivery-notice-v32{
  position:fixed;
  inset:0;
  z-index:360;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.delivery-notice-v32.open{display:flex}
.delivery-notice-backdrop{
  position:absolute;
  inset:0;
  background:rgba(45,30,25,.36);
  backdrop-filter:blur(4px);
}
.delivery-notice-box{
  position:relative;
  width:min(560px,94vw);
  background:#fffdfb;
  border-radius:24px;
  padding:34px;
  box-shadow:0 30px 90px rgba(40,25,20,.18);
  text-align:center;
}
.delivery-notice-close{
  position:absolute;
  top:14px;
  right:18px;
  border:0;
  background:none;
  font-size:28px;
  cursor:pointer;
}
.delivery-notice-box h2{
  font-size:42px;
  line-height:1;
  margin:8px 0 14px;
}
.delivery-notice-box p{
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
  max-width:430px;
  margin:0 auto;
}
.delivery-notice-actions{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:24px;
  flex-wrap:wrap;
}
.delivery-notice-actions .btn{margin-top:0}

.rewards-current-tier{
  margin-top:24px;
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#9a7971;
}
.rewards-current-tier strong{
  color:var(--ink);
  font-size:12px;
}
.rewards-next{
  font-size:12px!important;
  color:var(--muted);
}
.tier.featured{
  background:#fff2ef!important;
  border-color:#e9bab6!important;
  box-shadow:0 16px 38px rgba(171,104,104,.10);
}

@media(max-width:900px){
  .delivery-notice-box{padding:30px 20px}
  .delivery-notice-box h2{font-size:36px}
  .delivery-notice-actions{display:grid}
}

/* =========================
   V33 · Welcome Intro
   ========================= */
.satomi-intro{
  position:fixed;
  inset:0;
  z-index:1000;
  overflow:hidden;
  background:#2e211c;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:1;
  visibility:visible;
  transition:opacity .6s ease, visibility .6s ease;
}
.satomi-intro.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.satomi-intro-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.satomi-intro-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(35,24,20,.18),rgba(35,24,20,.28)),
    linear-gradient(90deg,rgba(45,28,22,.24),rgba(45,28,22,.04) 55%,rgba(45,28,22,.14));
}
.satomi-intro-content{
  position:relative;
  z-index:2;
  width:min(900px,88vw);
  color:#fffaf7;
  text-align:center;
  text-shadow:0 3px 24px rgba(42,25,20,.24);
  animation:satomiIntroRise .95s ease both;
}
.satomi-intro-kicker{
  font:500 11px/1.4 Inter,sans-serif;
  letter-spacing:.34em;
  margin-bottom:22px;
  opacity:.9;
}
.satomi-intro-content h1{
  font:500 clamp(62px,8vw,118px)/.86 'Cormorant Garamond',Georgia,serif;
  margin:0;
  letter-spacing:-.025em;
}
.satomi-intro-content p{
  font:500 16px/1.5 'Cormorant Garamond',Georgia,serif;
  letter-spacing:.08em;
  margin-top:24px;
  opacity:.92;
}
.satomi-intro-skip{
  position:absolute;
  z-index:3;
  top:28px;
  right:32px;
  border:1px solid rgba(255,255,255,.52);
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
  color:#fff;
  border-radius:999px;
  padding:10px 18px;
  font:500 12px Inter,sans-serif;
  letter-spacing:.08em;
  cursor:pointer;
}
.satomi-intro-hint{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  color:rgba(255,255,255,.78);
  font:500 10px Inter,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  white-space:nowrap;
}
@keyframes satomiIntroRise{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}
body.satomi-intro-open{
  overflow:hidden;
}
@media(max-width:900px){
  .satomi-intro-content{width:88vw}
  .satomi-intro-kicker{font-size:9px;letter-spacing:.26em}
  .satomi-intro-content h1{font-size:clamp(52px,16vw,78px)}
  .satomi-intro-content p{font-size:15px}
  .satomi-intro-skip{top:18px;right:18px}
  .satomi-intro-hint{bottom:20px;font-size:9px}
  .satomi-intro-video{object-position:center}
}
@media(prefers-reduced-motion:reduce){
  .satomi-intro-content{animation:none}
  .satomi-intro{transition:none}
}

/* =========================
   V34 · Satomi Oven Logo + Favicon
   ========================= */
.brand-lockup{
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.brand-mark{
  width:34px;
  height:34px;
  object-fit:contain;
  flex:0 0 auto;
}
.header .brand-lockup>span{
  display:inline-block;
}
.header .brand-mark{
  width:31px;
  height:31px;
}
.footer .brand-mark{
  width:38px;
  height:38px;
}
@media(max-width:900px){
  .header .brand-mark{
    width:25px;
    height:25px;
  }
  .brand-lockup{gap:6px}
}

/* V35 Artisan Intro */
.satomi-intro{width:100vw!important;height:100dvh!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#2c1f19!important;}
.satomi-intro-video{position:absolute!important;inset:-3px!important;width:calc(100% + 6px)!important;height:calc(100% + 6px)!important;min-width:calc(100% + 6px)!important;min-height:calc(100% + 6px)!important;object-fit:cover!important;object-position:center!important;display:block!important;background:#2c1f19!important;transform:scale(1.008);}
.satomi-intro-content-v35{display:none!important;}
html,body{max-width:100%;}
@media(max-width:900px){.satomi-intro-video{transform:scale(1.015)}.satomi-intro-skip{top:18px!important;right:18px!important}}

/* =========================
   V36 · Diverse Wagashi + Build Your Own
   ========================= */
.giftsets-v36-hero{
  background:linear-gradient(90deg,#fff8f5,#fff);
  padding:44px 0;
}
.giftsets-v36-hero-grid{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:34px;
  align-items:center;
}
.giftsets-v36-copy h1{
  font:500 68px/.92 'Cormorant Garamond';
  margin:0 0 18px;
}
.giftsets-v36-copy p{
  color:var(--muted);
  max-width:470px;
  line-height:1.7;
}
.giftsets-v36-hero img{
  width:100%;
  aspect-ratio:16/7;
  object-fit:cover;
  border-radius:22px;
  box-shadow:var(--shadow);
}
.gift-grid-v36{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.gift-v36-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 12px 34px rgba(80,50,40,.05);
  display:flex;
  flex-direction:column;
}
.gift-v36-card img{
  width:100%;
  aspect-ratio:1.38;
  object-fit:cover;
}
.gift-v36-body{
  padding:18px;
  display:flex;
  flex-direction:column;
  flex:1;
  position:relative;
}
.gift-v36-body>div:first-child{
  padding-right:58px;
}
.gift-v36-body h3{
  font-size:27px;
  margin:0;
}
.gift-v36-body>div:first-child span{
  font-size:11px;
  color:var(--muted);
}
.gift-v36-body>strong{
  position:absolute;
  right:18px;
  top:21px;
  font-size:14px;
}
.gift-v36-body p{
  font-size:12px;
  line-height:1.6;
  color:var(--muted);
}
.pair-line{
  background:#fbf2ef;
  border-radius:12px;
  padding:10px 11px;
  margin:2px 0 14px;
  font-size:10px;
  color:#826c65;
}
.gift-v36-body .add{
  margin-top:auto;
  width:100%;
}
.build-gift-v36{
  display:grid;
  grid-template-columns:1.5fr .7fr;
  gap:28px;
  align-items:start;
}
.build-panel-v36,
.build-summary-v36{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:26px;
}
.build-summary-v36{
  position:sticky;
  top:100px;
}
.build-step{
  display:flex;
  gap:13px;
  align-items:flex-start;
  padding:4px 0 14px;
  margin-top:12px;
}
.build-step>span{
  width:30px;height:30px;border-radius:50%;
  background:#f5dcda;
  display:grid;place-items:center;
  color:#a86868;
  font-size:10px;
  flex:0 0 auto;
}
.build-step h3{
  font-size:28px;
  margin:0;
}
.build-step p{
  font-size:11px;color:var(--muted);margin:2px 0 0;
}
.build-size-options{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:26px;
}
.build-size-options button{
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:10px 14px;
  cursor:pointer;
  font-size:11px;
}
.build-size-options button.active{
  background:#d59394;
  border-color:#d59394;
  color:#fff;
}
.build-wagashi-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-bottom:26px;
}
.build-wagashi-grid button{
  border:1px solid var(--line);
  background:#fff;
  border-radius:15px;
  overflow:hidden;
  padding:0 0 12px;
  cursor:pointer;
  text-align:left;
  transition:.2s;
}
.build-wagashi-grid button:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 25px rgba(80,50,40,.06);
}
.build-wagashi-grid img{
  width:100%;
  aspect-ratio:1.15;
  object-fit:cover;
  display:block;
}
.build-wagashi-grid span{
  display:block;
  font:500 18px 'Cormorant Garamond';
  padding:10px 10px 2px;
}
.build-wagashi-grid small{
  display:block;
  padding:0 10px;
  color:var(--muted);
  font-size:9px;
}
.build-box-preview{
  min-height:235px;
  background:#fff8f5;
  border-radius:18px;
  padding:10px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
}
.build-box-preview button{
  border:0;
  padding:0;
  background:none;
  cursor:pointer;
  border-radius:12px;
  overflow:hidden;
}
.build-box-preview img{
  width:100%;
  height:100%;
  min-height:100px;
  object-fit:cover;
  display:block;
}
.build-empty-v36{
  grid-column:1/-1;
  display:grid;
  place-items:center;
  color:#a68d85;
  font:500 25px 'Cormorant Garamond';
  min-height:210px;
}
.build-count-v36{
  display:flex;
  justify-content:space-between;
  margin:14px 0;
  font-size:11px;
}
.build-count-v36 button{
  border:0;background:none;color:#b26f70;cursor:pointer;
}
.build-selected-v36{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:10px 0;
  max-height:170px;
  overflow:auto;
}
.build-selected-v36 p{
  color:var(--muted);font-size:11px;
}
.build-selected-v36>div{
  display:flex;justify-content:space-between;gap:10px;
  padding:5px 0;font-size:10px;
}
.build-selected-v36 button{
  border:0;background:none;cursor:pointer;color:#a57870;
}
.build-total-v36{
  display:flex;justify-content:space-between;
  margin:17px 0 4px;
}
.build-total-v36 strong{
  font:600 27px 'Cormorant Garamond';
}
.build-add-v36{
  width:100%;justify-content:center;
}
.build-add-v36:disabled{
  opacity:.45;cursor:not-allowed;
}
@keyframes shakeV36{25%{transform:translateX(-3px)}50%{transform:translateX(3px)}75%{transform:translateX(-2px)}}
.shake-v36{animation:shakeV36 .3s linear}

@media(max-width:1050px){
  .gift-grid-v36{grid-template-columns:repeat(2,1fr)}
  .build-wagashi-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .giftsets-v36-hero-grid,.build-gift-v36{grid-template-columns:1fr}
  .giftsets-v36-copy h1{font-size:52px}
  .giftsets-v36-hero img{aspect-ratio:4/3}
  .gift-grid-v36{grid-template-columns:1fr}
  .build-summary-v36{position:static}
  .build-wagashi-grid{grid-template-columns:repeat(2,1fr)}
}

/* =========================
   V37 · Real-motion Intro Video
   ========================= */
.satomi-intro{
  width:100vw!important;
  height:100dvh!important;
  min-width:100vw!important;
  min-height:100vh!important;
  margin:0!important;
  padding:0!important;
  background:#241a16!important;
}
.satomi-intro-video{
  position:absolute!important;
  inset:-2px!important;
  width:calc(100% + 4px)!important;
  height:calc(100% + 4px)!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  display:block!important;
}
html,body{
  max-width:100%;
}

/* =========================
   V38 · Centered Welcome + Softer Video
   ========================= */
.satomi-intro{
  background:#2a201b!important;
}

.satomi-intro-video{
  opacity:.64!important;
  filter:saturate(.88) contrast(.96) brightness(.90)!important;
}

.satomi-intro-shade{
  background:
    linear-gradient(180deg,rgba(48,34,28,.18),rgba(48,34,28,.28)),
    radial-gradient(circle at center,rgba(255,248,243,.04),rgba(38,25,20,.22) 78%)!important;
}

.satomi-intro-content{
  position:absolute!important;
  inset:0!important;
  z-index:3!important;
  width:100%!important;
  max-width:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  padding:7vh 7vw!important;
  pointer-events:none!important;
}

.satomi-intro-kicker{
  margin:0 0 20px!important;
  font-size:11px!important;
  letter-spacing:.34em!important;
  color:rgba(255,250,247,.92)!important;
}

.satomi-intro-content h1{
  margin:0!important;
  font-size:clamp(64px,7.6vw,116px)!important;
  line-height:.88!important;
  color:#fffaf7!important;
  text-align:center!important;
  text-shadow:0 5px 28px rgba(35,22,18,.34)!important;
}

.satomi-intro-content p{
  margin:24px 0 0!important;
  color:rgba(255,250,247,.92)!important;
  font-size:16px!important;
  letter-spacing:.08em!important;
  text-shadow:0 3px 18px rgba(35,22,18,.28)!important;
}

.satomi-intro-skip{
  z-index:5!important;
}

.satomi-intro-hint{
  z-index:5!important;
}

@media(max-width:900px){
  .satomi-intro-video{
    opacity:.60!important;
  }
  .satomi-intro-content{
    padding:9vh 22px 11vh!important;
  }
  .satomi-intro-kicker{
    font-size:9px!important;
    letter-spacing:.27em!important;
    margin-bottom:16px!important;
  }
  .satomi-intro-content h1{
    font-size:clamp(52px,15vw,78px)!important;
  }
  .satomi-intro-content p{
    font-size:14px!important;
    margin-top:18px!important;
  }
}

/* =========================
   V39 · Smooth cinematic intro transition
   ========================= */
body.satomi-intro-open{
  overflow:hidden!important;
}

body.satomi-intro-open > .topbar,
body.satomi-intro-open > .header,
body.satomi-intro-open > main,
body.satomi-intro-open > .footer{
  opacity:0;
  transform:translateY(10px);
}

body.satomi-intro-leaving > .topbar,
body.satomi-intro-leaving > .header,
body.satomi-intro-leaving > main,
body.satomi-intro-leaving > .footer{
  opacity:1!important;
  transform:translateY(0)!important;
  transition:opacity 1.15s ease .18s, transform 1.15s cubic-bezier(.2,.75,.2,1) .18s;
}

.satomi-intro{
  transition:none!important;
}

.satomi-intro-content{
  opacity:1;
  transform:translateY(0) scale(1);
  transition:
    opacity .72s ease,
    transform .95s cubic-bezier(.2,.7,.2,1);
}

.satomi-intro-logo-mark{
  font-size:30px;
  line-height:1;
  margin-bottom:12px;
  color:#f4c6c3;
  text-shadow:0 2px 18px rgba(30,18,14,.25);
}

.satomi-intro.is-exiting .satomi-intro-content{
  opacity:0;
  transform:translateY(-10px) scale(.985);
}

.satomi-intro-curtain{
  position:absolute;
  inset:0;
  z-index:6;
  pointer-events:none;
  background:#fffaf7;
  opacity:0;
  transition:opacity .95s ease;
}

.satomi-intro.is-exiting .satomi-intro-curtain{
  opacity:.93;
}

.satomi-intro.is-exiting .satomi-intro-video{
  filter:saturate(.75) brightness(1.04) blur(2px)!important;
  transform:scale(1.02);
  transition:filter .9s ease, transform 1.1s ease;
}

.satomi-intro.is-exiting .satomi-intro-skip,
.satomi-intro.is-exiting .satomi-intro-hint{
  opacity:0;
  transition:opacity .35s ease;
}

.satomi-intro.is-hidden{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* clearer product photography: one product per card */
.build-wagashi-grid img,
.product img{
  object-position:center center!important;
}

.build-wagashi-grid button[data-build-wagashi="Rose Nerikiri"] img,
.build-wagashi-grid button[data-build-wagashi="Botanical Sculpted Sweet"] img,
.build-wagashi-grid button[data-build-wagashi="Little Bird Wagashi"] img,
.build-wagashi-grid button[data-build-wagashi="Autumn Fruit Wagashi"] img{
  aspect-ratio:4/3!important;
  object-fit:cover!important;
}

@media(max-width:900px){
  .satomi-intro-content h1{
    line-height:.92!important;
  }
}

/* =========================
   V40 · Clean standalone photography
   ========================= */
.build-wagashi-grid button[data-build-wagashi="Rose Nerikiri"] img,
.build-wagashi-grid button[data-build-wagashi="Botanical Sculpted Sweet"] img,
.build-wagashi-grid button[data-build-wagashi="Little Bird Wagashi"] img,
.build-wagashi-grid button[data-build-wagashi="Autumn Fruit Wagashi"] img{
  object-fit:cover!important;
  object-position:center center!important;
  aspect-ratio:4/3!important;
}

.product img[src*="wagashi-rose-v40"],
.product img[src*="wagashi-botanical-v40"],
.product img[src*="wagashi-bird-v40"],
.product img[src*="wagashi-autumn-v40"]{
  object-fit:cover!important;
  object-position:center center!important;
  aspect-ratio:4/3!important;
}

body.room-about .split img,
.about-story-image{
  object-fit:cover!important;
  object-position:center center!important;
}

/* =========================
   V41 · Login
   ========================= */
.auth-link{
  text-decoration:none;
  color:var(--ink);
  font-size:12px;
  padding:9px 4px;
}
.auth-link:hover{color:#b56f72}
.auth-modalbox .auth-switch{
  margin:16px 0 4px;
  font-size:11px;
  color:var(--muted);
}
.auth-modalbox .auth-switch a{
  color:#b56f72;
  text-decoration:none;
}
@media(max-width:900px){
  .auth-link{display:none}
}

/* V42 · Production Auth */
.google-btn{background:#fff!important;color:#30241f!important;border:1px solid rgba(54,37,31,.14)!important;margin-bottom:10px}
.auth-divider{display:flex;align-items:center;gap:12px;margin:12px 0;color:#9a8c85;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.auth-divider:before,.auth-divider:after{content:"";height:1px;background:rgba(54,37,31,.11);flex:1}
.auth-text-btn{background:none;border:0;padding:10px 0;color:#9d686b;cursor:pointer;font-size:12px}
.auth-text-btn.danger{color:#8d4b4d;margin-top:10px}
.form-note.is-error{color:#a44343}
.account-summary{display:grid;gap:9px;margin:16px 0 22px}
.account-summary div{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid rgba(54,37,31,.08)}
.account-summary span{color:#8f7d75;font-size:12px}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:32px;background:#fbf8f5}
.auth-page-card{width:min(520px,92vw);background:#fff;border:1px solid rgba(54,37,31,.10);border-radius:24px;padding:38px;box-shadow:0 18px 55px rgba(54,37,31,.07)}
.auth-page-card h1{font-family:"Cormorant Garamond",serif;font-size:44px;line-height:1;margin:10px 0 14px}
.auth-page-card input{width:100%;margin:8px 0}
.auth-back{display:inline-block;margin-top:18px;color:#8e6b67;text-decoration:none}
.admin-reservations-list{display:grid;gap:14px;margin-top:24px}
.admin-reservation-card{background:#fff;border:1px solid rgba(54,37,31,.10);border-radius:18px;padding:18px}
.admin-reservation-head{display:flex;justify-content:space-between;gap:18px;margin-bottom:8px}


/* ============================================================
   V43 · Official Satomi Oven logo
   ============================================================ */

/* Header remains clean white behind the transparent official logo. */
.header{
  background:#fff!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

.brand-lockup-v43{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
}

.brand-logo-v43{
  display:block!important;
  width:auto!important;
  height:66px!important;
  max-width:250px!important;
  object-fit:contain!important;
  background:transparent!important;
}

/* Footer can use a slightly larger copy. */
.footer .brand-logo-v43{
  height:78px!important;
  max-width:285px!important;
}

/* Intro logo replaces the old flower emoji.
   Transparent image: illustration + SATOMI OVEN only. */
.satomi-intro-logo-v43{
  width:min(330px,72vw);
  margin:0 auto 12px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.satomi-intro-logo-v43 img{
  display:block;
  width:100%;
  height:auto;
  max-height:185px;
  object-fit:contain;
  background:transparent;
  filter:drop-shadow(0 7px 20px rgba(40,26,20,.12));
}

/* Remove any visual effect from the old flower mark if legacy CSS remains. */
.satomi-intro-logo-mark{
  display:none!important;
}

@media(max-width:900px){
  .brand-logo-v43{
    height:54px!important;
    max-width:205px!important;
  }
  .footer .brand-logo-v43{
    height:68px!important;
    max-width:240px!important;
  }
  .satomi-intro-logo-v43{
    width:min(260px,72vw);
    margin-bottom:8px;
  }
  .satomi-intro-logo-v43 img{
    max-height:150px;
  }
}

@media(max-width:520px){
  .brand-logo-v43{
    height:48px!important;
    max-width:180px!important;
  }
  .satomi-intro-logo-v43{
    width:min(230px,74vw);
  }
}

/* V44 · Admin navigation */
[data-admin-nav][hidden]{display:none!important}
[data-admin-nav]{
  text-decoration:none;
  color:var(--ink);
  font-size:12px;
  padding:9px 4px;
}
[data-admin-nav]:hover{color:#b56f72}


/* ============================================================
   V45 · Admin dashboard
   ============================================================ */
.admin-dashboard-main{background:#fbfaf8;min-height:70vh}
.admin-hero{padding-bottom:26px}
.admin-dashboard-section{padding-top:20px}
.admin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.admin-kpi,.admin-panel{background:#fff;border:1px solid rgba(54,37,31,.09);border-radius:20px;box-shadow:0 10px 34px rgba(54,37,31,.035)}
.admin-kpi{padding:20px 22px}
.admin-kpi span{display:block;font-size:12px;color:#85736b;margin-bottom:12px}
.admin-kpi strong{display:block;font-family:"Cormorant Garamond",serif;font-size:38px;font-weight:500;line-height:1;color:#37261f}
.admin-kpi small{display:block;margin-top:9px;font-size:10px;color:#a08f87}
.admin-panel{padding:24px;margin-bottom:22px}
.admin-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.admin-panel-head h2{font-family:"Cormorant Garamond",serif;font-size:31px;font-weight:500;margin:4px 0}
.admin-panel-head p{margin:0;color:#806f67;font-size:12px}
.admin-panel-head-wrap{flex-wrap:wrap}
.admin-legend{font-size:11px;color:#806f67;display:flex;align-items:center;gap:7px}
.admin-legend span{width:9px;height:9px;border-radius:50%;background:#c98d8e}
.admin-hourly-chart{height:220px;display:grid;grid-template-columns:repeat(24,1fr);gap:4px;align-items:end;padding-top:18px}
.admin-hour-col{height:100%;display:grid;grid-template-rows:18px 1fr 20px;gap:4px;min-width:0}
.admin-hour-value{text-align:center;font-size:9px;color:#7d6d66}
.admin-hour-bar-track{height:100%;display:flex;align-items:flex-end;background:#faf5f2;border-radius:8px 8px 3px 3px;overflow:hidden}
.admin-hour-bar{width:100%;background:linear-gradient(to top,#c98d8e,#e5b8b5);border-radius:7px 7px 2px 2px;min-height:2px}
.admin-hour-label{text-align:center;font-size:9px;color:#97877f;white-space:nowrap}
.admin-tabs{display:flex;gap:22px;border-bottom:1px solid rgba(54,37,31,.09);margin:28px 0 18px}
.admin-tab{background:none;border:0;padding:0 2px 12px;color:#8d7b72;font-size:12px;cursor:pointer;border-bottom:2px solid transparent}
.admin-tab.active{color:#3a2922;border-bottom-color:#c98d8e}
.admin-tab-panel{display:none}
.admin-tab-panel.active{display:block}
.admin-search,.admin-select{border:1px solid rgba(54,37,31,.12);border-radius:999px;background:#fff;padding:10px 14px;font-size:12px;min-width:220px}
.admin-table-wrap{overflow:auto}
.admin-table{width:100%;border-collapse:collapse;min-width:940px}
.admin-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#99877e;font-weight:500;padding:10px 12px;border-bottom:1px solid rgba(54,37,31,.09)}
.admin-table td{padding:15px 12px;border-bottom:1px solid rgba(54,37,31,.07);font-size:12px;vertical-align:middle}
.admin-table td strong,.admin-table td small{display:block}
.admin-table td small{margin-top:4px;color:#8d7c73;font-size:10px}
.admin-customer-row{cursor:pointer}
.admin-customer-row:hover{background:#fffaf7}
.admin-tier{display:inline-block;background:#f7ece8;border-radius:999px;padding:5px 9px;font-size:10px}
.admin-customer-modalbox{max-width:700px}
.admin-customer-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 24px}
.admin-customer-detail-grid div{padding:12px;border-bottom:1px solid rgba(54,37,31,.08)}
.admin-customer-detail-grid span,.admin-customer-detail-grid strong{display:block}
.admin-customer-detail-grid span{font-size:10px;color:#98877f;text-transform:uppercase;letter-spacing:.06em}
.admin-customer-detail-grid strong{font-size:13px;margin-top:5px;font-weight:500}
.admin-customer-history{display:grid;gap:10px;max-height:320px;overflow:auto}
.admin-customer-history article{border:1px solid rgba(54,37,31,.08);border-radius:14px;padding:12px}
.admin-customer-history article>div{display:flex;justify-content:space-between;gap:15px;font-size:11px}
.admin-customer-history p{font-size:11px;color:#7e6e66;margin:8px 0 0}
.admin-reservation-card small{display:block;color:#8f7f77;font-size:10px;margin-top:4px}
.admin-reservation-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.admin-reservation-meta span{font-size:10px;background:#faf4f1;border-radius:999px;padding:5px 8px}
.admin-status{font-size:10px;text-transform:capitalize;border-radius:999px;padding:6px 9px;background:#f4ece8}
.admin-top-pages{display:grid;gap:16px}
.admin-top-page>div:first-child{display:flex;justify-content:space-between;gap:20px;font-size:11px;margin-bottom:6px}
.admin-top-page>div:first-child span{color:#8c7c74}
.admin-top-page-track{height:7px;border-radius:999px;background:#f4ece8;overflow:hidden}
.admin-top-page-track span{display:block;height:100%;border-radius:999px;background:#c98d8e}

@media(max-width:900px){
  .admin-kpis{grid-template-columns:1fr 1fr}
  .admin-hourly-chart{height:180px;gap:2px}
  .admin-hour-label{font-size:8px}
}
@media(max-width:560px){
  .admin-kpis{grid-template-columns:1fr}
  .admin-panel{padding:18px}
  .admin-customer-detail-grid{grid-template-columns:1fr}
  .admin-hourly-chart{overflow-x:auto;grid-template-columns:repeat(24,24px)}
}


/* ============================================================
   V46 · Refined premium navigation
   ============================================================ */

.header{
  background:#fff!important;
  border-bottom:1px solid rgba(54,37,31,.07)!important;
}

.header .shell.nav{
  min-height:76px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:48px!important;
  padding-top:0!important;
  padding-bottom:0!important;
}

.header .nav-left{
  justify-self:start!important;
  display:flex!important;
  align-items:center!important;
  gap:30px!important;
  min-width:0!important;
}

.header .brand{
  justify-self:center!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  min-width:150px!important;
}

.header .brand-logo-v43{
  height:54px!important;
  max-width:190px!important;
}

.header .nav-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:26px!important;
  min-width:0!important;
}

.header .navlinks a{
  white-space:nowrap!important;
  font-size:11px!important;
  letter-spacing:.01em!important;
}

.header .nav-right .cart{
  margin-left:4px!important;
}

/* Hide the logged-in member pill in the premium nav.
   Member name/tier remains visible inside Account. */
.header .member-pill[hidden]{
  display:none!important;
}

.header .auth-link,
.header [data-admin-nav]{
  font-size:11px!important;
}

/* Give the central mark a little luxury whitespace. */
.header .brand-lockup-v43{
  padding:0 16px!important;
}

/* Slightly reduce the top strip so header feels lighter. */
.topbar{
  min-height:32px!important;
  font-size:9px!important;
  letter-spacing:.26em!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* Desktop balancing at medium-wide widths */
@media (max-width:1280px){
  .header .shell.nav{
    column-gap:34px!important;
  }
  .header .nav-left{gap:24px!important}
  .header .nav-right{gap:20px!important}
  .header .brand-logo-v43{
    height:50px!important;
    max-width:176px!important;
  }
}

/* Tablet: reduce density before mobile hamburger takes over */
@media (max-width:1080px){
  .header .shell.nav{
    column-gap:24px!important;
  }
  .header .nav-left{gap:18px!important}
  .header .nav-right{gap:16px!important}
  .header .navlinks a{font-size:10px!important}
  .header .brand-lockup-v43{padding:0 10px!important}
}

/* Mobile retains existing hamburger layout */
@media(max-width:900px){
  .header .shell.nav{
    display:flex!important;
    min-height:68px!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }

  .header .brand{
    position:absolute!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    min-width:0!important;
  }

  .header .brand-logo-v43{
    height:46px!important;
    max-width:165px!important;
  }

  .header .nav-left,
  .header .nav-right{
    gap:12px!important;
  }
}


/* ============================================================
   V47 · Account profile editing
   ============================================================ */
.account-field-label{
  display:block;
  margin:8px 0 6px;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#8f7d75;
}
.account-inline-edit{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
}
.account-inline-edit input{
  width:100%;
  margin:0!important;
}
.btn.small{
  padding:11px 16px!important;
  white-space:nowrap;
}
@media(max-width:560px){
  .account-inline-edit{
    grid-template-columns:1fr;
  }
}


/* ============================================================
   V48 · Account next-tier progress
   ============================================================ */
.account-tier-progress{
  margin:14px 0 24px;
  padding:14px 0 2px;
}
.account-tier-progress-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:9px;
}
.account-tier-progress-head span{
  font-size:11px;
  color:#8f7d75;
}
.account-tier-progress-head strong{
  font-size:11px;
  font-weight:600;
  color:#5a4036;
}
.account-tier-progress-track{
  height:7px;
  border-radius:999px;
  background:#f3e8e4;
  overflow:hidden;
}
.account-tier-progress-track span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#d39a99,#c67f82);
  transition:width .5s ease;
}
.account-tier-progress small{
  display:block;
  margin-top:7px;
  font-size:10px;
  color:#9a8980;
}


/* ============================================================
   V49 · Admin date range controls
   ============================================================ */
.admin-range-bar{padding:0 0 8px;background:#fbfaf8}
.admin-range-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto auto;
  align-items:end;
  gap:14px;
  background:#fff;
  border:1px solid rgba(54,37,31,.09);
  border-radius:18px;
  padding:16px 18px;
  box-shadow:0 8px 28px rgba(54,37,31,.03);
}
.admin-range-card>div:first-child strong{display:block;font-size:13px;font-weight:500}
.admin-range-presets{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.admin-range-preset{
  border:1px solid rgba(54,37,31,.10);
  background:#fff;
  color:#725f56;
  border-radius:999px;
  padding:8px 11px;
  font-size:10px;
  cursor:pointer;
}
.admin-range-preset.active,.admin-range-preset:hover{
  background:#f5e8e4;
  border-color:#e8d0ca;
  color:#4c342c;
}
.admin-range-field{display:grid;gap:5px}
.admin-range-field span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#94827a}
.admin-range-field input{
  border:1px solid rgba(54,37,31,.12);
  border-radius:12px;
  padding:9px 10px;
  background:#fff;
  color:#3c2b24;
  font-size:11px;
}
.admin-range-summary{
  margin:8px 4px 0;
  color:#8e7d74;
  font-size:10px;
}
.admin-hourly-chart{
  overflow-x:auto;
}
.admin-hour-col{
  min-width:20px;
}

@media(max-width:1050px){
  .admin-range-card{
    grid-template-columns:1fr 1fr;
    align-items:end;
  }
  .admin-range-presets{grid-column:1/-1}
}
@media(max-width:620px){
  .admin-range-card{grid-template-columns:1fr}
  .admin-range-presets{grid-column:auto}
}


/* ============================================================
   V50 · Compact Account modal
   Keep profile, tier progress and security visible in one view.
   ============================================================ */
@media (min-width: 721px) and (min-height: 700px) {
  .satomi-account-modal,
  .account-modal,
  #accountModal .account-modal-card,
  #accountModal .account-panel,
  .account-modal-card {
    max-height: calc(100dvh - 36px) !important;
  }

  #accountModal .account-modal-card,
  #accountModal .account-panel,
  .account-modal-card {
    width: min(760px, calc(100vw - 56px)) !important;
    padding: 24px 46px 26px !important;
    overflow-y: auto !important;
  }

  #accountModal .eyebrow,
  .account-modal-card .eyebrow {
    margin-bottom: 8px !important;
    font-size: 10px !important;
    letter-spacing: .32em !important;
  }

  #accountModal h1,
  .account-modal-card h1 {
    font-size: clamp(42px, 4.2vw, 58px) !important;
    line-height: .98 !important;
    margin: 8px 0 20px !important;
  }

  #accountModal .account-summary-row,
  .account-modal-card .account-summary-row {
    min-height: 52px !important;
    padding: 11px 0 !important;
  }

  #accountModal .account-summary-row span,
  .account-modal-card .account-summary-row span {
    font-size: 14px !important;
  }

  #accountModal .account-summary-row strong,
  .account-modal-card .account-summary-row strong {
    font-size: 17px !important;
  }

  #accountModal .tier-progress-wrap,
  #accountModal .account-tier-progress,
  .account-modal-card .tier-progress-wrap,
  .account-modal-card .account-tier-progress {
    margin: 18px 0 20px !important;
  }

  #accountModal .tier-progress-track,
  .account-modal-card .tier-progress-track {
    height: 8px !important;
  }

  #accountModal h2,
  #accountModal h3,
  .account-modal-card h2,
  .account-modal-card h3 {
    font-size: 24px !important;
    margin: 18px 0 12px !important;
  }

  #accountModal .account-profile-form,
  #accountModal .account-security-form,
  .account-modal-card .account-profile-form,
  .account-modal-card .account-security-form {
    gap: 10px !important;
  }

  #accountModal input,
  .account-modal-card input {
    min-height: 52px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
  }

  #accountModal .btn,
  .account-modal-card .btn {
    min-height: 48px !important;
    padding: 11px 24px !important;
    font-size: 17px !important;
  }

  #accountModal .account-actions,
  .account-modal-card .account-actions {
    margin-top: 14px !important;
    gap: 12px !important;
  }
}

/* The current account markup uses a generic modal panel in some pages.
   These selectors compact it without affecting the rest of the site. */
@media (min-width: 721px) and (min-height: 700px) {
  .account-dialog {
    width: min(760px, calc(100vw - 56px)) !important;
    max-height: calc(100dvh - 32px) !important;
    padding: 24px 46px 24px !important;
    overflow-y: auto !important;
  }
  .account-dialog h1{font-size:54px !important;margin:8px 0 18px !important}
  .account-dialog .account-row{padding:11px 0 !important;min-height:50px !important}
  .account-dialog .account-progress{margin:16px 0 18px !important}
  .account-dialog .account-section{margin-top:18px !important}
  .account-dialog .account-section h2{margin:0 0 10px !important;font-size:24px !important}
  .account-dialog input{min-height:52px !important;padding:12px 16px !important}
  .account-dialog .btn{min-height:48px !important;padding:10px 22px !important}
}

/* On shorter laptop screens compact more aggressively. */
@media (min-width: 721px) and (max-height: 820px) {
  #accountModal .account-modal-card,
  #accountModal .account-panel,
  .account-modal-card,
  .account-dialog {
    transform: scale(.90);
    transform-origin: center center;
    max-height: calc(111dvh - 30px) !important;
  }
}

/* Mobile remains naturally scrollable rather than shrinking text too far. */
@media (max-width: 720px) {
  #accountModal .account-modal-card,
  #accountModal .account-panel,
  .account-modal-card,
  .account-dialog {
    width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    overflow-y: auto !important;
  }
}


/* ============================================================
   V51 · Account modal breathing room
   Slightly shorter than viewport with visible top/bottom margin.
   ============================================================ */
#accountModal{
  padding:28px 18px!important;
  align-items:center!important;
}

#accountModal .modalbox{
  width:min(740px, calc(100vw - 48px))!important;
  max-height:calc(100dvh - 56px)!important;
  overflow-y:auto!important;
  padding:24px 42px 26px!important;
  transform:none!important;
  margin:auto!important;
  border-radius:26px!important;
  box-sizing:border-box!important;
}

/* Pull the content together a little more vertically */
#accountModal .eyebrow{
  margin-bottom:4px!important;
}
#accountModal h2{
  margin:4px 0 14px!important;
}
#accountModal .account-summary{
  margin:8px 0 14px!important;
}
#accountModal .account-summary > div{
  padding:9px 0!important;
}
#accountModal .account-tier-progress{
  margin:10px 0 16px!important;
  padding-top:8px!important;
}
#accountModal h3{
  margin:14px 0 9px!important;
}
#accountModal .account-field-label{
  margin:4px 0 5px!important;
}
#accountModal .account-inline-edit{
  gap:9px!important;
}
#accountModal input{
  min-height:46px!important;
  padding:10px 14px!important;
}
#accountModal .btn{
  min-height:44px!important;
  padding:9px 20px!important;
}
#accountModal .form-note{
  margin:5px 0 0!important;
}

/* Keep comfortable margins even on shorter laptop displays. */
@media (min-width:721px) and (max-height:820px){
  #accountModal{
    padding:22px 16px!important;
  }
  #accountModal .modalbox{
    max-height:calc(100dvh - 44px)!important;
    padding:20px 38px 22px!important;
    transform:none!important;
  }
}

/* Mobile: preserve top/bottom breathing room and internal scrolling. */
@media (max-width:720px){
  #accountModal{
    padding:16px 12px!important;
  }
  #accountModal .modalbox{
    width:calc(100vw - 24px)!important;
    max-height:calc(100dvh - 32px)!important;
    padding:20px 22px 22px!important;
    border-radius:22px!important;
  }
}


/* ============================================================
   V52 · Satomi Rewards Goods
   ============================================================ */
.rewards-goods-section{
  background:#fff;
}
.rewards-goods-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:28px;
}
.rewards-balance-chip{
  flex:0 0 auto;
  padding:12px 16px;
  border:1px solid rgba(54,37,31,.10);
  border-radius:16px;
  background:#fffaf7;
}
.rewards-balance-chip span,
.rewards-balance-chip strong{
  display:block;
}
.rewards-balance-chip span{
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#9a877e;
}
.rewards-balance-chip strong{
  margin-top:5px;
  font-family:"Cormorant Garamond",serif;
  font-size:24px;
  font-weight:500;
}
.reward-goods-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin-top:28px;
}
.reward-goods-card{
  border:1px solid rgba(54,37,31,.09);
  border-radius:22px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 10px 34px rgba(54,37,31,.035);
}
.reward-goods-visual{
  position:relative;
  height:230px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(145deg,#fbf5f1,#f5e7e1);
}
.reward-goods-visual img{
  width:108px;
  height:auto;
  position:relative;
  z-index:2;
  opacity:.92;
}
.reward-goods-visual:before{
  content:"";
  position:absolute;
  background:#fffdfb;
  border:1px solid rgba(111,77,63,.12);
  box-shadow:0 14px 24px rgba(84,54,43,.10);
}
.goods-mug:before{
  width:120px;height:100px;border-radius:12px 12px 28px 28px;
}
.goods-mug:after{
  content:"";position:absolute;width:42px;height:52px;border:10px solid #fffdfb;
  border-left:0;border-radius:0 34px 34px 0;transform:translate(72px,2px);
}
.goods-tote:before{
  width:148px;height:140px;border-radius:5px;
}
.goods-tote:after{
  content:"";position:absolute;width:72px;height:62px;border:7px solid #d8c0b7;border-bottom:0;
  border-radius:42px 42px 0 0;transform:translateY(-70px);
}
.goods-tin:before{
  width:120px;height:138px;border-radius:18px;
}
.goods-towel:before{
  width:160px;height:112px;border-radius:8px;transform:rotate(-4deg);
}
.goods-plate:before{
  width:155px;height:155px;border-radius:50%;
  box-shadow:inset 0 0 0 18px #f8f1ed,0 14px 24px rgba(84,54,43,.08);
}
.goods-pin:before{
  width:104px;height:104px;border-radius:50%;
  background:#f0d9d3;
}
.reward-goods-copy{
  padding:18px 18px 20px;
}
.reward-goods-card-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.reward-goods-tag,
.reward-goods-soldout{
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.reward-goods-tag{
  color:#9a6d6c;
}
.reward-goods-soldout{
  color:#9a8981;
}
.reward-goods-card h3{
  margin:8px 0 6px;
  font-family:"Cormorant Garamond",serif;
  font-size:27px;
  font-weight:500;
}
.reward-goods-card p{
  min-height:38px;
  margin:0;
  color:#7f6f67;
  font-size:11px;
  line-height:1.55;
}
.reward-goods-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:16px;
}
.reward-goods-actions .btn{
  min-height:42px;
  padding:9px 10px!important;
  font-size:11px!important;
}
.reward-goods-actions button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.reward-goods-note{
  margin:18px 0 0;
  font-size:10px;
  color:#97867e;
}
.reward-goods-loading{
  grid-column:1/-1;
  padding:36px;
  text-align:center;
  color:#8d7c74;
}
.reward-redeem-modalbox{
  max-width:520px!important;
}
@media(max-width:900px){
  .reward-goods-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .rewards-goods-head{align-items:flex-start;flex-direction:column}
  .reward-goods-grid{grid-template-columns:1fr}
  .reward-goods-actions{grid-template-columns:1fr}
}


/* ============================================================
   V53 · Goods images, admin catalog, announcement banner
   ============================================================ */
.reward-goods-photo{
  height:230px;
  overflow:hidden;
  background:#f7efeb;
}
.reward-goods-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.satomi-announcement-bar{
  display:block;
  width:100%;
  padding:10px 22px;
  text-align:center;
  text-decoration:none;
  font-family:"Cormorant Garamond",serif;
  font-size:17px;
  letter-spacing:.01em;
  border-bottom:1px solid rgba(54,37,31,.06);
}
.admin-goods-toolbar{
  display:flex;
  justify-content:flex-end;
  margin:-8px 0 14px;
}
.admin-goods-thumb{
  width:58px;height:42px;object-fit:cover;border-radius:8px;
}
.admin-status-toggle{
  border:0;border-radius:999px;padding:6px 10px;font-size:10px;cursor:pointer;
  background:#eee7e3;color:#76655d;
}
.admin-status-toggle.is-on{background:#e4f1e4;color:#416743}
.admin-order-buttons{display:flex;gap:4px}
.admin-order-buttons button,.admin-mini-btn{
  border:1px solid rgba(54,37,31,.10);background:#fff;border-radius:8px;padding:6px 8px;font-size:10px;cursor:pointer;
}
.admin-mini-btn.danger{color:#a04e4e}
.admin-good-modalbox{max-width:680px!important}
.admin-field{display:grid;gap:6px;margin:10px 0}
.admin-field span,.admin-banner-form label>span{
  font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#927f76;
}
.admin-field textarea,.admin-banner-form textarea,.admin-banner-form input[type="text"]{
  width:100%;border:1px solid rgba(54,37,31,.12);border-radius:12px;padding:11px 12px;background:#fff;
}
.admin-good-form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.admin-toggle-row{display:flex!important;align-items:center;justify-content:space-between;gap:20px;margin:14px 0}
.admin-banner-form{max-width:760px;display:grid;gap:14px}
.admin-banner-form label{display:grid;gap:6px}
.admin-banner-colors{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.admin-banner-colors input[type="color"]{
  width:100%;height:44px;border:1px solid rgba(54,37,31,.12);border-radius:10px;padding:4px;background:#fff;
}
@media(max-width:700px){
  .admin-good-form-grid{grid-template-columns:1fr 1fr}
  .admin-banner-colors{grid-template-columns:1fr}
  .satomi-announcement-bar{font-size:15px;padding:9px 14px}
}


/* ============================================================
   V54 · Product catalog admin
   ============================================================ */
.admin-product-filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:-6px 0 16px;
}
.admin-product-filters .admin-search{min-width:240px}
.admin-products-table small{display:block;margin-top:4px;color:#9a8a82;font-size:9px}
@media(max-width:700px){
  .admin-product-filters{display:grid;grid-template-columns:1fr}
  .admin-product-filters .admin-search,.admin-product-filters .admin-select{width:100%;min-width:0}
}


/* ============================================================
   V55 · Admin management tab visibility fix
   ============================================================ */
.admin-management-note{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 16px;
  margin:0 0 10px;
  border:1px solid rgba(54,37,31,.08);
  border-radius:14px;
  background:#fffaf7;
  color:#7a665e;
  font-size:11px;
}
.admin-management-note strong{
  color:#3b2922;
  font-family:"Cormorant Garamond",serif;
  font-size:18px;
  font-weight:500;
  white-space:nowrap;
}
.admin-tabs{
  position:sticky;
  top:0;
  z-index:20;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px 18px!important;
  padding:10px 0 8px!important;
  margin:0 0 22px!important;
  background:rgba(251,250,248,.96);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.admin-tab{
  padding:9px 12px!important;
  border:1px solid transparent!important;
  border-radius:999px!important;
  border-bottom:1px solid transparent!important;
}
.admin-tab.active{
  background:#f3e4df!important;
  border-color:#ead2cb!important;
  color:#3a2922!important;
}
.admin-tab-catalog{
  font-weight:600!important;
}
@media(max-width:700px){
  .admin-management-note{
    align-items:flex-start;
    flex-direction:column;
  }
  .admin-tabs{
    position:static;
  }
}


/* ============================================================
   V57 · Satomi Goods added WITHOUT replacing Rewards page
   ============================================================ */
.rewards-goods-head-v57{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:28px;
}
.rewards-goods-intro-v57{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:6px 0 22px;
}
.rewards-goods-intro-v57 span{
  padding:7px 11px;
  border-radius:999px;
  background:#fff7f4;
  border:1px solid rgba(54,37,31,.07);
  color:#8b6e66;
  font-size:9px;
  letter-spacing:.03em;
}
.reward-goods-grid-v57{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:20px!important;
}
.reward-goods-card-v57{
  background:#fff!important;
  border:1px solid rgba(54,37,31,.08)!important;
  border-radius:20px!important;
  overflow:hidden!important;
  box-shadow:0 12px 34px rgba(54,37,31,.035)!important;
}
.reward-goods-photo-v57{
  position:relative;
  height:280px!important;
  background:#f7efeb;
  overflow:hidden;
}
.reward-goods-photo-v57 img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.reward-goods-badge{
  position:absolute;
  top:13px;
  left:13px;
  padding:6px 11px;
  border-radius:999px;
  background:rgba(255,244,241,.92);
  color:#6f433d;
  font-size:9px;
  backdrop-filter:blur(7px);
}
.reward-goods-card-v57 .reward-goods-copy{
  padding:16px 16px 18px!important;
}
.reward-goods-card-v57 h3{
  margin:0 0 5px!important;
  font-family:"Cormorant Garamond",serif;
  font-size:26px!important;
  font-weight:500;
}
.reward-goods-card-v57 p{
  min-height:38px!important;
  margin:0!important;
  font-size:11px!important;
  line-height:1.5!important;
  color:#7f6f68!important;
}
.reward-goods-actions-v57{
  display:grid!important;
  grid-template-columns:1fr auto 1fr!important;
  align-items:center!important;
  gap:8px!important;
  margin-top:15px!important;
}
.reward-goods-actions-v57 .btn{
  min-height:42px!important;
  padding:9px 10px!important;
  font-size:11px!important;
}
.reward-goods-actions-v57 .reward-points-buy{
  background:#f7e2df!important;
  color:#7a4240!important;
}
.reward-goods-actions-v57 .reward-cash-buy{
  background:#fff!important;
  border:1px solid #d69a95!important;
  color:#332822!important;
}
.reward-goods-or{
  font-size:10px;
  color:#8a7971;
}
.reward-goods-soldout-v57{
  margin-top:8px;
  color:#9d5a57;
  font-size:10px;
}
@media(max-width:900px){
  .reward-goods-grid-v57{
    grid-template-columns:1fr!important;
  }
  .reward-goods-photo-v57{
    height:360px!important;
  }
}
@media(max-width:620px){
  .rewards-goods-head-v57{
    align-items:flex-start;
    flex-direction:column;
  }
  .reward-goods-photo-v57{
    height:280px!important;
  }
}


/* ============================================================
   V58 · Admin tabs reliability fix
   ============================================================ */
.admin-tab-panel[hidden]{
  display:none!important;
}
.admin-tab-panel.active:not([hidden]){
  display:block!important;
}
.admin-tab{
  cursor:pointer!important;
  user-select:none;
}
.admin-tab:hover{
  background:#faf2ef!important;
  color:#4c332c!important;
}


/* ============================================================
   V60 · Admin management workspace
   ============================================================ */
.admin-dashboard-section{
  padding-top:18px!important;
}
.admin-tabs{
  position:static!important;
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:8px!important;
  padding:8px!important;
  margin:0 0 18px!important;
  border:1px solid rgba(54,37,31,.08)!important;
  border-radius:18px!important;
  background:#fff!important;
}
.admin-tab{
  width:100%!important;
  min-height:48px!important;
  padding:10px 8px!important;
  border:0!important;
  border-radius:12px!important;
  background:transparent!important;
  color:#87766e!important;
  font-size:11px!important;
  font-weight:500!important;
  text-align:center!important;
}
.admin-tab:hover{
  background:#fbf4f1!important;
  color:#4b342c!important;
}
.admin-tab.active{
  background:#f2e3de!important;
  color:#3e2922!important;
  box-shadow:inset 0 0 0 1px rgba(185,132,126,.15)!important;
}
.admin-tab-panel{
  scroll-margin-top:18px;
}
.admin-tab-panel[hidden]{
  display:none!important;
}
.admin-tab-panel.active{
  display:block!important;
}
.admin-workspace-heading{
  margin:6px 0 18px;
  padding:22px 24px;
  border-radius:20px;
  background:linear-gradient(135deg,#fff,#fff9f6);
  border:1px solid rgba(54,37,31,.08);
}
.admin-workspace-heading h2{
  margin:5px 0 3px;
  font-family:"Cormorant Garamond",serif;
  font-size:34px;
  font-weight:500;
}
.admin-workspace-heading p{
  margin:0;
  color:#85736b;
  font-size:11px;
}
.admin-db-status{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 16px;
  padding:12px 14px;
  border-radius:14px;
  background:#faf7f5;
  border:1px solid rgba(54,37,31,.07);
}
.admin-db-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#c8b7af;
  flex:0 0 auto;
}
.admin-db-status div{
  display:grid;
  gap:2px;
}
.admin-db-status strong{
  font-size:11px;
  font-weight:600;
}
.admin-db-status small{
  font-size:9px;
  color:#8b7970;
}
.admin-db-status.is-ready .admin-db-dot{
  background:#7ab47f;
}
.admin-db-status.is-error{
  background:#fff3f0;
  border-color:#f0d0c8;
}
.admin-db-status.is-error .admin-db-dot{
  background:#c86e65;
}
.admin-empty-state{
  display:grid;
  gap:7px;
  padding:28px 16px;
  text-align:center;
}
.admin-empty-state strong{
  font-family:"Cormorant Garamond",serif;
  font-size:22px;
  font-weight:500;
}
.admin-empty-state span{
  color:#8b7970;
  font-size:11px;
}
.admin-product-filters{
  background:#fbf8f6;
  border-radius:14px;
  padding:12px;
}
.admin-products-table tbody tr:hover,
.admin-goods-table tbody tr:hover{
  background:#fff9f6;
}
.admin-mini-btn,
.admin-order-buttons button,
.admin-status-toggle{
  min-height:32px;
}
@media(max-width:1050px){
  .admin-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:620px){
  .admin-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}


/* ============================================================
   V61 · Catalog loading reliability
   ============================================================ */
.admin-retry-btn{
  justify-self:center;
  margin-top:8px;
  border:1px solid rgba(54,37,31,.12);
  border-radius:999px;
  background:#fff;
  color:#4b342c;
  padding:9px 16px;
  font-size:10px;
  cursor:pointer;
}
.admin-retry-btn:hover{
  background:#f8ece8;
}
.admin-db-status.is-ready{
  background:#f5faf5;
  border-color:#dcebdc;
}

.admin-db-status.is-warning{
  background:#fffaf0;
  border-color:#efe1bd;
}
.admin-db-status.is-warning .admin-db-dot{
  background:#d8a84e;
}


/* ============================================================
   V64 · Static-first Admin Product Catalog
   ============================================================ */
.admin-static-catalog-note{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid #eadfd8;
  border-radius:14px;
  background:#fffaf7;
}
.admin-static-catalog-note>div{
  display:grid;
  gap:2px;
}
.admin-static-catalog-note strong{
  font-size:11px;
  color:#4b342c;
}
.admin-static-catalog-note span{
  font-size:9px;
  color:#8d7b72;
}
.admin-static-order{
  display:inline-block;
  min-width:28px;
  text-align:center;
  font-size:10px;
  color:#75645c;
}
@media(max-width:700px){
  .admin-static-catalog-note{
    align-items:flex-start;
    flex-direction:column;
  }
}

body:not(.auth-ready) .header [data-login],body:not(.auth-ready) .header [data-join],body:not(.auth-ready) .header [data-admin-nav],body:not(.auth-ready) .header .satomi-user-chip{visibility:hidden!important}
.satomi-user-chip{border:1px solid rgba(54,37,31,.1);border-radius:999px;background:#fffaf7;padding:8px 11px;font-size:10px;color:#443029;cursor:pointer;white-space:nowrap}.satomi-user-chip span{color:#9a6e68;font-weight:600;margin-right:3px}
.header .cart{position:relative;padding-right:14px!important}.header .cart .badge{right:-5px!important;top:-11px!important}
.satomi-cart-fly{position:fixed!important;z-index:99999!important;pointer-events:none!important;overflow:hidden!important;border-radius:18px!important;transition:transform .58s cubic-bezier(.2,.8,.2,1),opacity .5s!important;background:#fff!important;box-shadow:0 18px 45px rgba(56,35,29,.18)!important}.satomi-card-pop{animation:satomiPop .42s ease}@keyframes satomiPop{50%{transform:scale(.965)}}
.cart-empty-all-v65{width:100%;border:0;border-radius:10px;padding:10px;background:#fff1ef;color:#9c4d49;font-size:11px;cursor:pointer;margin:8px 0}
#accountModal #changePasswordBtn{margin-right:20px!important}#accountModal #logoutBtn{margin-left:18px!important}
.account-annual-v65{margin:14px 0 16px;padding:14px 0;border-top:1px solid rgba(54,37,31,.08)}.account-annual-v65 h3{margin:0 0 9px!important}.account-annual-v65>div:not(.account-annual-track){display:flex;justify-content:space-between;padding:5px 0;font-size:11px}.account-annual-v65 span{color:#8e7d75}.account-annual-track{height:7px;background:#f1e7e2;border-radius:999px;overflow:hidden;margin-top:8px}.account-annual-track span{display:block;height:100%;background:#cf9290}
.reservation-timezone{display:block;margin-top:5px;color:#9a8880;font-size:9px}#reserveTime{width:100%;min-height:48px;border:1px solid rgba(54,37,31,.13);border-radius:12px;padding:0 12px;background:#fff}
.rewards-goods-head-v57{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(300px,390px) auto!important;align-items:center!important}.satomi-growth-tree{padding:14px 16px;border:1px solid rgba(54,37,31,.08);border-radius:18px;background:#fffaf7}.growth-tree-head{display:flex;justify-content:space-between}.growth-tree-head h3{font-family:"Cormorant Garamond",serif;font-size:22px;margin:2px 0}.growth-tree-head>span{font-size:9px;background:#f4e7e3;border-radius:999px;padding:5px 8px}.growth-tree-stage{height:145px;position:relative;display:grid;place-items:end center}.growth-tree-stage img{max-width:220px;max-height:140px;object-fit:contain}.growth-tree-fruit{position:absolute;right:18%;top:25%;border:0;background:#fff4c9;border-radius:50%;width:42px;height:42px;font-size:24px;cursor:pointer;box-shadow:0 7px 20px rgba(110,75,42,.18);animation:fruitPulse 1.7s infinite}@keyframes fruitPulse{50%{transform:scale(1.09)}}.growth-tree-copy{display:grid;gap:3px}.growth-tree-copy strong{font-size:11px}.growth-tree-copy span,.satomi-growth-tree small{font-size:9px;color:#8e7b73}.growth-tree-track{height:7px;background:#eee4df;border-radius:999px;overflow:hidden;margin:8px 0 6px}.growth-tree-track span{display:block;height:100%;background:#7ea56d;border-radius:999px}
.reward-goods-actions-v57{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)!important;gap:10px!important;align-items:center!important}.reward-goods-or{text-align:center!important}.reward-goods-actions-v57 .btn{width:100%!important}
.satomi-intro.safari-video-fallback .satomi-intro-video{opacity:.2!important}.satomi-intro.safari-video-fallback:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#f9efeb,#f2ded8);z-index:0}.satomi-announcement-bar{position:relative;z-index:50}
@media(max-width:1050px){.rewards-goods-head-v57{grid-template-columns:1fr!important}.satomi-growth-tree{max-width:520px}}


/* ============================================================
   V66 · Reservation Hours Admin
   ============================================================ */
.reservation-hours-panel{
  padding:22px!important;
}
.reservation-hours-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.reservation-hours-top h3{
  margin:4px 0 0;
  font-family:"Cormorant Garamond",serif;
  font-size:24px;
  font-weight:500;
}
.reservation-hours-grid{
  display:grid;
  gap:8px;
}
.reservation-day-row{
  display:grid;
  grid-template-columns:150px 110px 1fr 1fr;
  gap:14px;
  align-items:center;
  padding:14px 16px;
  border:1px solid rgba(54,37,31,.07);
  border-radius:14px;
  background:#fff;
}
.reservation-day-row.is-closed{
  background:#faf7f5;
  opacity:.72;
}
.reservation-day-name{
  display:grid;
}
.reservation-day-name strong{
  font-family:"Cormorant Garamond",serif;
  font-size:20px;
  font-weight:500;
}
.reservation-day-name span{
  font-size:9px;
  color:#9b8980;
}
.reservation-open-toggle{
  display:flex!important;
  align-items:center;
  gap:8px;
  font-size:11px;
}
.reservation-day-row>label:not(.reservation-open-toggle){
  display:grid;
  gap:5px;
  font-size:9px;
  color:#8f7c74;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.reservation-day-row input[type="time"]{
  width:100%;
  min-height:42px;
  border:1px solid rgba(54,37,31,.12);
  border-radius:10px;
  padding:0 10px;
  background:#fff;
}
.reservation-hours-actions{
  display:flex;
  align-items:center;
  gap:16px;
  margin-top:18px;
}
@media(max-width:800px){
  .reservation-day-row{
    grid-template-columns:1fr 1fr;
  }
  .reservation-hours-top{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* ============================================================
   V67 · Exact fly-into-Bag animation
   ============================================================ */
.satomi-bag-flyer{
  position:fixed;
  z-index:100000;
  pointer-events:none;
  overflow:hidden;
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 38px rgba(61,39,31,.22);
  transform-origin:center;
  will-change:transform,opacity;
}
.satomi-bag-flyer img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.satomi-bag-flyer span{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  color:#c98f8c;
  font-size:32px;
}
.header .cart.satomi-bag-catch{
  animation:satomiBagCatch .38s cubic-bezier(.2,.8,.2,1);
}
.header .cart.satomi-bag-catch .badge{
  animation:satomiBadgeCatch .38s cubic-bezier(.2,.8,.2,1);
}
@keyframes satomiBagCatch{
  0%{transform:scale(1)}
  45%{transform:scale(1.14)}
  100%{transform:scale(1)}
}
@keyframes satomiBadgeCatch{
  0%{transform:scale(1)}
  45%{transform:scale(1.32)}
  100%{transform:scale(1)}
}


/* ============================================================
   V68 · Account / annual cycle / admin data fixes
   ============================================================ */
.account-cycle-note-v68{
  margin:8px 0 2px;
  color:#927f76;
  font-size:10px;
  line-height:1.45;
}
.header [data-login][hidden],
.header [data-join][hidden]{
  display:none!important;
}
.admin-db-status.is-warning{
  background:#fffaf0;
  border-color:#efe1bd;
}
.admin-db-status.is-warning .admin-db-dot{
  background:#d3a34b;
}


/* ============================================================
   V69 · Reservation times + Visit weekly hours
   ============================================================ */
.visit-hours-card{
  margin-top:22px;
  padding:18px 20px;
  border:1px solid rgba(54,37,31,.08);
  border-radius:18px;
  background:#fffaf7;
}
.visit-hours-card h3{
  margin:5px 0 14px;
  font-family:"Cormorant Garamond",serif;
  font-size:26px;
  font-weight:500;
}
.visit-hours-list{
  display:grid;
  gap:0;
  border-top:1px solid rgba(54,37,31,.07);
}
.visit-hours-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:10px 0;
  border-bottom:1px solid rgba(54,37,31,.07);
  font-size:11px;
}
.visit-hours-row span{
  color:#806e66;
}
.visit-hours-row strong{
  font-weight:600;
  color:#3f2d27;
}
.visit-hours-row.is-closed strong{
  color:#a19189;
}
.visit-hours-note{
  margin:10px 0 13px;
  font-size:9px;
  color:#99877f;
}
.visit-reserve-link{
  display:inline-flex!important;
}
.visit-hours-loading{
  padding:14px 0;
  font-size:10px;
  color:#99877f;
}
#reserveTime:disabled{
  opacity:.65;
  background:#f7f3f1;
}


/* ============================================================
   V70 · Intro → Home transition reliability
   ============================================================ */
body.satomi-intro-open{
  overflow:hidden!important;
}

body.satomi-intro-open > .topbar,
body.satomi-intro-open > .header,
body.satomi-intro-open > main,
body.satomi-intro-open > .footer{
  opacity:0!important;
  visibility:hidden!important;
  transform:translateY(14px) scale(.995)!important;
}

body.satomi-intro-reveal > .topbar,
body.satomi-intro-reveal > .header,
body.satomi-intro-reveal > main,
body.satomi-intro-reveal > .footer,
body.satomi-intro-complete > .topbar,
body.satomi-intro-complete > .header,
body.satomi-intro-complete > main,
body.satomi-intro-complete > .footer{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}

body.satomi-intro-reveal > .topbar,
body.satomi-intro-reveal > .header,
body.satomi-intro-reveal > main,
body.satomi-intro-reveal > .footer{
  transition:
    opacity .72s ease .08s,
    transform .82s cubic-bezier(.2,.75,.2,1) .08s!important;
}

.satomi-intro.is-exiting-v70{
  pointer-events:none!important;
  animation:satomiIntroExitV70 .72s cubic-bezier(.2,.72,.2,1) forwards;
}

.satomi-intro.is-exiting-v70 .satomi-intro-content,
.satomi-intro.is-exiting-v70 .satomi-intro-skip,
.satomi-intro.is-exiting-v70 .satomi-intro-hint{
  opacity:0!important;
  transform:translateY(-8px) scale(.985)!important;
  transition:opacity .32s ease,transform .48s ease!important;
}

.satomi-intro.is-exiting-v70 .satomi-intro-video{
  transform:scale(1.055)!important;
  filter:brightness(1.14) saturate(.82) blur(1px)!important;
  transition:transform .72s ease,filter .72s ease!important;
}

.satomi-intro.is-exiting-v70 .satomi-intro-curtain{
  opacity:.58!important;
  transition:opacity .6s ease!important;
}

@keyframes satomiIntroExitV70{
  0%{opacity:1}
  72%{opacity:.22}
  100%{opacity:0;visibility:hidden}
}

/* If Safari cannot autoplay, keep a graceful branded fallback,
   but still enter the homepage automatically. */
.satomi-intro.safari-video-fallback{
  background:linear-gradient(135deg,#f4ded8,#fff7f2)!important;
}
.satomi-intro.safari-video-fallback .satomi-intro-video{
  opacity:.18!important;
}


/* ============================================================
   V72 · Account / Cart / Admin health
   ============================================================ */
#accountTierProgress{display:none!important}

.admin-system-health{
  margin:14px 0 18px;
  padding:16px;
  border:1px solid rgba(54,37,31,.08);
  border-radius:18px;
  background:#fff;
}
.admin-health-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:12px;
}
.admin-health-title strong{
  display:block;
  margin-top:2px;
  font-family:"Cormorant Garamond",serif;
  font-size:24px;
  font-weight:500;
}
.admin-health-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.admin-health-item{
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 11px;
  border-radius:12px;
  background:#faf7f5;
  font-size:10px;
}
.admin-health-item>span{
  width:9px;height:9px;border-radius:50%;background:#c9bdb7;flex:0 0 auto;
}
.admin-health-item>div{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:8px;
  align-items:baseline;
  width:100%;
}
.admin-health-item strong{
  text-align:right;
  font-size:9px;
  font-weight:600;
}
.admin-health-item small{
  grid-column:1/-1;
  color:#938178;
  font-size:8px;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-health-item[data-state="ok"]>span{background:#79ad7b}
.admin-health-item[data-state="error"]>span{background:#c96b63}
.admin-health-item[data-state="warn"]>span{background:#d3a34b}
.admin-health-item[data-state="ok"]{background:#f5faf5}
.admin-health-item[data-state="error"]{background:#fff2ef}
.admin-health-item[data-state="warn"]{background:#fffaf0}

@media(max-width:900px){
  .admin-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .admin-health-grid{grid-template-columns:1fr}
}


/* ============================================================
   V73 · Build Your Own Gift Set — Unlimited Tea Add-ons
   ============================================================ */
.build-tea-v73{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
}
.build-tea-card-v73{
  overflow:hidden;
  display:grid;
  grid-template-columns:82px minmax(0,1fr);
  grid-template-rows:auto auto;
  gap:0 12px;
  padding:10px;
  border:1px solid rgba(54,37,31,.09);
  border-radius:16px;
  background:#fff;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.build-tea-card-v73.has-tea-v73{
  border-color:#d7a09e;
  box-shadow:0 8px 22px rgba(84,54,44,.08);
}
.build-tea-card-v73>img{
  grid-row:1/3;
  width:82px;
  height:96px;
  object-fit:cover;
  border-radius:11px;
}
.build-tea-copy-v73{
  display:grid;
  align-content:start;
  gap:3px;
  padding-top:3px;
}
.build-tea-copy-v73 b{
  font-family:"Cormorant Garamond",serif;
  font-size:19px;
  font-weight:500;
}
.build-tea-copy-v73 small{
  color:#8e7c74;
  font-size:9px;
}
.build-tea-copy-v73 em{
  color:#a87570;
  font-size:9px;
  font-style:normal;
  font-weight:600;
}
.build-tea-qty-v73{
  align-self:end;
  display:grid;
  grid-template-columns:30px 32px 30px;
  align-items:center;
  justify-content:start;
  gap:3px;
  margin-top:7px;
}
.build-tea-qty-v73 button{
  width:30px;
  height:30px;
  border:1px solid rgba(54,37,31,.1);
  border-radius:50%;
  background:#fff8f5;
  cursor:pointer;
  font-size:16px;
}
.build-tea-qty-v73 span{
  text-align:center;
  font-size:11px;
  font-weight:600;
}

.build-summary-group-v73{
  margin-top:13px;
  padding-top:12px;
  border-top:1px solid rgba(54,37,31,.08);
}
.build-summary-label-v73{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#9c7d73;
  font-weight:600;
}
.build-summary-label-v73 span{
  letter-spacing:0;
  text-transform:none;
  color:#8d7b73;
}
.build-selected-v36 .build-group-row-v73{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:10px!important;
  padding:6px 0!important;
}
.build-group-row-v73 strong{
  flex:0 0 auto;
  font-size:10px;
}

.build-selected-tea-v73{
  display:grid;
  gap:7px;
}
.build-selected-tea-v73>p{
  margin:0;
  color:#9a8880;
  font-size:10px;
}
.build-tea-summary-row-v73{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto 28px;
  align-items:center;
  gap:8px;
  padding:5px 0;
}
.build-tea-summary-row-v73 img{
  width:34px;
  height:34px;
  border-radius:8px;
  object-fit:cover;
}
.build-tea-summary-row-v73 span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}
.build-tea-summary-row-v73 strong{
  font-size:10px;
}
.build-tea-summary-row-v73 button{
  width:26px;
  height:26px;
  border:1px solid rgba(54,37,31,.1);
  border-radius:50%;
  background:#fff7f4;
  cursor:pointer;
}

@media(max-width:1100px){
  .build-tea-v73{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:650px){
  .build-tea-v73{grid-template-columns:1fr!important}
}


/* ============================================================
   V74 · Rewards Goods Tier Management
   ============================================================ */
.admin-tier-access-v74{
  margin:16px 0;
  padding:15px;
  border:1px solid rgba(54,37,31,.09);
  border-radius:14px;
  background:#fffaf7;
}
.admin-tier-access-head-v74{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:11px;
}
.admin-tier-access-head-v74>div{
  display:grid;
  gap:2px;
}
.admin-tier-access-head-v74 span{
  font-size:11px;
  font-weight:600;
  color:#45322b;
}
.admin-tier-access-head-v74 small{
  font-size:9px;
  color:#927f77;
}
.admin-text-action-v74{
  border:0;
  background:transparent;
  color:#a26f6d;
  font-size:10px;
  cursor:pointer;
}
.admin-tier-check-grid-v74{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
}
.admin-tier-check-grid-v74 label{
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px;
  border:1px solid rgba(54,37,31,.08);
  border-radius:10px;
  background:#fff;
  font-size:9px;
}
.admin-good-save-actions-v74{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.admin-delete-good-v74{
  border:0;
  background:transparent;
  color:#ad5d58;
  font-size:10px;
  cursor:pointer;
  padding:9px 4px;
}
.admin-delete-good-v74:hover{
  text-decoration:underline;
}
.admin-tier-pill-v74{
  display:inline-block;
  max-width:165px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding:5px 8px;
  border-radius:999px;
  background:#f4ebe7;
  color:#785b51;
  font-size:8px;
}
.reward-tier-access-v74{
  position:absolute;
  left:12px;
  bottom:12px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(255,250,247,.92);
  color:#735a50;
  font-size:8px;
  backdrop-filter:blur(6px);
}
.reward-goods-card-v57.is-tier-locked-v74 .reward-goods-photo-v57 img{
  filter:saturate(.72);
}
.reward-goods-card-v57.is-tier-locked-v74 .reward-goods-actions-v57{
  opacity:.55;
}
.reward-tier-locked-note-v74{
  margin-top:9px;
  padding:8px 10px;
  border-radius:10px;
  background:#fff4f0;
  color:#9b625e;
  font-size:9px;
  text-align:center;
}
@media(max-width:800px){
  .admin-tier-check-grid-v74{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ============================================================
   V75 · Grouped box preview + Bag/Reservation images + cart badge
   ============================================================ */
.build-preview-group-v75{
  position:relative!important;
  overflow:hidden;
}
.build-preview-group-v75 img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.build-preview-qty-v75{
  position:absolute;
  right:8px;
  bottom:8px;
  min-width:30px;
  height:30px;
  padding:0 8px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(54,37,31,.86);
  color:white;
  font-size:11px;
  font-weight:700;
  box-shadow:0 4px 14px rgba(0,0,0,.15);
}

.cart-line-v75{
  grid-template-columns:64px minmax(0,1fr) auto auto!important;
  align-items:center!important;
}
.cart-line-image-v75{
  width:58px;
  height:58px;
  object-fit:cover;
  border-radius:12px;
  background:#f7efeb;
}
.cart-line-v75 .cart-line-copy-v29{
  min-width:0;
}
.cart-line-v75 .cart-line-copy-v29 h4{
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

.reservation-line-v75{
  display:grid!important;
  grid-template-columns:64px minmax(0,1fr) auto!important;
  gap:14px!important;
  align-items:center!important;
}
.reservation-line-image-v75{
  width:60px;
  height:60px;
  object-fit:cover;
  border-radius:12px;
  background:#f7efeb;
}
.reservation-line-v75>div{
  min-width:0;
}
.reservation-line-v75 h4{
  margin:0 0 4px!important;
}

.header .cart .badge{
  z-index:2!important;
}

@media(max-width:600px){
  .cart-line-v75{
    grid-template-columns:52px minmax(0,1fr) auto!important;
  }
  .cart-line-image-v75{
    width:48px;height:48px;
  }
  .cart-line-v75 .cart-remove-v29{
    grid-column:3;
  }
}


/* ============================================================
   V76 · Global Header Announcement
   ============================================================ */
.satomi-announcement-bar{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  width:100%;
  padding:6px 18px;
  background:var(--announcement-bg,#f6dede)!important;
  color:var(--announcement-text,#5a342f)!important;
  text-align:center;
  text-decoration:none!important;
  font-size:10px;
  font-weight:500;
  line-height:1.35;
  letter-spacing:.12em;
  text-transform:uppercase;
  border-top:1px solid rgba(54,37,31,.035);
  border-bottom:1px solid rgba(54,37,31,.05);
  position:relative;
  z-index:80;
}
a.satomi-announcement-bar:hover{
  filter:brightness(.985);
}
@media(max-width:700px){
  .satomi-announcement-bar{
    min-height:28px;
    padding:5px 12px;
    font-size:8.5px;
    letter-spacing:.08em;
  }
}


/* ============================================================
   V77 · Announcement publish verification
   ============================================================ */
.satomi-announcement-bar{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:32px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:7px 20px!important;
  background:var(--announcement-bg,#f6dede)!important;
  color:var(--announcement-text,#5a342f)!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:10px!important;
  font-weight:500!important;
  line-height:1.3!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  text-align:center!important;
  text-decoration:none!important;
  border:0!important;
  border-bottom:1px solid rgba(54,37,31,.055)!important;
  position:relative!important;
  z-index:90!important;
  opacity:1!important;
  visibility:visible!important;
}

.admin-announcement-actions-v77{
  display:flex;
  align-items:center;
  gap:14px;
}
.admin-hide-announcement-v77{
  border:1px solid rgba(54,37,31,.12);
  border-radius:999px;
  background:#fff;
  color:#8f625e;
  padding:11px 18px;
  cursor:pointer;
  font-size:10px;
}
.admin-saved-toast-v77{
  position:fixed;
  left:50%;
  bottom:34px;
  z-index:100000;
  transform:translate(-50%,18px);
  padding:12px 22px;
  border-radius:999px;
  background:#3e2d27;
  color:#fff;
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  box-shadow:0 14px 34px rgba(50,31,26,.18);
  opacity:0;
  visibility:hidden;
  transition:opacity .2s ease,transform .25s ease,visibility .2s ease;
  pointer-events:none;
}
.admin-saved-toast-v77.show{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0);
}
@media(max-width:700px){
  .satomi-announcement-bar{
    min-height:29px!important;
    padding:6px 12px!important;
    font-size:8.5px!important;
    letter-spacing:.09em!important;
  }
  .admin-announcement-actions-v77{
    align-items:stretch;
    flex-direction:column;
  }
}


/* ============================================================
   V78 · Reservation Time UX
   ============================================================ */
.reservation-time-status-v78{
  display:block;
  min-height:14px;
  margin-top:4px;
  color:#9b756f;
  font-size:9px;
  line-height:1.4;
}
#reserveTime:not(:disabled){
  background:#fff;
  cursor:pointer;
}
#reserveTime:disabled{
  cursor:not-allowed;
}


/* ============================================================
   V79 · Hard Global Announcement Slot
   ============================================================ */
.satomi-global-announcement-v79[hidden]{
  display:none!important;
}
.satomi-global-announcement-v79{
  width:100%!important;
  display:block!important;
  position:relative!important;
  z-index:85!important;
  background:var(--announcement-bg,#f6dede)!important;
  color:var(--announcement-text,#5a342f)!important;
  border-bottom:1px solid rgba(54,37,31,.055)!important;
}
.satomi-global-announcement-inner-v79{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:31px!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:6px 18px!important;
  color:inherit!important;
  background:transparent!important;
  text-decoration:none!important;
  text-align:center!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:10px!important;
  line-height:1.35!important;
  font-weight:500!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
}
a.satomi-global-announcement-inner-v79:hover{
  opacity:.88!important;
}
@media(max-width:700px){
  .satomi-global-announcement-inner-v79{
    min-height:28px!important;
    padding:5px 11px!important;
    font-size:8.5px!important;
    letter-spacing:.08em!important;
  }
}


/* ============================================================
   V80 · Customer Directory / Traffic reliability
   ============================================================ */
.admin-empty-state span{
  line-height:1.45;
}


/* ============================================================
   V81 · Admin identity + live customer/traffic status
   ============================================================ */
.satomi-admin-identity-v81{
  border:1px solid rgba(54,37,31,.10);
  border-radius:999px;
  background:#fffaf7;
  color:#4b352e;
  padding:8px 12px;
  font-size:10px;
  font-weight:600;
  white-space:nowrap;
  cursor:pointer;
}
.admin-live-status-v81{
  margin-top:6px;
  color:#927f76;
  font-size:9px;
  line-height:1.4;
}
.admin-page [data-login],
.admin-page [data-join]{
  display:none!important;
}


/* ============================================================
   V82 · Announcement final rendering
   ============================================================ */
.satomi-global-announcement-v82[hidden]{
  display:none!important;
}
.satomi-global-announcement-v82{
  display:block!important;
  width:100%!important;
  position:relative!important;
  z-index:120!important;
  background:var(--announcement-bg,#f6dede)!important;
  color:var(--announcement-text,#5a342f)!important;
  border-bottom:1px solid rgba(54,37,31,.06)!important;
}
.satomi-global-announcement-inner-v82{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:32px!important;
  padding:6px 16px!important;
  box-sizing:border-box!important;
  color:inherit!important;
  background:transparent!important;
  text-decoration:none!important;
  text-align:center!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:10px!important;
  line-height:1.35!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}


/* ============================================================
   V83 · Admin identity matches member identity pill
   ============================================================ */
.satomi-admin-identity-v83{
  border:1px solid rgba(54,37,31,.10);
  border-radius:999px;
  background:#fffaf7;
  color:#443029;
  padding:8px 11px;
  font-size:10px;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
}
.satomi-admin-identity-v83:hover{
  background:#fff5f0;
}


/* ============================================================
   V84 · Core data reliability
   ============================================================ */
.satomi-global-announcement-v84[hidden]{display:none!important}
.satomi-global-announcement-v84{
  display:block!important;width:100%!important;position:relative!important;z-index:140!important;
  background:var(--announcement-bg,#f6dede)!important;color:var(--announcement-text,#5a342f)!important;
  border-bottom:1px solid rgba(54,37,31,.06)!important
}
.satomi-global-announcement-inner-v84{
  display:flex!important;align-items:center!important;justify-content:center!important;
  min-height:32px!important;padding:6px 16px!important;box-sizing:border-box!important;
  color:inherit!important;text-decoration:none!important;text-align:center!important;
  font-family:Inter,Arial,sans-serif!important;font-size:10px!important;font-weight:600!important;
  letter-spacing:.12em!important;text-transform:uppercase!important
}
.admin-data-repair-note-v84{font-size:9px;color:#8b7469;margin:0 0 10px;line-height:1.4}


/* V85 diagnostic strip */
.admin-v85-diagnostics{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  align-items:center;
  margin:0 0 16px;
  padding:10px 12px;
  border-radius:12px;
  background:#fffaf7;
  font-size:10px;
  color:#6f5a52;
}
.admin-v85-diagnostics strong{
  color:#46342e;
}
.admin-v85-diagnostics span[data-state="ok"]{
  color:#496553;
}
.admin-v85-diagnostics span[data-state="error"]{
  color:#a34f4f;
}


/* V86 admin live status */
.admin-live-status-v86{
  margin-top:6px;
  font-size:10px;
  color:#7a675f;
  line-height:1.4;
}


/* V88 deploy marker */
.admin-v88-version{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 9px;
  margin:0 0 8px;
  border-radius:999px;
  background:#f5ece8;
  color:#7d5c52;
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
}

.admin-v90-version{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 9px;
  margin:0 0 8px;
  border-radius:999px;
  background:#f2e7e2;
  color:#6f4d43;
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
}


/* ============================================================
   V91 · Customer reservation detail modal
   ============================================================ */
.reservation-count-btn-v91{
  border:0;
  background:#f2e9e5;
  color:#6a473e;
  border-radius:999px;
  padding:7px 10px;
  font:inherit;
  font-size:10px;
  cursor:pointer;
  white-space:nowrap;
}
.reservation-count-btn-v91:hover{background:#eadbd5}
.reservation-none-v91{color:#a99a92}
.satomi-reservation-modal-v91[hidden]{display:none!important}
.satomi-reservation-modal-v91{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.satomi-reservation-backdrop-v91{
  position:absolute;
  inset:0;
  background:rgba(42,31,27,.34);
  backdrop-filter:blur(4px);
}
.satomi-reservation-panel-v91{
  position:relative;
  width:min(900px,94vw);
  max-height:88vh;
  overflow:auto;
  background:#fffdfb;
  border-radius:24px;
  padding:28px;
  box-shadow:0 30px 80px rgba(42,31,27,.18);
}
.satomi-reservation-close-v91{
  position:absolute;
  top:16px;
  right:18px;
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:#f7efeb;
  color:#533b33;
  font-size:22px;
  cursor:pointer;
}
.satomi-reservation-sub-v91{
  margin:4px 0 20px;
  color:#927f76;
  font-size:11px;
}
.reservation-detail-card-v91{
  border:1px solid rgba(80,58,49,.08);
  border-radius:18px;
  padding:18px;
  margin-top:14px;
  background:#fff;
}
.reservation-detail-head-v91{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:16px;
}
.reservation-detail-head-v91>div{
  display:flex;
  align-items:center;
  gap:9px;
}
.reservation-number-v91{
  font-size:9px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#9a8378;
}
.reservation-detail-head-v91>span{
  font-size:10px;
  color:#9a8378;
}
.reservation-detail-grid-v91{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.reservation-detail-grid-v91>div,
.reservation-detail-section-v91{
  background:#fcf8f5;
  border-radius:12px;
  padding:11px 12px;
}
.reservation-detail-grid-v91 small,
.reservation-detail-section-v91>small{
  display:block;
  margin-bottom:4px;
  color:#a18d83;
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.reservation-detail-grid-v91 strong{
  font-size:10px;
  font-weight:600;
  color:#4d3831;
  word-break:break-word;
}
.reservation-detail-section-v91{
  margin-top:12px;
}
.reservation-detail-section-v91 p{
  margin:0;
  font-size:10px;
  line-height:1.5;
}
.reservation-items-v91{
  display:grid;
  gap:6px;
}
.reservation-items-v91>div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:10px;
}
.reservation-id-v91{
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:9px!important;
}
body.modal-open-v91{overflow:hidden}
@media(max-width:760px){
  .satomi-reservation-panel-v91{padding:22px 16px}
  .reservation-detail-grid-v91{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ============================================================
   V92 · Manual customer rewards controls
   ============================================================ */
.customer-rewards-cell-v92{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
}
.customer-rewards-edit-v92{
  border:0;
  background:transparent;
  padding:1px 0;
  color:#a56f65;
  font-size:9px;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
}
.satomi-rewards-admin-modal-v92[hidden]{display:none!important}
.satomi-rewards-admin-modal-v92{
  position:fixed;
  inset:0;
  z-index:10010;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.satomi-rewards-admin-backdrop-v92{
  position:absolute;
  inset:0;
  background:rgba(42,31,27,.34);
  backdrop-filter:blur(4px);
}
.satomi-rewards-admin-panel-v92{
  position:relative;
  width:min(560px,94vw);
  background:#fffdfb;
  border-radius:24px;
  padding:28px;
  box-shadow:0 30px 80px rgba(42,31,27,.18);
}
.satomi-rewards-admin-close-v92{
  position:absolute;
  top:16px;
  right:18px;
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:#f7efeb;
  color:#533b33;
  font-size:22px;
  cursor:pointer;
}
.satomi-rewards-admin-panel-v92>p{
  color:#8d7970;
  font-size:11px;
  line-height:1.5;
}
.customer-rewards-form-v92{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:20px;
}
.customer-rewards-form-v92 label>span{
  display:block;
  margin-bottom:6px;
  color:#9b857b;
  font-size:8px;
  letter-spacing:.12em;
}
.customer-rewards-form-v92 input,
.customer-rewards-form-v92 select{
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(68,48,41,.12);
  border-radius:12px;
  background:#fff;
  padding:11px 12px;
  color:#4d3831;
}
.customer-rewards-admin-actions-v92{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:20px;
}
#customerRewardsStatusV92{
  font-size:10px;
  color:#77645c;
}
@media(max-width:620px){
  .customer-rewards-form-v92{grid-template-columns:1fr}
}


/* V93 Reservation History / Editing / Payment */
.satomi-reservation-modal-v93[hidden]{display:none!important}
.satomi-reservation-modal-v93{position:fixed;inset:0;z-index:10020;display:flex;align-items:center;justify-content:center;padding:20px}
.satomi-reservation-backdrop-v93{position:absolute;inset:0;background:rgba(42,31,27,.38);backdrop-filter:blur(5px)}
.satomi-reservation-panel-v93{position:relative;width:min(1080px,96vw);max-height:92vh;overflow:auto;background:#fffdfb;border-radius:26px;padding:28px;box-shadow:0 30px 90px rgba(42,31,27,.20)}
.satomi-reservation-close-v93{position:absolute;top:16px;right:18px;width:36px;height:36px;border:0;border-radius:50%;background:#f7efeb;color:#533b33;font-size:22px;cursor:pointer}
.reservation-history-head-v93{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px;padding-right:42px}
.satomi-reservation-sub-v93{margin:5px 0 0;color:#927f76;font-size:11px}
.reservation-history-note-v93{max-width:350px;padding:10px 12px;border-radius:12px;background:#faf3ef;color:#7e6259;font-size:10px;line-height:1.45}
.reservation-history-card-v93{border:1px solid rgba(80,58,49,.09);border-radius:20px;background:#fff;padding:18px;margin-top:14px}
.reservation-history-card-head-v93{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:6px}
.reservation-history-card-head-v93 h3{margin:3px 0 0;font-size:20px}
.reservation-history-card-actions-v93{display:flex;gap:8px;align-items:center}
.payment-badge-v93{display:inline-flex;align-items:center;min-height:24px;padding:4px 9px;border-radius:999px;font-size:8px;font-weight:700;letter-spacing:.12em}
.payment-badge-v93[data-state="paid"]{background:#eef4ef;color:#4d6c55}
.payment-badge-v93[data-state="unpaid"]{background:#f7eeee;color:#9b5d58}
.reservation-paid-btn-v93{border:0;border-radius:999px;background:#60443a;color:#fff;padding:8px 12px;font-size:9px;cursor:pointer}
.reservation-paid-btn-v93.is-paid{background:#8aa08f;cursor:default}
.reservation-history-meta-v93{display:flex;gap:14px;flex-wrap:wrap;color:#9a8378;font-size:9px;margin-bottom:14px}
.reservation-edit-grid-v93{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.reservation-edit-grid-v93 label>span,.reservation-total-box-v93>span,.reservation-notes-v93>span{display:block;margin-bottom:5px;color:#9b857b;font-size:8px;letter-spacing:.12em;text-transform:uppercase}
.reservation-edit-grid-v93 input,.reservation-edit-grid-v93 select,.reservation-notes-v93 textarea{width:100%;box-sizing:border-box;border:1px solid rgba(68,48,41,.11);border-radius:11px;background:#fff;padding:9px 10px;color:#4d3831}
.reservation-total-box-v93{border-radius:11px;background:#faf5f2;padding:9px 10px}
.reservation-products-block-v93{margin-top:14px;border-radius:14px;background:#fcf8f5;padding:13px}
.reservation-products-title-v93{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}
.reservation-products-title-v93>span{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.reservation-products-title-v93 small{font-size:9px;color:#9a8378}
.reservation-edit-row-v93{display:grid;grid-template-columns:minmax(180px,1fr) 80px 110px 34px;gap:7px;margin-bottom:7px}
.reservation-edit-row-v93 input{width:100%;box-sizing:border-box;border:1px solid rgba(68,48,41,.10);border-radius:9px;padding:8px 9px}
.reservation-item-remove-v93,.reservation-add-item-v93{border:0;border-radius:9px;background:#efe4df;color:#704f44;cursor:pointer}
.reservation-add-item-v93{padding:8px 11px;font-size:9px}
.reservation-paid-items-v93{display:grid;gap:6px}
.reservation-paid-items-v93>div{display:flex;justify-content:space-between;gap:12px;font-size:10px}
.reservation-notes-v93{display:block;margin-top:12px}
.reservation-notes-v93 textarea{min-height:70px;resize:vertical}
.reservation-history-footer-v93{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:14px}
.reservation-reward-info-v93{display:flex;flex-direction:column;gap:2px}
.reservation-reward-info-v93 strong{font-size:10px;color:#4d3831}
.reservation-reward-info-v93 span{font-size:9px;color:#927f76}
.reservation-history-save-v93{display:flex;gap:10px;align-items:center}
.reservation-history-save-v93>span{font-size:9px;color:#7d665d}
.reservation-save-btn-v93{border:1px solid rgba(68,48,41,.12);border-radius:999px;background:#fff;color:#5f4339;padding:8px 12px;font-size:9px;cursor:pointer}
@media(max-width:800px){
  .reservation-history-head-v93{flex-direction:column}
  .reservation-edit-grid-v93{grid-template-columns:1fr 1fr}
  .reservation-edit-row-v93{grid-template-columns:1fr 70px 90px 34px}
  .reservation-history-footer-v93{flex-direction:column;align-items:stretch}
}


/* ============================================================
   V94 · Account modal must always sit above announcement/header
   ============================================================ */
#accountModal.modal,
#loginModal.modal,
#joinModal.modal{
  z-index:12050!important;
}
#accountModal .modalbox,
#accountModal .account-modal-card,
#accountModal .account-panel{
  position:relative;
  z-index:12051!important;
}
body:has(#accountModal.open) #satomiGlobalAnnouncement,
body:has(#loginModal.open) #satomiGlobalAnnouncement,
body:has(#joinModal.open) #satomiGlobalAnnouncement{
  z-index:60!important;
}


/* ============================================================
   V94 · Customer active order tracking
   ============================================================ */
.account-active-orders-v94{
  margin:18px 0 22px;
  padding-top:16px;
  border-top:1px solid rgba(80,58,49,.10);
}
.account-active-orders-v94 h3{
  margin:0 0 10px;
}
.account-order-list-v94{
  display:grid;
  gap:9px;
}
.account-order-card-v94{
  border:1px solid rgba(80,58,49,.09);
  border-radius:14px;
  background:#fffaf7;
  overflow:hidden;
}
.account-order-summary-v94{
  width:100%;
  border:0;
  background:transparent;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  text-align:left;
  padding:11px 13px;
  color:#4d3831;
  cursor:pointer;
}
.account-order-summary-v94>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.account-order-summary-v94 span{
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#9a8378;
}
.account-order-summary-v94 strong{
  font-size:11px;
}
.account-order-summary-v94 small,
.account-order-summary-v94 b{
  font-size:9px;
  color:#8d756b;
}
.account-order-progress-v94{
  height:4px;
  background:#eee4df;
}
.account-order-progress-v94 i{
  display:block;
  height:100%;
  background:#c99494;
  border-radius:999px;
}
.account-order-detail-v94{
  padding:12px 13px 14px;
  border-top:1px solid rgba(80,58,49,.07);
}
.account-order-detail-grid-v94{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.account-order-detail-grid-v94>div{
  background:#fff;
  border-radius:9px;
  padding:8px 9px;
}
.account-order-detail-grid-v94 span{
  display:block;
  color:#9b857b;
  font-size:7px;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.account-order-detail-grid-v94 strong{
  font-size:9px;
}
.account-order-items-v94{
  display:grid;
  gap:4px;
  margin-top:9px;
}
.account-order-items-v94>div{
  display:flex;
  justify-content:space-between;
  font-size:9px;
}
.account-order-note-v94{
  margin:9px 0 0;
  font-size:9px;
  color:#7f6b63;
}
.account-order-empty-v94,
.account-order-loading-v94,
.account-order-error-v94{
  font-size:10px;
  color:#8d756b;
}

/* Admin progress control */
.reservation-progress-admin-v94{
  margin-top:12px;
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto auto;
  gap:9px;
  align-items:end;
  padding:12px;
  border-radius:13px;
  background:#f7f0ec;
}
.reservation-progress-admin-v94 label>span{
  display:block;
  margin-bottom:5px;
  color:#9b857b;
  font-size:8px;
  letter-spacing:.12em;
}
.reservation-progress-admin-v94 select{
  width:100%;
  border:1px solid rgba(68,48,41,.11);
  border-radius:10px;
  background:white;
  padding:9px 10px;
}
.reservation-progress-admin-v94 button{
  border:0;
  border-radius:999px;
  padding:9px 12px;
  background:#6a4a40;
  color:white;
  font-size:9px;
  cursor:pointer;
}
.reservation-progress-admin-v94>span{
  min-width:58px;
  font-size:9px;
  color:#79665d;
  padding-bottom:8px;
}
@media(max-width:700px){
  .reservation-progress-admin-v94{
    grid-template-columns:1fr;
    align-items:stretch;
  }
}


/* ============================================================
   V95 · Pickup / Delivery customer column
   ============================================================ */
.customer-order-types-v95{display:flex;flex-wrap:wrap;gap:6px}
.order-type-btn-v95{
  border:0;border-radius:999px;padding:7px 10px;font-size:9px;cursor:pointer;white-space:nowrap;
}
.order-type-btn-v95.pickup{background:#f2e9e5;color:#6a473e}
.order-type-btn-v95.delivery{background:#eef2f5;color:#51616c}

/* ============================================================
   V95 · Calendar
   ============================================================ */
.admin-calendar-toolbar-v95{
  display:grid;
  grid-template-columns:140px 170px auto 1fr;
  gap:12px;
  align-items:end;
  margin:18px 0;
}
.admin-calendar-toolbar-v95 label>span,
.admin-calendar-revenue-v95>span{
  display:block;margin-bottom:6px;color:#9b857b;font-size:8px;letter-spacing:.12em;
}
.admin-calendar-toolbar-v95 select{
  width:100%;border:1px solid rgba(68,48,41,.12);border-radius:11px;background:white;padding:9px 10px;
}
#adminCalendarLoadV95{
  border:0;border-radius:999px;background:#6a4a40;color:white;padding:10px 14px;cursor:pointer;
}
.admin-calendar-revenue-v95{
  justify-self:end;min-width:200px;padding:10px 14px;border-radius:14px;background:#faf4f1;text-align:right;
}
.admin-calendar-revenue-v95 strong{display:block;font-size:22px;color:#4d3831}
.admin-calendar-revenue-v95 small{font-size:8px;color:#9a8378}
.admin-calendar-weekdays-v95,
.admin-calendar-grid-v95{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;
}
.admin-calendar-weekdays-v95{margin-bottom:7px}
.admin-calendar-weekdays-v95 span{text-align:center;font-size:8px;letter-spacing:.12em;color:#9a8378;text-transform:uppercase}
.calendar-cell-v95{
  min-height:130px;border:1px solid rgba(80,58,49,.09);border-radius:14px;background:white;padding:8px;overflow:hidden;
}
.calendar-cell-v95.is-empty{background:transparent;border-color:transparent}
.calendar-cell-v95.has-orders{background:#fffdfb}
.calendar-day-number-v95{font-size:10px;font-weight:700;color:#5d443b;margin-bottom:7px}
.calendar-day-orders-v95{display:grid;gap:5px}
.calendar-mini-order-v95{
  border:0;border-radius:9px;text-align:left;padding:6px 7px;cursor:pointer;display:flex;flex-direction:column;gap:2px;
}
.calendar-mini-order-v95.pickup{background:#f6eeea;color:#65483f}
.calendar-mini-order-v95.delivery{background:#eef3f5;color:#53636c}
.calendar-mini-order-v95 strong{font-size:8px}
.calendar-mini-order-v95 span{font-size:7px;opacity:.8}
.calendar-day-orders-v95 small{font-size:7px;color:#9a8378}
.admin-calendar-status-v95{font-size:9px;color:#8e786e;margin-top:9px}

/* Day modal */
.calendar-day-modal-v95[hidden]{display:none!important}
.calendar-day-modal-v95{position:fixed;inset:0;z-index:10030;display:flex;align-items:center;justify-content:center;padding:20px}
.calendar-day-backdrop-v95{position:absolute;inset:0;background:rgba(42,31,27,.38);backdrop-filter:blur(5px)}
.calendar-day-panel-v95{
  position:relative;width:min(1050px,96vw);max-height:90vh;overflow:auto;background:#fffdfb;border-radius:24px;padding:26px;box-shadow:0 30px 90px rgba(42,31,27,.20)
}
.calendar-day-close-v95{position:absolute;right:16px;top:14px;width:34px;height:34px;border:0;border-radius:50%;background:#f5ece8;font-size:20px;cursor:pointer}
.calendar-day-panel-v95>p{font-size:10px;color:#907b72}
.calendar-day-layout-v95{display:grid;grid-template-columns:320px 1fr;gap:16px;margin-top:16px}
.calendar-day-list-v95{display:grid;gap:7px;align-content:start}
.calendar-day-order-v95{
  border:1px solid rgba(80,58,49,.08);border-radius:12px;background:white;padding:10px 11px;display:flex;justify-content:space-between;gap:10px;text-align:left;cursor:pointer
}
.calendar-day-order-v95>div{display:flex;flex-direction:column;gap:2px}
.calendar-day-order-v95 strong{font-size:10px}
.calendar-day-order-v95 span,.calendar-day-order-v95 small{font-size:8px;color:#8e786e}
.calendar-order-detail-v95{border-radius:16px;background:#faf6f3;padding:16px;min-height:240px}
.calendar-order-detail-v95 h3{margin:3px 0 14px}
.calendar-order-detail-grid-v95{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.calendar-order-detail-grid-v95>div{background:white;border-radius:10px;padding:9px}
.calendar-order-detail-grid-v95 span,.calendar-order-products-v95>span,.calendar-order-notes-v95>span{
  display:block;font-size:7px;letter-spacing:.11em;text-transform:uppercase;color:#9b857b;margin-bottom:4px
}
.calendar-order-detail-grid-v95 strong{font-size:9px}
.calendar-order-products-v95{margin-top:12px}
.calendar-order-products-v95>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid rgba(80,58,49,.07);font-size:9px}
.calendar-order-notes-v95{margin-top:12px}
.calendar-order-notes-v95 p{margin:0;font-size:9px}
@media(max-width:900px){
  .admin-calendar-toolbar-v95{grid-template-columns:1fr 1fr}
  .admin-calendar-revenue-v95{justify-self:stretch;text-align:left}
  .calendar-cell-v95{min-height:100px}
  .calendar-day-layout-v95{grid-template-columns:1fr}
  .calendar-order-detail-grid-v95{grid-template-columns:1fr 1fr}
}


/* V96 · reliable Sign Out affordance */
#logoutBtn{
  cursor:pointer!important;
}
#logoutBtn:disabled{
  opacity:.65;
  cursor:wait!important;
}

/* V97 · Bags are isolated by authenticated Supabase user id in this browser. */


/* ============================================================
   V99 · Catalog Add / Multi Remove
   ============================================================ */
.catalog-actions-v99{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.catalog-remove-btn-v99,
.catalog-cancel-remove-v99{
  border:1px solid rgba(82,58,50,.13);background:#fff;color:#6b4b42;
  border-radius:999px;padding:10px 14px;font-size:10px;cursor:pointer
}
.catalog-save-remove-v99{
  border:0;background:#7a4d48;color:#fff;border-radius:999px;
  padding:10px 14px;font-size:10px;cursor:pointer
}
.catalog-select-cell-v99,.catalog-select-head-v99{width:38px;text-align:center!important}
.catalog-select-cell-v99 input,.catalog-select-head-v99 input{width:16px;height:16px;accent-color:#c98f8f;cursor:pointer}
#adminProductPageV99,#adminGoodKindV99{
  width:100%;box-sizing:border-box;border:1px solid rgba(68,48,41,.12);
  border-radius:12px;background:#fff;padding:11px 12px;color:#4d3831
}
@media(max-width:720px){
  .catalog-actions-v99{width:100%;justify-content:flex-start}
}


/* ============================================================
   V100 · Admin catalog buttons + image upload
   ============================================================ */
.catalog-actions-v99{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.catalog-actions-v99 > button{
  box-sizing:border-box!important;
  min-height:46px!important;
  height:46px!important;
  padding:0 20px!important;
  margin:0!important;
  border-radius:999px!important;
  font-family:inherit!important;
  font-size:14px!important;
  font-weight:500!important;
  line-height:1!important;
  white-space:nowrap;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.catalog-actions-v99 > .btn.small{
  font-size:16px!important;
  min-width:150px;
}
.catalog-remove-btn-v99{min-width:156px}
.catalog-save-remove-v99{min-width:132px}
.catalog-cancel-remove-v99{min-width:92px}

.admin-image-upload-v100{
  display:block;
  margin:14px 0 18px;
}
.admin-image-upload-label-v100{
  display:block;
  margin-bottom:7px;
  color:#9b857b;
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.admin-image-upload-box-v100{
  display:grid;
  grid-template-columns:132px 1fr;
  gap:16px;
  align-items:center;
  padding:14px;
  border:1px dashed rgba(93,67,57,.20);
  border-radius:16px;
  background:#fcf8f5;
}
.admin-image-preview-v100{
  width:132px;
  height:112px;
  display:block;
  object-fit:cover;
  border-radius:12px;
  background:#f1e8e3;
  border:1px solid rgba(93,67,57,.08);
}
.admin-image-upload-copy-v100{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.admin-image-upload-copy-v100 strong{
  font-size:13px;
  color:#4d3831;
}
.admin-image-upload-copy-v100 small{
  font-size:10px;
  color:#907b72;
}
.admin-image-choose-v100{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 16px;
  margin-top:4px;
  border-radius:999px;
  background:#cf9696;
  color:white;
  cursor:pointer;
  font-size:12px;
  font-weight:600;
}
.admin-image-choose-v100 input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.admin-image-clear-v100{
  border:0;
  background:transparent;
  color:#8b665c;
  padding:2px 0;
  font-size:10px;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}
.admin-image-status-v100{
  min-height:14px;
  font-size:10px;
  color:#6f7567;
}
@media(max-width:720px){
  .catalog-actions-v99{
    width:100%;
    justify-content:flex-start;
  }
  .catalog-actions-v99 > button{
    min-width:0!important;
    font-size:12px!important;
    padding:0 14px!important;
  }
  .admin-image-upload-box-v100{
    grid-template-columns:1fr;
  }
  .admin-image-preview-v100{
    width:100%;
    height:180px;
  }
}


/* ============================================================
   V101 · Traffic chart repair
   ============================================================ */
.admin-hourly-chart{
  position:relative;
  height:260px!important;
  display:grid!important;
  grid-template-columns:repeat(24,minmax(18px,1fr))!important;
  gap:6px!important;
  align-items:stretch!important;
  padding:20px 0 0!important;
  overflow-x:auto;
  border-top:1px solid rgba(70,49,41,.06);
  background:
    linear-gradient(to bottom,
      transparent 24%,
      rgba(80,58,49,.055) 25%,
      transparent 26%,
      transparent 49%,
      rgba(80,58,49,.055) 50%,
      transparent 51%,
      transparent 74%,
      rgba(80,58,49,.055) 75%,
      transparent 76%
    );
}

.admin-hour-col{
  height:100%!important;
  min-width:18px!important;
  display:grid!important;
  grid-template-rows:20px 1fr 22px!important;
  gap:5px!important;
  align-items:end;
}

.admin-hour-value{
  height:20px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  font-size:9px!important;
  color:#725f57!important;
  font-variant-numeric:tabular-nums;
}

.admin-hour-bar-track{
  height:100%!important;
  position:relative;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center;
  border-radius:8px 8px 4px 4px!important;
  background:rgba(248,242,239,.78)!important;
  overflow:hidden!important;
}

.admin-hour-bar{
  display:block!important;
  width:72%!important;
  max-width:24px;
  min-height:0!important;
  border-radius:7px 7px 2px 2px!important;
  background:linear-gradient(to top,#c78f8f,#e1b1ad)!important;
  box-shadow:0 3px 8px rgba(125,82,76,.10);
  transition:height .25s ease,opacity .2s ease;
}

.admin-hour-col:hover .admin-hour-bar{
  opacity:.82;
}

.admin-hour-label{
  height:22px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  font-size:9px!important;
  color:#8e7a72!important;
  font-variant-numeric:tabular-nums;
}

@media(max-width:900px){
  .admin-hourly-chart{
    grid-template-columns:repeat(24,26px)!important;
    height:230px!important;
  }
}


/* ============================================================
   V102 · Sales Analytics
   ============================================================ */
.sales-controls-v102{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  margin:0 0 18px;
  padding:14px 16px;
  border:1px solid rgba(80,58,49,.08);
  border-radius:16px;
  background:#fffaf7;
}
.sales-controls-v102 label{
  min-width:220px;
}
.sales-controls-v102 label>span{
  display:block;
  margin-bottom:6px;
  color:#9b857b;
  font-size:8px;
  letter-spacing:.13em;
}
.sales-metric-toggle-v102{
  display:inline-flex;
  padding:4px;
  border-radius:999px;
  background:#f4ebe7;
  gap:3px;
}
.sales-metric-toggle-v102 button{
  border:0;
  border-radius:999px;
  background:transparent;
  padding:9px 14px;
  color:#775f56;
  font-size:10px;
  cursor:pointer;
}
.sales-metric-toggle-v102 button.active{
  background:#fff;
  color:#4f3932;
  box-shadow:0 2px 8px rgba(80,58,49,.08);
}
.sales-kpis-v102{
  margin-bottom:18px;
}
.sales-trend-panel-v102{
  overflow:hidden;
}
.sales-line-legend-v102{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:10px;
  color:#806c64;
}
.sales-line-legend-v102 span{
  width:18px;
  height:3px;
  border-radius:999px;
  background:#c99191;
}
.sales-line-wrap-v102{
  width:100%;
  overflow-x:auto;
  padding:2px 0 0;
}
.sales-line-chart-v102{
  width:100%;
  min-width:720px;
  height:310px;
  display:block;
}
.sales-grid-line-v102{
  stroke:rgba(80,58,49,.08);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}
.sales-axis-text-v102{
  fill:#9a867d;
  font-size:10px;
  font-family:Inter,Arial,sans-serif;
}
.sales-area-v102{
  fill:rgba(205,148,148,.10);
}
.sales-line-v102{
  fill:none;
  stroke:#c99191;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.sales-point-v102{
  fill:#fff;
  stroke:#b97e7e;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.sales-category-grid-v102{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.sales-category-card-v102{
  padding:16px;
  border:1px solid rgba(80,58,49,.08);
  border-radius:16px;
  background:#fffaf7;
}
.sales-category-head-v102{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px;
}
.sales-category-head-v102 strong{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:20px;
  font-weight:500;
  color:#4d3831;
}
.sales-category-head-v102 span{
  color:#9a867d;
  font-size:9px;
}
.sales-product-bars-v102{
  display:grid;
  gap:10px;
}
.sales-product-row-v102{
  display:grid;
  grid-template-columns:22px 1fr;
  gap:8px;
  align-items:center;
}
.sales-product-rank-v102{
  width:22px;
  height:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#efe2dd;
  color:#7b5c53;
  font-size:8px;
  font-weight:700;
}
.sales-product-main-v102{
  min-width:0;
}
.sales-product-label-v102{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:5px;
}
.sales-product-label-v102 strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
  color:#4e3932;
}
.sales-product-label-v102 span{
  flex:0 0 auto;
  font-size:9px;
  color:#806d65;
}
.sales-product-track-v102{
  height:7px;
  border-radius:999px;
  background:#eee4df;
  overflow:hidden;
}
.sales-product-track-v102 i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#d7a2a0,#bd8585);
}
.admin-live-status-v102{
  margin-top:6px;
  font-size:10px;
  color:#8d786f;
}
@media(max-width:850px){
  .sales-controls-v102{
    align-items:stretch;
    flex-direction:column;
  }
  .sales-controls-v102 label{
    min-width:0;
  }
  .sales-category-grid-v102{
    grid-template-columns:1fr;
  }
}


/* ============================================================
   V103 · Customer ranking + purchase detail
   ============================================================ */
.customer-rank-limit-v103{min-width:140px}
.customer-rank-limit-v103>span{
  display:block;margin-bottom:6px;color:#9b857b;font-size:8px;letter-spacing:.12em
}
.customer-rank-table-wrap-v103{overflow:auto}
.customer-rank-table-v103{width:100%;border-collapse:collapse}
.customer-rank-table-v103 th,
.customer-rank-table-v103 td{
  padding:12px 10px;border-bottom:1px solid rgba(80,58,49,.08);text-align:left;font-size:10px
}
.customer-rank-table-v103 th{
  color:#9b857b;font-size:8px;letter-spacing:.11em;text-transform:uppercase
}
.customer-rank-table-v103 tbody tr{cursor:pointer;transition:background .15s ease}
.customer-rank-table-v103 tbody tr:hover{background:#fcf5f2}
.customer-rank-table-v103 td strong{display:block;color:#4d3831}
.customer-rank-table-v103 td small{display:block;color:#9a867d;margin-top:2px}
.customer-rank-number-v103{
  width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:#efe2dd;color:#74564d;font-weight:700;font-size:9px
}
.customer-rank-help-v103{margin:10px 0 0;color:#9a867d;font-size:9px}

.customer-sales-modal-v103[hidden]{display:none!important}
.customer-sales-modal-v103{
  position:fixed;inset:0;z-index:10040;display:flex;align-items:center;justify-content:center;padding:20px
}
.customer-sales-backdrop-v103{
  position:absolute;inset:0;background:rgba(42,31,27,.40);backdrop-filter:blur(5px)
}
.customer-sales-panel-v103{
  position:relative;width:min(1120px,96vw);max-height:92vh;overflow:auto;
  background:#fffdfb;border-radius:26px;padding:28px;box-shadow:0 30px 90px rgba(42,31,27,.22)
}
.customer-sales-close-v103{
  position:absolute;right:16px;top:14px;width:36px;height:36px;border:0;border-radius:50%;
  background:#f5ece8;color:#5b4239;font-size:22px;cursor:pointer
}
.customer-sales-head-v103{
  display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-right:42px
}
.customer-sales-head-v103 h2{margin:4px 0 3px}
.customer-sales-head-v103 p{margin:0;color:#917b72;font-size:10px}
.customer-sales-period-v103{
  display:flex;gap:4px;padding:4px;border-radius:999px;background:#f3eae6;flex-wrap:wrap
}
.customer-sales-period-v103 button{
  border:0;border-radius:999px;background:transparent;color:#7b6259;padding:8px 11px;font-size:9px;cursor:pointer
}
.customer-sales-period-v103 button.active{background:#fff;color:#4d3831;box-shadow:0 2px 7px rgba(80,58,49,.08)}
.customer-sales-kpis-v103{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0
}
.customer-sales-kpis-v103>div{
  border:1px solid rgba(80,58,49,.08);border-radius:14px;background:#fff;padding:12px
}
.customer-sales-kpis-v103 span{
  display:block;color:#9b857b;font-size:7px;letter-spacing:.11em;text-transform:uppercase;margin-bottom:5px
}
.customer-sales-kpis-v103 strong{font-size:17px;color:#4d3831}
.customer-sales-chart-card-v103,
.customer-sales-products-card-v103{
  margin-top:12px;padding:16px;border:1px solid rgba(80,58,49,.08);border-radius:16px;background:#fff
}
.customer-sales-chart-card-v103 h3,
.customer-sales-products-card-v103 h3{margin:4px 0 12px}
.customer-sales-line-v103{width:100%;min-width:680px;height:280px;display:block}
.customer-sales-chart-card-v103{overflow-x:auto}
.customer-sales-products-v103{display:grid;gap:10px}
.customer-favorite-row-v103{
  display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center
}
.customer-favorite-rank-v103{
  width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:#efe2dd;color:#74564d;font-size:9px;font-weight:700
}
.customer-favorite-label-v103{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:5px
}
.customer-favorite-label-v103 strong{font-size:10px;color:#4d3831}
.customer-favorite-label-v103 span{font-size:9px;color:#8b766d}
.customer-favorite-track-v103{
  height:7px;border-radius:999px;background:#eee4df;overflow:hidden
}
.customer-favorite-track-v103 i{
  display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#d7a2a0,#bd8585)
}
@media(max-width:820px){
  .customer-sales-head-v103{flex-direction:column}
  .customer-sales-kpis-v103{grid-template-columns:1fr 1fr}
}


/* ============================================================
   V104 · Traffic visitors-by-date time series
   ============================================================ */
.traffic-daily-panel-v104{
  overflow:hidden;
}
.traffic-daily-panel-v104 .admin-panel-head p,
#adminTopPagesPeriodV104{
  margin:5px 0 0;
  font-size:10px;
  color:#948078;
}
.traffic-daily-chart-wrap-v104{
  width:100%;
  overflow-x:auto;
  padding-top:4px;
}
.traffic-daily-chart-v104{
  width:100%;
  min-width:720px;
  height:300px;
  display:block;
}
.traffic-daily-grid-v104{
  stroke:rgba(80,58,49,.08);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}
.traffic-daily-axis-v104{
  fill:#947f76;
  font-size:10px;
  font-family:Inter,Arial,sans-serif;
}
.traffic-daily-area-v104{
  fill:rgba(201,145,145,.10);
}
.traffic-daily-line-v104{
  fill:none;
  stroke:#c58d8d;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.traffic-daily-point-v104{
  fill:#fff;
  stroke:#b97e7e;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
@media(max-width:800px){
  .traffic-daily-chart-v104{
    min-width:680px;
    height:270px;
  }
}


/* ============================================================
   V105 · Account Current Pickup / Delivery Orders
   ============================================================ */
.account-active-orders-v105{
  margin:24px 0 26px;
  padding-top:22px;
  border-top:1px solid rgba(80,58,49,.10);
}
.account-orders-heading-v105{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.account-orders-heading-v105 h3{
  margin:0!important;
}
.account-orders-heading-v105 p{
  margin:4px 0 0;
  color:#8f7a72;
  font-size:11px;
  line-height:1.5;
}
.account-order-count-v105{
  min-width:28px;
  height:28px;
  padding:0 8px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#efe1dc;
  color:#704f46;
  font-size:10px;
  font-weight:700;
}
.account-orders-status-v105{
  margin:8px 0 12px;
  color:#9a857c;
  font-size:9px;
}
.account-orders-list-v105{
  display:grid;
  gap:10px;
}
.account-order-card-v105{
  border:1px solid rgba(80,58,49,.10);
  border-radius:15px;
  background:#fffaf8;
  overflow:hidden;
}
.account-order-main-v105{
  display:grid;
  grid-template-columns:90px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px 14px;
}
.account-order-type-v105{
  min-height:36px;
  border:0;
  border-radius:999px;
  background:#d29a9a;
  color:#fff;
  padding:0 13px;
  cursor:pointer;
  font-family:inherit;
  font-size:11px;
  font-weight:600;
}
.account-order-type-v105:hover,
.account-order-type-v105.is-open{
  background:#b97f7f;
}
.account-order-when-v105{
  min-width:0;
}
.account-order-when-v105 strong{
  display:block;
  color:#4d3831;
  font-size:11px;
}
.account-order-when-v105 span{
  display:block;
  margin-top:2px;
  color:#8d786f;
  font-size:10px;
}
.account-order-progress-v105{
  justify-self:end;
  padding:7px 10px;
  border-radius:999px;
  background:#f0e6e2;
  color:#775d54;
  font-size:9px;
  white-space:nowrap;
}
.account-order-progress-v105[data-state="preparing"],
.account-order-progress-v105[data-state="baking"]{
  background:#f6ead5;
  color:#866737;
}
.account-order-progress-v105[data-state="ready"],
.account-order-progress-v105[data-state="out_for_delivery"]{
  background:#e3eee3;
  color:#537052;
}
.account-order-detail-v105{
  padding:14px;
  border-top:1px solid rgba(80,58,49,.08);
  background:#fff;
}
.account-order-detail-meta-v105{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:12px;
}
.account-order-detail-meta-v105>div{
  padding:9px;
  border-radius:10px;
  background:#faf5f2;
}
.account-order-detail-meta-v105 span,
.account-order-address-v105 span,
.account-order-total-v105 span{
  display:block;
  color:#9a857c;
  font-size:8px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.account-order-detail-meta-v105 strong,
.account-order-address-v105 strong{
  display:block;
  margin-top:3px;
  color:#4d3831;
  font-size:10px;
}
.account-order-items-v105{
  display:grid;
  gap:7px;
}
.account-order-item-v105{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:8px 0;
  border-bottom:1px solid rgba(80,58,49,.07);
}
.account-order-item-v105 img{
  width:42px;
  height:42px;
  object-fit:cover;
  border-radius:8px;
}
.account-order-item-v105 strong{
  display:block;
  color:#4d3831;
  font-size:10px;
}
.account-order-item-v105 span{
  display:block;
  margin-top:2px;
  color:#917d74;
  font-size:9px;
}
.account-order-item-v105 b{
  color:#4d3831;
  font-size:10px;
}
.account-order-address-v105{
  margin-top:10px;
  padding:9px 10px;
  border-radius:10px;
  background:#faf5f2;
}
.account-order-total-v105{
  margin-top:12px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:10px;
  border-top:1px solid rgba(80,58,49,.10);
}
.account-order-total-v105 strong{
  color:#4d3831;
  font-size:15px;
}
.account-orders-empty-v105{
  padding:14px;
  border-radius:12px;
  background:#faf5f2;
}
.account-orders-empty-v105 strong{
  display:block;
  color:#4d3831;
  font-size:11px;
}
.account-orders-empty-v105 span{
  display:block;
  margin-top:3px;
  color:#927e75;
  font-size:9px;
}
@media(max-width:700px){
  .account-order-main-v105{
    grid-template-columns:80px 1fr;
  }
  .account-order-progress-v105{
    grid-column:1/-1;
    justify-self:start;
  }
  .account-order-detail-meta-v105{
    grid-template-columns:1fr 1fr;
  }
}


/* ============================================================
   V106 · Customer Directory Pickup / Delivery reservation dates
   ============================================================ */
.customer-order-types-v106{
  display:grid!important;
  gap:7px!important;
}
.customer-order-type-row-v106{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.customer-order-type-row-v106 .order-type-btn-v95{
  flex:0 0 auto;
}
.customer-order-date-v106{
  min-width:0;
  color:#8f7a72;
  font-size:9px;
  line-height:1.35;
  white-space:normal;
}
@media(max-width:760px){
  .customer-order-type-row-v106{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
}


/* ============================================================
   V107 · Calendar Order Editor + Reservation Inbox
   ============================================================ */
.reservation-inbox-help-v107{
  margin:5px 0 0;
  max-width:720px;
  color:#927d74;
  font-size:10px;
  line-height:1.5;
}
#adminReservations{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.reservation-inbox-card-v107{
  padding:14px 16px;
  border:1px solid rgba(80,58,49,.09);
  border-radius:14px;
  background:#fffaf8;
}
.reservation-inbox-main-v107{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.reservation-inbox-main-v107 strong{
  display:block;
  color:#4d3831;
  font-size:12px;
}
.reservation-inbox-main-v107 div>span{
  display:block;
  margin-top:3px;
  color:#927d74;
  font-size:9px;
}
.reservation-inbox-status-v107{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  background:#efe4df;
  color:#765c53;
  font-size:9px;
}
.reservation-inbox-status-v107[data-state="preparing"],
.reservation-inbox-status-v107[data-state="baking"]{
  background:#f6ead5;
  color:#866737;
}
.reservation-inbox-status-v107[data-state="ready"],
.reservation-inbox-status-v107[data-state="out_for_delivery"]{
  background:#e4eee3;
  color:#557054;
}
.reservation-inbox-status-v107[data-state="completed"]{
  background:#e1ece5;
  color:#4c6954;
}
.reservation-inbox-status-v107[data-state="cancelled"]{
  background:#eee9e7;
  color:#8a7770;
}
.reservation-inbox-meta-v107{
  display:flex;
  gap:14px;
  margin-top:10px;
  color:#735e56;
  font-size:9px;
}
.reservation-inbox-products-v107{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:9px;
}
.reservation-inbox-products-v107 span{
  padding:5px 8px;
  border-radius:999px;
  background:#f5ece8;
  color:#7d665d;
  font-size:8px;
}

.calendar-progress-editor-v107 select{
  width:100%;
  margin-top:4px;
  border:1px solid rgba(80,58,49,.10);
  border-radius:8px;
  background:#fff;
  padding:6px 7px;
  color:#4d3831;
  font-size:9px;
}
.calendar-order-products-v107{
  margin-top:14px;
}
.calendar-order-products-head-v107{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-bottom:9px;
}
.calendar-order-products-head-v107 span{
  display:block;
  color:#9a857c;
  font-size:8px;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.calendar-order-products-head-v107 small{
  display:block;
  margin-top:3px;
  color:#9a857c;
  font-size:8px;
}
.calendar-order-products-head-v107 button{
  border:0;
  border-radius:999px;
  background:#cf9696;
  color:#fff;
  padding:8px 11px;
  font-size:9px;
  cursor:pointer;
}
.calendar-order-products-head-v107 button:disabled{
  opacity:.5;
  cursor:not-allowed;
}
.calendar-edit-item-head-v107,
.calendar-edit-item-row-v107{
  display:grid;
  grid-template-columns:minmax(170px,1fr) 70px 90px 32px;
  gap:7px;
  align-items:center;
}
.calendar-edit-item-head-v107{
  margin-bottom:5px;
  color:#9b857c;
  font-size:7px;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.calendar-edit-item-row-v107{
  margin-bottom:6px;
}
.calendar-edit-item-row-v107 input{
  min-width:0;
  border:1px solid rgba(80,58,49,.10);
  border-radius:9px;
  background:#fff;
  padding:8px 9px;
  color:#4d3831;
  font-size:9px;
}
.calendar-edit-item-row-v107 button{
  width:30px;
  height:30px;
  border:0;
  border-radius:50%;
  background:#f3e8e4;
  color:#805f56;
  cursor:pointer;
}
.calendar-order-notes-editor-v107{
  display:block;
  margin-top:12px;
}
.calendar-order-notes-editor-v107>span{
  display:block;
  margin-bottom:5px;
  color:#9a857c;
  font-size:8px;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.calendar-order-notes-editor-v107 textarea{
  width:100%;
  box-sizing:border-box;
  min-height:70px;
  resize:vertical;
  border:1px solid rgba(80,58,49,.10);
  border-radius:10px;
  background:#fff;
  padding:9px;
  color:#4d3831;
  font:inherit;
  font-size:9px;
}
.calendar-order-save-v107{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-top:12px;
}
.calendar-order-save-v107 span{
  margin-right:auto;
  color:#866f66;
  font-size:9px;
}
.calendar-order-save-v107 button{
  border:0;
  border-radius:999px;
  background:#7b514a;
  color:#fff;
  padding:10px 15px;
  font-size:9px;
  cursor:pointer;
}
.calendar-order-save-v107 button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
@media(max-width:760px){
  .calendar-edit-item-head-v107{display:none}
  .calendar-edit-item-row-v107{
    grid-template-columns:1fr 70px 82px 30px;
  }
  .reservation-inbox-main-v107{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* ============================================================
   V109 · Capacity cutoff only
   ============================================================ */
.admin-calendar-cutoff-btn-v108,
.admin-calendar-cutoff-save-v108,
.admin-calendar-cutoff-cancel-v108{
  min-height:42px;
  padding:0 14px;
  border-radius:999px;
  font-size:10px;
  cursor:pointer;
}
.admin-calendar-cutoff-btn-v108{
  border:1px solid rgba(109,76,67,.16);
  background:#fff;
  color:#6c4f47;
}
.admin-calendar-cutoff-save-v108{
  border:0;
  background:#7b514a;
  color:#fff;
}
.admin-calendar-cutoff-cancel-v108{
  border:1px solid rgba(109,76,67,.14);
  background:#fff;
  color:#745a52;
}
.admin-calendar-cutoff-help-v108{
  margin-top:8px;
  color:#8d776e;
  font-size:9px;
}
.calendar-day-top-v108{
  display:flex;
  align-items:center;
  gap:6px;
}
.calendar-closed-badge-v108{
  margin-left:auto;
  padding:4px 6px;
  border-radius:999px;
  background:#6f4d46;
  color:#fff;
  font-size:7px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.calendar-cell-v95.orders-closed-v108{
  background:#f4efec;
}
.calendar-cell-v95.orders-closed-v108 .calendar-day-orders-v95{
  opacity:.65;
}
.calendar-cutoff-choice-v108{
  margin-left:auto;
  display:flex;
  align-items:center;
  cursor:pointer;
}
.calendar-cutoff-choice-v108 input{
  width:16px;
  height:16px;
  accent-color:#9c6e68;
}
.calendar-cell-v95.cutoff-selected-v108{
  outline:2px solid #c68f8f;
  outline-offset:-2px;
  background:#fbefec;
}

.reservation-date-status-v108{
  display:block;
  margin-top:5px;
  color:#9a847b;
  font-size:9px;
  line-height:1.35;
}




/* ============================================================
   V112 · Menu category filter state
   ============================================================ */
.menu-filter-hidden-v112{display:none!important}
#menuCategoryFiltersV112 button{cursor:pointer}
#menuCategoryFiltersV112 button:focus-visible{
  outline:2px solid rgba(190,128,128,.45);
  outline-offset:5px;
  border-radius:4px;
}


/* ============================================================
   V113 · Reservation status / calendar completion / sales refresh
   ============================================================ */
.reservation-inbox-status-v107[data-state="baking"]{
  background:#f4e5c9!important;
  color:#7b5b2c!important;
}
.reservation-inbox-status-v107[data-state="completed"]{
  background:#dfece2!important;
  color:#44684d!important;
  font-weight:700;
}
.reservation-inbox-status-v107[data-state="cancelled"]{
  background:#eee9e7!important;
  color:#7f6e68!important;
}

.calendar-mini-order-v95.is-completed-v113,
.calendar-day-order-v95.is-completed-v113{
  background:#e7f1e8!important;
  border-color:#c8ddcb!important;
  color:#365b40!important;
}
.calendar-mini-order-v95.is-completed-v113 strong,
.calendar-mini-order-v95.is-completed-v113 span,
.calendar-day-order-v95.is-completed-v113 strong,
.calendar-day-order-v95.is-completed-v113 span,
.calendar-day-order-v95.is-completed-v113 small{
  color:#365b40!important;
}
.calendar-mini-order-v95 .calendar-status-mini-v113{
  display:inline-block;
  margin-top:3px;
  font-size:8px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.calendar-mini-order-v95.is-completed-v113 .calendar-status-mini-v113{
  color:#47714f!important;
}


/* ============================================================
   V114 · Customer Directory unpaid remaining counts
   ============================================================ */
.customer-order-type-row-v106 .order-type-btn-v95{
  white-space:nowrap;
}
.customer-order-type-row-v106 .order-type-btn-v95:has(+ .customer-order-date-v106){
  min-width:104px;
}


/* ============================================================
   V115 · Reservation Inbox customer name + sorting
   ============================================================ */
.reservation-booking-name-v115{
  display:block;
  margin-top:2px;
  color:#9a8178!important;
  font-size:8px!important;
  font-style:italic;
}


/* ============================================================
   V116 · Admin order detail + category management + catalog editors
   ============================================================ */
.admin-catalog-editor-v116{
  width:min(980px,94vw)!important;
  max-width:980px!important;
  max-height:88vh!important;
  overflow-y:auto!important;
  padding:30px 34px!important;
}
.admin-catalog-editor-v116 .admin-field{margin-bottom:12px}
.admin-catalog-editor-v116 .admin-good-form-grid{
  grid-template-columns:repeat(4,minmax(110px,1fr))!important;
}
.admin-catalog-editor-v116 .admin-image-upload-box-v100{
  grid-template-columns:180px 1fr!important;
}
.admin-catalog-editor-v116 .admin-image-preview-v100{
  width:180px!important;height:150px!important;object-fit:cover;
}
.category-actions-v116{
  display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;
}
.category-table-v116 input[type="text"],
.category-table-v116 input[type="number"],
.category-table-v116 select{
  width:100%;min-width:110px;box-sizing:border-box;
  border:1px solid rgba(80,58,49,.12);border-radius:9px;
  background:#fff;padding:8px 9px;font:inherit;font-size:10px;
}
.category-table-v116 tr.is-remove-v116{
  opacity:.48;text-decoration:line-through;background:#fbefec;
}
.category-save-status-v116{
  min-height:22px;margin-top:12px;color:#72574f;font-size:10px;
}
.calendar-order-actions-v116{flex-wrap:wrap}
.calendar-paid-btn-v116{
  border:0;border-radius:999px;background:#809985;color:#fff;
  padding:10px 16px;font-size:9px;cursor:pointer;
}
.calendar-paid-btn-v116.is-paid,
.calendar-paid-btn-v116:disabled{
  background:#dfe9e1;color:#48634e;cursor:default;
}
.reward-goods-meta-v116{
  display:flex;flex-wrap:wrap;gap:7px;margin:10px 0;
}
.reward-goods-meta-v116 span{
  padding:5px 8px;border-radius:999px;background:#f4e9e5;
  color:#745f57;font-size:9px;
}
.reward-goods-actions-v116{display:flex;gap:8px;flex-wrap:wrap}
.reward-redeem-v116{
  border:1px solid rgba(80,58,49,.12);border-radius:999px;
  background:#fff;padding:9px 12px;cursor:pointer;
}
@media(max-width:760px){
  .admin-catalog-editor-v116{
    width:96vw!important;max-height:92vh!important;padding:22px!important;
  }
  .admin-catalog-editor-v116 .admin-good-form-grid{
    grid-template-columns:1fr 1fr!important;
  }
}


/* ============================================================
   V117 · Catalog image preview + Pairing Guide Admin
   ============================================================ */
.admin-image-preview-v100[hidden],
#adminProductImagePreviewV100[hidden],
#adminGoodImagePreviewV100[hidden]{
  display:none!important;
}
.admin-image-preview-v100{
  display:block;
  object-fit:cover;
  background:#f7f2ef;
}
.admin-pairing-editor-v117{
  width:min(960px,94vw)!important;
  max-width:960px!important;
  max-height:88vh!important;
  overflow-y:auto!important;
  padding:30px 34px!important;
}
.pairing-editor-grid-v117{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.pairing-preview-grid-v117{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin:6px 0 18px;
}
.pairing-preview-card-v117{
  border:1px solid rgba(92,65,54,.11);
  border-radius:16px;
  background:#fbf7f4;
  padding:12px;
  display:grid;
  grid-template-columns:130px 1fr;
  grid-template-rows:auto 1fr;
  gap:6px 12px;
  align-items:center;
}
.pairing-preview-card-v117>span{
  grid-column:2;
  color:#9a7c70;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:9px;
}
.pairing-preview-card-v117 img{
  grid-row:1/3;
  width:130px;
  height:105px;
  object-fit:cover;
  border-radius:12px;
  background:#efe7e2;
}
.pairing-preview-card-v117 img[hidden]{display:none!important}
.pairing-preview-card-v117 strong{
  grid-column:2;
  font-size:13px;
}
.admin-pairing-table-v117 .pairing-desc-cell-v117{
  max-width:330px;
  white-space:normal;
  line-height:1.45;
}
.pairing-tea-thumb-v117{
  width:100%;
  height:95px;
  object-fit:cover;
  border-radius:12px;
  margin-bottom:10px;
}
@media(max-width:760px){
  .admin-pairing-editor-v117{width:96vw!important;padding:20px!important}
  .pairing-editor-grid-v117,
  .pairing-preview-grid-v117{grid-template-columns:1fr}
  .pairing-preview-card-v117{grid-template-columns:100px 1fr}
  .pairing-preview-card-v117 img{width:100px;height:90px}
}


/* ============================================================
   V118 · Rewards Goods card spacing
   ============================================================ */
.reward-goods-card .reward-goods-body{
  padding:22px 22px 24px!important;
}
.reward-goods-card .reward-goods-body .eyebrow{
  margin-bottom:12px;
}
.reward-goods-card .reward-goods-body h3{
  margin:0 0 10px!important;
}
.reward-goods-card .reward-goods-body p{
  margin:0 0 18px!important;
  line-height:1.65;
}
.reward-goods-card .reward-goods-meta-v116{
  margin:0 0 16px!important;
}
.reward-goods-card .reward-goods-actions-v116{
  margin-top:0!important;
  padding-top:2px;
}
.reward-goods-card .reward-goods-actions-v116 .add,
.reward-goods-card .reward-goods-actions-v116 .reward-redeem-v116{
  min-height:42px;
  padding:10px 16px;
}
@media(max-width:760px){
  .reward-goods-card .reward-goods-body{
    padding:18px 18px 20px!important;
  }
}


/* ============================================================
   V118 · Gift Set / Gift Card editing helpers
   ============================================================ */
.product-quick-edit-v118{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}
.product-quick-btn-v118{
  padding:9px 14px!important;
  border-radius:999px!important;
}
.product-page-pill-v118{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 9px;
  border-radius:999px;
  background:#f4efec;
  color:#755e55;
  font-size:9px;
  white-space:nowrap;
}
.product-page-pill-v118.is-gift-set{
  background:#f6e8e6;
  color:#8d5f61;
}
.product-page-pill-v118.is-gift-card{
  background:#f2ece0;
  color:#7d674a;
}


/* ============================================================
   V120 · Product status control + Category Order help
   ============================================================ */
.product-status-control-v120{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.product-status-select-v120{
  appearance:auto;
  border:1px solid rgba(82,61,52,.12);
  border-radius:999px;
  min-width:108px;
  padding:7px 30px 7px 12px;
  font:inherit;
  font-size:10px;
  font-weight:600;
  cursor:pointer;
  transition:.18s ease;
}
.product-status-select-v120.is-active{
  background:#e7f1e4;
  color:#4f714f;
  border-color:#d3e4cf;
}
.product-status-select-v120.is-inactive{
  background:#eee9e6;
  color:#846d65;
  border-color:#e1d6d1;
}
.product-status-save-v120{
  border:0;
  border-radius:999px;
  background:#7c554a;
  color:#fff;
  padding:7px 12px;
  font-size:9px;
  font-weight:600;
  cursor:pointer;
}
.product-status-save-v120[hidden]{
  display:none!important;
}
.product-status-save-v120:disabled{
  opacity:.65;
  cursor:wait;
}
.category-order-help-v120{
  margin:10px 0 0;
  color:#8a746b;
  font-size:10px;
  line-height:1.55;
}
.category-order-help-v120 strong{
  color:#5d463e;
}


/* ============================================================
   V121 · Goods inline Tier / Status editing
   ============================================================ */
.goods-tier-inline-v121{
  position:relative;
  display:inline-block;
}
.goods-tier-button-v121{
  border:0;
  cursor:pointer;
  max-width:190px;
  white-space:normal;
  line-height:1.3;
}
.goods-tier-popover-v121{
  position:absolute;
  z-index:80;
  top:calc(100% + 8px);
  left:0;
  width:220px;
  padding:12px;
  border:1px solid rgba(82,61,52,.12);
  border-radius:14px;
  background:#fff;
  box-shadow:0 14px 34px rgba(66,47,40,.14);
}
.goods-tier-popover-v121[hidden]{display:none!important}
.goods-tier-popover-v121 label{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 4px;
  font-size:10px;
  color:#59443d;
}
.goods-inline-save-v121{
  width:100%;
  margin-top:8px;
  border:0;
  border-radius:999px;
  background:#7c554a;
  color:#fff;
  padding:9px 12px;
  font-size:9px;
  font-weight:600;
  cursor:pointer;
}
.goods-status-control-v121{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.goods-status-select-v121{
  appearance:auto;
  min-width:108px;
  padding:7px 30px 7px 12px;
  border:1px solid rgba(82,61,52,.12);
  border-radius:999px;
  font:inherit;
  font-size:10px;
  font-weight:600;
  cursor:pointer;
}
.goods-status-select-v121.is-active{
  background:#e7f1e4;
  color:#4f714f;
  border-color:#d3e4cf;
}
.goods-status-select-v121.is-inactive{
  background:#eee9e6;
  color:#846d65;
  border-color:#e1d6d1;
}
.goods-status-save-v121{
  border:0;
  border-radius:999px;
  background:#7c554a;
  color:#fff;
  padding:7px 12px;
  font-size:9px;
  font-weight:600;
  cursor:pointer;
}
.goods-status-save-v121[hidden]{display:none!important}
.goods-status-save-v121:disabled,
.goods-inline-save-v121:disabled{
  opacity:.65;
  cursor:wait;
}


/* ============================================================
   V123 · Reservation Inbox double-click affordance
   ============================================================ */
.reservation-inbox-card-v107[data-inbox-reservation-id-v123]{
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.reservation-inbox-card-v107[data-inbox-reservation-id-v123]:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(71,51,43,.07);
  border-color:rgba(137,101,89,.18);
}


/* ============================================================
   V125 · Goods Tier selector + Pairing status selector
   ============================================================ */
.goods-tier-select-v125{
  min-width:126px;
  max-width:220px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 12px;
  border:1px solid #e2d8d3;
  border-radius:999px;
  background:#f4efec;
  color:#765f57;
  font:inherit;
  font-size:10px;
  font-weight:600;
  cursor:pointer;
}
.goods-tier-select-v125:hover{
  border-color:#d1beb6;
  background:#f1e9e5;
}
.goods-tier-select-v125[aria-expanded="true"]{
  border-color:#c89a94;
  box-shadow:0 0 0 3px rgba(200,154,148,.12);
}
.goods-tier-select-v125 span:first-child{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.goods-tier-chevron-v125{
  font-size:14px;
  line-height:1;
  flex:0 0 auto;
}
.pairing-status-control-v125{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.pairing-status-select-v125{
  min-width:108px;
  padding:7px 30px 7px 12px;
  border:1px solid rgba(82,61,52,.12);
  border-radius:999px;
  font:inherit;
  font-size:10px;
  font-weight:600;
  cursor:pointer;
}
.pairing-status-select-v125.is-active{
  background:#e7f1e4;
  color:#4f714f;
  border-color:#d3e4cf;
}
.pairing-status-select-v125.is-inactive{
  background:#eee9e6;
  color:#846d65;
  border-color:#e1d6d1;
}
.pairing-status-save-v125{
  border:0;
  border-radius:999px;
  background:#7c554a;
  color:#fff;
  padding:7px 12px;
  font-size:9px;
  font-weight:600;
  cursor:pointer;
}
.pairing-status-save-v125[hidden]{display:none!important}
.pairing-status-save-v125:disabled{opacity:.65;cursor:wait}


/* ============================================================
   V126 · Tier Management + Customer Points
   ============================================================ */
.admin-tier-editor-v126{
  width:min(900px,94vw)!important;
  max-width:900px!important;
  max-height:88vh!important;
  overflow:auto!important;
  padding:30px 34px!important;
}
.tier-editor-grid-v126{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.tier-editor-toggles-v126{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:12px 0;
}
.tier-default-pill-v126{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  background:#f3e8df;
  color:#755549;
  font-size:9px;
}
.tier-row-actions-v126{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.tier-remove-btn-v126{
  color:#945d58!important;
}
.tier-remove-btn-v126:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.customer-points-balance-v126{
  border:0;
  background:#f5efeb;
  color:#6f5047;
  border-radius:999px;
  padding:7px 12px;
  font:inherit;
  font-weight:600;
  cursor:pointer;
}
.customer-points-balance-v126:hover{
  background:#eee2dc;
  box-shadow:0 0 0 3px rgba(202,148,146,.10);
}
.customer-points-editor-v126{
  width:min(620px,92vw)!important;
}
.customer-points-summary-v126{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:18px 0;
}
.customer-points-summary-v126>div{
  background:#faf6f3;
  border-radius:14px;
  padding:14px;
}
.customer-points-summary-v126 span{
  display:block;
  color:#9a8177;
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.customer-points-summary-v126 strong{
  font-size:20px;
}
@media(max-width:700px){
  .tier-editor-grid-v126,
  .tier-editor-toggles-v126,
  .customer-points-summary-v126{
    grid-template-columns:1fr;
  }
}


/* V128 · Logged-out top navigation uses Login only */
header [data-join],
header [data-nav-join-v127-hidden],
header .satomi-nav-join-v127-control{
  display:none!important;
}


/* V131 · Forgot password above Sign In */
.forgot-password-above-v131{
  display:block;
  width:max-content;
  max-width:100%;
  margin:2px 0 10px 0;
  padding:2px 0;
  text-align:left;
}

/* V132 · normalized Rewards Goods + About editor */
.reward-goods-grid.reward-goods-grid-v57{align-items:stretch!important}
.reward-goods-card-v132{display:flex!important;flex-direction:column!important;min-width:0!important;overflow:hidden!important;border-radius:22px!important;background:#fff!important;border:1px solid rgba(72,49,40,.08)!important;box-shadow:0 12px 34px rgba(54,37,31,.035)!important}
.reward-goods-photo-v132{width:100%!important;aspect-ratio:4/3!important;overflow:hidden!important;background:#f6efeb!important}
.reward-goods-photo-v132 img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important}
.reward-goods-body-v132{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;padding:24px 24px 25px!important}
.reward-goods-body-v132 .eyebrow{margin-bottom:10px!important}
.reward-goods-card-v132 h3{margin:0 0 9px!important;font-size:29px!important;line-height:1.08!important}
.reward-goods-description-v132{min-height:42px!important;margin:0 0 12px!important;line-height:1.55!important;color:#7c6a62!important}
.reward-goods-meta-v132{margin-top:auto!important;padding-top:8px!important}
.reward-goods-actions-v132{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-top:14px!important}
.reward-goods-btn-v132{min-height:44px!important;width:100%!important;border-radius:999px!important;padding:10px 14px!important;font-size:11px!important;line-height:1.2!important;cursor:pointer!important}
.reward-goods-cash-v132{border:1px solid #3d2c25!important;background:#3d2c25!important;color:#fff!important}
.reward-goods-points-v132{border:1px solid rgba(80,58,49,.16)!important;background:#fff!important;color:#3d2c25!important}
.reward-goods-btn-v132:disabled{opacity:.45!important;cursor:not-allowed!important}
.about-editor-grid-v132{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:26px;margin-top:18px}
.about-editor-fields-v132{display:grid;gap:13px}
.about-editor-two-v132{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.about-image-preview-v132{width:100%!important;height:260px!important;border-radius:16px!important;object-fit:cover!important}
.about-save-message-v132{min-height:22px;margin-top:14px}
.about-story-image-v132{width:100%;min-height:430px;max-height:560px;object-fit:cover;border-radius:20px}
@media(max-width:900px){
  .reward-goods-grid.reward-goods-grid-v57{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .about-editor-grid-v132{grid-template-columns:1fr}.about-editor-two-v132{grid-template-columns:1fr}
}
@media(max-width:620px){
  .reward-goods-grid.reward-goods-grid-v57{grid-template-columns:1fr!important}
  .reward-goods-actions-v132{grid-template-columns:1fr!important}
}

/* V135 · Rewards page structural recovery */
.rewards-hero-v135{padding:72px 0 58px!important}
.rewards-hero-v135 .split{align-items:center!important;gap:54px!important}
.rewards-hero-v135 .split>div{min-width:0!important}
.rewards-hero-v135 .split>img{
  width:100%!important;
  height:520px!important;
  object-fit:cover!important;
  border-radius:22px!important;
}
.rewards-hero-v135 .btn{margin-top:18px!important}
.secret-access-section{padding-top:64px!important;padding-bottom:64px!important}
.rewards-goods-section{padding-top:70px!important}
@media(max-width:800px){
  .rewards-hero-v135{padding:42px 0!important}
  .rewards-hero-v135 .split{grid-template-columns:1fr!important}
  .rewards-hero-v135 .split>img{height:360px!important}
}

/* V136 · About image upload preview + uncropped public image */
.about-upload-box-v132{
  align-items:center!important;
}
.about-image-preview-v132{
  width:220px!important;
  height:220px!important;
  max-width:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#f7f1ed!important;
  padding:10px!important;
  border-radius:16px!important;
}

.about-story-v132{
  align-items:center!important;
}
.about-story-image-v132{
  width:min(100%, 520px)!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  justify-self:center!important;
  background:#f7f1ed!important;
  padding:12px!important;
  border-radius:22px!important;
  box-shadow:0 14px 34px rgba(58,40,34,.06)!important;
}
@media(max-width:800px){
  .about-story-image-v132{
    width:min(100%, 440px)!important;
  }
  .about-image-preview-v132{
    width:180px!important;
    height:180px!important;
  }
}

/* V137 · full uploaded images instead of edge cropping */
img[data-satomi-managed-image-v137="1"]{
  object-fit:contain!important;
  object-position:center!important;
  background:#f8f3ef!important;
}
.product img[data-satomi-managed-image-v137="1"]{
  width:100%!important;
  height:auto!important;
  aspect-ratio:1.4!important;
  padding:10px!important;
}
.gift-v36-card img[data-satomi-managed-image-v137="1"],
.giftcard-option img[data-satomi-managed-image-v137="1"]{
  width:100%!important;
  height:auto!important;
  aspect-ratio:1.35!important;
  padding:10px!important;
}
.reward-goods-photo-v132{background:#f8f3ef!important}
.reward-goods-photo-v132 img[data-satomi-managed-image-v137="1"]{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  padding:10px!important;
}
.category-card img{
  object-fit:contain!important;
  object-position:center!important;
  background:#f8f3ef!important;
  padding:8px!important;
}
.about-image-preview-v132{
  opacity:1!important;
  visibility:visible!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#f8f3ef!important;
}

/* V137 · announcement stays attached below the frozen header */
#satomiGlobalAnnouncement.satomi-announcement-sticky-v137{
  position:sticky!important;
  top:var(--satomi-sticky-header-height, 0px)!important;
  z-index:1190!important;
  width:100%!important;
  margin:0!important;
  box-shadow:0 6px 14px rgba(65,45,38,.045)!important;
}
header{
  z-index:1200!important;
}
@media(max-width:800px){
  #satomiGlobalAnnouncement.satomi-announcement-sticky-v137{
    top:var(--satomi-sticky-header-height, 0px)!important;
  }
}

/* ============================================================
   V138 · Header + Announcement freeze as one stack
   Announcement stays in its original position directly below header.
   ============================================================ */
.satomi-sticky-header-stack-v138{
  position:sticky!important;
  top:0!important;
  z-index:1200!important;
  width:100%!important;
  background:transparent!important;
}

.satomi-sticky-header-stack-v138 > header.header,
.satomi-sticky-header-stack-v138 > header{
  position:relative!important;
  top:auto!important;
  z-index:2!important;
  width:100%!important;
}

.satomi-sticky-header-stack-v138 > #satomiGlobalAnnouncement{
  position:relative!important;
  top:auto!important;
  z-index:1!important;
  width:100%!important;
  margin:0!important;
}

/* Disable the previous V137 per-element sticky behavior. */
#satomiGlobalAnnouncement.satomi-announcement-sticky-v137{
  position:relative!important;
  top:auto!important;
}

/* Keep the normal header styling while the wrapper handles stickiness. */
.header.satomi-header-in-stack-v138{
  position:relative!important;
  top:auto!important;
}

/* Hidden announcement takes zero space. */
#satomiGlobalAnnouncement[hidden]{
  display:none!important;
}

/* Keep account/login/join modals above the sticky stack. */
#accountModal.modal,
#loginModal.modal,
#joinModal.modal{
  z-index:12050!important;
}

/* ============================================================
   V139 · Intro video is clean: no header / announcement chrome
   ============================================================ */
html.satomi-intro-active-v139 .satomi-sticky-header-stack-v138,
body.satomi-intro-active-v139 .satomi-sticky-header-stack-v138,
html.satomi-intro-active-v139 header.header,
body.satomi-intro-active-v139 header.header,
html.satomi-intro-active-v139 #satomiGlobalAnnouncement,
body.satomi-intro-active-v139 #satomiGlobalAnnouncement{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

html.satomi-intro-active-v139 .satomi-sticky-header-stack-v138{
  position:absolute!important;
  top:0!important;
  left:0!important;
  width:100%!important;
  height:0!important;
  overflow:hidden!important;
}

/* Hide the thin handcrafted top strip during the welcome video too. */
html.satomi-intro-active-v139 .topline,
body.satomi-intro-active-v139 .topline,
html.satomi-intro-active-v139 .topbar,
body.satomi-intro-active-v139 .topbar{
  display:none!important;
}

/* ============================================================
   V140 · unpublished/unchecked announcement position hardening
   ============================================================ */
.satomi-sticky-header-stack-v138{
  display:block!important;
}

.satomi-sticky-header-stack-v138 > header.header,
.satomi-sticky-header-stack-v138 > header{
  display:block!important;
  order:1!important;
}

.satomi-sticky-header-stack-v138 > #satomiGlobalAnnouncement{
  order:2!important;
}

#satomiGlobalAnnouncement.is-hidden-v140,
#satomiGlobalAnnouncement[hidden],
.satomi-sticky-header-stack-v138 > #satomiGlobalAnnouncement[aria-hidden="true"]{
  display:none!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  overflow:hidden!important;
}

#satomiGlobalAnnouncement.is-visible-v140{
  display:block!important;
}

/* V141 · intro exit + admin save toast */
#satomiIntro{
  transition:opacity .24s ease!important;
}
#satomiIntro.is-leaving-v141{
  opacity:0!important;
  pointer-events:none!important;
}

.satomi-admin-toast-v141{
  position:fixed;
  left:50%;
  bottom:34px;
  transform:translate(-50%,18px);
  z-index:20000;
  background:#3f2d27;
  color:#fff;
  border-radius:999px;
  padding:11px 20px;
  font-size:13px;
  letter-spacing:.02em;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  box-shadow:0 12px 28px rgba(55,39,32,.16);
}
.satomi-admin-toast-v141.is-visible-v141{
  opacity:1;
  transform:translate(-50%,0);
}

/* V142 · Intro interaction hardening */
#satomiIntro{
  pointer-events:auto!important;
  z-index:30000!important;
}
#satomiIntro .satomi-intro-video,
#satomiIntro .satomi-intro-shade,
#satomiIntro .satomi-intro-content,
#satomiIntro .satomi-intro-hint,
#satomiIntro .satomi-intro-curtain{
  pointer-events:none!important;
}
#satomiIntroSkip{
  pointer-events:auto!important;
  z-index:30010!important;
  cursor:pointer!important;
}

/* ============================================================
   V143 · Intro playback + no-JS escape hatch
   ============================================================ */
.satomi-intro-exit-toggle-v143{
  position:fixed!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

#satomiIntro{
  animation:satomiIntroAutoHideV143 .18s ease 6.4s forwards!important;
}

.satomi-intro-click-layer-v143{
  position:absolute!important;
  inset:0!important;
  z-index:4!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}

#satomiIntroSkip{
  z-index:20!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  user-select:none!important;
}

/* Visible content sits above the full-screen click layer but remains non-interactive. */
#satomiIntro .satomi-intro-content{
  z-index:7!important;
  pointer-events:none!important;
}
#satomiIntro .satomi-intro-hint{
  z-index:8!important;
  pointer-events:none!important;
}
#satomiIntro .satomi-intro-curtain{
  pointer-events:none!important;
}

/* Immediate pure-CSS exit when user clicks anywhere or Skip. */
#satomiIntroExitV143:checked + #satomiIntro{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  display:none!important;
}

/* Main page becomes visible even if JS never executes. */
body.satomi-intro-open > .topbar,
body.satomi-intro-open > .header,
body.satomi-intro-open > main,
body.satomi-intro-open > .footer{
  animation:satomiHomeAutoRevealV143 .01s linear 6.4s forwards!important;
}

#satomiIntroExitV143:checked ~ .topbar,
#satomiIntroExitV143:checked ~ .header,
#satomiIntroExitV143:checked ~ main,
#satomiIntroExitV143:checked ~ .footer{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  pointer-events:auto!important;
}

/* Video is explicitly visible while loading/playing. */
#satomiIntroVideo{
  opacity:.64!important;
  visibility:visible!important;
  display:block!important;
  z-index:1!important;
}
#satomiIntro.satomi-intro-video-playing-v143 #satomiIntroVideo{
  opacity:.68!important;
}

@keyframes satomiIntroAutoHideV143{
  to{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
}
@keyframes satomiHomeAutoRevealV143{
  to{
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
  }
}

/* V144 · Main-thread freeze recovery / intro interaction */
#satomiIntro{
  will-change:opacity;
}
#satomiIntro .satomi-intro-click-layer-v143{
  pointer-events:auto!important;
  z-index:15!important;
}
#satomiIntroSkip{
  pointer-events:auto!important;
  z-index:30!important;
}

/* ============================================================
   V145 · Customer Page Content Editor
   ============================================================ */
.page-content-hero-v145 [data-page-content-v145="hero_title"],
[data-page-content-v145="secondary_title"]{
  white-space:pre-line;
}
.page-content-hero-image-v145{
  object-fit:contain!important;
  object-position:center!important;
  max-width:100%;
  height:auto!important;
  background:#faf7f4;
  border-radius:22px;
}
.menu-page-content-hero-v145{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:42px;
  text-align:left;
  padding-left:24px;
  padding-right:24px;
}
.menu-page-content-hero-v145 .page-content-copy-v145{
  text-align:left;
}
.menu-page-content-image-v145{
  width:min(360px,34vw);
  max-height:300px;
  padding:10px;
}
.menu-page-content-hero-v145 .page-content-button-v145{
  margin-top:18px;
}
.page-content-admin-actions-v145{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}
.page-content-admin-actions-v145 .admin-select{
  min-width:180px;
}
.page-content-secondary-label-v145{
  margin-top:24px;
}
.page-content-editor-grid-v145{
  align-items:start;
}
@media(max-width:800px){
  .menu-page-content-hero-v145{
    grid-template-columns:1fr;
    text-align:center;
  }
  .menu-page-content-hero-v145 .page-content-copy-v145{
    text-align:center;
  }
  .menu-page-content-image-v145{
    width:min(100%,420px);
    margin:0 auto;
  }
}

/* ============================================================
   V146 · Cleaner Admin Navigation + unified Page Content
   ============================================================ */
.admin-tabs{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  padding:10px 0 4px!important;
  align-items:center!important;
}
.admin-tab{
  white-space:nowrap!important;
  padding:9px 13px!important;
  border-radius:999px!important;
  min-height:36px!important;
}
.admin-tab.active{
  box-shadow:0 4px 12px rgba(57,40,34,.08)!important;
}

#adminPageContentGenericWrapV146[hidden],
#adminPageContentAboutWrapV146[hidden]{
  display:none!important;
}

.page-content-admin-actions-v145{
  justify-content:flex-end;
}

@media(max-width:900px){
  .admin-tabs{
    gap:6px!important;
  }
  .admin-tab{
    padding:8px 11px!important;
    font-size:10px!important;
  }
}


/* V148 · Menu returns to original text-only storefront hero */
#adminPageImageEditorV148[hidden],
#adminPageButtonFieldsV148[hidden]{
  display:none!important;
}

/* ============================================================
   V149 · Admin navigation layout repair
   ============================================================ */
.admin-tabs{
  position:static!important;
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  padding:10px!important;
  margin:0 0 20px!important;
  border:1px solid rgba(54,37,31,.08)!important;
  border-radius:20px!important;
  background:#fff!important;
  align-items:stretch!important;
}

.admin-tab{
  width:auto!important;
  min-width:0!important;
  min-height:44px!important;
  padding:9px 10px!important;
  margin:0!important;
  border:0!important;
  border-radius:13px!important;
  background:transparent!important;
  color:#87766e!important;
  font-size:11px!important;
  font-weight:500!important;
  line-height:1.25!important;
  text-align:center!important;
  white-space:normal!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
}

.admin-tab:hover{
  background:#fbf4f1!important;
  color:#4b342c!important;
}

.admin-tab.active{
  background:#f2e3de!important;
  color:#3e2922!important;
  box-shadow:inset 0 0 0 1px rgba(185,132,126,.15),0 4px 12px rgba(57,40,34,.05)!important;
}

@media(max-width:1180px){
  .admin-tabs{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  .admin-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    padding:8px!important;
  }
  .admin-tab{
    min-height:42px!important;
    font-size:10px!important;
    padding:8px 8px!important;
  }
}

/* ============================================================
   V150 · Footer editor / contact links
   ============================================================ */
.footer-contact-link-v150{
  color:inherit!important;
  text-decoration:none!important;
}
.footer-contact-link-v150:hover{
  text-decoration:underline!important;
}

.footer-editor-grid-v150{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 22px;
  margin-top:22px;
}
.footer-editor-full-v150{
  grid-column:1/-1;
}
@media(max-width:760px){
  .footer-editor-grid-v150{
    grid-template-columns:1fr;
  }
  .footer-editor-full-v150{
    grid-column:auto;
  }
}
