/* =========================================================
   TOP page sections
   ========================================================= */

/* ---------------- HERO ---------------- */
.hero{
  position:relative;
  min-height:100vh;
  background:
    radial-gradient(120% 80% at 80% -10%, var(--navy-bright) 0%, var(--navy) 42%, var(--navy-deep) 100%);
  overflow:hidden;
}
.hero-photo{
  position:absolute;top:0;right:0;z-index:1;
  width:53%;height:74%;
  border-radius:0 0 0 46% / 0 0 0 38%;
  overflow:hidden;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.7);
}
.hero-photo::after{ /* tint to blend */
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(14,42,82,.15), rgba(14,42,82,.5));
}
.hero-photo img{width:100%;height:100%;object-fit:cover;}

.hero-moon{
  width:calc(clamp(140px,15vw,220px) * var(--moon-scale,1));aspect-ratio:1;
  left:9%;top:15vh;z-index:2;
  animation:moon-float 9s ease-in-out infinite;
}
@keyframes moon-float{0%,100%{transform:translateY(0);}50%{transform:translateY(-16px);}}

.hero-inner{position:relative;z-index:3;display:flex;align-items:flex-end;min-height:100vh;
  padding-bottom:11vh;padding-top:20vh;}
.hero-copy{max-width:560px;}
.hero-wordmark{width:clamp(300px,40vw,520px);margin-bottom:30px;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,.35));}
.hero-tagline{
  font-family:var(--f-head);
  font-size:clamp(1rem,1.7vw,1.32rem);
  line-height:2.3;letter-spacing:.1em;
  color:var(--on-navy);
  text-shadow:0 2px 18px rgba(14,42,82,.7);
}

.hero-scroll{position:absolute;left:50%;bottom:120px;transform:translateX(-50%);z-index:4;
  font-family:var(--f-en);font-size:.7rem;letter-spacing:.3em;color:var(--on-navy-dim);
  display:flex;flex-direction:column;align-items:center;gap:10px;}
.hero-scroll .line{width:1px;height:46px;background:linear-gradient(var(--on-navy-dim),transparent);
  animation:scroll-line 2.4s ease-in-out infinite;}
@keyframes scroll-line{0%{transform:scaleY(.2);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}51%{transform-origin:bottom;}100%{transform:scaleY(.2);transform-origin:bottom;}}

/* scattered doodles */
.deco{position:absolute;z-index:2;}

/* ---------------- CONCEPT ---------------- */
.concept{background:var(--cream);color:var(--ink);position:relative;padding:30px 0 0;}
.concept .eyebrow{color:var(--ink-soft);}
.concept-grid{display:grid;grid-template-columns:1.05fr 1.25fr .75fr;gap:46px;align-items:center;margin-top:50px;}
.concept-text p{font-size:1rem;line-height:2.4;color:var(--ink-soft);margin:1.6em 0 0;}
.concept-photo{position:relative;}
.concept-photo img{border-radius:14px;box-shadow:0 30px 60px -34px rgba(28,49,87,.55);width:100%;height:100%;object-fit:cover;}
.concept-blob{
  background:var(--navy);color:var(--on-navy);
  border-radius:50% 50% 50% 50% / 46% 54% 46% 54%;
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:28px;font-family:var(--f-head);font-size:1.12rem;line-height:2.2;letter-spacing:.08em;
  box-shadow:0 24px 50px -28px rgba(14,42,82,.6);
}

/* ---------------- SAKE ---------------- */
.sake{
  background:var(--navy);
  position:relative;
  padding:20px 0 0;
  overflow:hidden;
}
.sake .eyebrow{color:var(--moon);}

/* header row */
.sake-top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  flex-wrap:wrap;
  margin-bottom:48px;
}
.sake-top .section-title{margin:.3em 0 .5em;}
.sake-sub{color:var(--on-navy-dim);font-size:.98rem;line-height:2.2;margin:0;}

/* horizontal scroll outer */
.sake-hs-outer{position:relative;}
.sake-hs{
  display:flex;
  align-items:stretch;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding:8px 32px 32px;
  scrollbar-width:thin;
  scrollbar-color:rgba(236,226,79,.35) transparent;
}
.sake-hs::-webkit-scrollbar{height:4px;}
.sake-hs::-webkit-scrollbar-track{background:transparent;}
.sake-hs::-webkit-scrollbar-thumb{background:rgba(236,226,79,.35);border-radius:2px;}

/* big photo card */
.sake-photo-card{
  flex:0 0 clamp(320px,38vw,520px);
  height:220px;
  scroll-snap-align:start;
  border-radius:20px;
  overflow:hidden;
  position:relative;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.7);
}
.sake-photo-card img{
  width:100%;height:100%;object-fit:cover;object-position:center 20%;
  display:block;
  transition:transform .8s var(--ease);
}
.sake-photo-card:hover img{transform:scale(1.04);}
.sake-photo-card::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(160deg, transparent 40%, rgba(10,28,60,.85) 100%);
}
.sake-photo-card-text{
  position:absolute;
  bottom:28px;left:28px;right:28px;
  z-index:2;
  display:flex;flex-direction:column;gap:.3em;
  font-family:var(--f-head);
  font-size:clamp(1.1rem,2vw,1.5rem);
  letter-spacing:.1em;
  color:var(--on-navy);
  line-height:1.7;
}

/* individual sake item cards — landscape layout */
.sake-item-card{
  flex:0 0 480px;
  height:220px;
  scroll-snap-align:start;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(242,237,225,.14);
  border-radius:20px;
  padding:0;
  display:flex;
  flex-direction:row;
  position:relative;
  overflow:hidden;
  transition:transform .35s var(--ease), background .35s, box-shadow .35s;
  cursor:default;
}
.sake-item-card:hover{
  transform:translateY(-6px);
  background:rgba(255,255,255,.1);
  box-shadow:0 24px 56px -18px rgba(0,0,0,.65), 0 0 0 1px rgba(236,226,79,.25);
}
.sake-item-card--hot{
  background:rgba(236,226,79,.07);
  border-color:rgba(236,226,79,.3);
}
.sake-item-card--season{
  background:rgba(255,255,255,.025);
  border-style:dashed;
  border-color:rgba(242,237,225,.2);
}

/* badge */
.sake-item-badge{
  position:absolute;
  top:16px;left:16px;
  background:var(--moon);
  color:var(--navy-deep);
  font-family:var(--f-body);
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.1em;
  padding:.28em .9em;
  border-radius:999px;
  z-index:2;
}

/* image — left column */
.sake-item-img{
  flex:0 0 200px;
  height:100%;
  border-radius:0;
  overflow:hidden;
  background:rgba(255,255,255,.04);
  margin:0;
}
.sake-item-img img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .6s var(--ease);}
.sake-item-card:hover .sake-item-img img{transform:scale(1.06);}
.sake-item-img--placeholder{
  display:flex;align-items:center;justify-content:center;
  color:var(--on-navy);
  height:100%;
}

/* text — right column */
.sake-item-body{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:26px 28px 24px;
  min-width:0;
}
.sake-item-region{
  font-size:.72rem;
  letter-spacing:.26em;
  color:var(--moon);
  margin-bottom:8px;
  font-family:var(--f-body);
}
.sake-item-name{
  font-family:var(--f-head);
  font-size:2.6rem;
  letter-spacing:.08em;
  line-height:1;
  margin-bottom:6px;
  color:var(--on-navy);
}
.sake-item-type{
  font-size:.78rem;
  letter-spacing:.14em;
  color:var(--on-navy-dim);
  padding-bottom:14px;
  border-bottom:1px solid rgba(242,237,225,.12);
  margin-bottom:14px;
}
.sake-item-desc{
  font-size:.88rem;
  line-height:2;
  color:var(--on-navy-dim);
  flex:1;
  letter-spacing:.04em;
}
.sake-item-price{
  margin-top:16px;
  font-family:var(--f-en);
  font-size:2.4rem;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--on-navy);
  line-height:1;
}
.sake-item-price span{
  font-family:var(--f-body);
  font-size:.78rem;
  color:var(--on-navy-dim);
  margin-left:.2em;
}
.sake-item-price--jika{
  font-family:var(--f-head);
  font-size:1.8rem;
  color:var(--moon);
}

/* scroll hint */
.sake-hs-hint{
  text-align:center;
  font-size:.72rem;
  letter-spacing:.2em;
  color:rgba(185,196,216,.4);
  margin-top:-16px;
  padding-bottom:6px;
}
@media(min-width:1100px){.sake-hs-hint{display:none;}}

/* ---------------- MENU ---------------- */
.menu{background:var(--cream);color:var(--ink);position:relative;padding:30px 0 90px;}
.menu .eyebrow{color:var(--ink-soft);}
.menu-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:46px;}
.menu-carousel{position:relative;margin-top:42px;}
.menu-track{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:8px 4px 24px;scrollbar-width:none;}
.menu-track::-webkit-scrollbar{display:none;}
.menu-card{flex:0 0 clamp(200px,22vw,250px);scroll-snap-align:start;}
.menu-card .ph{aspect-ratio:1;border-radius:14px;overflow:hidden;
  box-shadow:0 22px 44px -28px rgba(28,49,87,.5);transition:transform .5s var(--ease);}
.menu-card .ph img{width:100%;height:100%;object-fit:cover;}
.menu-card:hover .ph{transform:translateY(-8px);}
.menu-card .nm{font-family:var(--f-head);font-size:1.12rem;margin:18px 0 4px;text-align:center;letter-spacing:.06em;}
.menu-card .pr{text-align:center;color:var(--ink-soft);font-family:var(--f-en);font-size:1.15rem;letter-spacing:.06em;}
.menu-card .pr span{font-family:var(--f-body);font-size:.78rem;margin-left:.2em;}
.carousel-btn{position:absolute;top:33%;transform:translateY(-50%);z-index:5;
  width:54px;height:54px;border-radius:50%;border:1px solid var(--ink);background:var(--cream);
  color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:.3s var(--ease);}
.carousel-btn:hover{background:var(--ink);color:var(--cream);}
.carousel-btn.prev{left:-22px;}
.carousel-btn.next{right:-22px;}

/* ---------------- NEWS + ACCESS ---------------- */
.info{background:var(--cream-2);color:var(--ink);padding:78px 0 0;position:relative;}
.info-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;}
.news-list{margin-top:30px;}
.news-item{display:grid;grid-template-columns:auto auto 1fr;gap:18px;align-items:baseline;
  padding:18px 0;border-bottom:1px solid rgba(28,49,87,.14);transition:.3s;}
.news-item:hover{padding-left:6px;}
.news-item .date{font-family:var(--f-en);letter-spacing:.08em;color:var(--ink-soft);font-size:.95rem;}
.news-item .tag{font-size:.68rem;letter-spacing:.12em;border:1px solid rgba(28,49,87,.4);
  border-radius:999px;padding:.25em 1em;white-space:nowrap;color:var(--ink-soft);}
.news-item .txt{font-size:.95rem;}
.news-foot{margin-top:30px;}

.shop-name{font-family:var(--f-head);font-size:1.7rem;letter-spacing:.06em;margin:0 0 6px;}
.shop-name .ruby{display:block;font-size:.72rem;letter-spacing:.24em;color:var(--ink-soft);margin-bottom:10px;font-family:var(--f-body);}
.shop-rows{margin:22px 0;}
.shop-row{display:grid;grid-template-columns:26px 1fr;gap:14px;padding:11px 0;
  border-bottom:1px dashed rgba(28,49,87,.18);align-items:start;font-size:.94rem;line-height:1.8;}
.shop-row svg{margin-top:5px;}
.map-wrap{position:relative;margin-top:24px;border-radius:14px;overflow:hidden;
  box-shadow:0 24px 50px -30px rgba(28,49,87,.5);}
.map-wrap img{width:100%;display:block;}
.map-pin-btn{position:absolute;right:18px;bottom:18px;width:112px;height:112px;border-radius:50%;
  background:var(--gold);color:var(--navy);display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;font-size:.7rem;line-height:1.7;letter-spacing:.04em;
  box-shadow:0 14px 30px -12px rgba(0,0,0,.45);transition:.4s var(--ease);}
.map-pin-btn:hover{transform:scale(1.06) rotate(-3deg);}
.map-pin-btn .en{font-family:var(--f-en);font-weight:600;letter-spacing:.06em;font-size:.82rem;white-space:nowrap;}

/* ---------------- responsive ---------------- */
@media(max-width:980px){
  .concept-grid{grid-template-columns:1fr 1fr;}
  .concept-blob{grid-column:1/-1;max-width:340px;margin:0 auto;aspect-ratio:auto;border-radius:40px;padding:34px;}
  .info-grid{grid-template-columns:1fr;gap:50px;}
  .sake-top{flex-direction:column;align-items:flex-start;}
}
@media(max-width:720px){
  .hero-photo{width:78%;height:46%;border-radius:0 0 0 36%;}
  .hero-inner{align-items:flex-end;padding-bottom:14vh;}
  .hero-moon{top:9vh;left:auto;right:8%;width:120px;}
  .concept-grid{grid-template-columns:1fr;}
  .concept-photo{max-width:480px;}
  .carousel-btn{display:none;}
  .sake-photo-card{flex:0 0 260px;height:190px;}
  .sake-item-card{flex:0 0 340px;height:190px;}
  .sake-item-img{flex:0 0 150px;}
  .sake-item-name{font-size:1.9rem;}
  .sake-item-price{font-size:1.8rem;}
  .sake-item-body{padding:18px 16px 16px;}
}
