:root{--cream:#f4ecdc;--paper:#fbf6ea;--brown:#35261c;--rust:#b3552d;--olive:#6a6836;--line:#d9ccb2;--mute:#7a6a58}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;color:var(--brown);background:var(--paper);line-height:1.9;font-size:15px;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.en{font-family:"Cormorant Garamond","Times New Roman",serif;letter-spacing:.12em}
.mincho{font-family:"Shippori Mincho","Yu Mincho",serif}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* header */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .3s,box-shadow .3s;color:#fff}
.hd.is-scrolled,.hd.solid{background:rgba(251,246,234,.97);color:var(--brown);box-shadow:0 1px 0 var(--line)}
.hd-in{display:flex;align-items:center;justify-content:space-between;height:68px;max-width:1200px;margin:0 auto;padding:0 24px}
.logo{font-size:24px;font-weight:600;letter-spacing:.14em}
.logo small{display:block;font-size:10px;letter-spacing:.3em;font-weight:400;opacity:.8;margin-top:-4px}
.gnav{display:flex;gap:28px;font-size:13px}
.gnav a{letter-spacing:.14em;padding:4px 0;border-bottom:1px solid transparent;transition:border-color .2s}
.gnav a:hover,.gnav a.cur{border-color:currentColor}
.burger{display:none;width:44px;height:44px;background:none;border:0;color:inherit;cursor:pointer;position:relative;z-index:61}
.burger span{position:absolute;left:10px;right:10px;height:1.5px;background:currentColor;transition:.3s}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:29px}
.burger.open span:nth-child(1){top:22px;transform:rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){top:22px;transform:rotate(-45deg)}

/* hero */
.hero{position:relative;height:760px;background:#2a1d14 url(img/hero.jpg) center 35%/cover;color:#fff;display:flex;align-items:flex-end}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,18,10,.45) 0%,rgba(30,18,10,.1) 40%,rgba(30,18,10,.72) 100%)}
.hero-in{position:relative;padding-bottom:84px;width:100%}
.hero .badge{display:inline-block;border:1px solid rgba(255,255,255,.7);padding:4px 16px;font-size:12px;letter-spacing:.24em;margin-bottom:22px}
.hero h1{font-size:54px;line-height:1.35;font-weight:500;letter-spacing:.06em}
.hero p{margin-top:20px;font-size:15px;letter-spacing:.1em;max-width:520px}
.scroll{position:absolute;right:28px;bottom:36px;writing-mode:vertical-rl;font-size:11px;letter-spacing:.3em;color:#fff}
.scroll::after{content:"";display:block;width:1px;height:56px;background:#fff;margin:10px auto 0}

/* sections */
.sec{padding:110px 0}
.sec.alt{background:var(--cream)}
.sec.dark{background:var(--brown);color:#efe3cc}
.ttl{margin-bottom:56px}
.ttl .en{display:block;font-size:44px;line-height:1.1;color:var(--rust)}
.dark .ttl .en{color:#e0a27d}
.ttl .ja{display:block;font-size:13px;letter-spacing:.2em;margin-top:8px;color:var(--mute)}
.dark .ttl .ja{color:#c9b89c}
.two{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.two.rev .pic{order:2}
.pic img{width:100%;height:520px;object-fit:cover}
.pic{position:relative}
.pic::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--rust);z-index:-1}
.txt h3{font-size:26px;line-height:1.7;margin-bottom:22px;font-weight:500}
.txt p+p{margin-top:1em}
.more{display:inline-block;margin-top:30px;border:1px solid currentColor;padding:12px 40px;font-size:13px;letter-spacing:.2em;transition:.25s}
.more:hover{background:var(--brown);color:#fff;border-color:var(--brown)}
.dark .more:hover{background:#efe3cc;color:var(--brown)}

/* news strip */
.open-strip{background:var(--rust);color:#fff;text-align:center;padding:22px 16px;font-size:14px;letter-spacing:.16em}
.open-strip b{font-family:"Cormorant Garamond",serif;font-size:22px;margin:0 .5em}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card img{width:100%;height:340px;object-fit:cover}
.card h4{margin-top:16px;font-size:17px;letter-spacing:.08em}
.card h4 span{font-size:12px;color:var(--rust);display:block;letter-spacing:.2em}
.card p{font-size:13.5px;color:var(--mute);line-height:1.8;margin-top:4px}

/* day flow */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #6b5846}
.flow li{list-style:none;padding:28px 22px 6px 0}
.flow .t{font-family:"Cormorant Garamond",serif;font-size:30px;color:#e0a27d}
.flow h4{font-size:16px;margin:6px 0 6px}
.flow p{font-size:13.5px;color:#cdbda3;line-height:1.8}

/* page head */
.phead{padding:170px 0 80px;background:var(--cream);text-align:center}
.phead .en{font-size:56px;color:var(--rust);line-height:1}
.phead p{margin-top:14px;letter-spacing:.14em;font-size:13px;color:var(--mute)}

/* vintage grid */
.items{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 28px}
.item img{width:100%;height:380px;object-fit:cover}
.item .tag{font-size:11px;letter-spacing:.2em;color:var(--rust);margin-top:14px}
.item h4{font-size:16px;font-weight:500;margin-top:2px}
.item .pr{font-family:"Cormorant Garamond",serif;font-size:20px;margin-top:2px;letter-spacing:.06em}
.note{font-size:12px;color:var(--mute);margin-top:30px}
.cat{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:44px}
.cat span{border:1px solid var(--line);padding:6px 18px;font-size:12.5px;letter-spacing:.12em;border-radius:30px}
.cat span.on{background:var(--brown);color:#fff;border-color:var(--brown)}

/* menu */
.menu{display:grid;grid-template-columns:1fr 1fr;gap:20px 64px}
.menu h3{grid-column:1/-1;font-size:20px;letter-spacing:.2em;border-bottom:1px solid var(--brown);padding-bottom:8px;margin-top:30px}
.menu h3:first-child{margin-top:0}
.mi{display:flex;justify-content:space-between;gap:14px;border-bottom:1px dotted var(--line);padding:8px 0}
.mi small{display:block;font-size:12px;color:var(--mute);line-height:1.6}
.mi b{font-family:"Cormorant Garamond",serif;font-size:19px;font-weight:600;white-space:nowrap}

/* access */
.info dl{display:grid;grid-template-columns:110px 1fr;border-top:1px solid var(--line)}
.info dt,.info dd{padding:16px 0;border-bottom:1px solid var(--line)}
.info dt{font-size:12.5px;letter-spacing:.2em;color:var(--rust)}
.mapph{height:100%;min-height:360px;background:repeating-linear-gradient(45deg,#e8dec8,#e8dec8 12px,#efe6d2 12px,#efe6d2 24px);display:flex;align-items:center;justify-content:center;color:var(--mute);font-size:13px;letter-spacing:.2em;text-align:center;line-height:2}

/* footer */
.ft{background:#241810;color:#cdbda3;text-align:center;padding:56px 16px 32px;font-size:12px}
.ft .logo{color:#efe3cc;font-size:26px}
.ft .sns{margin:18px 0;letter-spacing:.2em}
.ft .sns a{margin:0 12px;border-bottom:1px solid #6b5846}
.demo-note{background:#241810;color:#8f7d66;text-align:center;font-size:11px;padding:0 16px 24px}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s}
.rv.in{opacity:1;transform:none}

@media(max-width:820px){
 body{font-size:14.5px}
 .burger{display:block}
 .gnav{position:fixed;top:0;left:0;right:0;height:100dvh;background:#35261c;color:#efe3cc;flex-direction:column;align-items:center;justify-content:center;gap:30px;font-size:18px;opacity:0;pointer-events:none;transition:opacity .3s;z-index:60}
 .gnav.open{opacity:1;pointer-events:auto}
 .hd.nav-open{background:transparent;color:#efe3cc;box-shadow:none}
 .hd-in{height:60px;padding:0 16px}
 .hero{height:640px}
 .hero h1{font-size:34px}
 .scroll{display:none}
 .sec{padding:72px 0}
 .ttl{margin-bottom:36px}
 .ttl .en{font-size:36px}
 .two{grid-template-columns:1fr;gap:36px}
 .two.rev .pic{order:0}
 .pic img{height:340px}
 .pic::after{inset:10px -8px -10px 10px}
 .txt h3{font-size:21px}
 .cards,.items{grid-template-columns:1fr 1fr;gap:28px 14px}
 .card img{height:220px}.item img{height:240px}
 .cards .card:last-child{grid-column:1/-1}
 .flow{grid-template-columns:1fr 1fr}
 .menu{grid-template-columns:1fr;gap:0}
 .phead{padding:120px 0 56px}.phead .en{font-size:40px}
 .info dl{grid-template-columns:84px 1fr}
 .wrap{padding:0 20px}
}
