/* ============================================================
   chiso_uosa — main.css
   ============================================================ */

:root {
  --sidebar-w:  12.5vw;
  --bg:         #f0ebe2;
  --bg-white:   #f8f4ed;
  --bg-store:   #f2ece3;
  --bg-dark:    #222222;
  --accent:     #BC4833;
  --text:       #3c3c3c;
  --text-mid:   #6a6a6a;
  --text-light: #9a9a9a;
  --border:     rgba(60,60,60,.12);
  --font-jp:    'Noto Serif JP','Yu Mincho',serif;
  --font-en:    'Noto Serif JP','Yu Mincho',serif;
  --ease-out:   cubic-bezier(0.16,1,0.3,1);
  --t:          0.3s ease;
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-jp);
  font-weight:300;
  color:var(--text);
  background:var(--bg);
  line-height:1.9;
  overflow-x:hidden;
  padding-left:var(--sidebar-w);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
p{font-size:14px}
a{color:inherit;text-decoration:none;transition:opacity var(--t)}
a:hover{opacity:.72}
ul,ol{list-style:none}
address{font-style:normal}

/* ── Fixed Left Sidebar ── */
.site-sidebar{
  position:fixed;
  left:0;top:0;bottom:0;
  width:var(--sidebar-w);
  z-index:500;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  background:var(--bg);
  border-right:1px solid var(--border);
  transition:opacity 1.6s ease, transform 1.4s cubic-bezier(0.16,1,0.3,1);
}
.site-sidebar.is-fv{
  opacity:0;
  transform:translateX(-40%);
  pointer-events:none;
  transition:opacity 0.4s ease, transform 0.35s cubic-bezier(0.4,0,1,1);
}

/* Brand */
.sidebar-brand{
  padding:24px 0 20px;
  flex-shrink:0;
  display:flex;
  justify-content:center;
}
.sidebar-brand__link{display:block}
.sidebar-brand__link:hover{opacity:.75}
.sidebar-logo{
  max-height:200px;
  display:block;
  width:auto;
  max-width:100%;
}

/* Nav links */
.sidebar-nav{
  display:flex;
  flex-direction:column;
  align-items:center;
  flex:1;
  padding:8px 0;
  justify-content:center;
}
.sidebar-nav a{
  display:block;
  padding:11px 0;
  font-size:.8125rem;
  letter-spacing:.12em;
  color:var(--text-mid);
  transition:color var(--t);
  white-space:nowrap;
  text-align:center;
  position:relative;
}
.sidebar-nav a:hover,
.sidebar-nav a.active{
  color:var(--text);
  opacity:1;
}

/* JP→EN ホバー切り替え */
.nav-jp,.nav-en{
  display:block;
  transition:opacity .5s ease, transform .5s ease;
}
.nav-en{
  position:absolute;
  inset:0;
  display:flex;align-items:center;justify-content:center;
  opacity:0;
  font-size:.65rem;
  letter-spacing:.06em;
  white-space:nowrap;
}
a:hover .nav-jp{opacity:0}
a:hover .nav-en{opacity:1}
.footer-nav__list li a .nav-en{
  color:#fff;
  justify-content:flex-start;
}

/* Bottom: Instagram + Reserve */
.sidebar-footer{
  padding:16px 0 28px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  flex-shrink:0;
}
.sidebar-ig{
  display:flex;align-items:center;justify-content:center;
  color:var(--text-light);
}
.sidebar-ig:hover{color:var(--text);opacity:1}
.sidebar-nav__ig{
  display:block;
  padding:11px 0;
  opacity:.55;
  position:relative;
  text-align:center;
  transition:opacity var(--t);
}
.sidebar-nav__ig:hover{opacity:1}
.sidebar-nav__ig .nav-en{font-size:.65rem;letter-spacing:.06em}
.sidebar-reserve{
  border:0.5px solid var(--text);
  display:inline-flex;align-items:center;justify-content:center;gap:20px;
  padding:16px 20px;
  color:var(--text);
  font-size:.75rem;
  letter-spacing:.14em;
  white-space:nowrap;
  position:relative;
  overflow:hidden;
}

/* ── Hero ── */
.hero{
  position:relative;
  height:100svh;min-height:560px;
  margin-left:calc(-1 * var(--sidebar-w));
  width:calc(100% + var(--sidebar-w));
  overflow:hidden;
}
.hero__bg{position:absolute;inset:0}
.hero__slide{
  position:absolute;inset:0;
  opacity:0;
  animation:hero-slide 25s infinite;
}
.hero__slide img{
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  animation:hero-pan 25s linear infinite;
}
@keyframes hero-pan{
  from{ transform:scale(1.06) translateX(0) }
  to  { transform:scale(1.06) translateX(-3%) }
}
@keyframes hero-slide{
  0%  { opacity:0 }
  6%  { opacity:1 }
  20% { opacity:1 }
  26% { opacity:0 }
  100%{ opacity:0 }
}
.hero__overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,.2) 100%),
    linear-gradient(to right, rgba(0,0,0,.32) 0%, rgba(0,0,0,.08) 45%, transparent 70%),
    linear-gradient(to top, rgba(0,0,0,.18) 0%, transparent 40%);
}
.hero__brand{
  position:absolute;z-index:2;
  top:clamp(24px,4vh,48px);
  left:clamp(24px,3vw,48px);
}
.hero__brand-link{display:block}
.hero__brand-link:hover{opacity:.8}
.hero__logo{
  width:clamp(80px,8vw,130px);
  height:auto;
}
.hero__desc{
  position:absolute;z-index:2;
  left:clamp(180px,20vw,320px);
  bottom:clamp(60px,8vh,100px);
  font-size:clamp(11px,0.97vw,16px);
  font-weight:600;
  line-height:2.1;
  letter-spacing:.1em;
  color:rgba(255,255,255,.72);
  max-width:22em;
}
.hero__titles{
  position:absolute;z-index:2;
  left:clamp(180px,20vw,320px);
  top:clamp(120px,18vh,200px);
  display:flex;
  flex-direction:row;
  align-items:stretch;
  gap:clamp(4px,1vw,12px);
  height:420px;
}
.hero__title-main{
  align-self:flex-start;
  writing-mode:vertical-rl;
  font-size:3rem;
  font-weight:400;
  letter-spacing:.26em;
  color:#fff;
  line-height:1.4;
  white-space:nowrap;
}
.hero__title-sub{
  align-self:flex-end;
  writing-mode:vertical-rl;
  font-size:1.5rem;
  font-weight:500;
  letter-spacing:.22em;
  color:rgba(255,255,255,.78);
  line-height:1.6;
}
.hero__reserve{
  position:fixed;z-index:500;
  bottom:clamp(40px,6vh,72px);
  right:clamp(40px,5vw,80px);
  width:clamp(100px,11.1vw,160px);
  height:clamp(100px,11.1vw,160px);
  border-radius:50%;
  background:rgba(255,255,255,.2);
  border:1px solid var(--accent);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:8px;
  font-size:clamp(12px,1.1vw,16px);
  letter-spacing:.12em;
  color:#fff;
  transform-origin:center;
  transition:background var(--t),opacity var(--t),color .8s ease,transform .5s linear;
}
.hero__reserve:hover{background:rgba(255,255,255,.45);opacity:1}
.hero__reserve.is-scrolled:hover{background:rgba(255,255,255,.65)}
.hero__reserve.is-scrolled{
  background:rgba(255,255,255,.4);
  color:#3c3c3c;
  transform:scale(0.78);
}
.hero__reserve-en{display:none}
.hero__reserve-arrow{
  font-size:1.1em;line-height:1;
  display:inline-block;
  transition:transform 1.6s ease;
}
.hero__reserve:hover .hero__reserve-arrow{transform:translateX(5px)}

/* ── FV アニメーション ── */
.hero__brand,
.hero__title-main,
.hero__title-sub,
.hero__desc{
  opacity:0;
  transform:translateY(16px);
  animation:hero-fadein 2s cubic-bezier(0.16,1,0.3,1) forwards;
}
.hero__reserve{
  opacity:0;
  animation:hero-fadein-opacity 2s cubic-bezier(0.16,1,0.3,1) forwards;
  animation-delay:2.3s;
}
.hero__brand     {animation-delay:.3s}
.hero__title-main{animation-delay:.8s}
.hero__title-sub {animation-delay:1.3s}
.hero__desc      {animation-delay:1.8s}
@keyframes hero-fadein{
  to{opacity:1;transform:translateY(0)}
}
@keyframes hero-fadein-opacity{
  to{opacity:1}
}

/* ── Section 共通 heading ── */
.about__heading{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  flex-shrink:0;
}
.about__name-jp{
  writing-mode:vertical-rl;
  font-size:28px;
  font-weight:400;
  letter-spacing:.18em;
  line-height:1.3;
  color:var(--text);
  padding-right:16px;
}
.about__name-en{
  writing-mode:vertical-rl;
  font-family:var(--font-jp);
  font-size:14px;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1.4;
  color:#BC4833;
  border-left:1px solid var(--border);
  padding-left:16px;
}


/* ── About ── */
.about{
  background:var(--bg);
  padding:clamp(72px,8vw,120px) 0;
}
.about__inner{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(40px,5vw,80px);
  max-width:1280px;margin:0 auto;
  padding:0 clamp(40px,6vw,100px);
  align-items:start;
}
.about__content{
  display:flex;
  flex-direction:column;
  padding-top:72px;
}
.about__text-jp{line-height:2;letter-spacing:.1em}
.about__divider{
  border:none;height:1px;
  background-image:repeating-linear-gradient(90deg, var(--border) 0, var(--border) 12px, transparent 12px, transparent 18px);
  margin:clamp(20px,2.5vw,36px) 0;
}
.about__text-en{font-family:var(--font-en);line-height:2;letter-spacing:.05em}

/* ── Kodawari ── */
.kodawari{
  background:var(--bg);
  padding-top:clamp(72px,8vw,120px);
}
.kodawari__top{
  display:grid;
  grid-template-columns:1fr auto;
  gap:40px;
  max-width:1280px;margin:0 auto;
  padding:0 clamp(40px,6vw,100px);
  margin-bottom:clamp(48px,5vw,72px);
  align-items:start;
}
.kodawari__text{display:flex;flex-direction:column;gap:16px;padding-top:72px}
.kodawari__h3{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.kodawari__h3-jp{font-size:32px;font-weight:400;letter-spacing:.18em;line-height:1.4}
.kodawari__h3-en{font-size:.875rem;letter-spacing:.1em;color:var(--accent)}
.kodawari__body{line-height:2;letter-spacing:.1em}
.kodawari__body-en{line-height:2;letter-spacing:.05em}

/* Full-width image strip */
.kodawari__strip{
  overflow:hidden;
  margin-left:calc(-1 * var(--sidebar-w));
  width:calc(100% + var(--sidebar-w));
  height:clamp(200px,26vw,380px);
}
.kodawari__strip-track{
  display:flex;height:100%;width:max-content;
  animation:strip-scroll 24s linear infinite;
}
@keyframes strip-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.kodawari__strip-item{
  width:clamp(220px,22vw,400px);
  flex-shrink:0;overflow:hidden;background:#ccc9c0;
}
.kodawari__strip-item img{width:100%;height:100%;object-fit:cover}

/* ── Menu ── */
.menu-section{
  background:var(--bg-white);
  padding-top:clamp(72px,8vw,120px);
}
.menu-section__head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:40px;align-items:start;
  max-width:1280px;margin:0 auto 72px;
  padding:0 clamp(40px,6vw,100px);
}
@media (max-width: 768px) {
 .menu-section__head{
margin:0 auto;
	}}


.menu-section__desc{display:flex;flex-direction:column;gap:12px;padding-top:72px}
.menu-section__desc-jp,
.menu-section__desc-en{line-height:2.1;letter-spacing:.05em;color:var(--text-mid)}
.menu-section__desc-en{font-family:var(--font-en)}
.menu-cats-inline{display:flex;flex-wrap:wrap;margin-top:8px}
.menu-cats-inline span{
  font-size:.8125rem;letter-spacing:.1em;color:var(--text-light);padding-right:12px;
}
.menu-cats-inline span+span::before{content:'/';padding-right:12px;opacity:.4}

/* Photo mosaic */
.menu-mosaic{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:400px 400px;
  width:100%;
}
.mosaic-cell{overflow:hidden;background:#d8d0c4}
.mosaic-placeholder{width:100%;height:100%;background:#d8d0c4}
.mosaic-cell--wide{grid-column:span 2}
.mosaic-cell img{
  width:100%;height:100%;object-fit:cover;
}
.mosaic-cell--text{
  background:var(--bg-white);
  display:flex;flex-direction:column;
  justify-content:flex-start;
  padding:clamp(48px,6vw,80px) clamp(48px,6vw,80px) 0;
  gap:24px;
}
.mosaic-cats{
  display:flex;flex-wrap:wrap;justify-content:flex-start;
  gap:8px 16px;
  position:relative;padding-bottom:24px;
}
.mosaic-cats::after{
  content:'';position:absolute;bottom:0;left:0;
  width:100%;height:1px;
  background:linear-gradient(to right, var(--accent) 0, var(--accent) 80px, #cccccc 80px);
}
.mosaic-cats span{font-size:14px;letter-spacing:.12em;white-space:nowrap}
.mosaic-cats span+span{padding-left:0}
.mosaic-cats--en span{letter-spacing:.08em}
.mosaic-body-jp{line-height:2;letter-spacing:.1em}
.mosaic-body-en{line-height:2;letter-spacing:.05em}

/* Tabs */
.menu-tabs{
  max-width:1280px;margin:0 auto;
  padding:0 clamp(40px,6vw,100px);
}
.menu-tabs__nav{
  display:flex;
  border-bottom:1px solid var(--border);
  margin-bottom:40px;
  overflow-x:auto;scrollbar-width:none;
}
.menu-tabs__nav::-webkit-scrollbar{display:none}
.menu-tabs__btn{
  background:none;border:none;
  padding:12px 24px;
  font-family:var(--font-jp);
  font-size:.875rem;letter-spacing:.12em;
  cursor:pointer;color:var(--text-light);
  white-space:nowrap;position:relative;
  transition:color var(--t);
}
.menu-tabs__btn::after{
  content:'';position:absolute;
  bottom:-1px;left:0;right:0;
  height:1px;background:var(--text);
  transform:scaleX(0);transition:transform var(--t);
}
.menu-tabs__btn.active,.menu-tabs__btn:hover{color:var(--text)}
.menu-tabs__btn.active::after{transform:scaleX(1)}
.menu-tabs__content{display:none}
.menu-tabs__content.active{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:32px;
}
.menu-card__image{aspect-ratio:4/3;overflow:hidden;margin-bottom:12px}
.menu-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.menu-card:hover .menu-card__image img{transform:scale(1.05)}
.menu-card__title{font-size:.9375rem;font-weight:400;letter-spacing:.1em}
.menu-card__desc{font-size:.8125rem;color:var(--text-light);line-height:1.8;margin-top:6px}

/* ── Store ── */
.store{
  background:var(--bg-store);
  padding-bottom:clamp(72px,8vw,120px);
}
.store__photo{
  width:100%;height:360px;
  overflow:hidden;
  margin-bottom:clamp(56px,6vw,88px);
}
.store__photo img{width:100%;height:100%;object-fit:cover}
.store__inner{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(48px,6vw,96px);
  align-items:start;
  max-width:1280px;margin:0 auto 72px;
  padding:0 clamp(40px,6vw,100px);
}
.store__info{display:flex;flex-direction:column;gap:32px;padding-top:72px}
.store__table{width:100%;border-collapse:collapse}
.store__table tr{border-bottom:1px solid var(--border)}
.store__table th,
.store__table td{padding:16px 0;text-align:left;vertical-align:top}
.store__table th{
  font-size:16px;font-weight:400;
  width:160px;padding-right:16px;white-space:nowrap;
}
.store__table th .th-en{font-size:12px;color:var(--accent);margin-left:16px}
.store__table td{font-size:.9rem;line-height:1.9}
.store__table td p{margin:0;line-height:1.8}
.store__table td .td-en{font-size:.8rem;color:var(--text-light);margin-top:2px}
.store__table td a{border-bottom:1px solid var(--border)}
.store__map{
  width:min(960px, calc(100% - 96px));
  margin:clamp(40px,5vw,72px) auto 0;
}
.store__map iframe{display:block;width:100%;height:320px;border:0;filter:saturate(.6) contrast(.88) brightness(1.06)}

/* ── ボタン共通 ── */
.btn-reserve::after,
.btn-news-more::after,
.btn-related::after,
.sidebar-reserve::after{
  content:'→';
  font-style:normal;
  display:inline-block;
  transform:scaleX(1.6);
  transform-origin:left center;
  transition:transform var(--t);
}
.btn-reserve:hover::after,
.btn-news-more:hover::after,
.btn-related:hover::after,
.sidebar-reserve:hover::after{
  transform:scaleX(1.6) translateX(3px);
}
.btn-reserve,
.btn-news-more,
.btn-related,
.sidebar-reserve,
.btn-back{
  transition:opacity var(--t);
}
.btn-reserve:hover,
.btn-news-more:hover,
.btn-related:hover,
.sidebar-reserve:hover,
.btn-back:hover{
  opacity:.65;
}

.btn-reserve{
  display:inline-flex;align-items:center;gap:16px;
  padding:12px 28px;
  border:0.5px solid var(--text);
  font-size:.875rem;letter-spacing:.15em;
}
.btn-reserve-en{font-size:.75rem;color:var(--accent)}
.btn-news-more{
  display:inline-flex;align-items:center;justify-content:space-between;gap:48px;
  padding:12px 20px;
  border:0.5px solid var(--text);
  font-size:.8125rem;letter-spacing:.2em;
}
.btn-related{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:12px 28px;margin-top:24px;
  border:0.5px solid rgba(255,255,255,.5);
  font-size:14px;letter-spacing:.18em;color:#fff;
}
.btn-back{
  display:inline-block;padding:12px 36px;
  border:0.5px solid var(--border);
  font-size:.875rem;letter-spacing:.12em;color:var(--text-light);
}

/* ── Instagram ── */
.instagram-section{
  background:var(--bg-white);
  padding:clamp(72px,8vw,120px) 0;
}
.instagram-section__inner{
  display:grid;
  grid-template-columns:1fr auto;
  gap:40px;align-items:start;
  max-width:1280px;margin:0 auto;
  padding:0 clamp(40px,6vw,100px);
}
.instagram-content{display:flex;flex-direction:column;gap:24px;padding-top:72px}
.instagram-photos{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.ig-photo{
  aspect-ratio:3/4;overflow:hidden;
  position:relative;background:#d8d0c4;
}
.ig-photo img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s var(--ease-out);
}
.ig-photo:hover img{transform:scale(1.05)}
.ig-photo__video{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
}
.instagram-note p{font-size:.8125rem;color:var(--text-light);line-height:1.9}
.instagram-note .note-en{font-family:var(--font-en);font-size:.75rem;margin-top:4px}
.instagram-placeholder{padding:40px 0;color:var(--text-light);font-size:.875rem;line-height:2}
.instagram-placeholder strong{color:var(--text);font-weight:400}
.btn-instagram{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 24px;
  border:1px solid var(--border);
  font-size:.8125rem;letter-spacing:.12em;color:var(--text-mid);
  align-self:flex-start;
  transition:all var(--t);
}
.btn-instagram:hover{opacity:1;background:var(--text);color:#fff;border-color:var(--text)}

/* ── News ── */
.news-section{
  background:var(--bg);
  padding:clamp(72px,8vw,120px) 0;
}
.news-section__inner{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(32px,4vw,56px);
  align-items:start;
  max-width:1280px;margin:0 auto;
  padding:0 clamp(40px,6vw,100px);
}
.news-content{display:flex;flex-direction:column;gap:48px;padding-top:72px}
.news-cards{display:flex;flex-direction:column}
.news-card{border-top:1px solid var(--border);padding:24px 0}
.news-card__link{
  display:grid;grid-template-columns:120px 1fr;
  align-items:baseline;gap:16px;
  transition:opacity var(--t);
}
.news-card__link:hover{opacity:.68}
.news-card__date{font-size:.8125rem;font-weight:300;letter-spacing:.1em}
.news-card__title{font-size:.9375rem;letter-spacing:.06em;line-height:1.7}
.news-section__more{text-align:right}

/* ── Related Stores ── */
.related-stores{
  position:relative;overflow:hidden;
  height:clamp(220px,30vw,420px);
}
.related-stores__bg{position:absolute;inset:0}
.related-stores__bg img{width:100%;height:100%;object-fit:cover}
.related-stores__bg-placeholder{position:absolute;inset:0;background:var(--bg-dark)}
.related-stores__overlay{
  position:absolute;inset:0;
  background:rgba(26,21,16,.6);
}
.related-stores__content{
  position:relative;z-index:2;
  height:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(40px,6vw,100px);
  padding:0 clamp(40px,6vw,100px);
}
.related-stores__content .about__name-jp{color:#fff}
.related-stores__content .about__name-en{color:var(--accent);border-left:0.5px solid #fff}
.related-stores__logo{display:flex;align-items:center;justify-content:center}
.related-stores__logo-img{max-width:clamp(120px,16vw,220px);height:auto}
.related-stores__info{
  display:flex;flex-direction:column;
  align-items:center;text-align:center;
}
.related-stores__tagline{
  font-size:16px;font-weight:600;
  line-height:40px;letter-spacing:.1em;
  color:rgba(255,255,255,.65);
}
.related-stores__name{
  font-size:18px;font-weight:600;
  line-height:40px;letter-spacing:.1em;color:#fff;
}

/* ── Footer ── */
.site-footer{background:var(--bg-dark);color:rgba(255,255,255,.7)}
.site-footer__inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(64px,12vw,180px);
  align-items:start;
  max-width:1280px;margin:0 auto;
  padding:clamp(20px,2.5vw,36px) clamp(40px,6vw,100px) clamp(16px,2vw,28px);
}
.footer-left{display:flex;flex-direction:column}
.footer-logo{width:clamp(80px,10vw,140px);height:auto}
.footer-info{display:flex;flex-direction:column;gap:4px}
.footer-info p{font-size:.8125rem;color:rgba(255,255,255,.45);line-height:1.9;letter-spacing:.04em}
.footer-info strong{color:rgba(255,255,255,.7);font-weight:400}
.footer-right{display:flex;flex-direction:column;gap:32px;padding-top:8px}
.footer-nav__list{
  display:grid;
  grid-template-columns:repeat(4,auto);
  justify-content:start;
}
.footer-nav__list li a{
  font-size:.8125rem;letter-spacing:.1em;color:#fff;
  padding:6px 28px 6px 0;
  display:block;position:relative;overflow:hidden;
  transition:color var(--t);
}
.footer-nav__list li a:hover{color:#fff;opacity:1}
.footer-nav__bottom{
  display:flex;align-items:center;justify-content:space-between;
  padding-right:clamp(16px,3vw,48px);
}
.footer-nav__ig{
  display:inline-flex;align-items:center;color:rgba(255,255,255,.45);
  transition:color var(--t);
}
.footer-nav__ig:hover{color:#fff;opacity:1}
.site-footer__bottom{
  border-top:1px solid rgba(255,255,255,.08);
  text-align:center;
  padding:18px clamp(40px,6vw,100px);
}
.site-footer__copy{font-size:.625rem;color:rgba(255,255,255,.28);letter-spacing:.2em}

/* ── Scroll fade-in ── */
.fade-in{
  opacity:0;
  transform:translateY(36px);
  transition:opacity 1.6s cubic-bezier(0.16,1,0.3,1), transform 1.6s cubic-bezier(0.16,1,0.3,1);
}
.fade-in.is-visible{opacity:1;transform:none}

/* ── Page Hero (archive / single) ── */
.page-hero{
  position:relative;
  height:clamp(160px,18vw,260px);
  overflow:hidden;
}
.page-hero__img{position:absolute;inset:0}
.page-hero__img img{width:100%;height:100%;object-fit:cover}
.page-hero__overlay{position:absolute;inset:0;background:rgba(0,0,0,.35)}
.page-hero__heading{
  position:absolute;inset:0;
  display:flex;align-items:center;
  padding:0 clamp(40px,6vw,100px);
}
.page-hero__heading .about__name-jp{color:#fff}
.page-hero__heading .about__name-en{color:#BC4833;border-left-color:rgba(255,255,255,.4)}

/* ── Archive News ── */
.single-news,.archive-news{padding-top:0}
.archive-news__content{
  max-width:1280px;margin:0 auto;
  padding:clamp(48px,6vw,80px) clamp(40px,6vw,100px);
}
.archive-news__list{margin-bottom:48px}
.archive-news__item{border-bottom:1px solid var(--border)}
.archive-news__item:first-child{border-top:1px solid var(--border)}
.archive-news__link{
  display:grid;
  grid-template-columns:120px 1fr auto;
  align-items:center;gap:24px;
  padding:20px 0;
  transition:opacity var(--t);
}
.archive-news__link:hover{opacity:.65}
.archive-news__date{font-size:.8125rem;font-weight:300;color:var(--text-light);letter-spacing:.1em}
.archive-news__title{font-size:.9375rem;letter-spacing:.06em;line-height:1.7}
.archive-news__arrow{
  color:var(--text-light);font-size:.875rem;
  transition:transform var(--t);
}
.archive-news__link:hover .archive-news__arrow{transform:translateX(4px)}

/* ── Single News ── */
.single-news__header{
  max-width:760px;margin:0 auto;
  padding:clamp(40px,5vw,64px) clamp(40px,6vw,72px) clamp(24px,3vw,40px);
  border-bottom:1px solid var(--border);
}
.single-news__date{
  font-size:.8125rem;font-weight:300;letter-spacing:.12em;
  color:var(--text-light);display:block;margin-bottom:16px;
}
.single-news__title{
  font-size:clamp(1.125rem,2vw,1.5rem);font-weight:400;
  letter-spacing:.08em;line-height:1.7;
}
.single-news__content{
  max-width:760px;margin:0 auto;
  padding:clamp(32px,4vw,56px) clamp(40px,6vw,72px);
}
.single-news__content p{font-size:.9375rem;line-height:2.2;color:var(--text-mid);margin-bottom:1.5em}
.single-news__content img{max-width:100%;height:auto;margin:24px 0}
.single-news__back{
  text-align:center;
  padding:0 clamp(40px,6vw,100px) clamp(56px,7vw,88px);
}
.no-posts{color:var(--text-light);font-size:.9375rem}
.pagination{margin-top:48px;text-align:center}
.pagination .nav-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;
  border:1px solid var(--border);
  font-size:.875rem;color:var(--text-light);transition:all var(--t);
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover{background:var(--text);color:#fff;border-color:var(--text);opacity:1}

/* ── Mobile Header ── */
.mobile-header{
  display:none;
  position:fixed;top:0;left:0;right:0;
  height:56px;z-index:600;
  background:var(--bg);
/*   border-bottom:1px solid var(--border); */
  align-items:center;
  justify-content:flex-end;
  padding:0 20px;
}
.mobile-header__logo img{height:36px;width:auto;display:block}
.mobile-header__toggle{
  background:none;border:none;cursor:pointer;
  width:24px;height:18px;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:0;
}
.mobile-header__toggle span{
  display:block;width:100%;height:0.5px;
  background:var(--text);
  transition:transform .35s ease, opacity .35s ease;
  transform-origin:center;
}
.mobile-header__toggle span:nth-child(2){
  position:relative;left:8px;
}
.mobile-header__toggle.is-open span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.mobile-header__toggle.is-open span:nth-child(2){opacity:0}
.mobile-header__toggle.is-open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}

/* Mobile Nav */
.mobile-nav{
  display:none;
  position:fixed;inset:0;z-index:590;
  background:var(--bg-dark);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  opacity:0;
  pointer-events:none;
  transition:opacity .4s ease;
}
.mobile-nav.is-open{opacity:1;pointer-events:auto}
.mobile-nav__list{
  list-style:none;
  text-align:center;
  margin-bottom:40px;
}
.mobile-nav__list li a{
  display:block;
  padding:14px 0;
  font-size:1rem;
  letter-spacing:.2em;
  color:rgba(255,255,255,.8);
  transition:color var(--t);
}
.mobile-nav__list li a:hover{color:#fff;opacity:1}
.mobile-nav__reserve{
  display:inline-flex;align-items:center;gap:12px;
  padding:14px 32px;
  border:0.5px solid rgba(255,255,255,.4);
  font-size:.875rem;letter-spacing:.18em;color:#fff;
  transition:opacity var(--t);
}
.mobile-nav__reserve:hover{opacity:.65}

/* ── Loader ── */
#loader{
  position:fixed;inset:0;z-index:9999;
  background:#1a1510;
  overflow:hidden;
  transition:opacity .5s ease-in-out;
}
#loader.is-done{opacity:0;pointer-events:none}
.loader__counter{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-110%,-50%);
  z-index:200;pointer-events:none;
  transition:opacity .5s ease-out;
}
.loader__counter.is-out{opacity:0}
.loader__num{
  display:block;
  font-size:clamp(56px,13vmin,160px);
  font-weight:300;line-height:1;letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
  color:rgba(255,255,255,.92);
  text-shadow:0 0 60px rgba(0,0,0,.9),0 0 24px rgba(0,0,0,.7);
  opacity:.6;
  transition:opacity .25s ease-out;
}
.loader__stage{
  position:absolute;inset:0;
  z-index:10;
}
.loader__img{
  position:absolute;
  top:50%;left:54%;
  width:clamp(260px,52vmin,620px);
  height:clamp(170px,34vmin,400px);
  object-fit:cover;
  box-shadow:0 24px 60px rgba(0,0,0,.55);
  filter:grayscale(1);
  will-change:transform,opacity,filter;
  opacity:0;
  transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(1.12);
  transition:transform .45s cubic-bezier(.22,.61,.36,1),
             opacity .35s ease-out,
             filter .5s ease-out;
}
.loader__logo{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  z-index:40;
  will-change:opacity;
  opacity:0;
  transform:scale(.96);
  transition:opacity .5s ease-in-out,transform .5s ease-in-out;
}
.loader__logo.is-visible{opacity:1;transform:scale(1)}
.loader__logo img{width:clamp(130px,18vmin,220px);height:auto}
@media(prefers-reduced-motion:reduce){
  .loader__img,.loader__logo{transition-duration:.01ms}
}

/* ── Responsive ── */
@media(max-width:1100px){
  .about__inner{gap:32px}
  .store__inner{gap:32px}
  .site-footer__inner{gap:32px}
  .footer-nav__list{grid-template-columns:repeat(3,auto)}
}

@media(max-width:768px){
  :root{--sidebar-w:0px}
  body{padding-left:0;}
  .site-sidebar{display:none}
  .mobile-header{display:flex; background: unset;}
  .mobile-nav{display:flex}

  /* Hero */
  .hero{margin-left:0;width:100%;height: 105svh}
  .hero__brand{
    display:block;
    top:16px;
    left:16px;
	      height: 105svh;
  }
  .hero__brand .hero__logo{width:clamp(56px,14vw,80px)}
  .mobile-header__logo{display:none}
  .hero__titles{
    left:50%;
    transform:translateX(-50%);
    right:auto;
    top:15svh;
    height:380px;
  }
  .hero__title-main{font-size:2.6rem}
  .hero__title-sub{font-size:1.5rem}
  .hero__desc{
	  font-size: 12px;
	  line-height:1.6em;
        text-align: center;
        left: 0;
        right: 0;
	  bottom:5vh;
        margin: auto;
	}
  .hero__reserve{
    bottom:24px;right:20px;
    width:88px;height:88px;
    font-size:10px;gap:4px;
  }

  /* 共通 padding */
  .about__inner,
  .kodawari__top,
  .menu-section__head,
  .menu-tabs,
  .store__inner,
  .instagram-section__inner,
  .news-section__inner,
  .archive-news__content,
  .single-news__header,
  .single-news__content,
  .single-news__back,
  .site-footer__inner{
    padding-left:20px;
    padding-right:20px;
  }

  /* h2 横書き */
  .about__heading{flex-direction:column;gap:6px;margin-bottom:16px}
  .about__name-jp{
    writing-mode:horizontal-tb;
    font-size:22px;
    padding-right:0;
  }
  .about__name-en{
    writing-mode:horizontal-tb;
    border-left:none;
    border-top:0.5px solid var(--border);
    padding-left:0;
    padding-top:8px;
    font-size:12px;
    display:inline-block;
    width:72px;
    white-space:nowrap;
    overflow:visible;
  }

  /* About */
  .about{padding:clamp(48px,8vw,80px) 0}
  .about__inner{grid-template-columns:1fr;gap:24px}
  .about__content{padding-top:0}

  /* Kodawari */
  .kodawari{padding-top:clamp(48px,8vw,80px);background:var(--bg-white)}
  .kodawari__top{grid-template-columns:1fr;gap:24px}
  .kodawari__top .about__heading{order:-1}
  .kodawari__text{padding-top:0}
  .kodawari__strip{width:100%}
  .kodawari__h3{margin-top:24px}
  .kodawari__h3-jp{font-size:15px}
  .kodawari__h3-en{font-size:11px}

  /* Menu */
  .menu-section{padding-top:clamp(48px,8vw,80px)}
  .menu-section__head{
    grid-template-columns:1fr;
    gap:20px;
  }
  .menu-section__head .about__heading{order:0}
  .menu-section__desc{padding-top:0}
  .menu-mosaic{grid-template-columns:1fr;grid-template-rows:auto;margin-top:24px}
  .mosaic-cell--wide{grid-column:1}
  .mosaic-cell{height:240px}
  .mosaic-cell--text{height:auto;padding:32px 20px 32px}
  .mosaic-cats span{font-size:14px;white-space:nowrap}
  .mosaic-cats--en span{font-size:13px}

  /* Store */
  .store__photo{display:none}
  .store{padding-top:clamp(48px,8vw,80px)}
  .store__inner{grid-template-columns:1fr;gap:32px}
  .store__info{padding-top:0}
  .store__table th{width:100px;font-size:14px}
  .store__map{width:calc(100% - 40px)}
  .btn-reserve{display:flex;margin:0 auto;width:fit-content}

  /* Instagram */
  .instagram-section{padding:clamp(48px,8vw,80px) 0}
  .instagram-section__inner{grid-template-columns:1fr;gap:24px}
  .instagram-section__inner .about__heading{order:-1}
  .instagram-content{padding-top:0}
  .instagram-photos{grid-template-columns:repeat(2,1fr);gap:6px}
  .btn-instagram{align-self:center}

  /* News */
  .news-section{padding:clamp(48px,8vw,80px) 0}
  .news-section__inner{grid-template-columns:1fr;gap:24px}
  .news-content{padding-top:0}
  .news-card__link{grid-template-columns:90px 1fr}
  .news-card__title{font-size:.8125rem}
  .news-section__more{text-align:center}

  /* Related stores */
  .related-stores{height:auto}
  .related-stores__content{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    justify-items:center;
    text-align:center;
    gap:20px;
    padding:clamp(40px,8vw,80px) 20px;
  }
  .related-stores__content .about__heading{align-items:center}
  .related-stores__content .about__name-en{border-left:none;border-top:0.5px solid rgba(255,255,255,0.5)}
  .btn-related{width:auto;justify-content:center;gap:24px}

  /* Page hero */
  .page-hero{height:clamp(120px,30vw,180px)}
  .page-hero__heading{padding:0 20px}

  /* Archive / Single News */
  .archive-news__content{padding-top:32px;padding-bottom:48px}
  .archive-news__link{grid-template-columns:80px 1fr;gap:12px}
  .single-news__header{padding:32px 20px 20px}
  .single-news__content{padding:24px 20px}
  .single-news__back{padding:0 20px 48px}

  /* Footer */
  .site-footer__inner{
    grid-template-columns:1fr;
    padding-top:clamp(24px,4vw,40px);
    padding-bottom:clamp(20px,3vw,32px);
  }
  .footer-nav__list{grid-template-columns:repeat(2,auto)}
  .footer-right{gap:20px}
}

@media(max-width:480px){
  .hero__title-main{font-size:2rem}
  .instagram-photos{grid-template-columns:repeat(2,1fr)}
  .footer-nav__list{grid-template-columns:repeat(2,auto)}
}
