
:root{
  --paper:#fffdfa;
  --cream:#fbf6ef;
  --cream2:#f4e9df;
  --brown:#684c3a;
  --muted:#9a7a66;
  --line:#e8d8cb;
  --accent:#c58c70;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--brown);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Helvetica Neue",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

.notice{
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:7px 14px;
  text-align:center;
  background:#eee3d8;
  font-size:11px;
  line-height:1.45;
}

.header{
  height:70px;
  display:grid;
  grid-template-columns:42px 1fr auto 1fr 80px;
  align-items:center;
  gap:14px;
  padding:0 22px;
  border-bottom:1px solid var(--line);
  background:#fffdfa;
}
.menu{
  border:0;
  background:transparent;
  color:var(--brown);
  font-size:19px;
}
.nav{
  display:flex;
  align-items:center;
  gap:28px;
  font-size:12px;
  white-space:nowrap;
}
.nav-left{justify-content:flex-start}
.nav-right{justify-content:flex-end}
.logo{
  display:flex;
  flex-direction:column;
  align-items:center;
  line-height:1;
}
.logo-bow{
  color:#c99176;
  font-size:19px;
  margin-bottom:4px;
}
.logo strong{
  font-size:15px;
  letter-spacing:.30em;
  font-weight:600;
}
.icons{
  white-space:nowrap;
  text-align:right;
  font-size:15px;
}

/* Crucial: hero is a real image with fixed aspect ratio, so it cannot shift */
.hero{
  width:100%;
  overflow:hidden;
  background:#f7efe8;
}
.hero img{
  width:100%;
  height:auto;
}

.category-section{
  padding:28px 20px 34px;
  background:#fffdfa;
}
.section-kicker{
  text-align:center;
  font-size:12px;
  letter-spacing:.28em;
}
.tiny-rule{
  width:42px;
  height:1px;
  background:#a78570;
  margin:10px auto 22px;
}
.categories{
  max-width:1000px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:22px;
}
.categories a{
  min-width:0;
  text-align:center;
  font-size:12px;
}
.categories img,
.simple-cat .bag-line{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:50%;
  background:#f1e6dc;
}
.categories span:last-child{
  display:block;
  margin-top:10px;
}
.simple-cat .bag-line{
  display:grid;
  place-items:center;
  font-size:40px;
  color:#a87b64;
}

.products{
  max-width:1120px;
  margin:0 auto;
  padding:18px 20px 38px;
}
.product-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}
.product-heading>div{
  display:flex;
  align-items:center;
  gap:10px;
}
.bar{
  width:3px;
  height:34px;
  background:#c48d70;
}
.product-heading h2{
  margin:0;
  font-size:25px;
  font-weight:500;
}
.product-heading small{
  font-size:9px;
  letter-spacing:.18em;
  color:#bd8b72;
}
.product-heading>a{
  border:1px solid #ca9f88;
  border-radius:999px;
  padding:9px 16px;
  font-size:11px;
}
.product-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.product-card{
  min-width:0;
}
.product-card>img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:5px;
  background:#f5eee7;
}
.product-info{
  position:relative;
  padding:10px 2px 0;
}
.product-info h3{
  margin:0 28px 7px 0;
  font-size:13px;
  font-weight:500;
}
.product-info p{
  margin:0;
  font-size:12px;
  color:#9e644c;
}
.product-info span{
  position:absolute;
  right:3px;
  top:11px;
  font-size:21px;
  color:#c99075;
}

.info{
  max-width:1060px;
  margin:8px auto 44px;
  padding:28px 14px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#f4e8dd;
  border-radius:8px;
}
.info article{
  text-align:center;
  padding:8px 18px;
  border-right:1px solid #dcc8b9;
}
.info article:last-child{border-right:0}
.info-icon{
  font-size:27px;
  color:#b67d5e;
}
.info h3{
  margin:10px 0 6px;
  font-size:14px;
  font-weight:500;
}
.info p{
  margin:0;
  font-size:11px;
  line-height:1.65;
  color:#8d7464;
}

.about{
  max-width:700px;
  margin:56px auto;
  padding:0 22px;
  text-align:center;
}
.about small{
  font-size:9px;
  letter-spacing:.22em;
  color:#b17d65;
}
.about h2{
  margin:10px 0 12px;
  font-size:21px;
  font-weight:500;
}
.about p{
  margin:0;
  font-size:12px;
  line-height:1.9;
  color:#887164;
}

footer{
  padding:34px 20px 42px;
  text-align:center;
  background:#eee3d8;
}
footer strong{
  display:block;
  letter-spacing:.28em;
  font-size:14px;
}
footer span{
  display:block;
  margin-top:8px;
  font-size:9px;
  letter-spacing:.20em;
  color:#8d7464;
}

@media(max-width:760px){
  .header{
    height:62px;
    grid-template-columns:42px 1fr 70px;
    padding:0 14px;
  }
  .nav{display:none}
  .logo{grid-column:2}
  .icons{grid-column:3;font-size:14px}
  .logo strong{font-size:13px;letter-spacing:.24em}
  .hero img{width:100%;height:auto}

  .category-section{padding:22px 14px 28px}
  .categories{
    grid-template-columns:repeat(3,1fr);
    gap:18px 16px;
  }
  .categories a{font-size:12px}
  .categories img,.simple-cat .bag-line{max-width:112px;margin:0 auto}

  .products{padding:14px 14px 32px}
  .product-heading h2{font-size:22px}
  .product-heading small{display:none}
  .product-heading>a{padding:8px 12px}
  .product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 10px;
  }

  .info{
    margin:4px 14px 34px;
    grid-template-columns:repeat(2,1fr);
    padding:12px;
  }
  .info article{
    min-height:135px;
    padding:14px 8px;
    border-right:0;
    border-bottom:1px solid #dcc8b9;
  }
  .info article:nth-child(3),
  .info article:nth-child(4){border-bottom:0}
}


/* Corrected product area: no fake/demo items before real products are added */
.empty-products{
  grid-column:1/-1;
  min-height:190px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  border:1px dashed #decfc3;
  border-radius:14px;
  background:#fffaf5;
  padding:28px 18px;
}
.empty-products .mini-bow{
  color:#c58c70;
  font-size:23px;
  margin-bottom:10px;
}
.empty-products strong{
  font-size:15px;
  font-weight:500;
}
.empty-products p{
  max-width:300px;
  margin:8px 0 0;
  font-size:12px;
  line-height:1.7;
  color:#907666;
}




/* Lower section correction — no image assets here, so nothing can crop or overlap */
.info{
  position:relative;
  overflow:hidden;
}
.info-deco{
  position:absolute;
  right:18px;
  bottom:12px;
  z-index:0;
  font-size:24px;
  color:#c99b84;
  opacity:.32;
  transform:rotate(-7deg);
  pointer-events:none;
}
.info article{
  position:relative;
  z-index:1;
}

/* Keep the 4 shopping-info cells clean on mobile */
@media(max-width:760px){
  .info{
    overflow:hidden;
  }
  .info article{
    min-height:138px;
  }
  .info-deco{
    right:14px;
    bottom:10px;
    font-size:20px;
    opacity:.24;
  }
}


/* Approved shopping-info card */
.info{
  position:relative;
  overflow:hidden;
  max-width:1060px;
  margin:8px auto 44px;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  background:linear-gradient(145deg,#f7ede4 0%,#f4e6da 100%);
  border-radius:16px;
}

.info article{
  position:relative;
  z-index:2;
  min-height:150px;
  padding:34px 22px 30px;
  text-align:center;
  border-right:1px solid rgba(190,150,127,.28);
  border-bottom:1px solid rgba(190,150,127,.28);
}

.info article:nth-of-type(2),
.info article:nth-of-type(4){
  border-right:0;
}
.info article:nth-of-type(3),
.info article:nth-of-type(4){
  border-bottom:0;
}

.info h3{
  margin:0 0 10px;
  font-size:16px;
  font-weight:600;
  letter-spacing:.02em;
  color:#6d4e3d;
}
.info p{
  margin:0;
  font-size:12px;
  line-height:1.8;
  color:#9b7b68;
}

/* very light ribbon lines – CSS only, so no image can fail or crop */
.ribbon{
  position:absolute;
  z-index:1;
  width:360px;
  height:110px;
  border:2px solid rgba(201,151,126,.18);
  border-color:rgba(201,151,126,.18) transparent transparent transparent;
  border-radius:50%;
  pointer-events:none;
}
.ribbon-top{
  right:-95px;
  top:-20px;
  transform:rotate(14deg);
}
.ribbon-bottom{
  left:-125px;
  bottom:-45px;
  transform:rotate(198deg);
}
.tiny-bow{
  position:absolute;
  z-index:1;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  color:rgba(201,151,126,.22);
  font-size:30px;
  pointer-events:none;
}

/* neutralize obsolete icon/deco classes if old CSS remains */
.info-icon,.info-deco{display:none!important}

@media(max-width:760px){
  .info{
    margin:6px 14px 38px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    border-radius:14px;
  }
  .info article{
    min-height:142px;
    padding:30px 12px 26px;
  }
  .info h3{font-size:15px}
  .info p{font-size:11.5px}
  .ribbon{width:250px;height:88px}
  .ribbon-top{right:-85px;top:-22px}
  .ribbon-bottom{left:-95px;bottom:-38px}
  .tiny-bow{font-size:24px}
}


/* Final approved bow styling for shopping-info block */
.info{
  position:relative;
  overflow:hidden;
  max-width:1060px;
  margin:8px auto 44px;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  background:linear-gradient(145deg,#f7ede4 0%,#f4e6da 100%);
  border-radius:16px;
}

.info article{
  position:relative;
  z-index:3;
  min-height:150px;
  padding:34px 22px 30px;
  text-align:center;
  border-right:1px solid rgba(190,150,127,.24);
  border-bottom:1px solid rgba(190,150,127,.24);
}
.info article:nth-of-type(2),
.info article:nth-of-type(4){border-right:0}
.info article:nth-of-type(3),
.info article:nth-of-type(4){border-bottom:0}

.info h3{
  margin:0 0 10px;
  font-size:16px;
  font-weight:600;
  letter-spacing:.02em;
  color:#6d4e3d;
}
.info p{
  margin:0;
  font-size:12px;
  line-height:1.8;
  color:#9b7b68;
}

/* hide previous experimental decorations */
.info > .ribbon,
.info > .tiny-bow,
.info > .info-deco{
  display:none!important;
}

.bow-deco{
  position:absolute;
  z-index:1;
  width:92px;
  height:58px;
  pointer-events:none;
  opacity:.28;
}
.bow-large{
  right:24px;
  top:18px;
  transform:rotate(2deg);
}
.bow-small{
  left:50%;
  top:50%;
  width:54px;
  height:34px;
  transform:translate(-50%,-50%);
  opacity:.22;
}

.bow-loop{
  position:absolute;
  top:8px;
  width:34px;
  height:20px;
  border:2px solid #c78f73;
  border-radius:58% 56% 58% 56%;
  background:transparent;
}
.bow-loop.left{
  left:10px;
  transform:rotate(12deg);
}
.bow-loop.right{
  right:10px;
  transform:scaleX(-1) rotate(12deg);
}
.bow-knot{
  position:absolute;
  left:50%;
  top:16px;
  width:12px;
  height:12px;
  margin-left:-6px;
  border:2px solid #c78f73;
  border-radius:50%;
  background:transparent;
}
.bow-tail{
  position:absolute;
  top:28px;
  width:28px;
  height:22px;
  border-bottom:2px solid #c78f73;
}
.tail-left{
  left:21px;
  transform:rotate(-27deg);
  border-left:2px solid #c78f73;
  border-radius:0 0 0 18px;
}
.tail-right{
  right:21px;
  transform:rotate(27deg);
  border-right:2px solid #c78f73;
  border-radius:0 0 18px 0;
}

.bow-small .bow-loop{
  width:21px;
  height:13px;
  top:5px;
  border-width:1.6px;
}
.bow-small .bow-loop.left{left:5px}
.bow-small .bow-loop.right{right:5px}
.bow-small .bow-knot{
  top:10px;
  width:8px;
  height:8px;
  margin-left:-4px;
  border-width:1.6px;
}
.bow-small .bow-tail{display:none}

.ribbon-line{
  position:absolute;
  z-index:1;
  width:310px;
  height:86px;
  border:2px solid rgba(199,143,115,.18);
  border-color:rgba(199,143,115,.18) transparent transparent transparent;
  border-radius:50%;
  pointer-events:none;
}
.ribbon-left{
  left:-120px;
  bottom:-38px;
  transform:rotate(188deg);
}

@media(max-width:760px){
  .info{
    margin:6px 14px 38px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    border-radius:14px;
  }
  .info article{
    min-height:142px;
    padding:30px 12px 26px;
  }
  .info h3{font-size:15px}
  .info p{font-size:11.5px}

  .bow-large{
    width:74px;
    height:48px;
    right:15px;
    top:14px;
    opacity:.26;
  }
  .bow-large .bow-loop{
    width:28px;
    height:17px;
    top:7px;
  }
  .bow-large .bow-knot{
    top:14px;
    width:10px;
    height:10px;
    margin-left:-5px;
  }
  .bow-large .bow-tail{
    top:25px;
    width:24px;
    height:18px;
  }
  .bow-small{
    width:46px;
    height:30px;
  }
  .ribbon-left{
    width:230px;
    height:72px;
    left:-92px;
    bottom:-34px;
  }
}
