@charset "UTF-8";
/* =============================================================
   鮨 美寿志（大阪・中之島）— main.css
   墨黒 × 金 × 生成り / 明朝主体
   ============================================================= */

/* ---------------------------------------------------- tokens */
:root{
  --ink:        #0c0c0d;
  --ink-soft:   #161618;
  --gold:       #b0904f;
  --gold-lt:    #d8c191;
  --gold-dk:    #85692f;
  --paper:      #f7f4ee;
  --paper-dk:   #ebe5da;
  --white:      #fff;
  --line:       rgba(12,12,13,.15);
  --line-lt:    rgba(255,255,255,.24);
  --txt-70:     rgba(12,12,13,.74);
  /* 小さい文字にも使うので、生成り地に対して 4.5:1 を割らない濃さにしてある */
  --txt-55:     rgba(12,12,13,.68);

  --mincho: "Shippori Mincho B1", "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --serif:  "Cormorant Garamond", "Shippori Mincho B1", serif;
  --sans:   "Noto Sans JP", -apple-system, "Hiragino Sans", "Yu Gothic UI", sans-serif;

  --wrap: 1180px;
  --wide: 1400px;
  --pad: clamp(20px, 5vw, 56px);
  --sec: clamp(76px, 10vw, 150px);
  --hd-h: 82px;

  --ease: cubic-bezier(.22,.61,.36,1);
}
@media (max-width: 1100px){ :root{ --hd-h: 64px; } }

/* ---------------------------------------------------- reset */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--mincho); font-size:16px; line-height:2;
  font-feature-settings:"palt" 1; letter-spacing:.04em;
  -webkit-font-smoothing:antialiased;
}
img,svg,video,iframe{ max-width:100%; }
img,svg,video{ height:auto; vertical-align:middle; }
picture{ display:contents; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
figure{ margin:0; }
address{ font-style:normal; }
ul,ol{ list-style:none; margin:0; padding:0; }
dl,dd{ margin:0; }
h1,h2,h3,h4,p{ margin:0; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--ink); color:#fff; padding:12px 20px;
}
.skip-link:focus{ left:0; }

/* 言語別の字送り */
.lang-en, .lang-ko{ letter-spacing:.012em; }
.lang-en p, .lang-en .lead{ line-height:1.9; }

/* ---------------------------------------------------- 共通パーツ */
.eyebrow{
  font-family:var(--serif); font-size:12px; letter-spacing:.34em;
  text-transform:uppercase; color:var(--gold-dk); margin-bottom:16px;
}
.eyebrow--light{ color:var(--gold-lt); }

.h2{
  font-family:var(--mincho); font-weight:500; text-wrap:balance;
  font-size:clamp(23px,3.1vw,38px); line-height:1.65; letter-spacing:.09em;
}
.h2--light{ color:var(--white); }

.lead{
  margin-top:24px; font-size:clamp(14.5px,1.05vw,16px);
  line-height:2.15; color:var(--txt-70);
}
.lead--center{ max-width:740px; margin-inline:auto; text-align:center; }
.lead--light{ color:rgba(255,255,255,.78); }

.sec-head{ text-align:center; padding:0 var(--pad); margin-bottom:clamp(36px,4.5vw,64px); }
.sec-foot{ text-align:center; margin-top:clamp(36px,4.5vw,60px); padding:0 var(--pad); }

/* ボタン */
.btn{
  --bg:transparent; --fg:var(--ink); --bd:currentColor;
  display:inline-flex; align-items:center; justify-content:center; gap:14px;
  min-height:52px; padding:14px 32px; border:1px solid var(--bd);
  background:var(--bg); color:var(--fg);
  font-family:var(--mincho); font-size:14px; letter-spacing:.14em; line-height:1.5;
  position:relative; isolation:isolate; overflow:hidden;
  transition:color .45s var(--ease), border-color .45s var(--ease);
}
.btn i{
  width:18px; height:1px; background:currentColor; position:relative; flex:none;
  transition:width .4s var(--ease);
}
.btn i::after{
  content:""; position:absolute; right:0; top:-3px; width:7px; height:7px;
  border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg);
}
.btn::before{
  content:""; position:absolute; inset:0; background:var(--hover,var(--ink));
  transform:scaleX(0); transform-origin:right; transition:transform .5s var(--ease); z-index:-1;
}
.btn:hover::before{ transform:scaleX(1); transform-origin:left; }
.btn:hover i{ width:28px; }

.btn--ink{ --bg:var(--ink); --fg:var(--white); --bd:var(--ink); --hover:var(--gold-dk); }
.btn--ink:hover{ border-color:var(--gold-dk); color:#fff; }
.btn--gold{ --bg:var(--gold); --fg:#14100a; --bd:var(--gold); --hover:var(--gold-lt); }
.btn--gold:hover{ color:#14100a; }
.btn--ghost{ --fg:var(--ink); --bd:rgba(12,12,13,.32); --hover:var(--ink); }
.btn--ghost:hover{ color:var(--paper); border-color:var(--ink); }
.btn--outline{ --fg:var(--white); --bd:var(--line-lt); --hover:var(--white); }
.btn--outline:hover{ color:var(--ink); border-color:var(--white); }
.btn--text{ border-color:transparent; padding-inline:8px; min-height:44px; }
.btn--text::before{ display:none; }
.btn--text:hover{ color:var(--gold-dk); }
.btn--text-light{ color:rgba(255,255,255,.78); }
.btn--text-light:hover{ color:var(--gold-lt); }

/* reveal */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity .95s var(--ease) var(--d,0s), transform .95s var(--ease) var(--d,0s); }
[data-reveal="left"]{ transform:translateX(-30px); }
[data-reveal="right"]{ transform:translateX(30px); }
[data-reveal].in{ opacity:1; transform:none; }
/* 狭い画面では横方向のオフセットが横スクロールの原因になるので縦だけにする */
@media (max-width: 900px){
  [data-reveal="left"], [data-reveal="right"]{ transform:translateY(26px); }
}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* =============================================================
   HEADER
   ============================================================= */
.hd{
  position:fixed; inset:0 0 auto; z-index:100; min-height:var(--hd-h);
  transition:background .45s var(--ease), border-color .45s var(--ease);
  border-bottom:1px solid transparent;
}
.hd[data-transparent="0"], .hd.is-solid{
  background:rgba(12,12,13,.94); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom-color:rgba(255,255,255,.1);
}
.hd.is-hidden{ transform:translateY(-100%); transition:transform .4s var(--ease); }
.hd__inner{
  min-height:var(--hd-h); max-width:var(--wide); margin:0 auto; padding:0 var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.hd__logo a{ display:flex; align-items:center; min-height:44px; }
.hd__mark{ width:clamp(96px,10vw,130px); height:auto; }
.hd__nav{ display:flex; align-items:center; gap:clamp(14px,2vw,32px); margin-left:auto; }
.hd__list{ display:flex; align-items:center; gap:clamp(12px,1.8vw,28px); }
.hd__list a{
  display:flex; flex-direction:column; align-items:center; gap:3px;
  color:rgba(255,255,255,.9); padding:10px 2px; position:relative;
}
.hd__list a span{ font-family:var(--serif); font-size:13.5px; letter-spacing:.13em; }
.hd__list a i{ font-style:normal; font-size:9.5px; letter-spacing:.08em; opacity:.62; font-family:var(--sans); }
.hd__list a::after{
  content:""; position:absolute; left:0; right:0; bottom:4px; height:1px;
  background:var(--gold); transform:scaleX(0); transition:transform .4s var(--ease);
}
.hd__list a:hover{ color:#fff; }
.hd__list a:hover::after{ transform:scaleX(1); }

.hd__reserve{
  display:inline-flex; align-items:center; gap:8px; min-height:44px;
  padding:11px 22px; background:var(--gold); color:#14100a;
  font-family:var(--mincho); font-size:13.5px; letter-spacing:.12em;
  transition:background .35s var(--ease), color .35s var(--ease);
}
.hd__reserve:hover{ background:var(--gold-lt); }

/* 言語切替 */
.lang{ position:relative; }
.lang__code{ display:none; }   /* モバイルのみ表示（現在の言語コード） */
.lang__btn{
  display:flex; align-items:center; gap:7px; min-height:44px; color:rgba(255,255,255,.86);
  font-family:var(--serif); font-size:12.5px; letter-spacing:.13em; padding:8px 4px;
}
.lang__btn:hover{ color:var(--gold-lt); }
.lang__list{
  position:absolute; right:0; top:calc(100% + 8px); min-width:152px;
  background:rgba(12,12,13,.97); border:1px solid rgba(255,255,255,.14);
  opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
}
.lang.is-open .lang__list{ opacity:1; visibility:visible; transform:none; }
.lang__list a{
  display:block; padding:12px 18px; font-size:13px; color:rgba(255,255,255,.82);
  font-family:var(--sans); letter-spacing:.05em; border-bottom:1px solid rgba(255,255,255,.07);
}
.lang__list li:last-child a{ border-bottom:0; }
.lang__list a:hover{ background:rgba(255,255,255,.08); color:#fff; }
.lang__list a[aria-current]{ color:var(--gold-lt); }

/* ハンバーガー */
.hd__burger{ display:none; width:46px; height:46px; position:relative; margin-right:-10px; }
.hd__burger span{
  position:absolute; left:12px; right:12px; height:1px; background:#fff;
  transition:transform .4s var(--ease), opacity .3s;
}
.hd__burger span:nth-child(1){ top:17px; }
.hd__burger span:nth-child(2){ top:23px; }
.hd__burger span:nth-child(3){ top:29px; }
.hd__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.hd__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hd__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ドロワー */
.drawer{
  position:fixed; inset:0; z-index:99; background:#0c0c0d;
  display:flex; align-items:flex-start; justify-content:center;
  padding:calc(var(--hd-h) + 20px) var(--pad) 40px; overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.drawer[hidden]{ display:none; }
.drawer__nav{ width:100%; max-width:440px; }
.drawer__nav > ul > li{ border-bottom:1px solid rgba(255,255,255,.1); }
.drawer__nav > ul > li a{
  display:flex; align-items:baseline; gap:14px; min-height:56px; padding:16px 4px; color:#fff;
}
.drawer__nav > ul > li a span{ font-family:var(--serif); font-size:19px; letter-spacing:.15em; }
.drawer__nav > ul > li a i{ font-style:normal; font-size:11.5px; opacity:.58; font-family:var(--sans); }
.drawer__cta{ display:flex; flex-direction:column; gap:14px; margin-top:30px; }
.drawer__cta .btn{ width:100%; }
.drawer__tel{
  display:block; text-align:center; min-height:44px; padding:10px;
  font-family:var(--serif); font-size:19px; letter-spacing:.14em; color:var(--gold-lt);
}
.drawer__lang-label{
  margin-top:30px; font-family:var(--sans); font-size:10.5px; letter-spacing:.24em;
  text-transform:uppercase; color:rgba(255,255,255,.42);
}
.drawer__lang{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.drawer__lang a{
  display:inline-flex; align-items:center; min-height:44px; padding:0 15px;
  border:1px solid rgba(255,255,255,.22); font-size:13px;
  color:rgba(255,255,255,.8); font-family:var(--sans);
}
.drawer__lang a[aria-current]{ border-color:var(--gold-lt); color:var(--gold-lt); }

@media (max-width: 1100px){
  .hd__list{ display:none; }
  /* 言語切替はモバイルでもヘッダーに残す。ドロワーの中だけだと客が見つけられず
     「英語が選択できない」という指摘になった（2026-08-09） */
  .hd__nav .lang{ display:block; }
  .lang__btn{ padding:10px 4px; min-height:44px; gap:5px; }
  .lang__txt{ display:none; }
  .lang__code{ display:inline; font-size:11.5px; letter-spacing:.1em; }
  .hd__reserve{ display:none; }
  .hd__burger{ display:block; }
}

/* =============================================================
   ① HERO
   ============================================================= */
.hero{
  position:relative; min-height:100svh; display:grid; place-items:center;
  overflow:hidden; background:var(--ink);
  padding:calc(var(--hd-h) + 40px) 0 96px;
}
.hero__media{ position:absolute; inset:0; }
.hero__img, .hero__video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; max-width:none;
}
.hero__img{ animation:heroZoom 24s var(--ease) forwards; }
.hero__video{ opacity:0; transition:opacity 1.2s var(--ease); }
.hero__video.is-on{ opacity:1; }
@keyframes heroZoom{ from{ transform:scale(1.09); } to{ transform:scale(1); } }

.hero__veil{
  position:absolute; inset:0;
  background:
    radial-gradient(110% 80% at 50% 46%, rgba(0,0,0,.18) 0%, rgba(0,0,0,.48) 60%, rgba(0,0,0,.72) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.56) 0%, rgba(0,0,0,.2) 26%, rgba(0,0,0,.24) 58%, rgba(0,0,0,.78) 100%);
}
.hero__body{ position:relative; text-align:center; padding:0 var(--pad); max-width:1000px; }
/* 店名はロゴ画像ではなくタイポグラフィで主役に見せる（書ロゴはヘッダーのみ） */
.hero__title{ margin-top:0; }
.hero__name{
  display:block; font-family:var(--mincho); font-weight:500; color:#fff;
  font-size:clamp(38px,9vw,116px); letter-spacing:.16em; text-indent:.16em; line-height:1.15;
  text-shadow:0 4px 40px rgba(0,0,0,.55);
  opacity:0; animation:fadeUp 1.4s var(--ease) .2s forwards;
}
.hero__en{
  display:block; margin-top:clamp(16px,2vw,26px);
  font-family:var(--serif); font-weight:400;
  font-size:clamp(13px,1.6vw,19px); letter-spacing:.5em; text-indent:.5em;
  color:var(--gold-lt); opacity:0; animation:fadeUp 1.3s var(--ease) .5s forwards;
}
.hero__catch{
  margin-top:clamp(22px,3vw,34px); max-width:26em; margin-inline:auto; text-wrap:balance;
  font-family:var(--mincho); color:#fff;
  font-size:clamp(16px,2.15vw,27px); line-height:1.95; letter-spacing:.1em;
  text-shadow:0 2px 26px rgba(0,0,0,.62);
  opacity:0; animation:fadeUp 1.4s var(--ease) .7s forwards;
}
.hero__place{
  margin-top:clamp(14px,1.8vw,20px);
  font-family:var(--sans); font-size:clamp(11px,1.05vw,13px); letter-spacing:.14em;
  color:rgba(255,255,255,.76);
  opacity:0; animation:fadeUp 1.3s var(--ease) .95s forwards;
}
.hero__cta{
  display:flex; flex-wrap:wrap; justify-content:center; gap:14px;
  margin-top:clamp(30px,4vw,44px);
  opacity:0; animation:fadeUp 1.3s var(--ease) 1.15s forwards;
}
@keyframes fadeUp{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:none; } }

.hero__scroll{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:rgba(255,255,255,.7); opacity:0; animation:fadeUp 1.3s var(--ease) 1.5s forwards;
}
.hero__scroll span{ font-family:var(--serif); font-size:10px; letter-spacing:.32em; }
.hero__scroll i{ display:block; width:1px; height:48px; background:rgba(255,255,255,.28); position:relative; overflow:hidden; }
.hero__scroll i::after{
  content:""; position:absolute; inset:0; background:var(--gold-lt);
  animation:scrollLine 2.4s var(--ease) infinite;
}
@keyframes scrollLine{ 0%{ transform:translateY(-100%); } 60%,100%{ transform:translateY(100%); } }

@media (max-width: 700px){
  .hero__scroll{ display:none; }
  .hero{ padding-bottom:64px; }
  .hero__cta .btn{ width:min(320px,100%); }
}

/* =============================================================
   ② ファクト帯
   ============================================================= */
.facts{ background:var(--ink-soft); color:#fff; padding:clamp(28px,3.4vw,44px) var(--pad); }
.facts__list{
  max-width:var(--wrap); margin:0 auto;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
}
.facts__item{ padding:8px clamp(12px,2vw,28px); text-align:center; border-left:1px solid rgba(255,255,255,.14); }
.facts__item:first-child{ border-left:0; }
.facts__item dt{
  font-family:var(--serif); font-size:11px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold-lt); margin-bottom:8px;
}
.facts__item dd{
  font-size:clamp(13px,1.15vw,15.5px); line-height:1.85; letter-spacing:.05em;
  color:rgba(255,255,255,.94);
}
@media (max-width: 700px){
  .facts__list{ grid-template-columns:1fr; }
  .facts__item{ border-left:0; border-top:1px solid rgba(255,255,255,.13); padding:14px 0; }
  .facts__item:first-child{ border-top:0; }
}

/* =============================================================
   ③ 赤酢のシャリ
   ============================================================= */
.essence{ padding:var(--sec) var(--pad) clamp(48px,6vw,88px); background:var(--paper); }
.essence__grid{
  max-width:var(--wrap); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr);
  gap:clamp(32px,5vw,76px); align-items:center;
}
.essence__text .lead{ max-width:38em; }
.essence__photo img{
  width:100%; aspect-ratio:3/2; object-fit:cover;
  box-shadow:0 22px 54px rgba(12,12,13,.24);
}
@media (max-width: 900px){
  .essence__grid{ grid-template-columns:1fr; gap:clamp(30px,6vw,48px); }
}

/* =============================================================
   料理写真
   ============================================================= */
.dishes{ padding:0 var(--pad) var(--sec); background:var(--paper); }
.dishes__grid{
  max-width:var(--wide); margin:0 auto;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.8vw,26px);
}
.dishes__item figure{ position:relative; overflow:hidden; background:var(--paper-dk); }
.dishes__item img{
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  transition:transform 1.2s var(--ease);
}
.dishes__item:hover img{ transform:scale(1.05); }
.dishes__item figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:clamp(14px,1.6vw,20px);
  color:#fff; font-size:clamp(12.5px,1.05vw,14.5px); letter-spacing:.1em; line-height:1.7;
  background:linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0));
  text-shadow:0 1px 12px rgba(0,0,0,.7);
}
@media (max-width: 1000px){ .dishes__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px){
  .dishes__grid{ grid-template-columns:1fr; max-width:520px; }
  .dishes__item img{ aspect-ratio:3/2; }
}

/* =============================================================
   コース
   ============================================================= */
.courses{ padding:var(--sec) 0; background:var(--paper-dk); }
.courses__list{
  max-width:var(--wrap); margin:0 auto; padding:0 var(--pad);
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2.2vw,32px);
}
.courses__item{
  background:var(--paper); border:1px solid var(--line);
  padding:clamp(28px,3vw,44px) clamp(20px,2.4vw,32px); text-align:center;
  display:flex; flex-direction:column; gap:10px; justify-content:flex-start;
}
.courses__time{
  font-family:var(--serif); font-size:11px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold-dk);
}
.courses__name{
  font-family:var(--mincho); font-weight:500; font-size:clamp(24px,2.6vw,32px);
  letter-spacing:.18em; line-height:1.5; margin-top:4px;
}
.courses__name span{
  display:block; margin-top:8px; font-family:var(--sans); font-weight:400;
  font-size:11.5px; letter-spacing:.16em; color:var(--txt-55);
}
.courses__items{ font-size:13px; letter-spacing:.1em; color:var(--txt-55); }
.courses__price{
  margin-top:auto; padding-top:14px;
  font-family:var(--serif); font-size:clamp(24px,2.6vw,32px); letter-spacing:.06em; color:var(--ink);
}
.courses__note{
  max-width:var(--wrap); margin:clamp(24px,3vw,36px) auto 0; padding:0 var(--pad);
  text-align:center; font-family:var(--sans); font-size:12.5px; line-height:1.9; color:var(--txt-55);
}
@media (max-width: 860px){
  .courses__list{ grid-template-columns:1fr; max-width:520px; }
  .courses__item{ text-align:left; }
  .courses__price{ padding-top:8px; }
}

/* =============================================================
   ④ 板前
   ============================================================= */
.chef{ padding:var(--sec) var(--pad); background:var(--ink); color:#fff; }
.chef__grid{
  max-width:var(--wrap); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr);
  gap:clamp(32px,5vw,80px); align-items:center;
}
.chef__photo img{ width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center 22%; }
.chef__text .eyebrow{ color:var(--gold-lt); }
.chef__text .h2{ color:#fff; }
.chef__text .lead{ color:rgba(255,255,255,.78); max-width:36em; }
.chef__name{ margin-top:22px; font-size:clamp(17px,1.6vw,21px); letter-spacing:.12em; }
.chef__career{ margin-top:8px; font-family:var(--sans); font-size:13px; color:rgba(255,255,255,.62); line-height:1.9; }
@media (max-width: 900px){
  .chef__grid{ grid-template-columns:1fr; }
  .chef__photo{ max-width:420px; }
  .chef__photo img{ aspect-ratio:4/5; }
}

/* =============================================================
   席・個室
   ============================================================= */
.space{ padding:var(--sec) 0; background:var(--paper); }
.space__grid{
  max-width:var(--wide); margin:0 auto; padding:0 var(--pad);
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(14px,1.8vw,26px);
}
.space__item--wide{ grid-column:span 2; }
.space__item figure{ position:relative; overflow:hidden; background:var(--paper-dk); }
.space__item img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform 1.2s var(--ease); }
.space__item--wide img{ aspect-ratio:21/9; }
.space__item:hover img{ transform:scale(1.04); }
.space__item figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:clamp(14px,1.6vw,22px);
  color:#fff; font-size:clamp(12.5px,1.05vw,14.5px); letter-spacing:.1em;
  background:linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0));
  text-shadow:0 1px 12px rgba(0,0,0,.7);
}
@media (max-width: 600px){
  .space__grid{ grid-template-columns:1fr; max-width:520px; }
  .space__item--wide{ grid-column:span 1; }
  .space__item--wide img{ aspect-ratio:3/2; }
}

/* =============================================================
   ⑤ INFORMATION
   ============================================================= */
.info{ padding:var(--sec) var(--pad); background:var(--ink-soft); color:#fff; }
.info__list{
  max-width:960px; margin:0 auto;
  border-top:1px solid rgba(255,255,255,.14);
}
.info__item{
  display:grid; grid-template-columns:minmax(0,215px) minmax(0,1fr);
  gap:8px clamp(20px,3vw,48px);
  padding:clamp(20px,2.4vw,30px) 0; border-bottom:1px solid rgba(255,255,255,.14);
}
.info__item dt{
  font-size:14.5px; letter-spacing:.11em; color:var(--gold-lt); line-height:1.8;
}
.info__item dd{
  font-family:var(--sans); font-size:14px; line-height:2.05; letter-spacing:.03em;
  color:rgba(255,255,255,.9);
}
.info__route{ display:block; margin-top:10px; }
.info__addr{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px;
  margin-top:14px; padding:14px 16px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
}
.info__addr-text{ flex:1 1 240px; font-size:14px; line-height:1.85; color:#fff; }
.info__copy{
  display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 16px;
  border:1px solid var(--gold); color:var(--gold-lt);
  font-family:var(--sans); font-size:12.5px; letter-spacing:.06em;
  transition:background .3s var(--ease), color .3s var(--ease);
}
.info__copy:hover{ background:var(--gold); color:#14100a; }
.info__copy.is-done{ background:var(--gold); color:#14100a; border-color:var(--gold); }
.info__hint{ display:block; margin-top:10px; font-size:12.5px; color:rgba(255,255,255,.55); }
@media (max-width: 760px){
  .info__item{ grid-template-columns:1fr; gap:6px; }
  .info__item dt{ font-size:13.5px; }
}

/* =============================================================
   ⑥ アクセス
   ============================================================= */
.access{ padding:var(--sec) var(--pad); background:var(--paper); }
.access__grid{
  max-width:var(--wrap); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,4.5vw,68px); align-items:start;
}
.access__dl{ margin-top:32px; border-top:1px solid var(--line); }
.access__dl > div{
  display:grid; grid-template-columns:minmax(0,110px) minmax(0,1fr); gap:6px 20px;
  padding:16px 0; border-bottom:1px solid var(--line);
}
.access__dl dt{ font-size:13.5px; letter-spacing:.1em; color:var(--gold-dk); }
.access__dl dd{ font-family:var(--sans); font-size:14px; line-height:1.95; color:var(--txt-70); }
/* 電話番号は欧文セリフ（Cormorant）だと数字が古典体になり桁が揃わず読みにくい。
   和文サンセリフ＋等幅数字にする（2026-08-02 指摘） */
.access__tel{ font-family:var(--sans); font-size:19px; letter-spacing:.06em; color:var(--ink);
  font-feature-settings:"tnum" 1; font-variant-numeric:tabular-nums; }
.access__tel:hover{ color:var(--gold-dk); }
.access__links{ display:flex; flex-wrap:wrap; gap:12px 16px; margin-top:28px; }
.access__map{ position:relative; }
.access__map iframe{
  display:block; width:100%; height:clamp(320px,42vw,520px); border:0;
  filter:grayscale(.25) contrast(1.03);
}
@media (max-width: 900px){
  .access__grid{ grid-template-columns:1fr; }
  .access__dl > div{ grid-template-columns:1fr; }
  .access__dl dt{ color:var(--gold-dk); }
}

/* =============================================================
   ⑦ 1855年
   ============================================================= */
.hist{ position:relative; padding:calc(var(--sec)*.95) var(--pad); overflow:hidden; background:var(--ink); }
.hist__bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:.3; transform:scale(1.03);
}
.hist::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(12,12,13,.94) 0%, rgba(12,12,13,.8) 55%, rgba(12,12,13,.62) 100%);
}
.hist__inner{ position:relative; z-index:1; max-width:760px; margin:0 auto; text-align:center; }
.hist__body{
  margin-top:clamp(24px,3vw,36px); color:rgba(255,255,255,.82);
  font-size:clamp(14px,1.08vw,15.5px); line-height:2.3; text-align:left;
}
.hist__cta{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px 20px; margin-top:clamp(30px,4vw,44px); }

/* =============================================================
   ⑧ 予約
   ============================================================= */
.reserve{ padding:var(--sec) var(--pad); background:var(--paper-dk); text-align:center; }
.reserve__inner{ max-width:680px; margin:0 auto; }
.reserve__lead{ margin-top:20px; color:var(--txt-70); font-size:14.5px; line-height:2.05; }
.reserve__btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:34px; }
.reserve__note{ margin-top:18px; font-family:var(--sans); font-size:12px; color:var(--txt-55); }
@media (max-width: 600px){ .reserve__btns .btn{ width:min(320px,100%); } }

/* =============================================================
   FOOTER
   ============================================================= */
.ft{ background:var(--ink); color:rgba(255,255,255,.74); padding:clamp(52px,6.5vw,84px) var(--pad) 0; }
.ft__inner{
  max-width:var(--wrap); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,.9fr);
  gap:clamp(30px,4.5vw,60px);
}
.ft__mark{ width:150px; height:auto; }
.ft__addr{ margin-top:20px; font-family:var(--sans); font-size:13px; line-height:2; }
.ft__addr a{ font-family:var(--serif); font-size:18px; letter-spacing:.08em; color:#fff; }
.ft__addr a:hover{ color:var(--gold-lt); }
.ft__hours{ margin-top:14px; font-family:var(--sans); font-size:12.5px; line-height:1.95; color:rgba(255,255,255,.6); }
.ft__sns{ margin-top:18px; }
.ft__sns a{ display:inline-flex; align-items:center; gap:9px; min-height:44px; font-family:var(--sans); font-size:12.5px; letter-spacing:.08em; }
.ft__sns a:hover{ color:var(--gold-lt); }
.ft__nav{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 clamp(18px,2.6vw,36px); }
.ft__nav a{ display:block; padding:9px 0; font-size:13.5px; letter-spacing:.05em; transition:color .3s; }
.ft__nav a:hover{ color:var(--gold-lt); }
.ft__reserve .btn{ width:100%; }
.ft__note{ margin-top:12px; font-family:var(--sans); font-size:11.5px; color:rgba(255,255,255,.5); line-height:1.8; }

.ft__group{
  max-width:var(--wrap); margin:clamp(40px,5vw,64px) auto 0; padding-top:24px;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex; flex-wrap:wrap; align-items:center; gap:10px clamp(18px,3vw,32px);
}
.ft__group-label{ font-family:var(--serif); font-size:11px; letter-spacing:.3em; color:var(--gold-lt); }
.ft__group ul{ display:flex; flex-wrap:wrap; gap:8px clamp(16px,2.5vw,28px); }
.ft__group a{ display:inline-flex; align-items:center; gap:7px; min-height:40px; font-size:13px; letter-spacing:.05em; }
.ft__group a:hover{ color:var(--gold-lt); }

.ft__copy{
  max-width:var(--wrap); margin:22px auto 0; padding:20px 0 26px;
  border-top:1px solid rgba(255,255,255,.08); text-align:center;
}
.ft__copy small{ font-family:var(--sans); font-size:11.5px; letter-spacing:.06em; color:rgba(255,255,255,.48); line-height:2; }
.ft__invoice{ display:block; }
@media (max-width: 900px){ .ft__inner{ grid-template-columns:1fr; } }

.totop{
  position:fixed; right:18px; bottom:18px; z-index:80; width:46px; height:46px;
  display:grid; place-items:center; color:#fff; background:rgba(12,12,13,.84);
  border:1px solid rgba(255,255,255,.2);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .4s var(--ease), transform .4s var(--ease), visibility .4s, background .3s;
}
.totop.is-on{ opacity:1; visibility:visible; transform:none; }
.totop:hover{ background:var(--gold-dk); border-color:var(--gold-dk); }

/* =============================================================
   スマホ固定アクションバー
   ============================================================= */
.actionbar{ display:none; }
@media (max-width: 1100px){
  .actionbar{
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);
    position:fixed; left:0; right:0; bottom:0; z-index:90;
    background:rgba(12,12,13,.96); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-top:1px solid rgba(255,255,255,.14);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .actionbar a{
    display:flex; align-items:center; justify-content:center; gap:8px;
    min-height:56px; padding:12px 10px;
    font-family:var(--mincho); font-size:14px; letter-spacing:.12em;
  }
  .actionbar__tel{ color:#fff; }
  .actionbar__book{ background:var(--gold); color:#14100a; }
  body{ padding-bottom:56px; }
  .totop{ bottom:calc(66px + env(safe-area-inset-bottom)); }
}

/* =============================================================
   下層ページ（固定ページ / アーカイブ）
   ============================================================= */
.phead{
  position:relative; padding:calc(var(--hd-h) + clamp(58px,7vw,110px)) var(--pad) clamp(48px,5.5vw,80px);
  background:var(--ink); overflow:hidden; text-align:center;
}
.phead__bg{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:.34; }
.phead::after{ content:""; position:absolute; inset:0; background:linear-gradient(to bottom, rgba(12,12,13,.72), rgba(12,12,13,.9)); }
.phead__inner{ position:relative; z-index:1; }
.phead__en{
  font-family:var(--serif); font-size:clamp(11px,1.05vw,13px); letter-spacing:.34em;
  color:var(--gold-lt); text-transform:uppercase;
}
.phead h1{
  margin-top:14px; color:#fff; font-family:var(--mincho); font-weight:400;
  font-size:clamp(22px,3vw,36px); letter-spacing:.11em; line-height:1.6;
}
.crumbs{
  max-width:var(--wrap); margin:0 auto; padding:16px var(--pad) 0;
  font-size:11.5px; letter-spacing:.05em; color:var(--txt-55); font-family:var(--sans);
  overflow-wrap:anywhere;
}
.crumbs a{ color:var(--txt-70); }
.crumbs a:hover{ color:var(--gold-dk); }
.crumbs span{ margin:0 8px; opacity:.5; }

.pbody{ max-width:920px; margin:0 auto; padding:clamp(44px,5.5vw,80px) var(--pad) var(--sec); }

/* 本文（Gutenbergブロック）の体裁 */
.entry{ font-size:15.5px; line-height:2.15; overflow-wrap:break-word; }
.entry > * + *{ margin-top:1.6em; }
.entry h2{
  margin-top:2.6em; padding-bottom:.5em; border-bottom:1px solid var(--line);
  font-family:var(--mincho); font-weight:500; font-size:clamp(20px,2.4vw,28px);
  letter-spacing:.09em; line-height:1.6;
}
.entry h3{
  margin-top:2.2em; font-family:var(--mincho); font-weight:500;
  font-size:clamp(17px,1.9vw,21px); letter-spacing:.08em; line-height:1.7;
}
.entry h3.has-background, .entry h2.has-background{
  padding:.7em 1em; border-bottom:0; border-left:3px solid var(--gold);
}
.entry h4{ margin-top:2em; font-size:16.5px; font-weight:600; letter-spacing:.06em; }
.entry p{ margin-top:1.5em; }
.entry a:not(.wp-element-button):not(.wp-block-button__link){
  color:var(--gold-dk); text-decoration:underline; text-underline-offset:3px;
}
.entry a:not(.wp-element-button):not(.wp-block-button__link):hover{ color:var(--ink); }
.entry strong{ font-weight:600; }
.entry img{ height:auto; }
.entry figure{ margin-top:2em; }
.entry figcaption{ margin-top:10px; font-size:12px; color:var(--txt-55); text-align:center; font-family:var(--sans); }
.entry ul:not(.wp-block-buttons){ margin-top:1.4em; padding-left:1.3em; list-style:disc; }
.entry ol{ margin-top:1.4em; padding-left:1.4em; list-style:decimal; }
.entry li{ margin-top:.55em; }
.entry hr, .entry .wp-block-separator{ margin:3em 0; border:0; border-top:1px solid var(--line); height:0; }
.entry .wp-block-separator.has-background{ background:none !important; }
.entry blockquote{
  margin-top:2em; padding:1.2em 1.6em; border-left:2px solid var(--gold);
  background:rgba(12,12,13,.03); font-size:15px;
}
.entry table{ width:100%; border-collapse:collapse; margin-top:2em; font-size:14.5px; }
.entry th, .entry td{ padding:14px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.entry th{ width:30%; font-weight:500; color:var(--txt-70); }
.entry .wp-block-columns{ display:flex; flex-wrap:wrap; gap:clamp(18px,3vw,40px); margin-top:2em; }
.entry .wp-block-column{ flex:1 1 240px; min-width:0; }
.entry .wp-block-buttons{ display:flex; flex-wrap:wrap; gap:14px; margin-top:2em; }
.entry .wp-block-button__link, .entry .wp-element-button{
  display:inline-flex; align-items:center; justify-content:center; min-height:52px;
  padding:14px 34px; background:var(--ink) !important; color:#fff !important; border:1px solid var(--ink);
  font-family:var(--mincho); font-size:14px; letter-spacing:.14em; border-radius:0 !important;
  transition:background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.entry .wp-block-button__link:hover, .entry .wp-element-button:hover{
  background:var(--gold-dk) !important; border-color:var(--gold-dk); color:#fff !important;
}
.entry .is-style-outline .wp-block-button__link{ background:transparent !important; color:var(--ink) !important; }
.entry .is-style-outline .wp-block-button__link:hover{ background:var(--ink) !important; color:#fff !important; }
.entry .wp-block-image{ margin-top:2em; }
.entry .wp-block-image img{ max-width:100%; height:auto; }
.entry .wp-block-media-text{ margin-top:2.4em; }
.entry .wp-block-media-text img{ width:100%; height:auto; }
.entry .wp-block-spacer{ display:none; }          /* 余白はテーマ側のリズムに統一 */
.entry .wp-block-group{ margin-top:2em; }
.entry .has-text-align-center{ text-align:center; }
.entry .has-text-align-right{ text-align:right; }
.entry .has-black-background-color{ background:var(--ink) !important; color:#fff !important; }
/* 旧サイト（暗色背景前提）由来の白文字指定。紙面が明るい本テーマでは、
   同じ要素か祖先が実際に暗い背景を持つときだけ白を維持する。
   背景を持たない白文字は紙面に埋もれて完全に読めなくなるため本文色に戻す。
   例: メニューページの見出し「季節の逸品」／店舗情報ページの白い区切り線。 */
.entry .has-white-color{ color:var(--ink) !important; }
.entry .has-white-color[class*="-background-color"],
.entry .has-white-color.has-background,
.entry .has-white-color[style*="background"],
.entry [class*="-background-color"]:not([class*="white"]):not([class*="light"]) .has-white-color,
.entry .has-background:not([class*="white"]):not([class*="light"]) .has-white-color{ color:#fff !important; }
/* 白い区切り線は明るい紙面では見えないので罫線色に置き換える */
.entry hr.wp-block-separator.has-white-color{ color:var(--line) !important; border-color:var(--line) !important; }
.entry .has-black-color{ color:var(--ink) !important; }
.entry iframe{ max-width:100%; width:100%; border:0; }

/* Contact Form 7 */
.entry .wpcf7{ margin-top:2.4em; }
.entry .wpcf7 p{ margin-top:1.4em; }
.entry .wpcf7-form-control:not(.wpcf7-submit):not([type=checkbox]):not([type=radio]){
  width:100%; padding:14px 16px; border:1px solid var(--line); background:#fff;
  font-family:var(--sans); font-size:16px; border-radius:0; transition:border-color .3s;
}
.entry .wpcf7-form-control:focus{ outline:none; border-color:var(--gold); }
.entry textarea.wpcf7-form-control{ min-height:200px; line-height:1.9; }
.entry .wpcf7-submit{
  min-height:52px; padding:16px 48px; background:var(--ink); color:#fff; border:1px solid var(--ink);
  font-family:var(--mincho); letter-spacing:.16em; cursor:pointer;
  transition:background .35s var(--ease), border-color .35s;
}
.entry .wpcf7-submit:hover{ background:var(--gold-dk); border-color:var(--gold-dk); }
.entry .wpcf7-not-valid-tip{ color:#b23; font-size:13px; }
.entry .wpcf7-response-output{ margin:1.6em 0 0 !important; padding:14px 18px !important; font-size:14px; }

/* 一覧 */
.list{ max-width:var(--wrap); margin:0 auto; padding:clamp(44px,5.5vw,80px) var(--pad) var(--sec); }
.list__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(22px,3vw,42px); }
@media (max-width: 900px){ .list__grid{ grid-template-columns:1fr; max-width:520px; margin-inline:auto; } }

.card a{ display:block; }
.card__thumb{ display:block; overflow:hidden; aspect-ratio:16/10; background:var(--paper-dk); }
.card__thumb img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.card a:hover .card__thumb img{ transform:scale(1.06); }
.card__thumb-none{
  display:block; width:100%; height:100%;
  background:linear-gradient(135deg, var(--paper-dk), #ded6c7); position:relative;
}
.card__thumb-none::after{
  content:""; position:absolute; inset:0; margin:auto; width:36px; height:36px;
  border:1px solid rgba(12,12,13,.16); transform:rotate(45deg);
}
.card__body{ display:block; padding-top:18px; }
.card__body time{ font-family:var(--serif); font-size:12px; letter-spacing:.2em; color:var(--gold-dk); }
.card__body strong{
  display:block; margin-top:9px; font-size:16px; font-weight:500; line-height:1.8;
  letter-spacing:.06em; transition:color .35s var(--ease);
}
.card a:hover .card__body strong{ color:var(--gold-dk); }
.card__ex{ display:block; margin-top:11px; font-size:13px; line-height:1.95; color:var(--txt-55); font-family:var(--sans); }
.list__empty{ text-align:center; color:var(--txt-55); }

.pager{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:clamp(40px,5vw,68px); }
.pager .page-numbers{
  display:grid; place-items:center; min-width:44px; height:44px; padding:0 12px;
  border:1px solid var(--line); font-family:var(--serif); font-size:14px; letter-spacing:.1em;
  transition:background .3s, color .3s, border-color .3s;
}
.pager .page-numbers:hover, .pager .current{ background:var(--ink); border-color:var(--ink); color:#fff; }

/* 記事詳細 */
.single__meta{ text-align:center; margin-bottom:clamp(28px,3.5vw,48px); }
.single__meta time{ font-family:var(--serif); font-size:12.5px; letter-spacing:.24em; color:var(--gold-dk); }
.single__thumb{ margin-bottom:clamp(28px,3.5vw,48px); }
.single__thumb img{ width:100%; height:auto; }
.single__nav{ display:flex; justify-content:center; margin-top:clamp(44px,5.5vw,76px); }

/* 下層ページ末尾の予約導線 */
.pagecta{ background:var(--ink); color:#fff; padding:clamp(48px,6vw,80px) var(--pad); text-align:center; }
.pagecta__inner{ max-width:620px; margin:0 auto; }
.pagecta .h2{ color:#fff; }
.pagecta__lead{ margin-top:16px; color:rgba(255,255,255,.72); font-size:14px; line-height:2; }
.pagecta__btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:28px; }
@media (max-width: 600px){ .pagecta__btns .btn{ width:min(320px,100%); } }

/* 404 / search */
.simple{ min-height:56vh; display:grid; place-items:center; text-align:center; padding:calc(var(--hd-h) + 72px) var(--pad) 110px; }
.simple .h2{ margin-bottom:18px; }
.simple .lead{ margin-bottom:32px; }
