:root{
  --kinari:#F3EDE3;
  --kinari2:#EAE2D5;
  --sumi:#3B302A;
  --sage:#7E8C6C;
  --oak:#B88A5A;
  --white:#fff;
  --maxw:520px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--kinari2);
  color:var(--sumi);
  font-family:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  font-size:16px;line-height:1.85;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sp{display:inline}
@media (min-width:600px){.sp{display:none}}
h1,h2,h3,.headline{word-break:auto-phrase;text-wrap:balance;line-break:strict}

.skip{position:absolute;left:-9999px;top:0;background:var(--sumi);color:#fff;padding:8px 12px;z-index:100}
.skip:focus{left:8px;top:8px}

.lp{max-width:var(--maxw);margin:0 auto;background:var(--kinari);box-shadow:0 0 40px rgba(59,48,42,.12)}
.part{position:relative;overflow:hidden;line-height:0}
.part img{width:100%;aspect-ratio:948/1659}
.hit{position:absolute;display:block;border-radius:6px}
.hit:focus-visible{outline:3px solid var(--sage);outline-offset:2px}

/* FV: 天井を見上げるゆっくりしたパン */
.fv img{animation:fvPan 2.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes fvPan{from{transform:scale(1.06) translateY(2.5%)}to{transform:none}}
.nb{display:inline-block}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
.reveal.is-in{opacity:1;transform:none}

.note-image{
  font-size:13px;line-height:1.6;color:#6b5f56;text-align:right;
  padding:6px 16px 10px;background:var(--kinari)
}
.part .vh{top:50%;left:50%}

/* 予約 */
.reserve{background:var(--kinari);padding:56px 24px 64px;text-align:center}
.reserve__en{font-family:"Cormorant Garamond","Times New Roman",serif;letter-spacing:.4em;color:var(--sage);font-size:14px}
.reserve__title{font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;font-weight:400;font-size:28px;line-height:1.5;margin:8px 0 12px;letter-spacing:.06em}
.reserve__lead{font-size:16px;margin-bottom:28px}
.reserve__btns{display:grid;gap:12px;margin:0 auto 32px;max-width:400px}
.btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  min-height:60px;padding:12px 20px;border-radius:8px;text-decoration:none;
  font-size:17px;letter-spacing:.06em;transition:opacity .2s
}
.btn:hover{opacity:.85}
.btn--main{background:var(--sumi);color:#fff}
.btn--sub{background:#fff;color:var(--sumi);border:1px solid var(--sumi)}
.btn small{display:block;font-size:13px;letter-spacing:.02em;opacity:.85}
.btn__txt{display:flex;flex-direction:column;line-height:1.4;text-align:left}

.days{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 auto 28px;list-style:none;max-width:420px}
.days li{
  min-width:64px;padding:8px 6px;border-radius:6px;background:var(--sage);color:#fff;
  font-size:15px;line-height:1.4
}
.days li b{display:block;font-family:"Cormorant Garamond","Times New Roman",serif;font-size:22px;font-weight:500;font-variant-numeric:lining-nums}
.days li.is-past{background:#d8d2c8;color:#8a7f76}
.days li.is-past::after{content:"終了";display:block;font-size:12px}
.days li.is-today{outline:2px solid var(--sumi);outline-offset:2px}

.facts{max-width:420px;margin:0 auto;text-align:left;border-top:1px solid rgba(59,48,42,.25)}
.facts div{display:grid;grid-template-columns:5.5em 1fr;gap:8px;padding:14px 4px;border-bottom:1px solid rgba(59,48,42,.25)}
.facts dt{color:var(--sage);font-size:15px}
.facts dd{font-size:16px;line-height:1.7}
.reserve__note{font-size:13px;color:#6b5f56;margin-top:20px;line-height:1.7}

.faq{background:var(--kinari2);padding:48px 24px 56px}
.faq h2{font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;font-weight:400;font-size:24px;text-align:center;margin-bottom:20px}
.faq details{background:#fff;border-radius:6px;margin:0 auto 10px;max-width:440px}
.faq summary{cursor:pointer;padding:14px 16px;font-size:16px;list-style:none;min-height:44px}
.faq summary::before{content:"Q ";color:var(--sage);font-family:"Cormorant Garamond",serif;font-size:18px}
.faq details p{padding:0 16px 16px;font-size:15px}

.foot{max-width:var(--maxw);margin:0 auto;background:var(--sumi);color:#fff;text-align:center;padding:32px 20px 110px;font-size:14px;line-height:1.9}
.foot__name{font-size:16px;letter-spacing:.12em;margin-bottom:6px}
.foot a{color:#fff}

.sticky{
  position:fixed;left:50%;bottom:14px;transform:translateX(-50%) translateY(140%);
  width:calc(100% - 32px);max-width:488px;min-height:56px;z-index:50;
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--sumi);color:#fff;text-decoration:none;border-radius:8px;
  font-size:17px;letter-spacing:.08em;box-shadow:0 6px 20px rgba(59,48,42,.3);
  transition:transform .4s ease
}
.sticky.is-show{transform:translateX(-50%) translateY(0)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .fv img{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
  .sticky{transition:none}
}
