:root{
  --base:#fffaf8;
  --white:#ffffff;
  --pale:#f8efeb;
  --pink:#d8aaa5;
  --pink-dark:#b6847f;
  --gold:#b99867;
  --brown:#5e4a45;
  --text:#4d4441;
  --muted:#8e7d78;
  --line:#eadbd6;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:'Noto Serif JP',serif;background:var(--base);line-height:1.9;letter-spacing:.04em}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
.skip-link{position:absolute;left:-999px;top:auto}.skip-link:focus{left:16px;top:16px;background:#fff;padding:8px 12px;z-index:1000}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,250,248,.92);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;padding:18px 6vw;border-bottom:1px solid rgba(234,219,214,.65)}
.brand{display:flex;align-items:center;gap:14px}.brand-logo{width:56px;height:auto;display:block;object-fit:contain;flex:0 0 auto}.brand-text strong{display:block;font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:500;line-height:1}.brand-text small{display:block;color:var(--muted);font-size:11px;letter-spacing:.12em;line-height:1.4}
.global-nav{display:flex;gap:26px;align-items:center;font-family:'Cormorant Garamond',serif;font-size:15px;letter-spacing:.13em}.global-nav a{color:var(--brown)}.nav-reserve{padding:9px 20px;border:1px solid var(--gold);border-radius:999px;color:var(--gold)!important}
section{padding:92px 7vw}.section-pale{background:var(--pale)}.section-white{background:var(--base)}
.hero{min-height:720px;display:flex;align-items:center;position:relative;overflow:hidden;padding:110px 7vw;background:var(--pale)}
.hero-bg{position:absolute;inset:0;background-image:url("assets/hero-current.jpg");background-size:cover;background-position:center right;transform:scale(1.01)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(248,239,235,.94) 0%,rgba(248,239,235,.82) 34%,rgba(248,239,235,.38) 62%,rgba(248,239,235,.12) 100%)}
.hero-copy{position:relative;z-index:1;max-width:620px;padding:30px 0}.eyebrow,.section-title p{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:15px;letter-spacing:.22em;margin:0 0 18px}.hero-main-copy{font-size:clamp(48px,7vw,86px);font-family:'Cormorant Garamond','Noto Serif JP',serif;font-weight:500;line-height:1.04;color:var(--brown);margin:0 0 22px;letter-spacing:.035em}.hero h1{font-size:clamp(18px,2.2vw,28px);font-family:'Noto Serif JP',serif;font-weight:400;line-height:1.7;color:var(--brown);margin:0 0 18px;letter-spacing:.11em}.lead{font-size:20px;margin:0 0 16px}.hero-sub{font-size:14px;color:#756661;margin:0 0 18px;letter-spacing:.09em}.hero-points{display:flex;flex-wrap:wrap;gap:8px 10px;list-style:none;padding:0;margin:0 0 30px}.hero-points li{font-size:13px;color:#6f625e;border:1px solid rgba(185,152,103,.55);background:rgba(255,255,255,.48);padding:5px 12px;border-radius:999px}.hero-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 34px;border-radius:999px;background:rgba(255,255,255,.54);color:var(--gold);border:1px solid var(--gold);letter-spacing:.16em;font-family:'Cormorant Garamond',serif;font-size:17px;box-shadow:0 12px 32px rgba(93,68,63,.08);transition:background .2s ease,color .2s ease}.hero-button:hover{background:var(--gold);color:#fff}.seo-lead{max-width:650px;margin:0 0 34px;color:#6f625e}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 28px;border-radius:999px;background:var(--pink-dark);color:#fff;border:1px solid var(--pink-dark);letter-spacing:.08em;box-shadow:0 10px 24px rgba(182,132,127,.22)}.button.outline{background:transparent;color:var(--pink-dark)}
.hero-card{position:relative;z-index:1;padding:18px;border-radius:160px 160px 12px 12px;background:rgba(255,255,255,.5);box-shadow:0 28px 80px rgba(150,105,98,.12)}
.section-title h2{margin:0;color:var(--brown);font-size:clamp(26px,3vw,42px);font-weight:500;line-height:1.55}.section-title.center{text-align:center;margin-bottom:48px}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.text-block p{margin:0 0 22px}.local-text{padding-left:20px;border-left:1px solid var(--gold);color:#6f625e}.image-frame{margin:0;padding:16px;background:#fff;border-radius:3px;box-shadow:0 20px 70px rgba(150,105,98,.1)}
.menu-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:1120px;margin:0 auto}.menu-group{background:#fff;border:1px solid var(--line);padding:38px;border-radius:2px;box-shadow:0 18px 50px rgba(150,105,98,.07)}.menu-group.option{grid-column:1/-1;text-align:center}.menu-group h3{font-family:'Cormorant Garamond',serif;color:var(--gold);letter-spacing:.18em;font-size:22px;text-align:center;margin:0 0 4px}.group-desc{text-align:center;color:var(--muted);font-size:14px;margin:0 0 28px}.menu-item{display:flex;justify-content:space-between;gap:24px;padding:22px 0;border-top:1px solid var(--line)}.menu-item h4{font-family:'Cormorant Garamond',serif;font-size:24px;margin:0;color:var(--brown);font-weight:500}.menu-item p{margin:2px 0 0;font-size:14px;color:#746762}.menu-item strong{white-space:nowrap;color:var(--gold);font-size:20px;font-weight:500}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.gallery-grid figure{margin:0;background:#fff;padding:10px;border:1px solid var(--line)}.gallery-grid figcaption{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:15px;margin-top:10px;letter-spacing:.08em}.message{max-width:none}.message>p{max-width:980px;margin:36px auto 0;background:rgba(255,255,255,.44);padding:38px;border:1px solid rgba(255,255,255,.6)}
.area-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1120px;margin:0 auto}.area-cards article{background:#fff;border:1px solid var(--line);padding:28px}.area-cards h3{margin:0 0 10px;color:var(--brown);font-size:19px}.area-cards p{margin:0;color:#6f625e;font-size:14px}.faq{max-width:none}.faq details{max-width:920px;margin:12px auto;background:#fff;border:1px solid var(--line);padding:18px 24px}.faq summary{cursor:pointer;color:var(--brown);font-weight:500}.faq p{margin:10px 0 0;color:#6f625e}
.access-box{display:grid;grid-template-columns:1fr 1fr;gap:32px;max-width:1000px;margin:0 auto;background:#fff;border:1px solid var(--line);padding:36px}.access-box h3{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:32px;margin:0 0 18px;font-weight:500}.access-box p{margin:0 0 10px}.map-dummy{min-height:260px;background:linear-gradient(135deg,#f4e7e3,#fff);border:1px dashed var(--gold);display:grid;place-items:center;text-align:center;font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:38px;line-height:1.2}.map-dummy span{font-family:'Noto Serif JP',serif;font-size:13px;color:var(--muted)}
.reserve{text-align:center}.reserve>p{margin:0 0 28px}.reserve-buttons{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.site-footer{padding:28px 7vw;text-align:center;background:#fff;color:var(--muted);font-size:13px}.fixed-reserve{position:fixed;right:22px;bottom:22px;z-index:30;background:var(--pink-dark);color:#fff;border-radius:999px;padding:12px 22px;box-shadow:0 10px 30px rgba(93,68,63,.22);font-family:'Cormorant Garamond',serif;letter-spacing:.12em}
@media(max-width:900px){.site-header{align-items:flex-start}.global-nav{gap:12px;flex-wrap:wrap;justify-content:flex-end;font-size:12px}.two-column,.access-box{grid-template-columns:1fr}.hero{min-height:640px;padding:86px 6vw}.hero-bg{background-position:58% center}.hero-overlay{background:linear-gradient(90deg,rgba(248,239,235,.95) 0%,rgba(248,239,235,.78) 56%,rgba(248,239,235,.28) 100%)}.menu-groups,.area-cards{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}section{padding:70px 6vw}}
@media(max-width:560px){.site-header{display:block}.brand-logo{width:48px}.global-nav{margin-top:14px;justify-content:flex-start}.hero{min-height:620px;padding-top:74px;padding-bottom:74px}.hero-bg{background-position:62% center}.hero-overlay{background:linear-gradient(180deg,rgba(248,239,235,.94) 0%,rgba(248,239,235,.84) 58%,rgba(248,239,235,.48) 100%)}.hero-main-copy{font-size:44px}.hero h1{font-size:17px;letter-spacing:.06em}.lead{font-size:17px}.hero-points li{font-size:12px}.gallery-grid{grid-template-columns:1fr}.menu-item{display:block}.reserve-buttons .button{width:100%}.fixed-reserve{left:16px;right:16px;text-align:center}.brand-text strong{font-size:20px}}

/* ==============================
   Elegant motion layer - adjusted
   Design/content untouched. Motion only.
   Direction: subtle / slow / not noisy
============================== */
@keyframes heroFadeUp{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes heroImageBreath{
  from{transform:scale(1.005)}
  to{transform:scale(1.018)}
}
.hero-bg{
  animation:heroImageBreath 22s ease-in-out infinite alternate;
  will-change:transform;
}
.hero .eyebrow,
.hero .hero-main-copy,
.hero h1,
.hero .lead,
.hero .hero-sub,
.hero .hero-points,
.hero .hero-button{
  opacity:0;
  animation:heroFadeUp .95s cubic-bezier(.22,.61,.36,1) forwards;
}
.hero .eyebrow{animation-delay:.08s}
.hero .hero-main-copy{animation-delay:.18s}
.hero h1{animation-delay:.28s}
.hero .lead{animation-delay:.38s}
.hero .hero-sub{animation-delay:.48s}
.hero .hero-points{animation-delay:.58s}
.hero .hero-button{animation-delay:.68s}

.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
.reveal[data-reveal="fade"]{transform:none}
.reveal[data-reveal="left"],
.reveal[data-reveal="right"]{transform:translateY(14px)}
.reveal[data-reveal="left"].is-visible,
.reveal[data-reveal="right"].is-visible{transform:translateY(0)}
.reveal-delay-1{transition-delay:.04s}
.reveal-delay-2{transition-delay:.08s}
.reveal-delay-3{transition-delay:.12s}
.reveal-delay-4{transition-delay:.16s}

.hero-button,
.button,
.nav-reserve,
.fixed-reserve,
.gallery-grid figure,
.menu-group,
.area-cards article,
.faq details,
.image-frame,
.hero-points li{
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease, background .28s ease, color .28s ease;
}
.hero-button:hover,
.button:hover,
.nav-reserve:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(93,68,63,.10);
}
.gallery-grid figure:hover,
.menu-group:hover,
.area-cards article:hover,
.faq details:hover,
.image-frame:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 42px rgba(150,105,98,.09);
  border-color:rgba(185,152,103,.36);
}
.hero-points li:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.68);
  border-color:rgba(185,152,103,.72);
}

/* GALLERY */

.gallery {
  background: #fffdf9;
  padding-inline: 4%;
}

.gallery .section-head,
.gallery .insta-grid {
  max-width: 1400px;
  margin-inline: auto;
}

.insta-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px;
  width: 100%;
  align-items: stretch;
}

.insta-card {
  background: #fff;
  border-radius: 26px;
  padding: 10px;
  box-shadow: 0 16px 42px rgba(80, 55, 35, .08);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.insta-card img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 18px;
  flex-shrink: 0;
}

.insta-caption {
  min-height: 54px;
  padding: 14px 8px 4px;
  font-size: 13px;
  color: var(--rose);
  display: flex;
  align-items: center;
}

/* smartphone gallery override */
@media screen and (max-width: 767px) {
  .gallery .insta-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .gallery .insta-card {
    width: 100% !important;
  }

  .gallery .insta-thumb,
  .gallery .insta-card img {
    width: 100% !important;
  }
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
  .reveal,
  .reveal[data-reveal="left"],
  .reveal[data-reveal="right"]{
    opacity:1;
    transform:none;
  }
}


