/* ===== Minimal Wamodern ===== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body,h1,h2,h3,h4,p,ul,dl,dd,dt,figure{margin:0;padding:0}
ul{list-style:none}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

:root{
  --ink:#1a1a1a; --paper:#FBFAF7; --paper-d:#F4F1EB; --line:#1a1a1a;
  --brown:#3E2723; --milk:#8a7565; --cara:#a87f4a;
  --sub:#666;
  --mincho:'Shippori Mincho','Noto Serif JP',serif;
  --gothic:'Noto Sans JP',sans-serif;
  --en:'Cormorant Garamond',Georgia,serif;
}

body{font-family:var(--mincho);background:var(--paper);color:var(--ink);line-height:2;font-weight:400;-webkit-font-smoothing:antialiased;font-size:15px}

/* ===== HEADER ===== */
.hd{display:grid;grid-template-columns:auto 1fr;align-items:center;padding:36px 64px 24px;border-bottom:1px solid var(--ink);max-width:1400px;margin:0 auto;gap:60px}
.hd__brand{display:flex;flex-direction:column;line-height:1.3}
.hd__name{font-family:var(--en);font-size:1.7rem;letter-spacing:0.1em;color:var(--ink);font-weight:400}
.hd__sub{font-family:var(--mincho);font-size:0.78rem;letter-spacing:0.4em;color:var(--sub);margin-top:6px}
.hd__nav{display:flex;justify-content:flex-end;gap:48px}
.hd__nav a{font-family:var(--mincho);font-size:0.92rem;letter-spacing:0.2em;color:var(--ink);transition:color .2s;padding:4px 0;border-bottom:1px solid transparent}
.hd__nav a:hover{color:var(--cara);border-color:var(--cara)}

/* ===== rule ===== */
.rule{text-align:center;padding:0;max-width:1400px;margin:0 auto}
.rule span{display:block;border-top:1px solid var(--ink);position:relative;height:1px;margin:0 64px}
.rule span::after{content:'·';position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--paper);padding:0 16px;color:var(--sub);font-size:1.4rem;line-height:1}

/* ===== HERO ===== */
.hero{padding:80px 64px;max-width:1400px;margin:0 auto}
.hero__grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}
.hero__left{position:relative;display:grid;grid-template-columns:auto 1fr;gap:48px}
.hero__vert{writing-mode:vertical-rl;text-orientation:upright;font-family:var(--mincho);font-size:0.92rem;letter-spacing:1em;color:var(--cara);line-height:1.6;height:fit-content;border-left:1px solid var(--ink);padding-left:18px}
.hero__main{}
.hero__num{font-family:var(--mincho);font-size:0.85rem;letter-spacing:0.3em;color:var(--sub);margin-bottom:48px;border-bottom:1px solid var(--ink);padding-bottom:16px;display:inline-block}
.hero__title{font-family:var(--mincho);font-weight:500;font-size:clamp(2.2rem,4.5vw,3.8rem);line-height:1.7;letter-spacing:0.04em;color:var(--ink);margin-bottom:48px}
.hero__lead{font-size:1rem;line-height:2.4;margin-bottom:48px;color:var(--ink)}
.hero__right .hero__photo{aspect-ratio:3/4;overflow:hidden}
.hero__right .hero__photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(0.05) contrast(1.02)}

/* ===== Common ===== */
.kicker{font-family:var(--en);font-size:0.78rem;letter-spacing:0.4em;color:var(--cara);font-style:italic;margin-bottom:18px;display:block}
.h2{font-family:var(--mincho);font-weight:500;font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.7;letter-spacing:0.05em;color:var(--ink)}
.h2--l{text-align:left}
.link{font-family:var(--mincho);color:var(--ink);font-size:0.95rem;letter-spacing:0.15em;border-bottom:1px solid var(--ink);padding-bottom:6px;transition:color .2s,border-color .2s}
.link::after{content:' →';transition:margin-left .3s;display:inline-block;margin-left:4px}
.link:hover{color:var(--cara);border-color:var(--cara)}
.link:hover::after{margin-left:10px}
.btn{display:inline-block;padding:16px 40px;border:1px solid var(--ink);font-family:var(--mincho);font-size:0.95rem;letter-spacing:0.2em;color:var(--ink);transition:all .3s}
.btn:hover{background:var(--ink);color:var(--paper)}

/* ===== INTRO ===== */
.intro{padding:120px 64px;text-align:center;max-width:900px;margin:0 auto}
.intro__txt{font-family:var(--mincho);font-size:clamp(1.05rem,1.8vw,1.4rem);line-height:2.6;letter-spacing:0.06em;color:var(--ink);margin-top:28px}

/* ===== BELIEVE ===== */
.believe{padding:120px 64px;max-width:1400px;margin:0 auto}
.believe__head{text-align:center;margin-bottom:90px}
.believe__list{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.bel{padding:64px 40px;text-align:center;border-right:1px solid var(--ink);position:relative}
.bel:last-child{border-right:none}
.bel__no{font-family:var(--mincho);font-size:2.6rem;color:var(--cara);font-weight:500;display:block;margin-bottom:32px;line-height:1}
.bel h3{font-family:var(--mincho);font-size:1.15rem;font-weight:500;color:var(--ink);margin-bottom:24px;line-height:1.7;letter-spacing:0.04em}
.bel p{font-size:0.88rem;line-height:2.1;color:var(--ink)}

/* ===== TODAY'S PICK ===== */
.pick{padding:120px 64px;max-width:1200px;margin:0 auto}
.pick__head{text-align:center;margin-bottom:80px}
.pick__date{font-family:var(--mincho);font-size:0.95rem;letter-spacing:0.3em;color:var(--sub);margin-top:12px}
.pick__row{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.pick__img{aspect-ratio:1/1;overflow:hidden}
.pick__img img{width:100%;height:100%;object-fit:cover}
.pick__origin{font-family:var(--en);font-style:italic;font-size:0.95rem;letter-spacing:0.18em;color:var(--cara);margin-bottom:20px}
.pick__txt h3{font-family:var(--mincho);font-weight:500;font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.7;color:var(--ink);margin-bottom:28px;letter-spacing:0.04em}
.pick__desc{font-size:0.95rem;line-height:2.2;margin-bottom:36px}
.pick__dl{display:grid;grid-template-columns:auto 1fr;gap:16px 32px;border-top:1px solid var(--ink);padding-top:24px}
.pick__dl dt{font-family:var(--mincho);font-size:0.85rem;color:var(--sub);letter-spacing:0.15em}
.pick__dl dd{font-size:0.92rem;line-height:1.85}

/* ===== COMMITMENT ===== */
.cmt{padding:120px 64px;max-width:1400px;margin:0 auto}
.cmt__head{text-align:center;margin-bottom:90px}
.cmt__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.step{text-align:center}
.step__no{font-family:var(--mincho);font-size:2.4rem;color:var(--cara);margin-bottom:32px;line-height:1;font-weight:500}
.step__img{aspect-ratio:1/1;overflow:hidden;margin-bottom:32px}
.step__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.step:hover .step__img img{transform:scale(1.04)}
.step h3{font-family:var(--mincho);font-size:1.2rem;font-weight:500;color:var(--ink);margin-bottom:18px;letter-spacing:0.05em}
.step p{font-size:0.9rem;line-height:2.1;max-width:300px;margin:0 auto}

/* ===== MENU ===== */
.menu{padding:120px 64px;max-width:1400px;margin:0 auto;background:var(--paper-d)}
.menu__head{text-align:center;margin-bottom:80px}
.menu__list{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.m{text-align:left}
.m figure{aspect-ratio:1/1;overflow:hidden;margin-bottom:24px}
.m figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.m:hover figure img{transform:scale(1.04)}
.m__cat{font-family:var(--en);font-style:italic;font-size:0.78rem;letter-spacing:0.3em;color:var(--cara);margin-bottom:8px}
.m h3{font-family:var(--mincho);font-size:1.05rem;font-weight:500;color:var(--ink);margin-bottom:14px;letter-spacing:0.04em}
.m__d{font-size:0.88rem;line-height:1.95;margin-bottom:18px}
.m__p{font-family:var(--mincho);font-size:1.1rem;color:var(--ink);font-weight:500;border-top:1px solid var(--ink);padding-top:14px;letter-spacing:0.1em}
.menu__cta{text-align:center;margin-top:60px}

/* ===== OWNER ===== */
.own{padding:120px 64px;max-width:1200px;margin:0 auto}
.own__inner{display:grid;grid-template-columns:1fr 1.3fr;gap:80px;align-items:center}
.own__img{aspect-ratio:3/4;overflow:hidden}
.own__img img{width:100%;height:100%;object-fit:cover}
.own__txt p{margin-bottom:20px;font-size:0.95rem;line-height:2.3}
.own__txt .h2{margin:18px 0 36px}
.own__sign{margin-top:40px;font-family:var(--mincho);color:var(--ink);font-size:1.05rem;letter-spacing:0.1em;border-top:1px solid var(--ink);padding-top:24px;display:inline-block}
.own__sign span{font-family:var(--mincho);font-size:0.78rem;letter-spacing:0.25em;color:var(--sub);display:block;margin-bottom:8px}

/* ===== INSTAGRAM ===== */
.ig{padding:120px 64px;max-width:1200px;margin:0 auto;text-align:center}
.ig__head{margin-bottom:80px}
.ig__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ig__i{aspect-ratio:1/1;overflow:hidden;display:block}
.ig__i img{width:100%;height:100%;object-fit:cover;transition:transform .8s,filter .4s;filter:saturate(0.95)}
.ig__i:hover img{transform:scale(1.06);filter:saturate(1)}

/* ===== ACCESS ===== */
.acc{padding:120px 64px;max-width:1200px;margin:0 auto}
.acc__head{text-align:center;margin-bottom:80px}
.acc__row{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.acc__dl{display:grid;grid-template-columns:auto 1fr;gap:24px 40px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:32px 0}
.acc__dl dt{font-family:var(--mincho);font-size:0.92rem;color:var(--sub);letter-spacing:0.2em}
.acc__dl dd{font-size:0.95rem;line-height:2;letter-spacing:0.05em}
.acc__map{aspect-ratio:4/3;background:var(--paper-d);border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--mincho);font-size:1.4rem;letter-spacing:0.5em;color:var(--sub)}

/* ===== FOOTER ===== */
.ft{padding:80px 64px;border-top:1px solid var(--ink);max-width:1400px;margin:0 auto;text-align:center}
.ft__name{font-family:var(--en);font-size:1.8rem;letter-spacing:0.15em;color:var(--ink);margin-bottom:12px}
.ft__tag{font-family:var(--mincho);font-size:0.85rem;color:var(--sub);letter-spacing:0.2em;margin-bottom:36px}
.ft__nav{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-bottom:36px}
.ft__nav a{font-size:0.9rem;color:var(--ink);transition:color .2s;letter-spacing:0.1em}
.ft__nav a:hover{color:var(--cara)}
.ft__nav span{color:var(--sub)}
.ft__copy{font-family:var(--en);font-size:0.78rem;letter-spacing:0.25em;color:var(--sub);font-style:italic;padding-top:24px;border-top:1px solid var(--ink);max-width:300px;margin:0 auto}

/* ===== Responsive ===== */
@media(max-width:1023px){
  .hd{padding:24px 32px;grid-template-columns:1fr;gap:18px}
  .hd__nav{justify-content:flex-start;gap:24px;flex-wrap:wrap}
  .rule span{margin:0 32px}
  .hero{padding:60px 32px}
  .hero__grid{grid-template-columns:1fr;gap:60px}
  .hero__left{grid-template-columns:auto 1fr;gap:32px}
  .intro,.believe,.pick,.cmt,.menu,.own,.ig,.acc,.ft{padding-inline:32px}
  .believe__list{grid-template-columns:1fr;border-top:1px solid var(--ink)}
  .bel{border-right:none;border-bottom:1px solid var(--ink);padding:48px 24px}
  .bel:last-child{border-bottom:none}
  .pick__row{grid-template-columns:1fr;gap:48px}
  .cmt__steps{grid-template-columns:1fr;gap:60px;max-width:400px;margin:0 auto}
  .menu__list{grid-template-columns:1fr 1fr;gap:32px}
  .own__inner{grid-template-columns:1fr;gap:40px}
  .ig__grid{grid-template-columns:1fr 1fr;gap:12px}
  .acc__row{grid-template-columns:1fr;gap:40px}
}
@media(max-width:600px){
  .hero__left{grid-template-columns:1fr;gap:32px}
  .hero__vert{writing-mode:horizontal-tb;text-orientation:initial;border-left:none;border-bottom:1px solid var(--ink);padding-left:0;padding-bottom:8px;display:inline-block;letter-spacing:0.5em}
  .menu__list{grid-template-columns:1fr;max-width:380px;margin:0 auto}
}
