*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Hiragino Kaku Gothic ProN','Meiryo',sans-serif;
  color:#2c2c2c;background:#fff;line-height:1.7;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}

:root{
  --g-dark:#2a5c3a;
  --g-mid:#3d7a4f;
  --g-light:#5a9e6a;
  --g-pale:#eaf4ec;
  --gold:#c8923a;
  --cream:#fdf8f0;
  --white:#fff;
  --txt:#444;
}

/* ── BACKGROUND: herb illustration pinned, more visible ── */
body::before{
  content:'';
  position:fixed;top:0;left:0;width:100%;height:100%;
  background-image:url('images/bg.png');
  background-size:cover;
  background-position:center top;
  opacity:0.22;
  pointer-events:none;
  z-index:0;
}
/* ヒーロー内では固定背景を非表示（kvbackが前面に出るため） */
.hero{isolation:isolate}
.hero ~ * body::before{opacity:0.22}

/* Light sections get a local herb-bg layer for extra impact */
.with-bg{position:relative}
.with-bg::after{
  content:'';
  position:absolute;inset:0;
  background-image:url('images/bg.png');
  background-size:cover;
  background-position:center;
  opacity:0.14;
  pointer-events:none;
  z-index:0;
}
.with-bg>*{position:relative;z-index:1}

section,div.wrap,header,footer{position:relative;z-index:1}

/* ── SCROLL ANIMATIONS ── */
.fu{opacity:0;transform:translateY(44px);transition:opacity .75s ease,transform .75s ease}
.fl{opacity:0;transform:translateX(-44px);transition:opacity .7s ease,transform .7s ease}
.fr{opacity:0;transform:translateX(44px);transition:opacity .7s ease,transform .7s ease}
.fs{opacity:0;transform:scale(.92);transition:opacity .65s ease,transform .65s ease}
.on{opacity:1!important;transform:none!important}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}
.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* ── KV WRAPPER (hero + points を1枚の背景で統一) ── */
.kv-wrapper{
  background:url('images/kvback.jpg') center top / cover no-repeat;
  position:relative;
}

/* ── HERO ── */
.hero{
  min-height:100vh;
  background:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:60px 20px 50px;
  overflow:hidden;position:relative;
}

/* kvlogo — センター上部、大きめ */
.hero-logo{
  width:min(520px,86vw);
  margin:0 auto 32px;
  filter:drop-shadow(0 6px 28px rgba(0,0,0,.22));
}
.hero-logo img{width:100%;display:block}

.hero-copy{
  font-size:clamp(17px,4.5vw,22px);font-weight:800;
  color:#fff;line-height:1.7;margin-bottom:10px;
  text-shadow:0 1px 8px rgba(0,0,0,.35);
}
.hero-copy em{color:#fff;font-style:normal;display:block;font-size:1.12em}
.hero-sub{
  font-size:13px;color:rgba(255,255,255,.88);
  letter-spacing:.1em;margin-bottom:34px;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}
.hero-cta{
  display:inline-block;background:var(--gold);color:#fff;
  font-size:17px;font-weight:800;letter-spacing:.05em;
  padding:18px 52px;border-radius:50px;
  box-shadow:0 4px 24px rgba(200,146,58,.5);
  transition:transform .25s,box-shadow .25s;
  position:relative;z-index:2;
}
.hero-cta:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(200,146,58,.65)}
.scroll-hint{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.75);font-size:10px;letter-spacing:.22em;
  display:flex;flex-direction:column;align-items:center;gap:5px;
  z-index:2;
}
.scroll-hint::after{
  content:'';width:1px;height:38px;
  background:linear-gradient(rgba(255,255,255,.75),transparent);
  animation:scrl 1.8s ease-in-out infinite;
}
@keyframes scrl{
  0%{opacity:0;transform:scaleY(0);transform-origin:top}
  50%{opacity:1;transform:scaleY(1)}
  100%{opacity:0;transform:scaleY(1);transform-origin:bottom}
}

/* ── COMMON ── */
.inner{max-width:660px;margin:0 auto}
.sec{padding:68px 20px}
.sec-ttl{
  text-align:center;font-size:clamp(20px,5vw,26px);
  font-weight:900;letter-spacing:.06em;margin-bottom:10px;
}
.sec-ttl::after{content:'';display:block;width:44px;height:3px;border-radius:2px;margin:10px auto 0}
.sec-ttl.wh{color:#fff}.sec-ttl.wh::after{background:#a8d8b2}
.sec-ttl.dk{color:var(--g-dark)}.sec-ttl.dk::after{background:var(--gold)}

/* ── POINTS ── */
.sec-pts{
  background:none;
  padding-bottom:80px;
}
.pts-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:34px}
.pt{
  background:#3b6949;border:1px solid rgba(168,216,178,.3);
  border-radius:20px;padding:26px 18px;text-align:center;
  transition:background .3s,transform .3s;
  box-shadow:0 4px 16px rgba(0,0,0,.18);
}
.pt:hover{background:#4a7d5a;transform:translateY(-4px)}
.pt-num{
  display:inline-block;background:var(--gold);color:#fff;
  font-size:10px;font-weight:800;letter-spacing:.12em;
  padding:4px 14px;border-radius:20px;margin-bottom:12px;
}
.pt-big{font-size:19px;font-weight:900;color:#fff;margin-bottom:6px}
.pt-sm{font-size:13px;color:#cde9d3;line-height:1.65}

/* ── PRODUCT INFO ── */
.sec-prod{background:var(--cream)}
.prod-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;margin-top:36px}
.prod-img-wrap{
  display:flex;justify-content:center;
  background:linear-gradient(135deg,var(--g-pale),#fff);
  border-radius:24px;padding:30px;
  box-shadow:0 4px 24px rgba(0,0,0,.07);
}
.prod-img-wrap img{
  width:100%;max-width:200px;
  filter:drop-shadow(0 8px 28px rgba(0,0,0,.28));
  animation:floatY 4s ease-in-out infinite;
}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.prod-info{background:#fff;border-radius:20px;padding:26px 22px;box-shadow:0 4px 20px rgba(0,0,0,.07)}
.prod-info h3{
  font-size:17px;font-weight:900;color:var(--g-dark);
  margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--g-pale);
}
.i-row{display:flex;gap:10px;margin-bottom:9px;font-size:13px;line-height:1.7}
.i-lbl{
  font-weight:700;color:var(--g-dark);white-space:nowrap;
  background:var(--g-pale);padding:2px 8px;border-radius:4px;
  font-size:11px;align-self:flex-start;margin-top:2px;flex-shrink:0;
}
.i-val{color:var(--txt)}
.nutrition{width:100%;border-collapse:collapse;font-size:12px;margin-top:12px}
.nutrition caption{font-size:11px;color:#888;text-align:left;margin-bottom:4px}
.nutrition th,.nutrition td{padding:5px 8px;border:1px solid #e0e0e0}
.nutrition th{background:var(--g-pale);color:var(--g-dark);font-weight:700}
.nutrition td{color:var(--txt)}
.i-note{font-size:11px;color:#888;margin-top:12px;line-height:1.75}

/* ── STORES ── */
.sec-stores{background:var(--cream)}
.stores-lead{
  text-align:center;font-size:13px;color:var(--g-mid);
  letter-spacing:.06em;margin-bottom:32px;
}
.store-area{margin-bottom:30px}
.store-area:last-child{margin-bottom:0}
.store-area-ttl{
  display:flex;align-items:center;gap:9px;
  font-size:11px;font-weight:800;color:var(--g-mid);
  letter-spacing:.2em;text-transform:uppercase;
  margin-bottom:12px;
}
.store-area-dot{
  display:inline-block;width:7px;height:7px;
  background:var(--gold);border-radius:50%;flex-shrink:0;
}
.store-card{
  background:#fff;border-radius:18px;
  box-shadow:0 2px 16px rgba(0,0,0,.07);
  overflow:hidden;margin-bottom:10px;
  border:1px solid rgba(234,244,236,.8);
}
.store-card:last-child{margin-bottom:0}
.store-card-hd{
  display:flex;align-items:center;justify-content:space-between;
  padding:15px 20px 12px;
  border-bottom:1px solid var(--g-pale);
  background:linear-gradient(90deg,rgba(234,244,236,.6),#fff);
}
.store-brand{
  font-size:14px;font-weight:800;color:var(--g-dark);letter-spacing:.03em;
}
.store-count-badge{
  background:var(--g-pale);color:var(--g-mid);
  font-size:10px;font-weight:700;letter-spacing:.08em;
  padding:3px 10px;border-radius:20px;white-space:nowrap;
}
.store-rows{padding:4px 0}
.store-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;text-decoration:none;
  border-bottom:1px solid rgba(234,244,236,.9);
  transition:background .18s;
}
.store-row:last-child{border-bottom:none}
.store-row:hover{background:var(--g-pale)}
.store-row-name{
  font-size:14px;color:var(--txt);
  display:flex;align-items:center;gap:8px;
}
.store-row-name::before{
  content:'';display:inline-block;
  width:5px;height:5px;
  background:var(--g-light);border-radius:50%;flex-shrink:0;
}
.store-map-tag{
  font-size:11px;font-weight:700;color:var(--g-dark);
  background:var(--g-pale);padding:5px 13px;border-radius:20px;
  letter-spacing:.04em;white-space:nowrap;
  transition:background .18s,color .18s;
}
.store-row:hover .store-map-tag{background:var(--g-dark);color:#fff}

/* ── STORES MINI (compact, after product section) ── */
.sec-stores-mini{
  background:var(--cream);
  padding:28px 20px 32px;
  border-top:2px solid var(--g-pale);
}
.stm-ttl{
  font-size:11px;font-weight:800;color:var(--g-mid);
  letter-spacing:.2em;text-align:center;
  margin-bottom:16px;
  text-transform:uppercase;
}
.stm-rows{display:flex;flex-direction:column;gap:10px}
.stm-row{
  display:flex;align-items:flex-start;gap:10px;
}
.stm-region{
  font-size:10px;font-weight:800;color:#fff;
  background:var(--g-mid);
  padding:5px 11px;border-radius:20px;
  white-space:nowrap;flex-shrink:0;
  letter-spacing:.05em;
  margin-top:1px;
}
.stm-tags{
  display:flex;flex-wrap:wrap;gap:6px;
}
.stm-tag{
  font-size:12px;font-weight:600;color:var(--g-dark);
  background:#fff;border:1px solid rgba(90,158,106,.3);
  padding:5px 13px;border-radius:20px;
  text-decoration:none;
  transition:background .18s,color .18s,border-color .18s;
  white-space:nowrap;
}
.stm-tag::after{
  content:'↗';
  font-size:9px;color:var(--g-light);
  margin-left:4px;
  vertical-align:middle;
}
.stm-tag:hover{background:var(--g-dark);color:#fff;border-color:var(--g-dark)}
.stm-tag:hover::after{color:rgba(255,255,255,.6)}

/* ── USAGE ── */
.sec-usage{background:var(--g-pale)}
.usage-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}
.usage-photo{border-radius:16px;overflow:hidden;aspect-ratio:1}
.usage-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.usage-photo:hover img{transform:scale(1.07)}
.usage-names{display:flex;justify-content:center;gap:0;margin-top:18px}
.usage-name{
  font-size:clamp(22px,6vw,34px);font-weight:900;color:var(--g-dark);
  padding:0 14px;letter-spacing:.04em;
}
.usage-name+.usage-name{border-left:2px solid var(--g-light)}
.usage-cap{text-align:center;font-size:14px;color:var(--txt);margin-top:8px}

/* ── PREP BAND ── */
.prep-band{position:relative;overflow:hidden;height:210px}
.prep-band img{width:100%;height:100%;object-fit:cover;filter:brightness(.5)}
.prep-txt{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;color:#fff;text-align:center;padding:0 20px;
}
.prep-title{font-size:clamp(17px,4.5vw,23px);font-weight:900;letter-spacing:.05em;line-height:1.5}
.prep-sub{font-size:12px;color:#cde9d3;letter-spacing:.12em}

/* ── ABOUT ── */
.sec-about{background:#fff}
.about-card{
  background:var(--cream);border-radius:24px;padding:34px 28px;
  border-left:4px solid var(--g-mid);margin-top:34px;
  position:relative;overflow:hidden;
}
.about-p{font-size:14px;color:var(--txt);line-height:2.05;margin-bottom:16px}
.about-p:last-child{margin-bottom:0}

/* ── SPICES ── */
.sec-spices{background:var(--g-dark)}
.spice-hero{
  display:flex;gap:20px;align-items:center;
  background:rgba(168,216,178,.12);border:1px solid rgba(168,216,178,.28);
  border-radius:20px;padding:20px;margin:28px 0 20px;
}
.spice-hero-img{width:90px;height:90px;border-radius:14px;object-fit:cover;flex-shrink:0}
.spice-hero-name{font-size:16px;font-weight:800;color:#fff;margin-bottom:6px}
.spice-hero-desc{font-size:12px;color:#a8d8b2;line-height:1.75}
.spice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.spice-cell{
  background:rgba(255,255,255,.07);border:1px solid rgba(168,216,178,.18);
  border-radius:14px;overflow:hidden;text-align:center;
  transition:transform .3s,background .3s;
}
.spice-cell:hover{transform:translateY(-4px);background:rgba(255,255,255,.16)}
.spice-cell img{width:100%;aspect-ratio:1;object-fit:cover}
.spice-name{font-size:10px;color:#cde9d3;padding:7px 3px;letter-spacing:.05em;font-weight:600}

/* ── RECIPE HD ── */
.sec-rcp-hd{
  background:linear-gradient(135deg,var(--g-dark),#1c3d28);
  padding:48px 20px;text-align:center;
}
.rcp-sub{font-size:13px;color:#a8d8b2;letter-spacing:.1em;margin-bottom:10px}
.rcp-ttl{font-size:clamp(19px,5vw,27px);font-weight:900;color:#fff;line-height:1.45}

/* ── RECIPE CARDS ── */
.sec-rcps{background:var(--cream);padding:40px 16px}
.rcp-card{
  background:#fff;border-radius:22px;overflow:hidden;
  box-shadow:0 4px 22px rgba(0,0,0,.08);
  margin-bottom:28px;max-width:660px;margin-left:auto;margin-right:auto;
}
.rcp-card:last-child{margin-bottom:0}
.rcp-img{width:100%;aspect-ratio:16/9;object-fit:cover}
.rcp-body{padding:22px 22px 26px}
.rcp-tag{
  display:inline-block;background:var(--g-pale);color:var(--g-dark);
  font-size:11px;font-weight:700;letter-spacing:.1em;
  padding:4px 14px;border-radius:20px;margin-bottom:10px;
}
.rcp-name{font-size:clamp(16px,4.5vw,20px);font-weight:900;color:var(--g-dark);margin-bottom:5px}
.rcp-catch{font-size:13px;color:var(--gold);font-weight:700;margin-bottom:15px}
.rcp-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rcp-col h4{
  font-size:11px;font-weight:700;color:var(--g-mid);letter-spacing:.08em;
  border-bottom:2px solid var(--g-pale);padding-bottom:4px;margin-bottom:8px;
}
.rcp-col ul{list-style:none;font-size:13px;color:var(--txt);line-height:1.9}
.rcp-col ul li::before{content:'・';color:var(--g-mid)}
.rcp-col ol{list-style:none;counter-reset:s;font-size:13px;color:var(--txt)}
.rcp-col ol li{
  counter-increment:s;padding-left:26px;position:relative;
  margin-bottom:5px;line-height:1.6;
}
.rcp-col ol li::before{
  content:counter(s);position:absolute;left:0;top:1px;
  background:var(--g-dark);color:#fff;width:18px;height:18px;
  font-size:10px;font-weight:700;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.rcp-pt{
  margin-top:13px;background:var(--g-pale);
  border-left:3px solid var(--g-mid);border-radius:0 10px 10px 0;
  padding:9px 14px;font-size:13px;color:var(--g-dark);
}
.rcp-pt span{color:var(--gold);font-weight:700}

.rcp-img-note{
  text-align:right;font-size:11px;color:#aaa;
  max-width:660px;margin:8px auto 0;
}

/* ── MORE ── */
.sec-more{background:var(--g-dark);padding:60px 20px}
.more-tags{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:26px}
.more-tag{
  background:rgba(255,255,255,.1);border:1px solid rgba(168,216,178,.3);
  color:#cde9d3;padding:10px 20px;border-radius:30px;
  font-size:14px;font-weight:600;
  transition:background .25s,transform .2s;
}
.more-tag:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}

/* ── CTA ── */
.sec-cta{
  background:linear-gradient(160deg,var(--g-dark),var(--g-mid));
  padding:80px 24px;text-align:center;position:relative;overflow:hidden;
}
.sec-cta::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 100%,rgba(141,194,31,.22) 0%,transparent 60%);
}
.cta-in{position:relative}
.cta-eye{font-size:12px;letter-spacing:.2em;color:#a8d8b2;margin-bottom:14px}
.cta-ttl{font-size:clamp(21px,5.5vw,32px);font-weight:900;color:#fff;line-height:1.45;margin-bottom:10px}
.cta-sub{font-size:14px;color:#cde9d3;line-height:1.9;margin-bottom:36px}
.cta-btn{
  display:inline-block;background:var(--gold);color:#fff;
  font-size:18px;font-weight:800;letter-spacing:.05em;
  padding:20px 56px;border-radius:50px;
  box-shadow:0 6px 28px rgba(200,146,58,.55);
  transition:transform .25s,box-shadow .25s;
}
.cta-btn:hover{transform:translateY(-3px);box-shadow:0 10px 36px rgba(200,146,58,.65)}

footer{background:#1a3a24;color:#7aab88;text-align:center;padding:28px;font-size:12px;letter-spacing:.1em}

@media(max-width:520px){
  .pts-grid{grid-template-columns:1fr}
  .prod-grid{grid-template-columns:1fr}
  .spice-grid{grid-template-columns:repeat(3,1fr)}
  .rcp-cols{grid-template-columns:1fr}
}