:root{
  --bg:#F5EDE0;
  --bg2:#EDE0CC;
  --text:#2D1F0F;
  --muted:#9A7D65;
  --accent:#C4996A;
  --card:#EDE0CC;
  --dark:#1A0F05;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;}
button,input,textarea{font:inherit;}
a,button{-webkit-tap-highlight-color:transparent;}

nav{
  display:flex;
  align-items:center;
  gap:1rem;
  padding:0 1rem;
  background:var(--dark);
  border-bottom:1px solid rgba(255,255,255,.06);
  position:sticky;
  top:0;
  z-index:120;
  min-height:68px;
  overflow:visible;
  touch-action:pan-y;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.nav-menu{
  display:none;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(245,237,224,.06);
  color:var(--bg);
  cursor:pointer;
  flex:0 0 auto;
}
.nav-menu-lines,.nav-menu-lines::before,.nav-menu-lines::after{
  display:block;
  position:relative;
  width:18px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:transform .22s ease,opacity .18s ease;
}
.nav-menu-lines::before,.nav-menu-lines::after{
  content:'';
  position:absolute;
  left:0;
}
.nav-menu-lines::before{top:-6px;}
.nav-menu-lines::after{top:6px;}
.nav-menu.is-open .nav-menu-lines{background:transparent;}
.nav-menu.is-open .nav-menu-lines::before{top:0;transform:rotate(45deg);}
.nav-menu.is-open .nav-menu-lines::after{top:0;transform:rotate(-45deg);}
.nav-logo{
  display:flex;
  align-items:center;
  gap:.55rem;
  font-size:14px;
  font-weight:500;
  color:var(--bg);
  letter-spacing:.02em;
  min-height:52px;
  flex:0 0 auto;
  text-decoration:none;
  position:relative;
  isolation:isolate;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform:translateZ(0);
  will-change:transform;
}
.nav-logo-mark{
  width:28px;
  height:28px;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.18));
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform:translateZ(0);
  will-change:transform,opacity;
}
.top-tabs{
  position:relative;
  flex:1 1 auto;
  z-index:6;
  padding:0;
  contain:paint;
  isolation:isolate;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.hero-links{
  display:flex;
  gap:.85rem;
  justify-content:center;
  flex-wrap:wrap;
  width:fit-content;
  max-width:100%;
  margin:0 auto;
  padding:0;
}
.btn-chip{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.7rem 1.25rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(245,237,224,.9);
  color:#8e755f;
  font-size:12px;
  letter-spacing:.04em;
  text-decoration:none;
  box-shadow:0 12px 24px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.62);
  transition:transform .25s ease,border-color .25s ease,color .25s ease,background .25s ease;
  outline:none;
  user-select:none;
  isolation:isolate;
}
.btn-chip:hover,
.btn-chip:focus-visible{
  transform:translateY(-2px);
  color:var(--text);
  border-color:rgba(255,255,255,.16);
  background:rgba(250,243,233,.98);
}
.btn-chip.is-active{
  color:var(--text);
  border-color:rgba(196,153,106,.48);
  background:#fff8f0;
}
.btn-chip:focus,
.btn-chip:active{
  outline:none;
}
.btn-chip-label{
  position:relative;
  z-index:3;
  pointer-events:none;
}
.btn-chip-goo{
  position:absolute;
  inset:-16px;
  z-index:1;
  pointer-events:none;
  filter:url(#makkie-gooey-filter);
}
.btn-chip-particle{
  --particle-size:12px;
  position:absolute;
  left:50%;
  top:50%;
  width:var(--particle-size);
  height:var(--particle-size);
  margin:-6px 0 0 -6px;
  border-radius:999px;
  opacity:0;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,.95), rgba(255,255,255,.25) 38%, transparent 42%),
    radial-gradient(circle at 50% 50%, rgba(224,191,151,.95), rgba(196,153,106,.85));
  box-shadow:0 0 18px rgba(196,153,106,.24);
  transform:translate3d(0,0,0) scale(.2);
}
.btn-chip::before{
  content:'';
  position:absolute;
  inset:2px;
  border-radius:inherit;
  background:linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,0));
  opacity:.7;
  z-index:0;
}
.btn-chip.is-burst .btn-chip-particle{
  animation:
    gooey-particle calc(900ms + var(--particle-variance, 0ms)) cubic-bezier(.22,1,.36,1) 1 both,
    gooey-pulse calc(620ms + var(--particle-variance, 0ms)) ease-out 1 both;
}
.nav-actions{
  display:flex;
  align-items:center;
  gap:.8rem;
  min-height:52px;
  flex:0 0 auto;
  margin-left:auto;
}
.nav-profile{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 52px;
  width:52px;
  min-width:52px;
  height:52px;
  min-height:52px;
  padding:0;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(245,237,224,.06);
  color:var(--bg);
  cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,.14);
  transition:background .2s ease,border-color .2s ease,transform .2s ease,color .2s ease,box-shadow .2s ease;
  -webkit-appearance:none;
  appearance:none;
}
.nav-profile:hover{
  background:rgba(245,237,224,.14);
  border-color:rgba(255,255,255,.14);
  transform:translateY(-1px);
  box-shadow:0 14px 26px rgba(0,0,0,.18);
}
.nav-icon-mark{
  width:22px;
  height:22px;
  display:block;
}
.nav-book,
.nav-lang{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  font-family:inherit;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,transform .2s ease,color .2s ease;
}
.nav-book{
  min-height:46px;
  padding:.68rem 1.5rem;
  border:1px solid rgba(255,255,255,.08);
  background:#2a170a;
  color:var(--bg);
  font-size:13px;
  font-weight:600;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}
.nav-book:hover{background:#3a2010;border-color:rgba(255,255,255,.12);transform:translateY(-1px);}
.nav-book-header{
  flex:0 0 52px;
  width:52px;
  min-width:52px;
  min-height:52px;
  height:52px;
  padding:0;
  border-radius:999px;
  background:rgba(245,237,224,.06);
  color:var(--bg);
  box-shadow:0 10px 22px rgba(0,0,0,.14);
}
.nav-book-header:hover{
  background:rgba(245,237,224,.14);
  border-color:rgba(255,255,255,.14);
  box-shadow:0 14px 26px rgba(0,0,0,.18);
}
.nav-book-header .nav-book-label{
  display:none;
}
.nav-book-header .nav-book-icon-mark{
  display:block;
  width:22px;
  height:22px;
}
.nav-lang{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:38px;
  padding:.42rem .72rem;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(245,237,224,.06);
  color:var(--bg);
  box-shadow:0 8px 18px rgba(0,0,0,.14);
  -webkit-appearance:none;
  appearance:none;
}
.nav-lang:hover{
  background:rgba(245,237,224,.14);
  border-color:rgba(255,255,255,.14);
  transform:translateY(-1px);
}
.lang-switch-track{
  position:relative;
  width:34px;
  height:18px;
  border-radius:999px;
  background:rgba(245,237,224,.18);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  transition:background .2s ease;
}
.lang-switch-thumb{
  position:absolute;
  top:2px;
  left:2px;
  width:14px;
  height:14px;
  border-radius:999px;
  background:#fff8f0;
  box-shadow:0 2px 8px rgba(0,0,0,.22);
  transition:transform .22s ease,background .22s ease;
}
.lang-switch-text{
  display:inline-flex;
  align-items:center;
  gap:.28rem;
  font-size:10px;
  line-height:1;
}
.lang-switch-zh,
.lang-switch-en{
  opacity:.54;
  transition:opacity .2s ease,color .2s ease;
}
.nav-lang:not(.is-en) .lang-switch-zh,
.mobile-drawer-lang:not(.is-en) .lang-switch-zh{
  opacity:1;
  color:inherit;
}
.nav-lang.is-en .lang-switch-en,
.mobile-drawer-lang.is-en .lang-switch-en{
  opacity:1;
  color:inherit;
}
.nav-lang.is-en .lang-switch-thumb,
.mobile-drawer-lang.is-en .lang-switch-thumb{
  transform:translateX(16px);
}

.mobile-drawer[hidden]{display:none;}
.mobile-drawer{
  position:fixed;
  inset:0;
  z-index:260;
}
.mobile-drawer-backdrop{
  position:absolute;
  inset:0;
  background:rgba(20,10,4,.2);
  backdrop-filter:blur(6px);
  opacity:0;
  transition:opacity .22s ease;
}
.mobile-drawer-panel{
  position:absolute;
  top:0;
  left:0;
  width:min(46vw, 320px);
  min-width:240px;
  max-width:100%;
  height:100dvh;
  background:#fffaf6;
  color:var(--text);
  box-shadow:18px 0 38px rgba(20,10,4,.12);
  padding:1rem .95rem 1.35rem;
  overflow:auto;
  transform:translateX(-100%);
  opacity:0;
  transition:transform .24s cubic-bezier(.22,1,.36,1),opacity .2s ease;
  touch-action:pan-y;
  overscroll-behavior:contain;
}
.mobile-drawer.is-open .mobile-drawer-backdrop{opacity:1;}
.mobile-drawer.is-open .mobile-drawer-panel{transform:translateX(0);opacity:1;}
.mobile-drawer-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:1rem;
  border-bottom:1px solid rgba(45,31,15,.08);
}
.mobile-drawer-brand{display:flex;align-items:center;gap:.75rem;font-size:1rem;font-weight:600;}
.mobile-drawer-brand img{width:34px;height:34px;object-fit:contain;}
.mobile-drawer-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(45,31,15,.1);
  background:#fff;
  color:var(--text);
  font-size:20px;
  cursor:pointer;
}
.mobile-drawer-links{display:flex;flex-direction:column;margin-top:.6rem;}
.mobile-drawer-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.95rem .15rem;
  border-bottom:1px solid rgba(71,51,33,.12);
  color:inherit;
  text-decoration:none;
  font-size:.98rem;
  letter-spacing:.02em;
  position:relative;
  overflow:visible;
  isolation:isolate;
  outline:none;
}
.mobile-drawer-link::after{content:'\203A';font-size:1.2rem;color:var(--accent);}
.mobile-drawer-switch-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  padding:.95rem .15rem;
  border-bottom:1px solid rgba(71,51,33,.12);
}
.mobile-drawer-switch-label{
  font-size:.95rem;
  letter-spacing:.02em;
}
.mobile-drawer-lang{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border:none;
  background:transparent;
  color:var(--text);
  cursor:pointer;
  padding:0;
  position:relative;
  overflow:visible;
  isolation:isolate;
  outline:none;
}
.mobile-drawer-link .btn-chip-goo,
.mobile-drawer-lang .btn-chip-goo{
  inset:-10px;
}
.mobile-drawer-link.is-burst .btn-chip-particle,
.mobile-drawer-lang.is-burst .btn-chip-particle{
  animation:
    gooey-particle calc(900ms + var(--particle-variance, 0ms)) cubic-bezier(.22,1,.36,1) 1 both,
    gooey-pulse calc(620ms + var(--particle-variance, 0ms)) ease-out 1 both;
}
.mobile-drawer-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.2rem;}

.page-main{padding-bottom:5rem;}
.page-hero{
  padding:4.2rem 1.5rem 2rem;
  background:
    radial-gradient(circle at 50% 0%, rgba(220,196,160,.28), transparent 38%),
    linear-gradient(180deg,#f8f0e4 0%, #f5ede0 100%);
}
.page-hero-shell{
  max-width:1080px;
  margin:0 auto;
  text-align:center;
}
.page-hero .sec-sub{display:none;max-width:760px;margin:0 auto;}
.page-actions{
  display:flex;
  justify-content:center;
  gap:.8rem;
  flex-wrap:wrap;
  margin-top:1.4rem;
}
.page-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:.8rem 1.15rem;
  border-radius:999px;
  border:1px solid rgba(196,153,106,.22);
  background:#fff9f3;
  color:var(--text);
  text-decoration:none;
  font-size:13px;
  font-weight:600;
}
.page-button.is-dark{
  background:var(--dark);
  color:var(--bg);
  border-color:var(--dark);
}
.page-section{padding:1.2rem 1.5rem 0;}
.section-shell{max-width:1080px;margin:0 auto;}

.sec-eye{
  font-size:11px;
  color:var(--accent);
  letter-spacing:.15em;
  text-transform:uppercase;
  text-align:center;
  margin-bottom:.5rem;
}
.sec-title{
  font-size:clamp(1.8rem,4vw,2.8rem);
  font-weight:600;
  letter-spacing:-.025em;
  text-align:center;
  color:var(--text);
  margin:0 0 .5rem;
  line-height:1.08;
}
.sec-sub{
  font-size:14px;
  color:var(--muted);
  text-align:center;
  font-weight:300;
  margin:0 0 3rem;
  line-height:1.7;
}

.menu-set{background:var(--dark);padding:1.5rem 1.5rem 5rem;}
.menu-shell{
  max-width:1180px;
  margin:0 auto;
  padding:2.25rem;
  border-radius:28px;
  background:rgba(245,237,224,.06);
  border:1px solid rgba(245,237,224,.12);
  box-shadow:0 20px 60px rgba(0,0,0,.16);
}
.menu-head{text-align:center;margin-bottom:2.5rem;}
.menu-head .sec-eye{display:none;}
.menu-head .sec-title{margin-bottom:0;color:var(--bg);}
.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.menu-card{
  width:100%;
  padding:1.15rem 1.2rem;
  border-radius:22px;
  background:rgba(245,237,224,.05);
  border:1px solid rgba(245,237,224,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  text-align:left;
  cursor:pointer;
  color:inherit;
  transition:transform .18s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.menu-card:hover{transform:translateY(-2px);background:rgba(245,237,224,.08);border-color:rgba(196,153,106,.34);box-shadow:0 14px 34px rgba(0,0,0,.16);}
.menu-card-heading{display:flex;flex-direction:column;gap:.25rem;}
.menu-card-title{font-size:1rem;font-weight:600;color:var(--bg);}
.menu-card-sub{display:none;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);}
.menu-card-hint{margin-top:.1rem;font-size:14px;letter-spacing:0;color:var(--accent);font-weight:400;line-height:1.45;}
.menu-card-icon{flex:0 0 auto;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(245,237,224,.6);}
.menu-overlay[hidden]{display:none;}
.menu-overlay{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:24px;}
.menu-overlay-backdrop{position:absolute;inset:0;background:rgba(20,10,4,.72);backdrop-filter:blur(10px);}
.menu-overlay-panel{
  position:relative;
  width:min(100%,1040px);
  max-height:min(88vh,920px);
  overflow:auto;
  border-radius:28px;
  background:#f8eee3;
  color:var(--text);
  box-shadow:0 28px 90px rgba(0,0,0,.32);
  padding:1.5rem;
  text-align:center;
}
.menu-overlay-close{
  position:sticky;
  top:0;
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(45,31,15,.1);
  background:rgba(255,255,255,.82);
  font-size:18px;
  color:var(--text);
  cursor:pointer;
}
.menu-overlay-header{padding:.4rem 0 1rem;border-bottom:1px solid rgba(45,31,15,.08);margin-bottom:1.2rem;}
.menu-overlay-header .menu-card-title{font-size:clamp(2rem,5vw,3.2rem);line-height:.95;color:var(--text);margin-bottom:.3rem;}
.menu-overlay-header .menu-card-sub{display:none;font-size:12px;letter-spacing:.04em;text-transform:none;}
.menu-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;}
.menu-dessert-card{
  min-width:0;
  overflow:hidden;
  border-radius:22px;
  background:rgba(255,249,243,.82);
  border:1px solid rgba(124,101,97,.1);
  box-shadow:0 10px 24px rgba(45,31,15,.08);
}
.menu-dessert-media{aspect-ratio:1/1;background:#efe3d4;overflow:hidden;}
.menu-dessert-image{display:block;width:100%;height:100%;object-fit:cover;}
.menu-dessert-name{padding:.8rem .9rem 1rem;color:#3c2a20;font-size:14px;line-height:1.4;font-weight:700;}

.products{padding:1.5rem 1.5rem 5rem;background:var(--bg);}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:1080px;margin:0 auto;}
.card{
  background:rgba(255,249,243,.85);
  border:1px solid rgba(196,153,106,.14);
  border-radius:28px;
  padding:1.4rem;
  box-shadow:0 18px 38px rgba(45,31,15,.08);
}
.card-eye{font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.45rem;}
.card-name{font-size:1.28rem;font-weight:700;line-height:1.15;color:var(--text);margin-bottom:.4rem;}
.card-en{font-size:13px;color:var(--muted);margin-bottom:1rem;}
.card-tags{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1rem;}
.tag{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:.35rem .7rem;
  border-radius:999px;
  background:rgba(196,153,106,.12);
  color:#8A6848;
  font-size:11px;
  letter-spacing:.03em;
}
.card-foot{font-size:13px;color:#6e5848;line-height:1.7;}

.layers-showcase{padding:1.5rem 1.5rem 5rem;background:var(--bg);}
.layers-showcase-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2px;
  max-width:1080px;
  margin:0 auto;
  background:#e9ddcf;
  border-radius:28px;
  overflow:hidden;
}
.layers-showcase-card{
  background:rgba(255,249,243,.96);
  padding:2.7rem 1.6rem 0;
  text-align:center;
  position:relative;
  overflow:visible;
}
.layers-showcase-eye{
  font-size:10px;
  color:var(--muted);
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:.3rem;
}
.layers-showcase-name{
  font-size:1.06rem;
  line-height:1.2;
  font-weight:700;
  color:var(--text);
  margin-bottom:.2rem;
}
.layers-showcase-sub{
  font-size:11px;
  color:var(--muted);
  margin-bottom:1.7rem;
  letter-spacing:.05em;
}
.layers-showcase-scene{
  perspective:700px;
  width:min(100%,320px);
  height:200px;
  margin:0 auto;
  overflow:visible;
}
.layers-showcase-stack-shell{
  position:relative;
  width:clamp(204px, calc(100% - 96px), 220px);
  height:200px;
  margin-right:auto;
  overflow:visible;
}
/* 3D 落地阴影，把立体的层叠“压”在桌面上 */
.layers-showcase-stack-shell::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:6px;
  width:64%;
  height:20px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(74,44,18,.22), rgba(74,44,18,0) 70%);
  filter:blur(3px);
  z-index:0;
  transition:opacity .5s ease, transform .5s ease;
}
.layers-showcase-card.is-active .layers-showcase-stack-shell::after{
  transform:translateX(-50%) scale(1.12);
  opacity:.9;
}
.layers-showcase-stack{
  position:relative;
  width:100%;
  height:100%;
  transform-style:preserve-3d;
  /* 默认就带一点立体倾斜，让每一层看起来是 3D 的 */
  transform:rotateX(16deg) rotateY(-15deg);
  transition:transform .65s cubic-bezier(.34,1.3,.64,1);
  z-index:1;
}
.layers-showcase-card.is-active .layers-showcase-stack{
  transform:rotateX(24deg) rotateY(-22deg) translateY(-6px) scale(1.04);
}
.layers-showcase-part{
  position:absolute;
  left:50%;
  transform-style:preserve-3d;
  transition:transform .6s cubic-bezier(.34,1.45,.64,1);
  filter:drop-shadow(0 6px 10px rgba(74,44,18,.16));
}
.layers-showcase-tag{
  position:absolute;
  font-size:9.5px;
  color:#8A6848;
  letter-spacing:.05em;
  white-space:nowrap;
  background:rgba(245,237,224,.96);
  padding:2px 9px;
  border-radius:20px;
  border:1px solid rgba(196,153,106,.22);
  box-shadow:0 8px 18px rgba(45,31,15,.06);
  opacity:0;
  transition:opacity .28s .2s, transform .32s .14s;
  pointer-events:none;
  transform:translateX(-4px);
}
.layers-showcase-card.is-active .layers-showcase-tag{
  opacity:1;
  transform:translateX(0);
}
.layers-showcase-foot{
  opacity:0;
  transform:translateY(6px);
  transition:opacity .3s .1s, transform .3s .1s;
  padding:1.2rem 0 2.2rem;
  font-size:11.5px;
  color:var(--muted);
  line-height:1.7;
}
.layers-showcase-card.is-active .layers-showcase-foot{
  opacity:1;
  transform:translateY(0);
}

.social-feed{padding:1.5rem 1.5rem 5.5rem;background:var(--bg);}
.social-shell{
  max-width:1080px;
  margin:0 auto;
  padding:2rem;
  background:linear-gradient(180deg,rgba(237,224,204,.72),rgba(237,224,204,.42));
  border:1px solid rgba(196,153,106,.18);
  border-radius:28px;
  box-shadow:0 20px 50px rgba(45,31,15,.08);
}
.social-profile{display:flex;align-items:center;gap:.9rem;margin-bottom:.9rem;}
.social-profile img{width:52px;height:52px;border-radius:999px;object-fit:cover;border:2px solid rgba(255,255,255,.7);box-shadow:0 10px 24px rgba(45,31,15,.12);}
.social-profile-copy{display:flex;flex-direction:column;gap:.15rem;}
.social-profile-copy strong{font-size:.95rem;font-weight:600;color:var(--text);}
.social-profile-copy span{font-size:12px;color:var(--muted);letter-spacing:.04em;}
.social-head{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:2rem;}
.social-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;}
.ig-card{
  display:block;
  text-decoration:none;
  color:inherit;
  background:rgba(255,255,255,.36);
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(196,153,106,.14);
  box-shadow:0 14px 34px rgba(45,31,15,.08);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.ig-card:hover{transform:translateY(-4px);box-shadow:0 22px 46px rgba(45,31,15,.12);border-color:rgba(196,153,106,.3);}
.ig-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#efe3d1;}
.ig-card-body{padding:1rem .95rem 1.05rem;}
.ig-card-date{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.45rem;}
.ig-card-title{font-size:1rem;line-height:1.3;color:var(--text);margin-bottom:.35rem;}
.ig-card-link{font-size:12px;color:var(--muted);}

.contact-page{padding:1.5rem 1.5rem 5rem;background:var(--bg);}
.contact-shell{
  max-width:1280px;
  margin:0 auto;
  position:relative;
}
body[data-page="contact"] .page-hero{
  padding:4.5rem 1.5rem 2.1rem;
}
body[data-page="contact"] .page-hero-shell{
  max-width:1280px;
  text-align:left;
}
body[data-page="contact"] .page-hero .sec-eye,
body[data-page="contact"] .page-hero .sec-title,
body[data-page="contact"] .page-hero .sec-sub{
  text-align:left;
  margin-left:0;
  margin-right:0;
}
body[data-page="contact"] .page-hero .sec-sub{
  max-width:560px;
  margin-bottom:0;
  font-size:15px;
}
body[data-page="contact"] .page-actions{
  display:none;
}
.contact-qr-icon{
  flex:0 0 auto;
  width:68px;
  height:68px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(248,238,226,.88));
  border:1px solid rgba(196,153,106,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86),0 10px 22px rgba(45,31,15,.05);
  color:#2d1f0f;
}
.contact-qr-icon svg{
  width:32px;
  height:32px;
}
.contact-icon-text{
  font-size:12px;
  font-weight:700;
  letter-spacing:.05em;
}
.contact-qr-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.7rem;
}
.contact-qr-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(160px,190px) minmax(0,1fr);
  gap:1.35rem;
  align-items:center;
  min-height:100%;
  padding:1.55rem;
  border-radius:30px;
  background:rgba(255,252,248,.96);
  border:1px solid rgba(196,153,106,.18);
  box-shadow:0 22px 54px rgba(45,31,15,.07);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.contact-qr-card:hover{
  transform:translateY(-3px);
  border-color:rgba(196,153,106,.28);
  box-shadow:0 28px 58px rgba(45,31,15,.1);
}
.contact-qr-card.is-detail-card{
  grid-template-columns:84px minmax(0,1fr);
}
.contact-qr-card-side{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1rem;
}
.contact-qr-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1rem;
  flex:1 1 auto;
}
.contact-qr-copy-main{
  display:flex;
  flex-direction:column;
  gap:.45rem;
}
.contact-qr-card.is-detail-card .contact-qr-handle{
  font-size:clamp(1.12rem,1.45vw,1.36rem);
  line-height:1.12;
}
.contact-qr-label{
  font-size:11px;
  color:var(--accent);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.contact-qr-handle{
  font-size:clamp(1.12rem,1.45vw,1.36rem);
  line-height:1.16;
  font-weight:700;
  color:var(--text);
  word-break:break-word;
}
.contact-qr-note{
  font-size:14px;
  line-height:1.75;
  color:#7b6556;
  max-width:none;
}
.contact-qr-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:220px;
  min-height:52px;
  padding:.7rem 1rem;
  border-radius:16px;
  background:#fffaf6;
  border:1px solid rgba(126,91,55,.28);
  color:#5e4128;
  text-decoration:none;
  font-size:13px;
  font-weight:700;
  letter-spacing:.05em;
  box-shadow:0 8px 18px rgba(45,31,15,.04);
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.contact-qr-link:hover{
  background:#4b2b14;
  border-color:#4b2b14;
  color:#fff8f0;
  transform:translateY(-1px);
}
.contact-qr-link.is-static{
  cursor:default;
  opacity:.82;
}
.contact-qr-link.is-static:hover{
  background:#fffaf6;
  border-color:rgba(126,91,55,.28);
  color:#5e4128;
  transform:none;
}
.contact-qr-box{
  width:min(100%,168px);
  aspect-ratio:1/1;
  padding:10px;
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(246,236,225,.94));
  border:1px solid rgba(196,153,106,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86),0 12px 28px rgba(45,31,15,.08);
}
.contact-qr-box img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  padding:10px;
  border-radius:20px;
  background:#fff;
}
.story-page{padding:0 1.5rem 5.4rem;background:var(--bg);position:relative;}
.page-main:has(.story-page) .page-hero,
body[data-page="intro"] .page-hero{
  display:none;
}
.story-shell{
  max-width:1120px;
  margin:0 auto;
  padding:4.8rem clamp(2rem,5vw,4.6rem) 3.2rem;
  border-radius:0;
  background:transparent;
  border:none;
  box-shadow:none;
}
.story-kicker{
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
}
.story-title{
  margin:.65rem 0 .95rem;
  font-family:'Cormorant Garamond','Noto Serif SC',serif;
  font-size:clamp(2.2rem,5.2vw,4.2rem);
  font-weight:500;
  line-height:1;
  letter-spacing:-.025em;
}
.story-lead{
  max-width:660px;
  font-size:clamp(1rem,2vw,1.12rem);
  line-height:1.75;
  font-style:italic;
  color:#7b6556;
}
.story-divider{
  width:50px;
  height:1px;
  margin:2.6rem 0 2.8rem;
  background:rgba(196,153,106,.5);
}
.story-body{
  max-width:900px;
  display:grid;
  gap:1.8rem;
}
.story-body p{
  margin:0;
  font-size:clamp(.98rem,1.35vw,1.08rem);
  line-height:1.95;
  color:#4e3b2e;
}
.story-body .story-signature{
  margin-top:.4rem;
  font-size:clamp(.96rem,1.2vw,1.02rem);
  color:#7b6556;
}

/* =========================================================================
   Makkie 吉祥物浮动动画（装饰层）— MakkieMascotFloat
   可复用：把 .makkie-mascot 整段 HTML 放进任意 position:relative 的容器即可。
   —— 调「速度」：--float-duration（整体绕行 10–14s）、--hop-duration（跳动 ~1.8s）
   —— 调「大小」：--mascot-size
   —— 调「路径/幅度」：--tx / --ty（水平/垂直行程倍率），或改 @keyframes makkie-float 的百分比坐标
   ========================================================================= */
.makkie-mascot{
  --mascot-size: clamp(88px, 9vw, 120px); /* 桌面 88–120px */
  --float-duration: 12s;                  /* 整体绕行时长 10–14s */
  --hop-duration: 1.8s;                   /* 单次跳动时长 ~1.8s */
  --tx: 1;                                /* 水平行程倍率（移动端调小） */
  --ty: 1;                                /* 垂直行程倍率（移动端调小） */
  position: absolute;
  right: 4%;                              /* 起点：右下角。改这里挪动整体起点 */
  bottom: 7%;
  width: var(--mascot-size);
  height: var(--mascot-size);
  z-index: 5;                             /* 高于背景，低于导航(120)与弹窗(340) */
  pointer-events: none;                   /* 纯装饰，不挡任何点击 */
  will-change: transform;
  animation: makkie-float var(--float-duration) ease-in-out infinite;
}
.makkie-mascot__hop{
  width: 100%;
  height: 100%;
  transform-origin: 50% 92%;              /* 以底部为支点，squash/stretch 更自然 */
  animation: makkie-hop var(--hop-duration) ease-in-out infinite;
}
.makkie-mascot__img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 10px 14px rgba(61, 38, 27, .16));
  user-select: none;
  -webkit-user-drag: none;
}

/* 绕行路径：右下角 → 沿右侧上跳 → 飘向下方中间 → 回到起点。
   translate 用 % 相对吉祥物自身尺寸，天然随尺寸缩放；乘 var(--tx/--ty) 便于移动端缩小行程。 */
@keyframes makkie-float{
  0%   { transform: translate(0, 0) rotate(0deg); }
  18%  { transform: translate(calc(2% * var(--tx)),    calc(-150% * var(--ty))) rotate(3deg); }
  38%  { transform: translate(calc(-8% * var(--tx)),   calc(-225% * var(--ty))) rotate(-2deg); }
  56%  { transform: translate(calc(-145% * var(--tx)), calc(-165% * var(--ty))) rotate(2deg); }
  72%  { transform: translate(calc(-245% * var(--tx)), calc(-70% * var(--ty)))  rotate(-3deg); }
  88%  { transform: translate(calc(-110% * var(--tx)), calc(-14% * var(--ty)))  rotate(2deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

/* 跳动 + 轻微 squash & stretch */
@keyframes makkie-hop{
  0%, 100% { transform: translateY(0) scale(1, 1); }
  14%      { transform: translateY(0) scale(1.08, .92); }    /* 起跳前压扁 */
  40%      { transform: translateY(-14px) scale(.95, 1.05); } /* 空中拉长 */
  68%      { transform: translateY(0) scale(1.07, .93); }     /* 落地压扁 */
  84%      { transform: translateY(-4px) scale(.99, 1.01); }  /* 小回弹 */
}

/* 极简微光/碎屑：2–3 颗，柔和闪烁 */
.makkie-mascot__spark{
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 244, 225, .95), rgba(214, 178, 132, .35) 60%, transparent 70%);
  opacity: 0;
  animation: makkie-spark 3.4s ease-in-out infinite;
}
.makkie-mascot__spark--1{ top: 8%;  left: -6%;  animation-delay: 0s; }
.makkie-mascot__spark--2{ top: 46%; right: -10%; width: 5px; height: 5px; animation-delay: 1.1s; }
.makkie-mascot__spark--3{ bottom: 10%; left: 12%; width: 4px; height: 4px; animation-delay: 2.2s; }
@keyframes makkie-spark{
  0%, 100% { opacity: 0; transform: scale(.6); }
  50%      { opacity: .9; transform: scale(1); }
}

/* 移动端：58–76px，缩小行程，避免遮挡标题/正文 */
@media (max-width: 640px){
  .makkie-mascot{
    --mascot-size: clamp(58px, 16vw, 76px);
    --tx: .55;
    --ty: .5;
    right: 3%;
    bottom: 5%;
  }
}

/* 尊重「减少动态」：停止移动/跳动/闪烁，仅保留静态装饰图 */
@media (prefers-reduced-motion: reduce){
  .makkie-mascot,
  .makkie-mascot__hop,
  .makkie-mascot__spark{
    animation: none !important;
  }
  .makkie-mascot__spark{ opacity: 0; }
}

.shop{padding:1.2rem 1.5rem 5rem;background:var(--bg);}
.shop-panel{
  max-width:1180px;
  margin:0 auto;
  padding:2rem;
  border-radius:30px;
  background:rgba(255,252,248,.94);
  border:1px solid rgba(196,153,106,.16);
  box-shadow:0 24px 58px rgba(45,31,15,.08);
}
body[data-page="shop"] .page-hero{
  padding:4.1rem 1.5rem 2.3rem;
  background:linear-gradient(180deg,#f7f1e8 0%, #f5ede0 100%);
}
body[data-page="shop"] .page-hero-shell{max-width:860px;}
body[data-page="shop"] .page-hero .sec-title{
  font-size:clamp(2.85rem,6vw,4.3rem);
  line-height:.98;
  margin-bottom:0;
}
body[data-page="shop"] .page-hero .sec-sub{display:none;}
.shop-entry-status{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.35rem;justify-content:center;}
.shop-pill{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.65rem 1.05rem;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid rgba(196,153,106,.16);font-size:12px;color:#6c5747;letter-spacing:.02em;box-shadow:0 10px 24px rgba(45,31,15,.04);}
body[data-page="shop"] .shop-pill.is-open{background:#edf8ef;border-color:rgba(86,168,96,.2);color:#2b8a43;}
.shop-pill.is-closed{background:rgba(124,63,53,.1);border-color:rgba(124,63,53,.14);color:#7c3f35;}
.shop-loading,.shop-empty,.shop-error{padding:1.5rem;border-radius:24px;background:rgba(124,101,97,.06);color:#6a584c;font-size:14px;line-height:1.7;text-align:center;}
.shop-error{color:#7c3f35;background:rgba(124,63,53,.08);}
.shop-state-card{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  text-align:center;
}
.shop-state-copy{display:grid;gap:.55rem;justify-items:center;}
.shop-state-sub{margin-top:.8rem;color:#7b6556;font-size:14px;line-height:1.75;max-width:620px;text-align:center;}
.shop-state-badge{
  flex:0 0 auto;
  padding:.75rem 1rem;
  border-radius:999px;
  background:rgba(124,101,97,.1);
  color:#5b4a40;
  font-size:12px;
  font-weight:700;
  text-align:center;
}
.shop-menu-shell{display:grid;gap:1.6rem;}
.shop-menu-hero{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:1.5rem;
  padding:1.5rem 1.6rem;
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,249,242,.95), rgba(247,237,225,.95));
  border:1px solid rgba(196,153,106,.18);
}
.shop-menu-status{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:.7rem 1rem;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(196,153,106,.18);
  color:#6c5747;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.shop-menu-head{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:1.5rem;
}
.shop-menu-copy{display:grid;gap:.45rem;justify-items:center;text-align:center;}
.shop-menu-title{
  font-size:clamp(2.5rem,5vw,3.45rem);
  line-height:1;
  font-weight:700;
  color:var(--text);
  text-align:center;
}
.shop-menu-note{
  font-size:13px;
  color:#8a7467;
  text-align:center;
}
.shop-menu-side{
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
  justify-content:center;
}
.shop-menu-divider{
  width:100%;
  height:1px;
  background:linear-gradient(90deg, rgba(196,153,106,.32), rgba(196,153,106,.08));
}
.shop-details-row{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(0,1fr);
  gap:1.35rem;
  align-items:start;
}
.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.35rem;}
.shop-grid--catalog{margin-top:.1rem;}
.shop-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:24px;
  background:#fffdf9;
  border:1px solid rgba(124,101,97,.14);
  box-shadow:0 14px 34px rgba(45,31,15,.05);
}
.shop-card-media{
  position:relative;
  aspect-ratio:5/4;
  background:linear-gradient(180deg,#f1ebe6,#ebe4dc);
  border-bottom:1px solid rgba(124,101,97,.12);
}
.shop-card-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#efe3d1;
}
.shop-card-placeholder{
  display:grid;
  place-items:center;
  gap:.45rem;
  width:100%;
  height:100%;
  padding:1rem;
  text-align:center;
  color:#9a8778;
}
.shop-card-placeholder-icon{
  width:42px;
  height:42px;
  border-radius:14px;
  border:1px dashed rgba(154,135,120,.45);
  display:grid;
  place-items:center;
  font-size:18px;
}
.shop-card-placeholder-title{
  font-size:13px;
  line-height:1.55;
}
.shop-card-stock{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  padding:.42rem .72rem;
  border-radius:999px;
  background:rgba(84,74,67,.92);
  color:#fffaf6;
  font-size:11px;
  font-weight:700;
  box-shadow:0 10px 18px rgba(45,31,15,.12);
}
.shop-card-body{
  display:flex;
  flex-direction:column;
  gap:.7rem;
  padding:1.15rem 1.15rem 1.05rem;
  flex:1 1 auto;
}
.shop-card-title{
  font-size:1.2rem;
  line-height:1.22;
  font-weight:700;
  color:#2d1f0f;
}
.shop-card-meta{display:flex;flex-wrap:wrap;gap:.45rem;}
.shop-card-meta span{padding:.34rem .62rem;border-radius:999px;background:rgba(177,146,115,.12);color:#6f5547;font-size:11px;font-weight:600;}
.shop-card-desc{
  color:#8f786d;
  font-size:13px;
  line-height:1.68;
  min-height:2.6em;
}
.shop-card-bottom{
  margin-top:auto;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.9rem;
}
.shop-card-price{
  display:flex;
  flex-direction:column;
  gap:.22rem;
  color:#5b4a40;
}
.shop-card-price-label{
  font-size:11px;
  color:#9a7d65;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.shop-card-price strong{
  font-size:1rem;
  line-height:1.15;
}
.shop-stepper{
  display:flex;
  align-items:center;
  gap:.35rem;
  padding:.25rem;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(124,101,97,.16);
  box-shadow:0 8px 18px rgba(45,31,15,.04);
}
.shop-step{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(124,101,97,.14);
  background:#fff;
  color:#4d382f;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.shop-step:last-child{
  background:#4f4339;
  border-color:#4f4339;
  color:#fffaf6;
}
.shop-step[disabled]{opacity:.35;cursor:not-allowed;}
.shop-qty{min-width:28px;text-align:center;color:#4d382f;font-size:15px;font-weight:800;}
.shop-submit-bar{
  position:sticky;
  bottom:16px;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  width:min(100%,620px);
  margin:1.8rem auto 0;
  padding:.8rem .82rem .8rem 1.2rem;
  border-radius:999px;
  background:rgba(255,253,249,.98);
  border:1px solid rgba(124,101,97,.12);
  box-shadow:0 18px 42px rgba(57,35,19,.14);
}
.shop-submit-summary{
  display:flex;
  flex-direction:column;
  gap:.16rem;
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
  color:#5b4a40;
}
.shop-submit-summary strong{
  font-size:1.1rem;
  color:#2d1f0f;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.shop-submit-summary span{
  font-size:12px;
  color:#8a7467;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.shop-submit-button,.shop-secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.72rem 1.2rem;border-radius:999px;border:none;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.04em;}
.shop-submit-button{background:#4f4339;color:#fffaf6;min-width:138px;}
.shop-secondary-button{background:rgba(255,255,255,.88);color:#5f4c3d;border:1px solid rgba(124,101,97,.16);}
.shop-secondary-button--compact{min-height:44px;padding:.62rem 1rem;}

.portal-overlay[hidden]{display:none;}
.portal-overlay{position:fixed;inset:0;z-index:340;display:grid;place-items:center;padding:24px;}
.portal-overlay-backdrop{position:absolute;inset:0;background:rgba(20,10,4,.66);backdrop-filter:blur(10px);}
.portal-panel{position:relative;width:min(100%,740px);max-height:min(88vh,940px);overflow:auto;border-radius:28px;background:#fffaf6;color:var(--text);box-shadow:0 28px 90px rgba(0,0,0,.28);padding:1.2rem 1.2rem 1.4rem;}
.portal-close{position:sticky;top:0;margin-left:auto;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;border:1px solid rgba(45,31,15,.1);background:rgba(255,255,255,.92);font-size:18px;color:var(--text);cursor:pointer;z-index:2;}
.portal-title{font-size:clamp(1.5rem,4vw,2.2rem);line-height:1.05;font-weight:700;text-align:center;}
.portal-sub{margin-top:.65rem;color:#8a7467;font-size:14px;line-height:1.7;text-align:center;}
.portal-form{display:flex;flex-direction:column;gap:1rem;margin-top:1.4rem;}
.portal-field{display:flex;flex-direction:column;gap:.45rem;}
.portal-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#9a7d65;}
.portal-input,.portal-textarea{width:100%;padding:.9rem 1rem;border-radius:18px;border:1px solid rgba(124,101,97,.14);background:#fff;color:#2d1f0f;}
.portal-textarea{min-height:120px;resize:vertical;}
.portal-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;margin-top:.2rem;}
.portal-divider{margin:1rem 0;border-top:1px solid rgba(45,31,15,.08);}
.portal-google-block{display:flex;justify-content:center;margin-top:1rem;min-height:44px;}
.portal-field--center{align-items:center;text-align:center;}
.portal-field--center .portal-input{text-align:center;}
.portal-pickups{display:grid;gap:.75rem;margin-top:.8rem;}
.portal-pickup{padding:.9rem 1rem;border-radius:18px;border:1px solid rgba(124,101,97,.12);background:rgba(124,101,97,.04);color:#2d1f0f;cursor:pointer;-webkit-appearance:none;appearance:none;}
.portal-pickup.is-active{background:rgba(124,101,97,.09);border-color:#7c6561;}
.portal-pickup-title{font-weight:700;text-align:center;color:inherit;}
.portal-pickup-meta{margin-top:.22rem;color:#8a7467;font-size:13px;line-height:1.65;text-align:center;}
.portal-summary{display:flex;flex-direction:column;gap:.65rem;margin-top:1rem;}
.portal-summary-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;font-size:14px;color:#4f423b;}
.portal-summary-total{font-size:1rem;font-weight:800;color:#2d1f0f;}

/* 下单确认页（提交前的最终确认弹窗，样式对齐小程序 order-notice-panel） */
.confirm-section{margin-top:1.4rem;}
.confirm-section:first-of-type{margin-top:1.2rem;}
.confirm-heading{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#9a7d65;margin-bottom:.6rem;}
.confirm-total-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.1rem;border-top:1px solid rgba(45,31,15,.08);}
.confirm-total-row .confirm-heading{margin-bottom:0;}
.confirm-total{font-size:1.5rem;font-weight:800;color:#2d1f0f;}
.confirm-currency-warning{font-size:13px;color:#8a6f42;margin-bottom:.7rem;}
.confirm-pay-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:18px;background:rgba(124,101,97,.06);border:1px solid rgba(124,101,97,.1);margin-bottom:.6rem;}
.confirm-pay-info{min-width:0;}
.confirm-pay-name{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#9a7d65;}
.confirm-pay-value{margin-top:.2rem;font-size:15px;font-weight:700;color:#2d1f0f;word-break:break-all;}
.confirm-pay-copy{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.45rem 1rem;border-radius:999px;border:none;cursor:pointer;background:#7c6561;color:#fffaf6;font-family:inherit;font-size:13px;font-weight:700;-webkit-appearance:none;appearance:none;transition:background .18s ease;}
.confirm-pay-copy:hover{background:#6a544f;}
.confirm-pay-copy.is-copied{background:#5a7c61;}
.confirm-pay-instruction{margin-top:.8rem;padding:.8rem 1rem;border-radius:14px;background:rgba(124,101,97,.07);font-size:13px;line-height:1.7;color:#6f5a4c;}
.confirm-total-cur{font-size:.92rem;font-weight:700;color:#9a7d65;margin-left:.15rem;}
/* 支付宝实时汇率卡片 */
.confirm-pay-card--alipay{align-items:center;}
.confirm-pay-rate{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin-top:.3rem;}
.confirm-pay-rate strong{font-size:1.15rem;font-weight:800;color:#c0392b;}
.confirm-pay-rate span{font-size:12px;color:#8a7467;}
.confirm-rate-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:.28rem;padding:.28rem .6rem;border-radius:999px;background:rgba(90,124,97,.14);color:#3f6248;font-size:11px;font-weight:800;}
.confirm-rate-badge::before{content:'●';font-size:8px;line-height:1;}
/* 底部固定操作条：确认下单 + 返回修改，含 iOS 安全区 */
.confirm-actionbar{position:sticky;bottom:0;margin:1.4rem -1.2rem 0;padding:.9rem 1.2rem calc(1rem + env(safe-area-inset-bottom, 0px));background:#fffaf6;border-top:1px solid rgba(45,31,15,.08);box-shadow:0 -14px 26px rgba(255,250,246,.92);display:flex;flex-direction:column;gap:.3rem;z-index:3;}
.confirm-place-btn{width:100%;min-height:52px;font-size:15px;}
.confirm-back-btn{background:none;border:none;cursor:pointer;font-family:inherit;color:#8a7467;font-size:13px;font-weight:600;padding:.45rem;text-align:center;-webkit-appearance:none;appearance:none;}
.confirm-back-btn:hover{color:#5f4c3d;}
#orderConfirmOverlay .portal-panel{padding-bottom:0;}
.confirm-rules-line{font-size:14px;line-height:1.7;color:#5f4c3d;}
/* 售罄甜品卡：整卡置灰、不可加入购物车 */
.shop-card--soldout .shop-card-media{filter:grayscale(1);opacity:.5;}
.shop-card--soldout .shop-card-title,.shop-card--soldout .shop-card-desc,.shop-card--soldout .shop-card-price,.shop-card--soldout .shop-card-price strong{color:#a99e95;}
.shop-card--soldout .shop-stepper{opacity:.5;}
.shop-card-stock--soldout{background:rgba(124,63,53,.92);}
/* 我的订单卡：查看付款方式按钮 */
.my-order-pay-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:.4rem 1rem;border-radius:999px;border:1px solid rgba(124,101,97,.22);background:rgba(255,255,255,.9);color:#5f4c3d;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;-webkit-appearance:none;appearance:none;transition:background .18s ease,border-color .18s ease;}
.my-order-pay-btn:hover{background:#fff;border-color:#7c6561;}
.confirm-pickup-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem;}
.confirm-pickup-head .confirm-heading{margin-bottom:0;}
.confirm-pickup-change{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:.35rem .9rem;border-radius:999px;border:1px solid rgba(124,101,97,.2);background:rgba(255,255,255,.9);color:#5f4c3d;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;-webkit-appearance:none;appearance:none;transition:background .18s ease,border-color .18s ease;}
.confirm-pickup-change:hover{background:#fff;border-color:#7c6561;}
.confirm-pickup-line{font-size:15px;font-weight:700;color:#2d1f0f;}
.confirm-pickup-meta{margin-top:.25rem;font-size:13px;line-height:1.6;color:#8a7467;}
.confirm-note-line{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed rgba(124,101,97,.18);font-size:14px;line-height:1.6;color:#4f423b;}
.confirm-note-label{display:inline-block;margin-right:.4rem;font-size:12px;font-weight:700;color:#9a7d65;}
.confirm-actions{margin-top:1.5rem;}

/* 订单已提交 成功页 */
.order-success-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:.4rem auto 1rem;border-radius:999px;background:#5a7c61;color:#fff;font-size:2rem;font-weight:800;}

/* 个人中心 / 我的订单 */
.profile-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.2rem 0 .4rem;}
.profile-head-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#9a7d65;}
.profile-head-name{margin-top:.2rem;font-size:1.4rem;font-weight:800;color:#2d1f0f;}
.my-orders-group{margin-top:1.2rem;}
.my-orders-group-title{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#9a7d65;margin-bottom:.6rem;}
.my-order-card{padding:.9rem 1rem;border-radius:18px;border:1px solid rgba(124,101,97,.12);background:rgba(124,101,97,.04);margin-bottom:.65rem;}
.my-order-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.my-order-num{font-size:13px;font-weight:700;color:#5f4c3d;}
.my-order-status{flex:0 0 auto;padding:.25rem .7rem;border-radius:999px;font-size:11px;font-weight:800;background:rgba(124,101,97,.14);color:#5f4c3d;}
.my-order-status--pending{background:rgba(196,140,74,.16);color:#8a5a1f;}
.my-order-status--paid{background:rgba(90,124,97,.16);color:#3f6248;}
.my-order-status--making{background:rgba(124,101,97,.16);color:#6a4f45;}
.my-order-status--ready{background:rgba(72,110,152,.16);color:#2f5175;}
.my-order-status--completed{background:rgba(90,124,97,.2);color:#33513b;}
.my-order-status--cancelled{background:rgba(124,63,53,.14);color:#7c3f35;}
.my-order-items{margin-top:.5rem;font-size:14px;line-height:1.6;color:#4f423b;}
.my-order-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.55rem;}
.my-order-pay{font-size:12px;color:#a5744a;}
.my-order-pay.is-paid{color:#3f6248;}
.my-order-total{font-size:15px;font-weight:800;color:#2d1f0f;}

/* 微信二维码弹窗（联系页）：点「扫码添加」弹出，长按可保存 */
.qr-pop-overlay{position:fixed;inset:0;z-index:400;display:none;place-items:center;padding:24px;}
.qr-pop-overlay.is-open{display:grid;}
.qr-pop-backdrop{position:absolute;inset:0;background:rgba(20,10,4,.66);backdrop-filter:blur(8px);}
.qr-pop-panel{position:relative;width:min(100%,360px);border-radius:26px;background:#fffaf6;color:#2d1f0f;box-shadow:0 28px 90px rgba(0,0,0,.3);padding:1.7rem 1.4rem 1.5rem;text-align:center;}
.qr-pop-close{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:1px solid rgba(45,31,15,.1);background:rgba(255,255,255,.9);font-size:20px;color:#2d1f0f;cursor:pointer;}
.qr-pop-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#9a7d65;margin-bottom:.9rem;}
.qr-pop-figure{width:min(100%,240px);margin:0 auto;padding:12px;border-radius:20px;background:#fff;border:1px solid rgba(45,31,15,.08);box-shadow:0 14px 36px rgba(45,31,15,.1);}
.qr-pop-img{display:block;width:100%;height:auto;border-radius:12px;-webkit-touch-callout:default;}
.qr-pop-hint{margin-top:1rem;font-size:13px;line-height:1.6;color:#8a7467;}

/* 我的订单：两栏布局 + 历史订单单独 view（5.12） */
#profileOverlay .portal-panel{width:min(100%,560px);}
/* 我的订单：上下结构（垂直堆叠） */
.profile-stack{display:flex;flex-direction:column;gap:1rem;}
.profile-history-entry{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:.8rem 1rem;border-radius:16px;border:1px solid rgba(124,101,97,.16);background:rgba(255,255,255,.7);color:#5f4c3d;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;}
.profile-history-entry:hover{background:rgba(124,101,97,.08);}
.profile-history-arrow{font-size:18px;color:#9a7d65;line-height:1;}
.profile-stack .portal-divider{margin:.2rem 0;}
.profile-main-title{font-size:1.15rem;font-weight:800;color:#2d1f0f;text-align:center;}
.profile-history-head{position:relative;display:flex;align-items:center;justify-content:center;gap:.9rem;min-height:44px;}
.profile-history-back{position:absolute;left:0;top:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;border:1px solid rgba(124,101,97,.14);background:rgba(255,255,255,.76);color:#7c6561;font-family:inherit;font-size:24px;font-weight:800;line-height:1;cursor:pointer;}
.profile-history-back:hover{background:rgba(124,101,97,.08);}
.profile-history-title{font-size:1.3rem;font-weight:800;color:#2d1f0f;}
.my-orders-list{display:flex;flex-direction:column;gap:.8rem;}

/* 学习图1的订单卡 */
.my-order-card--rich{padding:1rem 1.1rem;background:rgba(124,101,97,.05);margin-bottom:0;}
.my-order-card--rich .my-order-top{align-items:flex-start;}
.my-order-date{display:flex;flex-direction:column;gap:.15rem;}
.my-order-date-label{font-size:11px;letter-spacing:.06em;color:#9a7d65;}
.my-order-date-value{font-size:1.15rem;font-weight:800;color:#2d1f0f;line-height:1.1;}
.my-order-badges{display:flex;align-items:center;gap:.4rem;flex:0 0 auto;}
.my-order-num-badge{padding:.25rem .6rem;border-radius:999px;font-size:11px;font-weight:800;background:rgba(124,101,97,.14);color:#5f4c3d;}
.my-order-who{margin-top:.7rem;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;}
.my-order-who-name{font-size:15px;font-weight:800;color:#2d1f0f;}
.my-order-who-id{display:none;}
.my-order-lines{margin-top:.7rem;display:flex;flex-direction:column;gap:.35rem;padding-top:.7rem;border-top:1px solid rgba(45,31,15,.07);}
.my-order-line{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:14px;color:#4f423b;}
.my-order-line-name{min-width:0;}
.my-order-line-price{flex:0 0 auto;font-weight:700;color:#2d1f0f;}
.my-order-pickup{margin-top:.7rem;padding-top:.7rem;border-top:1px solid rgba(45,31,15,.07);}
.my-order-pickup-name{font-size:14px;font-weight:800;color:#3f342c;}
.my-order-pickup-line{font-size:12px;color:#8a7467;line-height:1.5;margin-top:.1rem;}
.my-order-card--rich .my-order-foot{margin-top:.8rem;padding-top:.7rem;border-top:1px solid rgba(45,31,15,.07);}
.my-order-card--rich .my-order-total{font-size:1.15rem;}

/* 取消订单 */
.my-order-cancel-row{margin-top:.8rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;}
.my-order-cancel-btn{padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(124,63,53,.28);background:transparent;color:#9a4737;font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;}
.my-order-cancel-btn:hover{background:rgba(124,63,53,.08);}
.my-order-cancel-confirm{margin-top:.8rem;padding:.8rem .9rem;border-radius:14px;background:rgba(154,71,55,.08);border:1px solid rgba(154,71,55,.2);}
.my-order-cancel-warn{font-size:13px;line-height:1.5;color:#7c3f35;}
.my-order-cancel-actions{margin-top:.7rem;display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap;}
.my-order-cancel-yes{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.55rem 1.1rem;border-radius:999px;border:none;background:#9a4737;color:#fffaf6;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;}
.my-order-cancel-yes[disabled]{opacity:.6;cursor:default;}

@media (max-width:640px){
  #profileOverlay .portal-panel{width:min(100%,420px);}
  .profile-head{display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;gap:.7rem;padding:.2rem 0 .2rem;}
  .profile-head-name{font-size:1.12rem;line-height:1.18;overflow-wrap:anywhere;}
  .profile-head .shop-secondary-button{width:auto;min-width:150px;min-height:40px;padding:.52rem 1rem;font-size:12px;}
  .profile-main-title{text-align:center;font-size:1.08rem;}
  .profile-history-head{margin-top:.1rem;}
  .profile-history-title{font-size:1.35rem;text-align:center;line-height:1.12;}
  .my-order-who{gap:.4rem;}
}

.empty.compact{padding:1rem;border-radius:16px;background:rgba(124,101,97,.05);color:#8a7467;font-size:14px;text-align:center;}
.pickup-current{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.2rem;
  padding:.1rem 0;
  text-align:center;
}
.pickup-current-label{
  font-size:12px;
  color:#9a7d65;
  letter-spacing:.08em;
}
.pickup-current-value{
  font-size:1.08rem;
  font-weight:700;
  color:#4f3a2f;
}
.pickup-current-time{
  font-size:14px;
  color:#7f6658;
  line-height:1.6;
  text-align:center;
}
.pickup-current-address{
  font-size:12px;
  color:#8a7467;
  line-height:1.7;
  max-width:32rem;
  text-align:center;
}
.pickup-current-address-link{
  display:inline-block;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  transition:color .18s ease, opacity .18s ease;
}
.pickup-current-address-link:hover{
  color:#6f5547;
}
.pickup-current-meta{
  font-size:12px;
  color:#a38b7c;
  line-height:1.7;
  max-width:32rem;
  text-align:center;
}
.shop-comment-card{
  width:100%;
  max-width:none;
  margin:0;
}
.shop-comment-field{
  display:flex;
  flex-direction:column;
  gap:.5rem;
  height:100%;
}
.shop-comment-label{
  font-size:12px;
  color:#9a7d65;
  letter-spacing:.08em;
  text-align:center;
}
.shop-comment-textarea{
  width:100%;
  min-height:100%;
  height:100%;
  max-height:240px;
  padding:1rem 1.05rem;
  border-radius:22px;
  border:1px solid rgba(124,101,97,.14);
  background:rgba(255,255,255,.9);
  color:#2d1f0f;
  font:inherit;
  line-height:1.75;
  resize:vertical;
  box-shadow:0 14px 34px rgba(91,62,38,.05);
}
.shop-comment-textarea::placeholder{
  color:#b49c8a;
}
.shop-comment-textarea:focus{
  outline:none;
  border-color:rgba(124,101,97,.28);
  box-shadow:0 0 0 4px rgba(226,208,192,.42);
}
.portal-note-preview{
  min-height:76px;
  padding:.95rem 1rem;
  border-radius:18px;
  border:1px solid rgba(124,101,97,.12);
  background:rgba(124,101,97,.04);
  color:#4f423b;
  line-height:1.75;
  white-space:pre-wrap;
}
.portal-note-preview.is-empty{
  color:#a38b7c;
}
.admin-status-card{margin-top:1rem;padding:1rem 1.05rem;border-radius:20px;background:rgba(124,101,97,.06);border:1px solid rgba(124,101,97,.1);}
.admin-status-line{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:14px;color:#4f423b;}
.admin-status-line strong{font-size:15px;color:#2d1f0f;}
.admin-gate{margin-top:.9rem;font-size:13px;color:#8a7467;line-height:1.7;}

footer{background:var(--dark);padding:3.25rem 3rem 2rem;}
.ft{display:grid;grid-template-columns:minmax(340px,1.5fr) minmax(180px,.72fr) minmax(180px,.72fr);align-items:flex-start;gap:4.5rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.06);}
.ft-intro{display:flex;flex-direction:column;align-items:flex-start;}
.ft-brand{font-family:'Cormorant Garamond','Noto Serif SC',serif;font-size:2.35rem;font-style:normal;font-weight:500;letter-spacing:.01em;line-height:1;color:var(--bg);margin-bottom:1.15rem;}
.ft-tag{display:block;max-width:320px;margin:0 0 1rem;font-size:1.05rem;color:rgba(245,237,224,.72);line-height:1.9;}
.ft-location{display:flex;align-items:center;gap:.72rem;margin:.15rem 0 .15rem;font-size:.96rem;color:rgba(245,237,224,.42);line-height:1.75;}
.ft-credit{display:flex;align-items:center;gap:.72rem;margin-top:.35rem;font-size:.9rem;color:rgba(245,237,224,.42);text-decoration:none;line-height:1.75;}
.ft-credit:hover{color:rgba(245,237,224,.62);}
.ft-location::before,.ft-credit::before{display:inline-flex;align-items:center;justify-content:center;width:18px;min-width:18px;color:rgba(245,237,224,.72);font-size:14px;line-height:1;}
.ft-location::before{content:'•';font-size:20px;}
.ft-credit::before{content:'✦';font-size:13px;}
.ft-social{display:flex;align-items:center;gap:1rem;margin-top:1.35rem;}
.ft-social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(245,237,224,.16);
  color:rgba(245,237,224,.68);
  text-decoration:none;
  transition:border-color .2s ease,color .2s ease,transform .2s ease,background .2s ease;
}
.ft-social-link:hover{
  transform:translateY(-1px);
  border-color:rgba(245,237,224,.34);
  color:var(--bg);
  background:rgba(245,237,224,.04);
}
.ft-social-link svg{width:20px;height:20px;display:block;}
.ft-social-link[href="https://xhslink.com/m/2ohrymfwufZ"] svg{display:none;}
.ft-social-link[href="https://xhslink.com/m/2ohrymfwufZ"]::before{
  content:'小红书';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  min-height:16px;
  padding:2px 4px;
  border-radius:999px;
  border:1px solid currentColor;
  font-size:7px;
  font-weight:700;
  line-height:1;
  letter-spacing:.02em;
  color:currentColor;
  text-align:center;
  white-space:nowrap;
}
body[data-lang="en"] .ft-social-link[href="https://xhslink.com/m/2ohrymfwufZ"]::before{
  content:'Rednote';
  min-width:30px;
  font-size:6.6px;
}
.ft-col-title{font-size:10px;color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.7rem;}
.ft-col a{display:block;font-size:12px;color:rgba(245,237,224,.4);text-decoration:none;margin-bottom:.4rem;}
.ft-col a:hover{color:var(--bg);}
.ft-copy{text-align:center;font-size:11px;color:rgba(245,237,224,.2);}

.reveal{
  opacity:0;
  transform:translate3d(0,24px,0);
  filter:blur(8px);
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),filter .7s cubic-bezier(.22,1,.36,1);
}
.reveal.is-visible{
  opacity:1;
  transform:none;
  filter:none;
}

@keyframes menu-card-bounce{
  0%{transform:translateY(0);}
  35%{transform:translateY(-7px);}
  65%{transform:translateY(1px);}
  100%{transform:translateY(-2px);}
}

@keyframes gooey-particle{
  0%{
    opacity:0;
    transform:translate3d(0,0,0) scale(.18);
  }
  18%{
    opacity:.96;
  }
  65%{
    opacity:.72;
    transform:translate3d(var(--particle-x), var(--particle-y), 0) scale(1);
  }
  100%{
    opacity:0;
    transform:translate3d(calc(var(--particle-x) * 1.12), calc(var(--particle-y) * 1.12), 0) scale(.48);
  }
}

@keyframes gooey-pulse{
  0%,100%{filter:brightness(1) saturate(1);}
  50%{filter:brightness(1.08) saturate(1.08);}
}

@media(max-width:980px){
  .social-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .menu-gallery{grid-template-columns:repeat(3,minmax(0,1fr));}
  .layers-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .shop-menu-hero,
  .shop-state-card{flex-direction:column;align-items:center;}
  .shop-menu-head{flex-direction:column;align-items:center;}
  .shop-details-row{grid-template-columns:1fr;}
  .shop-menu-side{width:100%;justify-content:center;}
  .pickup-current{
    width:100%;
    margin:0 auto;
  }
  .shop-comment-card{
    margin:0 auto;
  }
  .shop-comment-label{
    text-align:center;
  }
  .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .contact-qr-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ft{grid-template-columns:minmax(280px,1fr) minmax(180px,.75fr) minmax(180px,.75fr);gap:3rem;}
}

@media(min-width:981px){
  .shop-details-row{
    grid-template-columns:minmax(0,2fr) minmax(320px,.88fr);
    gap:2rem;
  }
  .pickup-current-label{
    font-size:15px;
  }
  .pickup-current-value{
    font-size:1.8rem;
  }
  .pickup-current-time{
    font-size:18px;
  }
  .pickup-current-address{
    font-size:18px;
    line-height:1.55;
    max-width:38rem;
  }
  .pickup-current-meta{
    font-size:16px;
    line-height:1.65;
    max-width:38rem;
  }
  .shop-comment-card{
    max-width:480px;
    justify-self:start;
  }
  .shop-comment-label{
    font-size:15px;
    text-align:left;
  }
  .shop-comment-textarea{
    min-height:140px;
  }
  .menu-card:hover{
    animation:menu-card-bounce .36s cubic-bezier(.22,1,.36,1) 1;
  }
}

@media(min-width:701px) and (max-width:980px){
  nav{flex-wrap:wrap;padding:0 .9rem .85rem;}
  .top-tabs{order:3;flex:0 0 100%;padding:.5rem 0 0;}
  .top-tabs .hero-links{flex-wrap:nowrap;justify-content:space-between;width:100%;min-width:0;gap:.45rem;padding:0;}
  .top-tabs .btn-chip{flex:1 1 0;min-width:0;min-height:38px;padding:.5rem .55rem;font-size:11px;letter-spacing:0;}
}

@media(max-width:700px){
  nav{
    position:relative;
    gap:.6rem;
    padding:0 .8rem;
    min-height:94px;
    justify-content:flex-start;
  }
  .nav-menu{display:inline-flex;}
  .nav-logo{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate3d(-50%,-50%,0);
    flex-direction:column;
    gap:.24rem;
    min-height:auto;
    width:max-content;
    margin:0;
    text-align:center;
    font-size:12px;
    font-weight:600;
    line-height:1.15;
    z-index:1;
    pointer-events:auto;
  }
  .nav-logo-mark{width:54px;height:54px;}
  .nav-actions{
    gap:.35rem;
    margin-left:auto;
    margin-right:0;
    position:relative;
    z-index:2;
  }
  .nav-menu{position:relative;z-index:2;}
  .nav-actions .nav-book-header{
    flex:0 0 42px;
    width:42px;
    min-width:42px;
    min-height:42px;
    height:42px;
    padding:0;
    border-radius:999px;
    background:rgba(245,237,224,.06);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:none;
  }
  .nav-actions .nav-book-header:hover{
    background:rgba(245,237,224,.14);
    border-color:rgba(255,255,255,.14);
  }
  .nav-actions .nav-book-header .nav-book-label{
    display:none;
  }
  .nav-actions .nav-book-header .nav-book-icon-mark{
    display:block;
    width:22px;
    height:22px;
  }
  .nav-profile{
    flex:0 0 42px;
    width:42px;
    min-width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    box-shadow:none;
  }
  .nav-lang{display:none;}
  .top-tabs{display:none;}
  .mobile-drawer-close{width:40px;height:40px;}
  .mobile-drawer-brand{font-size:.95rem;}
  .mobile-drawer-link{font-size:.92rem;}
  .mobile-drawer-switch-label{font-size:.9rem;}
  .page-hero{padding:3.2rem 1.2rem 1.6rem;}
  body[data-page="contact"] .page-hero{
    padding:3.2rem 1.2rem 1.4rem;
  }
  body[data-page="contact"] .page-hero-shell,
  body[data-page="contact"] .page-hero .sec-eye,
  body[data-page="contact"] .page-hero .sec-title,
  body[data-page="contact"] .page-hero .sec-sub{
    text-align:center;
  }
  body[data-page="contact"] .page-hero .sec-sub{
    margin-left:auto;
    margin-right:auto;
  }
  .page-section,.menu-set,.products,.social-feed,.contact-page,.shop{padding-left:1.2rem;padding-right:1.2rem;}
  .menu-shell,.social-shell,.shop-panel{padding:1.25rem;}
  .menu-grid,.grid,.social-grid,.menu-gallery,.contact-qr-grid{grid-template-columns:1fr;}
  .menu-card{justify-content:center;text-align:center;}
  .menu-card-heading{align-items:center;text-align:center;}
  .menu-card-icon{display:none;}
  .layers-showcase-grid{grid-template-columns:1fr;}
  .layers-showcase-card{padding:2.2rem 1.2rem 0;}
  .contact-qr-icon{width:56px;height:56px;}
  .contact-qr-icon svg{width:26px;height:26px;}
  .contact-qr-card{
    grid-template-columns:1fr;
    justify-items:center;
    padding:1.15rem;
    border-radius:26px;
    gap:1rem;
    text-align:center;
  }
  .contact-qr-card.is-detail-card{grid-template-columns:1fr;}
  .contact-qr-card-side{align-items:center;width:100%;}
  .contact-qr-copy{align-items:center;gap:.85rem;width:100%;text-align:center;}
  .contact-qr-copy-main{align-items:center;text-align:center;width:100%;}
  .contact-qr-link{max-width:220px;margin-left:auto;margin-right:auto;}
  .contact-qr-box{width:min(100%,164px);margin-left:auto;margin-right:auto;}
  .contact-qr-handle{font-size:1.35rem;}
  .contact-qr-card.is-detail-card .contact-qr-handle{font-size:1.28rem;}
  .contact-qr-note{max-width:24rem;margin-left:auto;margin-right:auto;}
  .story-page{padding-left:1.2rem;padding-right:1.2rem;}
  .story-shell{padding:2.4rem 1.25rem 2.5rem;border-radius:0;}
  .story-title{font-size:2.45rem;line-height:1.04;}
  .story-lead{font-size:1rem;line-height:1.78;}
  .story-body p{font-size:.98rem;line-height:1.9;}
  body[data-page="shop"] .page-hero{padding:3.4rem 1.2rem 1.9rem;}
  body[data-page="shop"] .page-hero .sec-title{font-size:2.7rem;}
  .shop-panel{padding:1.1rem;}
  .shop-menu-hero{padding:1.2rem 1.15rem;border-radius:24px;}
  .shop-menu-title{font-size:2.15rem;}
  .shop-menu-side{flex-direction:column;align-items:stretch;}
  .shop-grid{grid-template-columns:1fr;}
  .shop-card-body{padding:1rem;}
  .shop-card-desc{min-height:0;}
  /* 弹窗贴近底部时，给按钮留出 iOS 主页指示条的安全区，避免“太近底边” */
  .portal-overlay{padding:16px 16px calc(16px + env(safe-area-inset-bottom, 0px));}
  .portal-panel{max-height:min(92vh,940px);padding-bottom:calc(1.4rem + env(safe-area-inset-bottom, 0px));}
  #orderConfirmOverlay .portal-panel{padding-bottom:0;}
  .portal-actions{flex-direction:column;align-items:stretch;}
  .shop-submit-bar{position:static;width:100%;padding:.75rem .75rem .75rem .95rem;gap:.75rem;}
  .shop-submit-summary span{white-space:normal;}
  .shop-submit-bar .shop-submit-button{flex:0 0 auto;width:auto;min-width:116px;padding-left:1rem;padding-right:1rem;}
  .portal-actions .shop-submit-button,.shop-secondary-button,.page-button{width:100%;}
  footer{padding:2.3rem 1.2rem 1.6rem;}
  .ft{grid-template-columns:1fr;gap:2rem;}
  .btn-chip-goo{inset:-12px;}
  .btn-chip-particle{--particle-size:9px;}
}

/* 法律条款页（隐私政策 / 电商条款）——中英切换跟随 body[data-lang] */
/* 法律页直接显示，不做渐入：长页面上 reveal 容易卡住，导致条款像“丢失”。 */
body[data-page="privacy"] .reveal,
body[data-page="terms"] .reveal{opacity:1;transform:none;filter:none;transition:none;}
.legal-en{display:none;}
body[data-lang="en"] .legal-zh{display:none;}
body[data-lang="en"] .legal-en{display:block;}
.legal-page{padding:1rem 2rem 5rem;background:var(--bg);}
.legal-shell{max-width:820px;margin:0 auto;padding:2.4rem 2.6rem;border-radius:26px;background:#fffdf9;border:1px solid rgba(124,101,97,.12);box-shadow:0 18px 46px rgba(45,31,15,.06);}
.legal-updated{font-size:13px;color:#9a7d65;margin-bottom:1.6rem;}
.legal-doc h2{font-size:1.25rem;font-weight:800;color:#2d1f0f;margin:1.9rem 0 .7rem;line-height:1.3;}
.legal-doc h2:first-child{margin-top:0;}
.legal-doc h3{font-size:1rem;font-weight:700;color:#4f3b2f;margin:1.1rem 0 .4rem;}
.legal-doc p{font-size:15px;line-height:1.85;color:#4f423b;margin-bottom:1rem;}
.legal-doc ul{list-style:disc;padding-left:1.3rem;margin:0 0 1rem;}
.legal-doc li{font-size:15px;line-height:1.8;color:#4f423b;margin-bottom:.5rem;}
.legal-doc a{color:#7c6561;text-decoration:underline;}
.legal-intro{font-size:15px;line-height:1.85;color:#5f4c3d;margin-bottom:1.4rem;}
@media(max-width:700px){
  .legal-page{padding:.5rem 1.1rem 3.5rem;}
  .legal-shell{padding:1.5rem 1.35rem;border-radius:20px;}
  .legal-doc h2{font-size:1.12rem;}
}
