:root{
  --bg:#fbf7ef;
  --paper:rgba(255,252,247,.82);
  --paper-strong:rgba(255,252,248,.96);
  --paper-soft:rgba(255,252,246,.76);
  --forest:#2f4d3a;
  --forest-deep:#233a2d;
  --forest-soft:#6d8676;
  --gold:#b99244;
  --gold-soft:#e1ca97;
  --text:#3f433d;
  --muted:#6c736a;
  --line:rgba(85,108,92,.18);
  --shadow:0 18px 60px rgba(34,50,39,.11);
  --shadow-strong:0 28px 90px rgba(29,44,34,.14);
  --radius:28px;
  --radius-lg:38px;
  --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:linear-gradient(180deg,#fdfaf3 0%,#fbf7ee 28%,#fbf6ee 52%,#faf5ec 76%,#fcf8f0 100%);
  color:var(--text);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  line-height:1.7;
  overflow-x:hidden;
  position:relative;
}
body::before,
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-6;
  opacity:.46;
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat;
  background-size:36vw auto,39vw auto,39vw auto,37vw auto;
  will-change:opacity;
}
body::before{
  background-image:url("assets/frame-spring.webp"),url("assets/frame-summer.webp"),url("assets/frame-autumn.webp"),url("assets/frame-winter.webp");
  background-position:left -7vw top -2vw,left -8vw 26%,left -9vw 56%,left -7vw bottom -5vw;
  animation:vineDriftLeft 24s ease-in-out infinite alternate;
  filter:saturate(1.14) brightness(1.1);
}
body::after{
  background-image:url("assets/frame-spring.webp"),url("assets/frame-summer.webp"),url("assets/frame-autumn.webp"),url("assets/frame-winter.webp");
  background-position:right -7vw top -2vw,right -8vw 26%,right -9vw 56%,right -7vw bottom -5vw;
  transform:scaleX(-1);
  animation:vineDriftRight 26s ease-in-out infinite alternate;
  filter:saturate(1.12) brightness(1.12);
}
img{display:block;max-width:100%}
a{color:inherit}
button,input,textarea{font:inherit}
.jp{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;color:var(--muted)}
.container{width:min(var(--max),calc(100% - 36px));margin:auto}

.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(250,247,239,.82);backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(70,92,77,.12)
}
.nav-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand-link{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand-link img{width:48px;height:48px;object-fit:contain}
.brand-copy{display:flex;flex-direction:column;gap:2px}
.brand-copy strong{font:700 1.1rem Georgia,serif;letter-spacing:.12em;color:var(--forest)}
.brand-copy span{font-size:.9rem}
.nav{display:flex;align-items:center;gap:22px}
.nav a{text-decoration:none;font-size:.94rem;font-weight:800;color:#47614d}
.nav a:hover{color:var(--forest-deep)}
.nav-pill{padding:10px 16px;border-radius:999px;background:var(--forest);color:#fff!important}
.nav-toggle{display:none;border:0;background:none;color:var(--forest);font-size:1.7rem}

.hero,.section{position:relative;isolation:isolate}
.seasonal::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  opacity:1;
  background-repeat:no-repeat,no-repeat,no-repeat;
  background-size:46% auto,46% auto,62% auto;
  background-position:left top,right bottom,center;
  filter:saturate(1.22) contrast(1.04) brightness(1.12);
}
.seasonal::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(251,248,241,.10) 0%,rgba(250,246,239,.32) 12%,rgba(251,248,243,.74) 26%,rgba(252,249,244,.92) 50%,rgba(251,248,243,.74) 74%,rgba(250,246,239,.32) 88%,rgba(251,248,241,.10) 100%),
    linear-gradient(180deg,rgba(253,251,247,.18) 0%,rgba(250,247,240,.42) 22%,rgba(250,247,240,.28) 54%,rgba(249,245,238,.42) 78%,rgba(253,251,247,.22) 100%);
}
.spring-morning::before{background-image:url("assets/frame-spring.webp"),url("assets/frame-spring.webp"),url("assets/frame-spring.webp");background-position:left top,right top,center}
.spring-day::before{background-image:url("assets/frame-spring.webp"),url("assets/frame-spring.webp"),url("assets/frame-spring.webp");background-position:left center,right center,center}
.summer-noon::before{background-image:url("assets/frame-summer.webp"),url("assets/frame-summer.webp"),url("assets/frame-summer.webp");background-position:left top,right center,center}
.autumn-evening::before{background-image:url("assets/frame-autumn.webp"),url("assets/frame-autumn.webp"),url("assets/frame-autumn.webp");background-position:left center,right bottom,center}
.winter-night::before{background-image:url("assets/frame-winter.webp"),url("assets/frame-winter.webp"),url("assets/frame-winter.webp");background-position:left top,right bottom,center}
.spring-return::before{background-image:url("assets/frame-spring.webp"),url("assets/frame-spring.webp"),url("assets/frame-spring.webp");background-position:left bottom,right bottom,center}

.hero{min-height:100vh;padding:50px 0 72px;display:flex;align-items:center}
.hero-backdrop{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(circle at 15% 16%,rgba(255,255,255,.52) 0 2.5%,transparent 3.1%),
    radial-gradient(circle at 76% 28%,rgba(255,234,182,.46) 0 2%,transparent 2.8%),
    radial-gradient(circle at 60% 78%,rgba(255,255,255,.42) 0 1.5%,transparent 2.2%),
    radial-gradient(circle at 35% 62%,rgba(255,250,235,.45) 0 1.6%,transparent 2.3%);
  background-size:240px 200px,320px 280px,360px 320px,300px 280px;
  opacity:.82;
  animation:dapple 16s ease-in-out infinite alternate;
}
@keyframes dapple{from{transform:translateX(-1%)}to{transform:translateX(2%)}}
@keyframes vineDriftLeft{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(1.1vw,1.5vh,0)}}
@keyframes vineDriftRight{0%{transform:scaleX(-1) translate3d(0,0,0)}100%{transform:scaleX(-1) translate3d(1vw,-1.8vh,0)}}

.hero-panel,.glass-card{
  background:var(--paper);
  border:1px solid rgba(185,146,68,.18);
  box-shadow:var(--shadow);
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.glass-card{padding:32px}
.full-art{padding:0}
.full-art img{width:100%;height:100%;object-fit:cover;min-height:420px}

.eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:900}
.lead{color:#59625b;font-size:1.04rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:999px;text-decoration:none;font-weight:900;border:1px solid transparent;transition:.2s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(34,50,39,.12)}
.btn-primary{background:var(--forest);color:#fff}
.btn-secondary{background:#fffaf2;border-color:rgba(185,146,68,.35);color:var(--forest)}
.pill-link{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:999px;background:#fffaf2;border:1px solid rgba(185,146,68,.36);text-decoration:none;font-weight:800;color:var(--forest)}

/* Hero cover */
.hero-cover{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 120px)}
.hero-cover-inner{
  width:min(900px,100%);
  text-align:center;
  padding:48px 52px 42px;
  background:rgba(255,252,246,.82);
  border:1px solid rgba(185,146,68,.22);
  border-radius:42px;
  box-shadow:var(--shadow-strong);
  backdrop-filter:blur(6px);
  position:relative;
}
.hero-cover-inner::before{
  content:"";
  position:absolute;inset:14px;
  border-radius:32px;
  border:1px solid rgba(185,146,68,.16);
  pointer-events:none;
}
.hero-logo-cover{width:min(520px,82vw);max-height:350px;object-fit:contain;margin:0 auto 10px;filter:drop-shadow(0 10px 20px rgba(41,62,47,.08))}
.cover-rule{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);margin:6px auto 14px}
.cover-rule span{height:1px;width:150px;background:linear-gradient(90deg,transparent,var(--gold))}
.cover-rule span:last-child{background:linear-gradient(90deg,var(--gold),transparent)}
.cover-rule i{font-style:normal;font-size:.82rem}
.hero-subtitle{font:600 1.16rem Georgia,serif;color:var(--forest);letter-spacing:.025em}
.cover-copy{font:700 clamp(1.48rem,3vw,2.28rem)/1.34 Georgia,serif;color:var(--forest-deep);max-width:720px;margin:18px auto 8px}
.cover-jp{margin:0 auto;max-width:700px}
.cover-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0 26px}
.cover-contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 auto 24px}
.cover-contact-item{display:grid;grid-template-columns:28px 1fr;gap:8px;text-align:left;align-items:start;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.50);border:1px solid rgba(85,108,92,.10)}
.cover-contact-item a{text-decoration:none}
.cover-contact-item small{display:block;color:var(--muted);margin-top:3px}
.cover-follow-card{
  display:grid;
  grid-template-columns:190px 1fr;
  gap:18px;
  align-items:center;
  max-width:660px;
  margin:0 auto;
  padding:18px;
  border-radius:24px;
  background:rgba(255,255,255,.52);
  border:1px solid rgba(185,146,68,.18);
}
.cover-follow-qr{display:block;padding:10px;border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 10px 28px rgba(36,53,39,.09)}
.cover-follow-qr img{width:100%;aspect-ratio:1/1;object-fit:contain}
.cover-follow-copy{text-align:left}
.cover-follow-copy h3{margin:2px 0 8px;font:700 1.34rem Georgia,serif;color:var(--forest)}
.cover-follow-copy p{margin:4px 0;color:#60665f}
.follow-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}

.section{padding:96px 0}
.section-head{text-align:center;max-width:900px;margin:0 auto 40px}
.section-head h2{font:700 clamp(2rem,4vw,3rem)/1.15 Georgia,serif;color:var(--forest-deep);margin:8px 0 10px}
.section-head .narrow{max-width:760px;margin:12px auto 0}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.symmetric > *{min-width:0}
.equal-height > *{height:100%}
.text-card h3,.visit-card h3{font:700 1.72rem Georgia,serif;color:var(--forest);margin:0 0 8px}
.feature-list{display:grid;gap:14px;margin:24px 0}
.feature-item{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}
.feature-item span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#edf2eb;color:var(--forest);font-size:1.05rem}
.feature-item small{display:block;color:var(--muted);margin-top:3px}

.menu-overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}
.overview-card,.menu-card{border:1px solid rgba(185,146,68,.2);border-radius:26px;background:rgba(255,251,244,.88);box-shadow:0 12px 34px rgba(38,54,42,.08);padding:0;overflow:hidden;cursor:pointer;transition:.22s ease;text-align:left;color:inherit}
.overview-card:hover,.menu-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(38,54,42,.12)}
.overview-art{height:185px}
.overview-art img{width:100%;height:100%;object-fit:cover}
.overview-body{padding:18px 18px 20px;display:grid;gap:6px}
.overview-body strong{font:700 1.15rem Georgia,serif;color:var(--forest)}
.overview-body span{font-size:.93rem;color:#61675e}
.menu-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.menu-card-image{height:172px;background-size:cover;background-position:center}
.menu-card-content{padding:16px 16px 18px;display:grid;gap:8px}
.menu-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.menu-card-title{font:700 1.08rem Georgia,serif;color:var(--forest)}
.menu-card-topline{font-size:.92rem;font-weight:900;color:#a05e45;white-space:nowrap}
.menu-card-content p{margin:0;color:#62675f;font-size:.9rem}
.menu-open{font-weight:900;color:var(--forest);font-size:.88rem}
.notice-card{margin-top:28px;padding:22px 24px;border-radius:22px;background:rgba(255,251,244,.80);border:1px dashed rgba(185,146,68,.46);text-align:center}
.notice-card p{margin:6px 0}

.map-card{padding:0;overflow:hidden;min-height:520px}
.map-card iframe{width:100%;height:100%;min-height:520px;border:0;display:block}
.visit-card{display:flex;flex-direction:column;justify-content:center}
.visit-links{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 14px}
.micro-note{color:var(--muted);font-size:.92rem}

.loyalty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.stamp-card{padding:28px 22px;border-radius:28px;background:rgba(255,251,244,.88);border:1px solid rgba(185,146,68,.2);box-shadow:0 12px 30px rgba(35,52,39,.08);text-align:center}
.stamp-number{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;border:2px solid var(--gold-soft);background:#fffaf1;font:700 2rem Georgia,serif;color:var(--gold)}
.stamp-card h3{font:700 1.18rem Georgia,serif;color:var(--forest);margin:0 0 8px}
.stamp-card p{margin:4px 0;color:#646960;font-size:.93rem}

.compact{display:flex;flex-direction:column;justify-content:center}
.contact-layout{align-items:stretch}
.contact-info-card{justify-content:center}
.contact-sheet{display:grid;gap:12px;margin:20px 0 16px}
.contact-row{
  display:grid;
  grid-template-columns:40px 112px 1fr;
  gap:14px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.contact-row:last-child{border-bottom:0}
.contact-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#edf2eb;color:var(--forest);font-size:1rem}
.contact-label{font-weight:800;color:var(--forest)}
.contact-value{display:block;min-width:0}
.contact-value a{text-decoration:none}
.contact-value strong{display:block;color:var(--forest-deep)}
.contact-value small{display:block;margin-top:2px;color:var(--muted)}
.qr-contact-card{display:flex;flex-direction:column;justify-content:center;align-items:stretch;text-align:left}
.contact-logo{width:min(270px,72%);margin:0 auto 20px;filter:drop-shadow(0 8px 16px rgba(41,62,47,.06))}
.follow-panel-grid{display:grid;grid-template-columns:190px 1fr;gap:20px;align-items:center}
.qr-box{display:block;text-decoration:none;background:rgba(255,255,255,.96);padding:12px;border-radius:20px;box-shadow:0 10px 28px rgba(36,53,39,.09)}
.qr-box img{width:100%;aspect-ratio:1/1;object-fit:contain}
.follow-panel-copy h3{font:700 1.32rem Georgia,serif;color:var(--forest);margin:0 0 8px}
.follow-panel-copy p{margin:5px 0;color:#61675e}

.site-footer{padding:28px 0 110px;background:#24382b;color:rgba(255,255,255,.82)}
.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center}
.footer-inner strong{display:block;font:700 1.25rem Georgia,serif;letter-spacing:.12em;color:#fff}
.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.footer-links a{text-decoration:none}
.quickbar{display:none}

.menu-modal{position:fixed;inset:0;display:none;place-items:center;padding:20px;background:rgba(22,34,27,.58);backdrop-filter:blur(8px);z-index:100}
.menu-modal.open{display:grid}
.modal-dialog{position:relative;width:min(1160px,100%);max-height:calc(100vh - 40px);overflow:hidden;background:#fffaf2;border-radius:34px;border:1px solid rgba(185,146,68,.24);box-shadow:0 28px 100px rgba(15,22,18,.34);display:grid;grid-template-columns:.94fr 1.06fr}
.modal-art-shell{padding:26px;background:linear-gradient(180deg,rgba(250,247,238,.94),rgba(244,240,231,.96));display:flex;align-items:center;justify-content:center}
.modal-art-shell img{width:100%;height:100%;max-height:640px;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(35,53,39,.08))}
.modal-copy{padding:34px 34px 34px 8px;overflow:auto}
.modal-close{position:absolute;top:16px;right:18px;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fffaf2;color:var(--forest);font-size:1.6rem;cursor:pointer}
.modal-topline{font-size:.88rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:900;margin-top:8px}
.modal-copy h2{font:700 clamp(2rem,4vw,3rem)/1.1 Georgia,serif;color:var(--forest-deep);margin:10px 0 6px}
.modal-copy p{margin:6px 0;color:#61665d}
.detail-group{padding:16px 0;border-top:1px solid var(--line)}
.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.detail-head h3{font:700 1.14rem Georgia,serif;color:var(--forest);margin:0}
.detail-note{font-size:.9rem;color:#6a6f65;margin:8px 0 10px}
.detail-note .jp{display:block;margin-top:2px}
.detail-row{display:grid;grid-template-columns:1fr auto;gap:18px;padding:10px 0;border-bottom:1px dotted rgba(76,101,79,.18)}
.detail-row strong{display:block;font-size:.95rem}
.detail-row .jp{display:block;font-size:.82rem}
.detail-row b{color:#a05e45;white-space:nowrap}

@media (max-width:1100px){
  .menu-overview-grid,.menu-card-grid{grid-template-columns:repeat(2,1fr)}
  .two-col{grid-template-columns:1fr}
  .follow-panel-top,.follow-panel-grid,.cover-follow-card{grid-template-columns:1fr}
}
@media (max-width:760px){
  .container{width:min(var(--max),calc(100% - 22px))}
  body::before,body::after{opacity:.34;background-size:64vw auto,66vw auto,66vw auto,62vw auto}
  .nav-toggle{display:block}
  .nav{position:absolute;top:72px;left:12px;right:12px;display:none;flex-direction:column;align-items:stretch;padding:14px;background:#fffaf2;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
  .nav.open{display:flex}
  .hero{min-height:auto;padding-top:26px}
  .section{padding:72px 0}
  .glass-card{padding:22px}
  .full-art{padding:0}
  .full-art img{min-height:300px}
  .menu-overview-grid,.menu-card-grid,.loyalty-grid{grid-template-columns:1fr}
  .map-card iframe{min-height:420px}
  .footer-inner{flex-direction:column;align-items:flex-start}
  .quickbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:10px;right:10px;bottom:10px;z-index:70;background:rgba(255,250,242,.94);backdrop-filter:blur(14px);border:1px solid rgba(85,108,92,.18);border-radius:18px;overflow:hidden;box-shadow:0 12px 34px rgba(23,38,28,.18)}
  .quickbar a{text-decoration:none;text-align:center;padding:10px 6px;font-size:.76rem;font-weight:900;color:var(--forest);border-right:1px solid var(--line)}
  .quickbar a:last-child{border-right:0}
  .site-footer{padding-bottom:110px}
  .menu-modal{padding:10px}
  .modal-dialog{grid-template-columns:1fr;max-height:calc(100vh - 20px)}
  .modal-copy{padding:22px}
  .modal-art-shell{padding:18px}
  .seasonal::before{background-size:70% auto,70% auto,cover;background-position:left top,right bottom,center}
  .hero-cover-inner{padding:28px 18px 30px;border-radius:28px}
  .hero-cover-inner::before{inset:10px;border-radius:22px}
  .hero-logo-cover{width:min(420px,92vw);max-height:280px}
  .cover-rule span{width:84px}
  .cover-contact-grid{grid-template-columns:1fr}
  .cover-follow-card{padding:14px}
  .cover-follow-qr{max-width:220px;margin:0 auto}
  .cover-follow-copy{text-align:center}
  .follow-links{justify-content:center}
  .contact-row{grid-template-columns:40px 1fr;grid-template-areas:"icon label" "icon value";align-items:start}
  .contact-icon{grid-area:icon}
  .contact-label{grid-area:label;padding-top:8px}
  .contact-value{grid-area:value}
  .contact-logo{margin-bottom:8px}
  .follow-panel-copy,.follow-panel-intro{text-align:center}
  .visit-links{justify-content:center}
  .action-grid,.compact-actions{grid-template-columns:1fr}
  .follow-panel-top,.follow-panel-grid{grid-template-columns:1fr}
}

/* === V9 MICRO-TYPOGRAPHY & LAYOUT REFINEMENT === */
body{font-size:16px}
p,li,small,.lead,.micro-note,.overview-body span,.menu-card-content p,.detail-note{ text-wrap:pretty; }
h1,h2,h3,.cover-copy,.hero-subtitle,.menu-card-title,.contact-value strong{ text-wrap:balance; }
.jp{line-break:strict;text-wrap:pretty;}
.section-head p,.text-card p,.visit-card p,.notice-card p,.contact-card p{orphans:2;widows:2}
.section-head{margin-bottom:36px}
.section{padding:90px 0}
.glass-card{padding:30px}
.two-col{gap:26px}
.menu-overview-grid,.menu-card-grid{gap:20px}
.menu-card-content{padding:18px 18px 20px}
.overview-body{padding:19px 19px 21px}
.notice-card{max-width:1040px;margin:30px auto 0}
.micro-note{max-width:100%;line-height:1.55;margin-top:4px}

/* Seamless, living seasonal vine: continuous body vines + softly masked seasonal stages. */
body::before,body::after{
  opacity:.54;
  background-size:38vw auto,42vw auto,43vw auto,40vw auto;
}
.seasonal::before{
  opacity:.98;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 9%,#000 91%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 9%,#000 91%,transparent 100%);
  filter:saturate(1.26) contrast(1.035) brightness(1.15);
}
.seasonal::after{
  background:
    linear-gradient(90deg,rgba(255,252,246,.06) 0%,rgba(255,251,245,.24) 11%,rgba(255,252,248,.70) 27%,rgba(255,253,249,.91) 50%,rgba(255,252,248,.70) 73%,rgba(255,251,245,.24) 89%,rgba(255,252,246,.06) 100%),
    linear-gradient(180deg,rgba(255,253,248,.10) 0%,rgba(252,249,243,.30) 20%,rgba(252,249,243,.20) 50%,rgba(251,247,241,.30) 80%,rgba(255,253,248,.12) 100%);
}
.spring-morning::before{background-size:50% auto,50% auto,68% auto}
.spring-day::before{background-size:52% auto,52% auto,68% auto}
.summer-noon::before{background-size:55% auto,55% auto,72% auto}
.autumn-evening::before{background-size:52% auto,52% auto,70% auto}
.winter-night::before{background-size:48% auto,48% auto,66% auto}
.spring-return::before{background-size:48% auto,48% auto,66% auto}

/* Visit actions: identical geometry, no awkward icon/button rhythm. */
.visit-card{padding:34px;justify-content:center}
.visit-card h3{margin-bottom:12px}
.visit-card > p{margin:7px 0}
.visit-links.action-grid{margin:24px 0 16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.action-chip{min-height:54px;padding:0 12px;border-radius:18px;font-size:.92rem;white-space:nowrap}
.action-icon{width:26px;height:26px;flex-basis:26px}
.micro-note{font-size:.9rem;color:#687168}

/* Contact: centered brand header, two balanced cards, one closing strip. */
.contact-section{padding-top:82px;padding-bottom:88px}
.contact-brand-head{text-align:center;max-width:720px;margin:0 auto 34px}
.contact-brand-logo{width:min(250px,60vw);max-height:210px;object-fit:contain;margin:0 auto 14px;filter:drop-shadow(0 8px 18px rgba(44,62,49,.06))}
.contact-brand-head h2{font:700 clamp(2rem,4vw,2.8rem)/1.14 Georgia,serif;color:var(--forest-deep);margin:7px 0 7px}
.contact-main-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.contact-card{min-height:0;padding:28px 30px;background:rgba(255,252,247,.83)}
.card-kicker{font-size:.74rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold);font-weight:900;margin-bottom:4px}
.contact-card h3{font:700 1.48rem/1.28 Georgia,serif;color:var(--forest);margin:0 0 16px}
.refined-sheet{margin:7px 0 12px;gap:0}
.refined-sheet .contact-row{grid-template-columns:38px 100px 1fr;gap:13px;padding:12px 0;align-items:start}
.refined-sheet .contact-icon{width:38px;height:38px}
.refined-sheet .contact-label{padding-top:7px;font-size:.94rem}
.refined-sheet .contact-value strong{font-size:.96rem;line-height:1.34}
.refined-sheet .contact-value small{font-size:.82rem;line-height:1.42;margin-top:3px}
.contact-card-note{font-size:.92rem;line-height:1.5;margin:8px 0 0;color:#636b63}
.contact-card-note.jp{margin-top:2px;font-size:.85rem}
.instagram-card{position:relative;overflow:hidden}
.instagram-card::after{content:"";position:absolute;right:-55px;bottom:-70px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(166,185,160,.16),rgba(185,146,68,.05) 46%,transparent 70%);pointer-events:none}
.instagram-compact-grid{display:grid;grid-template-columns:180px 1fr;gap:22px;align-items:center;position:relative;z-index:1}
.refined-qr{padding:11px;border-radius:18px;box-shadow:0 10px 28px rgba(36,53,39,.07)}
.instagram-compact-copy>strong{display:block;font:700 1.18rem/1.25 Georgia,serif;color:var(--forest);margin-bottom:7px;text-wrap:balance}
.instagram-compact-copy p{margin:5px 0;font-size:.94rem;line-height:1.55}
.instagram-compact-copy .jp{font-size:.85rem}
.contact-action-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}
.mini-action{min-height:46px;justify-content:center;padding:0 12px;border-radius:16px;font-size:.88rem;white-space:nowrap}
.contact-bottom-strip{margin-top:22px;padding:17px 22px;border-radius:22px;background:rgba(255,252,247,.66);border:1px solid rgba(185,146,68,.17);display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;text-align:center;box-shadow:0 12px 32px rgba(34,50,39,.055)}
.contact-bottom-strip p{margin:0;line-height:1.45;text-wrap:balance}
.contact-bottom-strip .jp{font-size:.86rem;margin-top:3px}
.strip-mark{color:var(--gold);font-size:.75rem}

/* More polished component proportions. */
.loyalty-grid{gap:22px}
.stamp-card{padding:27px 24px}
.map-card,.visit-card{border-radius:34px}
.overview-card,.menu-card{border-radius:24px}
.overview-art{height:182px}
.menu-card-image{height:168px}
.hero-cover-inner{max-width:900px}
.cover-contact-item{align-items:center;min-height:76px}
.cover-contact-item small{line-height:1.35}

@media (max-width:1100px){
  .contact-main-grid{grid-template-columns:1fr}
  .contact-card{max-width:840px;width:100%;margin:0 auto}
  .instagram-compact-grid{grid-template-columns:190px 1fr}
}
@media (max-width:760px){
  body{font-size:15.5px}
  body::before,body::after{opacity:.42;background-size:70vw auto,74vw auto,76vw auto,72vw auto}
  .seasonal::before{background-size:78% auto,78% auto,cover!important;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 7%,#000 93%,transparent 100%)}
  .section{padding:66px 0}
  .section-head{margin-bottom:30px}
  .glass-card{padding:21px}
  .visit-card{padding:24px}
  .visit-links.action-grid{grid-template-columns:1fr;gap:9px}
  .action-chip{min-height:48px}
  .contact-section{padding-top:62px;padding-bottom:72px}
  .contact-brand-head{margin-bottom:26px}
  .contact-brand-logo{width:min(220px,58vw);margin-bottom:10px}
  .contact-main-grid{gap:16px}
  .contact-card{padding:22px 20px}
  .contact-card h3{font-size:1.34rem;margin-bottom:12px}
  .refined-sheet .contact-row{grid-template-columns:36px 1fr;grid-template-areas:"icon label" "icon value";gap:4px 12px;padding:11px 0}
  .refined-sheet .contact-icon{grid-area:icon;width:36px;height:36px}
  .refined-sheet .contact-label{grid-area:label;padding-top:6px}
  .refined-sheet .contact-value{grid-area:value;padding-bottom:2px}
  .instagram-compact-grid{grid-template-columns:1fr;gap:17px}
  .refined-qr{width:min(200px,66vw);margin:0 auto}
  .instagram-compact-copy{text-align:center}
  .contact-action-row{grid-template-columns:1fr 1fr;gap:8px}
  .mini-action{font-size:.84rem;min-height:44px;padding:0 9px}
  .contact-bottom-strip{grid-template-columns:1fr;padding:15px 17px;gap:4px;margin-top:16px}
  .strip-mark{display:none}
  .contact-bottom-strip p{font-size:.9rem}
  .contact-bottom-strip .jp{font-size:.8rem}
  .overview-art{height:210px}
  .menu-card-image{height:205px}
}
@media (max-width:420px){
  .contact-action-row{grid-template-columns:1fr}
  .menu-card-top{gap:8px}
  .menu-card-topline{font-size:.86rem}
  .cover-copy{font-size:1.38rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body::before,body::after,.hero-backdrop{animation:none!important}
}


/* =========================================================
   V11 HYBRID — V8 motion × V10W watercolor continuity
   Keep the accepted V9 layout untouched.
   Three visual layers:
   1) fixed pure watercolor nature
   2) scrolling continuous seasonal watercolor vine
   3) subtle moving light / time-of-day atmosphere
   ========================================================= */

:root{
  --hybrid-fixed-y: 0px;
  --hybrid-fixed-x: 0px;
  --hybrid-light-x: 0px;
  --hybrid-light-y: 0px;
  --hybrid-light-opacity: .36;
}

body{
  background:#faf7ef !important;
  position:relative;
  isolation:isolate;
}

/* Disable V8/V9 block-by-block image backgrounds. */
body::before,
body::after,
.seasonal::before,
.seasonal::after{
  display:none !important;
  content:none !important;
}
.seasonal{
  background:transparent !important;
}

/* Layer 1: fixed pure nature background, always present. */
.hybrid-fixed-nature{
  position:fixed;
  inset:-6vh -5vw;
  z-index:-6;
  pointer-events:none;
  background-image:url("assets/fixed-watercolor-nature.webp");
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center center;
  opacity:.95;
  filter:saturate(1.035) contrast(1.015) brightness(1.005);
  transform:none;
  will-change:auto;
}

/* Layer 2: one continuous long watercolor scroll that moves with document. */
.hybrid-scroll-vine{
  position:absolute;
  inset:0 0 auto 0;
  width:100%;
  min-height:100%;
  height:100%;
  z-index:-5;
  pointer-events:none;
  background-image:url("assets/continuous-watercolor-scroll.webp");
  background-repeat:no-repeat;
  background-size:100% 100%;
  background-position:center top;
  opacity:.98;
  mix-blend-mode:multiply;
}

/* Center veil: no seams, keeps text readable while edges remain bright. */
.hybrid-scroll-vine::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,
    rgba(252,249,243,.08) 0%,
    rgba(252,249,243,.24) 12%,
    rgba(253,251,247,.68) 28%,
    rgba(253,251,247,.88) 50%,
    rgba(253,251,247,.68) 72%,
    rgba(252,249,243,.24) 88%,
    rgba(252,249,243,.08) 100%);
}

/* Layer 3: dappled light moves slightly as user scrolls. */
.hybrid-light-layer{
  position:fixed;
  inset:-8vh -8vw;
  z-index:-4;
  pointer-events:none;
  opacity:var(--hybrid-light-opacity);
  background:
    radial-gradient(circle at 18% 16%,rgba(255,245,188,.48) 0 3.5%,transparent 9%),
    radial-gradient(circle at 79% 31%,rgba(255,252,226,.52) 0 3%,transparent 10%),
    radial-gradient(circle at 24% 72%,rgba(245,252,220,.34) 0 2.8%,transparent 9%),
    radial-gradient(circle at 82% 84%,rgba(255,221,177,.30) 0 3%,transparent 10%);
  filter:blur(2px);
  transform:none;
  will-change:transform,opacity;
}

/* Only color temperature changes per section; no image swaps. */
.spring-morning{
  background:linear-gradient(180deg,rgba(255,248,226,.12),rgba(255,255,255,0)) !important;
}
.spring-day{
  background:linear-gradient(180deg,rgba(244,252,235,.07),rgba(255,255,255,0)) !important;
}
.summer-noon{
  background:linear-gradient(180deg,rgba(245,251,226,.06),rgba(255,245,207,.10),rgba(255,255,255,0)) !important;
}
.autumn-evening{
  background:linear-gradient(180deg,rgba(255,247,228,.06),rgba(252,223,196,.11),rgba(255,255,255,0)) !important;
}
.winter-night{
  background:linear-gradient(180deg,rgba(244,246,239,.04),rgba(226,236,233,.11),rgba(255,255,255,0)) !important;
}
.spring-return{
  background:linear-gradient(180deg,rgba(243,249,237,.05),rgba(255,250,230,.08)) !important;
}

/* Preserve V9 card appearance, just slightly more translucent than static V10W. */
.hero-cover-inner,
.glass-card,
.overview-card,
.menu-card,
.notice-card,
.contact-bottom-strip{
  background:rgba(255,252,247,.84) !important;
  backdrop-filter:blur(3.5px);
}

/* Slightly richer edge feel on large desktop screens. */
@media (min-width:1200px){
  .hybrid-scroll-vine{background-size:104% 100%}
}

/* Tablet/mobile: retain motion and watercolor, but protect reading area. */
@media (max-width:900px){
  .hybrid-fixed-nature{
    background-image:url("assets/fixed-watercolor-nature-mobile.webp");
    background-size:cover;
    opacity:.80;
  }
  .hybrid-scroll-vine{
    background-image:url("assets/continuous-watercolor-scroll-mobile.webp");
    background-size:118% 100%;
    background-position:center top;
    opacity:.80;
  }
  .hybrid-scroll-vine::after{
    background:linear-gradient(90deg,
      rgba(252,249,243,.04) 0%,
      rgba(253,251,247,.52) 18%,
      rgba(253,251,247,.91) 36%,
      rgba(253,251,247,.95) 50%,
      rgba(253,251,247,.91) 64%,
      rgba(253,251,247,.52) 82%,
      rgba(252,249,243,.04) 100%);
  }
  .hero-cover-inner,
  .glass-card,
  .overview-card,
  .menu-card,
  .notice-card,
  .contact-bottom-strip{
    background:rgba(255,252,247,.90) !important;
  }
}

@media (max-width:600px){
  .hybrid-fixed-nature{
    opacity:.92;
    inset:-5vh -12vw;
  }
  .hybrid-scroll-vine{
    background-size:138% 100%;
    opacity:.82;
  }
  .hybrid-light-layer{opacity:.34}
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion:reduce){
  .hybrid-fixed-nature,
  .hybrid-light-layer{
    transform:none !important;
  }
}

/* V11 layer micro-refinement: original motion preserved exactly;
   fixed watercolor base only is clearer and has larger overscan to prevent edge exposure. */