*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --pink:#ffb7c5;--deep:#d4567a;--cream:#fff8f9;--text:#4a3038;
  --font-round:'M PLUS Rounded 1c',sans-serif;--font-min:'Shippori Mincho',serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--font-round);background:var(--cream);color:var(--text);overflow-x:hidden}
img{max-width:100%;display:block;object-fit:cover}
a{color:var(--deep)}

.wave-bg{
  position:fixed;inset:0;z-index:-1;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%,var(--pink) 0%,transparent 55%),
    linear-gradient(180deg,#fff8f9 0%,#ffe8ee 100%);
}

.pill-nav{
  position:sticky;top:1rem;z-index:50;margin:1rem auto;max-width:720px;
  display:flex;align-items:center;gap:1rem;background:#fff;border-radius:999px;
  padding:.6rem 1.25rem;box-shadow:0 4px 24px rgba(212,86,122,.15);
}
.brand-pill{font-weight:700;font-size:.95rem;white-space:nowrap}
.pill-links{display:flex;gap:1.25rem;margin-left:auto}
.pill-links a{text-decoration:none;color:var(--text);font-size:.88rem;font-weight:500}
.pill-links a:hover{color:var(--deep)}
.pill-menu{display:none;background:none;border:none;font-size:1.2rem;cursor:pointer}

.curved-hero{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:2rem;padding:3rem 1.5rem 4rem;max-width:1100px;margin:0 auto;
}
.hero-content{flex:1;min-width:280px;max-width:480px}
.curved-hero h1{
  font-family:var(--font-min);font-size:clamp(2rem,6vw,3.2rem);line-height:1.3;margin-bottom:1rem;
}
.curved-hero h1 em{font-style:normal;color:var(--deep)}
.curved-hero p{opacity:.85;margin-bottom:1.25rem}
.hero-badges{display:flex;flex-wrap:wrap;gap:.5rem}
.hero-badges span{
  background:#fff;border:1px solid var(--pink);padding:.35rem .9rem;
  border-radius:999px;font-size:.8rem;color:var(--deep);
}

.hero-food-ring{position:relative;width:min(360px,90vw);height:360px}
.hero-food-ring img{
  position:absolute;width:42%;aspect-ratio:1;border-radius:50%;
  border:4px solid #fff;box-shadow:0 8px 28px rgba(212,86,122,.25);
}
.ring-1{top:5%;left:28%;animation:float1 5s ease-in-out infinite}
.ring-2{bottom:10%;left:0;animation:float2 6s ease-in-out infinite}
.ring-3{bottom:15%;right:0;animation:float3 5.5s ease-in-out infinite}
@keyframes float1{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes float2{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(10px)}}
@keyframes float3{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

.featured-wave{
  background:var(--deep);color:#fff;padding:3rem 1.5rem;
  border-radius:60% 60% 0 0 / 8% 8% 0 0;margin-top:-2rem;
}
.featured-wave h2{text-align:center;font-family:var(--font-min);margin-bottom:2rem}
.featured-cards{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1.25rem;max-width:1000px;margin:0 auto;
}
.featured-cards article{
  background:#fff;color:var(--text);border-radius:20px;overflow:hidden;
  box-shadow:0 6px 20px rgba(0,0,0,.12);
}
.featured-cards img{width:100%;aspect-ratio:4/3}
.featured-cards h3{padding:.75rem 1rem 0;font-size:1rem}
.featured-cards .price{padding:0 1rem;font-weight:700;color:var(--deep)}
.add-btn{
  display:block;width:calc(100% - 2rem);margin:1rem;background:var(--pink);
  border:none;padding:.7rem;border-radius:12px;cursor:pointer;font-weight:700;
  color:var(--deep);transition:background .2s;
}
.add-btn:hover{background:#ff9eb0}

.horizontal-shop{padding:3rem 0 2rem}
.shop-header{text-align:center;margin-bottom:1.5rem;padding:0 1rem}
.shop-header h2{font-family:var(--font-min);font-size:1.5rem}
.h-scroll{
  display:flex;gap:1rem;overflow-x:auto;padding:1rem 1.5rem 1.5rem;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:var(--pink) transparent;
}
.h-card{
  flex:0 0 220px;scroll-snap-align:center;background:#fff;border-radius:16px;
  overflow:hidden;box-shadow:0 4px 16px rgba(212,86,122,.12);
}
.h-card img{width:100%;height:160px}
.h-card h4{padding:.6rem .75rem 0;font-size:.9rem}
.h-card span{display:block;padding:0 .75rem .75rem;font-weight:700;color:var(--deep)}

.season-block{
  display:grid;grid-template-columns:1fr 1fr;max-width:1000px;margin:2rem auto;padding:0 1.5rem;gap:2rem;align-items:center;
}
.season-img img{border-radius:24px;width:100%;box-shadow:0 12px 40px rgba(212,86,122,.2)}
.season-text h2{font-family:var(--font-min);margin-bottom:1rem;color:var(--deep)}
.season-text ul{list-style:none;margin-top:1rem}
.season-text li{margin-bottom:.5rem;font-size:.9rem;padding-left:1.2rem;position:relative}
.season-text li::before{content:'🌸';position:absolute;left:0}

.footer-sakura{
  background:#fff;margin-top:3rem;padding:2.5rem 1.5rem;border-top:3px solid var(--pink);
  font-size:.88rem;max-width:800px;margin-left:auto;margin-right:auto;
}
.footer-sakura h3,.footer-sakura h4{color:var(--deep);margin:1.25rem 0 .5rem}
.footer-sakura h3{margin-top:0}
.copy{margin-top:1.5rem;opacity:.6;font-size:.8rem}

.float-cart{
  position:fixed;bottom:1.5rem;right:1.5rem;background:var(--deep);color:#fff;
  padding:.75rem 1.25rem;border-radius:999px;font-weight:700;
  box-shadow:0 6px 20px rgba(212,86,122,.4);z-index:60;transition:transform .2s;
}
.float-cart.bump{transform:scale(1.08)}

@media(max-width:700px){
  .pill-links{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;
    flex-direction:column;padding:1rem;border-radius:16px;margin-top:.5rem}
  .pill-links.open{display:flex}
  .pill-menu{display:block}
  .pill-nav{flex-wrap:wrap;position:relative}
  .season-block{grid-template-columns:1fr}
}
