@charset "UTF-8";
/*
Theme Name: Togiya Kyoto
Theme URI: https://www.togiya-kyoto.com/
Description: 野菜ソムリエのお店「十祇家」公式サイト用オリジナルテーマ。和モダン／京町家をテーマにした、個室和食店向けのクラシックテーマです。店舗情報・電話番号・営業時間・各セクションの画像はカスタマイザーから編集できます。
Author: Togiya Kyoto
Version: 1.2.0
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: togiya
Tags: restaurant, japanese, custom-menu, custom-logo, translation-ready, full-width-template
*/
/* =========================================================
   十祇家 TOGIYA KYOTO  —  共通スタイルシート
   テーマ: 和モダン / 京町家
   ========================================================= */

/* ---------- 1. デザイントークン ---------- */
:root{
  /* 色 */
  --sumi:      #14110f;   /* 墨 */
  --sumi-2:    #2a241f;   /* 濃茶墨 */
  --sumi-3:    #4a423a;
  --text:      #3a332c;
  --text-mute: #6d645a;
  --kinari:    #f5f1e6;   /* 生成り */
  --washi:     #fbf8f1;   /* 和紙 */
  --line:      #ded5c3;
  --shu:       #a3322a;   /* 朱 */
  --shu-d:     #82251e;
  --kin:       #b39355;   /* 金茶 */
  --matcha:    #6e7a4c;   /* 抹茶 */

  /* 字 */
  --mincho: "Noto Serif JP","Noto Serif CJK JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","游明朝",serif;
  --gothic: "Noto Sans JP","Noto Sans CJK JP","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Meiryo",sans-serif;

  /* 寸法 */
  --wrap: 1120px;
  --wrap-narrow: 780px;
  --header-h: 74px;
  --r: 2px;
  --shadow: 0 18px 48px -24px rgba(20,17,15,.45);

  /* 和柄（麻の葉）テクスチャ */
  --asanoha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='97' viewBox='0 0 56 97'%3E%3Cg fill='none' stroke='%23b39355' stroke-width='1' stroke-opacity='.30'%3E%3Cpath d='M28 0 L56 16 L56 48 L28 64 L0 48 L0 16 Z'/%3E%3Cpath d='M28 0 L28 64 M0 16 L56 48 M56 16 L0 48'/%3E%3Cpath d='M28 64 L56 80 L56 97 M28 64 L0 80 L0 97'/%3E%3C/g%3E%3C/svg%3E");
  /* 和柄（青海波） */
  --seigaiha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.16' stroke-width='1.2'%3E%3Cpath d='M0 40a40 40 0 0 1 80 0M-40 40a40 40 0 0 1 80 0M40 40a40 40 0 0 1 80 0'/%3E%3Cpath d='M0 40a26 26 0 0 1 80 0M-40 40a26 26 0 0 1 80 0M40 40a26 26 0 0 1 80 0' transform='translate(0,0)'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- 2. リセット ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{
  margin:0;
  font-family:var(--gothic);
  font-size:16px;
  line-height:2;
  color:var(--text);
  background:var(--washi);
  font-feature-settings:"palt" 1;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--shu);text-decoration:none;transition:color .25s,opacity .25s}
a:hover{color:var(--shu-d)}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{font-family:var(--mincho);font-weight:600;line-height:1.55;margin:0;letter-spacing:.04em}
p{margin:0 0 1.4em}
p:last-child{margin-bottom:0}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--shu);outline-offset:3px}

/* ---------- 3. レイアウト土台 ---------- */
.wrap{width:min(100% - 40px,var(--wrap));margin-inline:auto}
.wrap-narrow{width:min(100% - 40px,var(--wrap-narrow));margin-inline:auto}
.section{padding:clamp(64px,9vw,116px) 0}
.section--kinari{background:var(--kinari)}
.section--sumi{background:var(--sumi);color:#e8e1d5}
.section--sumi h2,.section--sumi h3{color:var(--washi)}
.section--pattern{position:relative}
.section--pattern::before{
  content:"";position:absolute;inset:0;background-image:var(--asanoha);
  background-size:56px 97px;opacity:.5;pointer-events:none;
}
.section--pattern>*{position:relative;z-index:1}
.center{text-align:center}

/* ---------- 4. 見出し ---------- */
.sec-head{margin-bottom:clamp(32px,5vw,56px)}
.sec-head .en{
  display:block;font-family:var(--gothic);font-size:.72rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--kin);margin-bottom:.9em;font-weight:500;
}
.sec-head h2{font-size:clamp(1.5rem,3.4vw,2.15rem);letter-spacing:.08em}
.sec-head h2 .sub{display:block;font-size:.62em;color:var(--text-mute);letter-spacing:.06em;margin-top:.7em;font-family:var(--gothic);font-weight:400}
.section--sumi .sec-head h2 .sub{color:#b6ab99}
.sec-head--center{text-align:center}
.sec-head--center h2::after{
  content:"";display:block;width:44px;height:1px;background:var(--kin);margin:.9em auto 0;
}
.lead{font-family:var(--mincho);font-size:clamp(1rem,1.9vw,1.14rem);line-height:2.35;letter-spacing:.05em}

/* 縦書きラベル */
.vlabel{
  writing-mode:vertical-rl;font-family:var(--mincho);letter-spacing:.35em;
  font-size:.82rem;color:var(--kin);
}

/* ---------- 5. ボタン ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  min-height:54px;padding:0 2.2em;border:1px solid transparent;border-radius:var(--r);
  font-family:var(--gothic);font-size:.94rem;font-weight:500;letter-spacing:.12em;
  cursor:pointer;transition:all .3s ease;text-align:center;line-height:1.4;
}
.btn--shu{background:var(--shu);color:#fff}
.btn--shu:hover{background:var(--shu-d);color:#fff;transform:translateY(-2px)}
.btn--line{border-color:var(--sumi-3);color:var(--sumi-2);background:transparent}
.btn--line:hover{background:var(--sumi-2);color:var(--washi);border-color:var(--sumi-2)}
.btn--ghost{border-color:rgba(245,241,230,.5);color:var(--washi);background:transparent}
.btn--ghost:hover{background:var(--washi);color:var(--sumi);border-color:var(--washi)}
.btn--sm{min-height:44px;font-size:.85rem;padding:0 1.5em}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}
.btn-row--center{justify-content:center}

/* ---------- 6. ヘッダー ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;height:var(--header-h);z-index:100;
  display:flex;align-items:center;
  background:rgba(251,248,241,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);transition:background .3s,border-color .3s;
}
.site-header.is-transparent{background:transparent;border-color:transparent}
.site-header.is-transparent .brand,.site-header.is-transparent .gnav>li>a{color:var(--washi)}
.site-header.is-transparent .brand .brand-en{color:rgba(251,248,241,.7)}
.site-header.is-transparent .burger span{background:var(--washi)}
.header-inner{width:min(100% - 32px,1360px);margin-inline:auto;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:baseline;gap:.7em;font-family:var(--mincho);font-size:1.28rem;letter-spacing:.16em;color:var(--sumi);font-weight:600;white-space:nowrap}
.brand:hover{color:var(--shu)}
.brand .brand-en{font-family:var(--gothic);font-size:.6rem;letter-spacing:.24em;color:var(--text-mute);font-weight:400}
.gnav{display:flex;align-items:center;gap:clamp(14px,1.9vw,30px);margin-left:auto}
.gnav>li{position:relative}
.gnav>li>a{
  display:flex;align-items:center;gap:.4em;height:var(--header-h);
  font-size:.85rem;letter-spacing:.09em;color:var(--sumi-2);font-weight:500;
}
.gnav>li>a:hover{color:var(--shu)}
.gnav .has-sub>a::after{content:"";width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.subnav{
  position:absolute;top:calc(var(--header-h) - 12px);left:50%;transform:translateX(-50%) translateY(8px);
  min-width:250px;background:var(--washi);border:1px solid var(--line);box-shadow:var(--shadow);
  padding:10px;opacity:0;visibility:hidden;transition:.28s;
}
.gnav .has-sub:hover .subnav,.gnav .has-sub:focus-within .subnav{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.subnav a{display:block;padding:11px 14px;font-size:.85rem;color:var(--sumi-2);line-height:1.6}
.subnav a:hover{background:var(--kinari);color:var(--shu)}
.subnav a small{display:block;font-size:.7rem;color:var(--text-mute);letter-spacing:.05em}
.header-cta{margin-left:6px}
.burger{display:none;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;margin-left:auto;background:none;border:0;cursor:pointer;padding:0}
.burger span{display:block;width:24px;height:1.5px;background:var(--sumi);margin-inline:auto;transition:.3s}
.burger.is-open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- 7. ヒーロー ---------- */
.hero{position:relative;min-height:min(94vh,860px);display:flex;align-items:center;overflow:hidden;background:var(--sumi)}
.hero--page{min-height:min(66vh,560px)}
.hero-bg{position:absolute;inset:0;background:linear-gradient(140deg,#241d18 0%,#3c2f25 45%,#1a1411 100%)}
.hero-bg::after{content:"";position:absolute;inset:0;background-image:var(--seigaiha);background-size:80px 40px;opacity:.5}
.hero-veil{position:absolute;inset:0;background:linear-gradient(to right,rgba(10,8,7,.72) 0%,rgba(10,8,7,.42) 55%,rgba(10,8,7,.6) 100%)}
/* 暖簾 */
.noren{position:absolute;top:0;left:0;right:0;height:clamp(90px,16vh,170px);display:flex;z-index:2;pointer-events:none}
.noren i{flex:1;background:linear-gradient(180deg,#7d2b23 0%,#5f1e18 100%);margin-right:3px;position:relative;box-shadow:inset -6px 0 14px -8px rgba(0,0,0,.6)}
.noren i:last-child{margin-right:0}
.noren i::after{content:"";position:absolute;inset:0;background-image:var(--asanoha);background-size:56px 97px;opacity:.28}
.hero-inner{position:relative;z-index:3;width:min(100% - 40px,var(--wrap));margin-inline:auto;padding-top:clamp(80px,14vh,150px);color:var(--washi)}
.hero-eyebrow{font-size:.74rem;letter-spacing:.3em;color:var(--kin);margin-bottom:1.6em;display:block}
.hero h1{font-size:clamp(1.85rem,5.4vw,3.5rem);line-height:1.5;letter-spacing:.1em;color:var(--washi);text-shadow:0 2px 24px rgba(0,0,0,.4)}
.hero h1 .accent{color:var(--kin)}
.hero h1 .small{display:block;font-size:.42em;letter-spacing:.16em;color:rgba(245,241,230,.86);margin-bottom:.9em;font-weight:400}
.hero-copy{margin-top:1.8em;max-width:32em;font-family:var(--mincho);line-height:2.3;color:rgba(245,241,230,.9);letter-spacing:.05em;font-size:clamp(.94rem,1.7vw,1.05rem)}
.hero .btn-row{margin-top:2.6em}
.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;color:rgba(245,241,230,.65);font-size:.66rem;letter-spacing:.24em;writing-mode:vertical-rl;display:flex;align-items:center;gap:12px}
.scroll-cue::after{content:"";width:1px;height:52px;background:linear-gradient(rgba(245,241,230,.7),transparent);animation:cue 2.2s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.25;transform:scaleY(.55);transform-origin:top}50%{opacity:1;transform:scaleY(1);transform-origin:top}}

/* パンくず */
.crumbs{background:var(--kinari);border-bottom:1px solid var(--line);font-size:.75rem;color:var(--text-mute)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.5em;align-items:center;padding:12px 0;margin:0;list-style:none}
.crumbs li+li::before{content:"›";margin-right:.5em;color:var(--line)}
.crumbs a{color:var(--text-mute)}
.crumbs a:hover{color:var(--shu)}

/* ---------- 8. 画像プレースホルダ ---------- */
.ph{
  position:relative;background:linear-gradient(135deg,#2f2721,#463a2e 60%,#241d18);
  display:flex;align-items:center;justify-content:center;overflow:hidden;color:rgba(245,241,230,.62);
}
.ph::before{content:"";position:absolute;inset:0;background-image:var(--asanoha);background-size:56px 97px;opacity:.42}
.ph--light{background:linear-gradient(135deg,#ece5d5,#dcd2bd 60%,#e6dece);color:#8b7f6a}
.ph--light::before{opacity:.6}
.ph span{position:relative;z-index:1;font-size:.7rem;letter-spacing:.22em;text-align:center;padding:1em;line-height:1.9}
.ph--4x3{aspect-ratio:4/3}
.ph--3x2{aspect-ratio:3/2}
.ph--1x1{aspect-ratio:1/1}
.ph--16x9{aspect-ratio:16/9}

/* ---------- 9. 店舗カード（トップ） ---------- */
.shops{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,36px)}
.shop-card{
  position:relative;display:flex;flex-direction:column;background:var(--washi);
  border:1px solid var(--line);overflow:hidden;transition:transform .35s,box-shadow .35s;color:var(--text);
}
.shop-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);color:var(--text)}
.shop-card .ph{aspect-ratio:16/10}
.shop-card-body{padding:clamp(24px,3vw,38px);display:flex;flex-direction:column;flex:1}
.shop-card .area{font-size:.7rem;letter-spacing:.24em;color:var(--kin);display:block;margin-bottom:1em}
.shop-card h3{font-size:clamp(1.15rem,2.2vw,1.42rem);letter-spacing:.07em}
.shop-card h3 .en{display:block;font-family:var(--gothic);font-size:.5em;letter-spacing:.2em;color:var(--text-mute);margin-top:.7em;font-weight:400}
.shop-card p{margin-top:1.3em;font-size:.9rem;line-height:2.1;color:var(--text-mute)}
.shop-meta{margin-top:1.6em;padding-top:1.3em;border-top:1px dashed var(--line);font-size:.82rem;color:var(--text-mute);line-height:1.95}
.shop-meta dt{display:inline;font-weight:600;color:var(--sumi-2)}
.shop-meta dd{display:inline;margin:0}
.shop-meta div+div{margin-top:.35em}
.shop-meta div{display:block}
.shop-card .more{margin-top:1.8em;font-size:.85rem;letter-spacing:.1em;color:var(--shu);display:inline-flex;align-items:center;gap:.6em}
.shop-card .more::after{content:"";width:26px;height:1px;background:currentColor;transition:width .3s}
.shop-card:hover .more::after{width:40px}

/* ---------- 10. 特徴（縦積みの交互レイアウト） ---------- */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:center}
.feature+.feature{margin-top:clamp(48px,7vw,96px)}
.feature:nth-child(even) .feature-media{order:2}
.feature-num{font-family:var(--mincho);font-size:.78rem;letter-spacing:.22em;color:var(--kin);display:block;margin-bottom:1.2em}
.feature h3{font-size:clamp(1.18rem,2.5vw,1.55rem);margin-bottom:.9em;letter-spacing:.06em}
.feature p{font-size:.94rem;line-height:2.25;color:var(--text-mute)}
.feature .ph{aspect-ratio:4/3}

/* ---------- 11. 料理カード ---------- */
.dishes{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(18px,2.6vw,30px)}
.dish{background:transparent}
.dish .ph{aspect-ratio:1/1;margin-bottom:1.4em}
.dish h3{font-size:1.02rem;letter-spacing:.06em;margin-bottom:.6em}
.dish p{font-size:.84rem;line-height:2;color:var(--text-mute)}
.section--sumi .dish p{color:#b1a693}

/* ---------- 12. シーン一覧 ---------- */
.scenes{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:14px}
.scenes li{
  display:flex;align-items:flex-start;gap:.9em;padding:20px 22px;
  background:var(--washi);border:1px solid var(--line);font-size:.9rem;line-height:1.9;
}
.scenes li::before{content:"";flex:none;width:7px;height:7px;margin-top:.75em;background:var(--shu);transform:rotate(45deg)}
.section--kinari .scenes li{background:var(--washi)}

/* ---------- 13. 情報テーブル ---------- */
.info-table{font-size:.9rem;border-top:1px solid var(--line)}
.info-table th,.info-table td{padding:18px 4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.95}
.info-table th{width:190px;font-family:var(--mincho);font-weight:600;color:var(--sumi-2);letter-spacing:.06em;white-space:nowrap}
.info-table td{color:var(--text-mute)}
.info-table a{font-weight:600}
.note{font-size:.78rem;color:var(--text-mute);line-height:1.95;margin-top:1.4em}

/* 対応バンド */
.band{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,52px);align-items:center;
  padding:clamp(28px,4vw,52px);background:var(--washi);border:1px solid var(--line);
}
.band .mark{
  width:76px;height:76px;border:1px solid var(--matcha);border-radius:50%;
  display:grid;place-items:center;font-family:var(--mincho);color:var(--matcha);
  font-size:1.5rem;letter-spacing:.05em;flex:none;
}
.band h3{font-size:1.1rem;margin-bottom:.7em}
.band p{font-size:.9rem;line-height:2.15;color:var(--text-mute)}

/* ---------- 14. 地図 ---------- */
.map-embed{aspect-ratio:16/8;border:1px solid var(--line);overflow:hidden;background:var(--kinari)}
.map-embed iframe{width:100%;height:100%;border:0;display:block}

/* ---------- 15. CTA ---------- */
.cta{position:relative;background:var(--sumi);color:#e8e1d5;text-align:center;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background-image:var(--seigaiha);background-size:80px 40px;opacity:.5}
.cta>*{position:relative;z-index:1}
.cta h2{font-size:clamp(1.35rem,3vw,1.95rem);color:var(--washi);letter-spacing:.1em}
.cta .tel{
  display:inline-flex;flex-direction:column;align-items:center;gap:.2em;
  font-family:var(--mincho);color:var(--washi);letter-spacing:.08em;
}
.cta .tel .num{font-size:clamp(1.5rem,4vw,2.15rem);letter-spacing:.06em;line-height:1.3}
.cta .tel .lbl{font-family:var(--gothic);font-size:.72rem;letter-spacing:.2em;color:var(--kin)}
.tel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,4vw,44px);margin-top:2.6em}
.tel-grid .tel-item{padding:clamp(22px,3vw,32px);border:1px solid rgba(245,241,230,.22)}
.tel-grid .tel-item .shopname{font-size:.82rem;letter-spacing:.16em;color:#c9bfae;display:block;margin-bottom:1em}

/* ---------- 16. フッター ---------- */
.site-footer{background:var(--sumi-2);color:#c3b9a8;padding:clamp(52px,7vw,80px) 0 0;font-size:.85rem}
.footer-top{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:clamp(28px,4vw,56px);padding-bottom:clamp(36px,5vw,56px);border-bottom:1px solid rgba(245,241,230,.14)}
.footer-brand .brand{color:var(--washi);font-size:1.3rem}
.footer-brand p{margin-top:1.4em;font-size:.8rem;line-height:2.1;color:#a3998a}
.footer-shop h4{font-family:var(--mincho);color:var(--washi);font-size:.98rem;margin-bottom:1em;letter-spacing:.06em}
.footer-shop p{font-size:.79rem;line-height:2;color:#a3998a;margin-bottom:.7em}
.footer-shop a{color:#d8cfc0}
.footer-shop a:hover{color:var(--kin)}
.footer-nav{display:flex;flex-wrap:wrap;gap:10px 28px;padding:26px 0;font-size:.78rem}
.footer-nav a{color:#a3998a;letter-spacing:.08em}
.footer-nav a:hover{color:var(--kin)}
.copyright{text-align:center;font-size:.7rem;letter-spacing:.1em;color:#7d7466;padding:14px 0 26px}

/* ---------- 17. その他 ---------- */
.pill{display:inline-block;font-size:.7rem;letter-spacing:.14em;padding:.45em 1.1em;border:1px solid var(--kin);color:var(--kin);border-radius:99px}
.sister{
  margin-top:clamp(32px,5vw,52px);padding:clamp(22px,3vw,32px);
  background:var(--kinari);border-left:3px solid var(--kin);font-size:.88rem;line-height:2.1;
}
.sister strong{font-family:var(--mincho);color:var(--sumi-2)}
.todo{
  background:#fff9e8;border:1px dashed #d8b25e;padding:16px 20px;font-size:.8rem;
  line-height:1.95;color:#7a5f1e;margin:1.6em 0;
}
.todo strong{color:#8a5a12}
.steps{counter-reset:s;display:grid;gap:14px}
.steps li{position:relative;counter-increment:s;padding:20px 24px 20px 62px;background:var(--washi);border:1px solid var(--line);font-size:.9rem;line-height:2}
.steps li::before{
  content:counter(s,decimal-leading-zero);position:absolute;left:24px;top:20px;
  font-family:var(--mincho);color:var(--kin);font-size:.9rem;letter-spacing:.08em;
}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  .scroll-cue::after{animation:none}
}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--shu);color:#fff;padding:12px 20px;z-index:200}
.skip-link:focus{left:0;color:#fff}

/* ---------- 18. レスポンシブ ---------- */
@media (max-width:1000px){
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
}
@media (max-width:880px){
  :root{--header-h:64px}
  .burger{display:flex}
  .header-cta{display:none}
  .gnav{
    position:fixed;inset:var(--header-h) 0 0 0;margin:0;flex-direction:column;align-items:stretch;
    gap:0;background:var(--washi);padding:8px 20px 60px;overflow-y:auto;
    transform:translateX(100%);transition:transform .35s ease;
  }
  .gnav.is-open{transform:none}
  .gnav>li>a{height:auto;padding:19px 4px;border-bottom:1px solid var(--line);font-size:.95rem;color:var(--sumi-2)}
  .site-header.is-transparent .gnav>li>a{color:var(--sumi-2)}
  .gnav .has-sub>a::after{display:none}
  .subnav{position:static;transform:none;opacity:1;visibility:visible;min-width:0;border:0;box-shadow:none;padding:0 0 10px 16px;background:transparent}
  .subnav a{padding:14px 4px;border-bottom:1px solid var(--line)}
  .shops{grid-template-columns:1fr}
  .feature{grid-template-columns:1fr;gap:24px}
  .feature:nth-child(even) .feature-media{order:0}
  .tel-grid{grid-template-columns:1fr}
}
@media (max-width:620px){
  body{font-size:15px}
  .wrap,.wrap-narrow{width:calc(100% - 32px)}
  .info-table th,.info-table td{display:block;width:auto;padding:14px 0;white-space:normal}
  .info-table th{border-bottom:0;padding-bottom:2px;font-size:.85rem}
  .info-table td{padding-top:0}
  .band{grid-template-columns:1fr;text-align:left}
  .band .mark{margin-bottom:4px}
  .footer-top{grid-template-columns:1fr}
  .btn{width:100%}
  .hero .btn-row{flex-direction:column}
  .scroll-cue{display:none}
  .noren{height:84px}
}

/* ---------- 19. 印刷 ---------- */
@media print{
  .site-header,.cta,.scroll-cue,.noren,.btn-row{display:none}
  body{background:#fff;color:#000}
}

/* =========================================================
   20. WordPress 用の追記
   ========================================================= */

/* --- 管理バー表示時のヘッダー位置 --- */
.admin-bar .site-header{top:32px}
@media screen and (max-width:782px){.admin-bar .site-header{top:46px}}
.admin-bar .gnav{top:calc(var(--header-h) + 32px)}
@media screen and (max-width:782px){.admin-bar .gnav{top:calc(var(--header-h) + 46px)}}

/* --- wp_nav_menu 出力への対応（.has-sub/.subnav と同等に扱う） --- */
.gnav .menu-item-has-children>a::after{
  content:"";width:5px;height:5px;
  border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
}
.gnav .sub-menu{
  position:absolute;top:calc(var(--header-h) - 12px);left:50%;
  transform:translateX(-50%) translateY(8px);
  min-width:250px;background:var(--washi);border:1px solid var(--line);
  box-shadow:var(--shadow);padding:10px;opacity:0;visibility:hidden;transition:.28s;list-style:none;
}
.gnav .menu-item-has-children:hover>.sub-menu,
.gnav .menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.gnav .sub-menu a{display:block;padding:11px 14px;font-size:.85rem;color:var(--sumi-2);line-height:1.6}
.gnav .sub-menu a:hover{background:var(--kinari);color:var(--shu)}
.gnav .sub-menu .description{display:block;font-size:.7rem;color:var(--text-mute);letter-spacing:.05em}
.gnav .current-menu-item>a,.gnav .current_page_item>a{color:var(--shu)}
@media (max-width:880px){
  .gnav .menu-item-has-children>a::after{display:none}
  .gnav .sub-menu{
    position:static;transform:none;opacity:1;visibility:visible;min-width:0;
    border:0;box-shadow:none;padding:0 0 10px 16px;background:transparent;
  }
  .gnav .sub-menu a{padding:14px 4px;border-bottom:1px solid var(--line)}
}

/* --- カスタムロゴ --- */
.brand .custom-logo{max-height:38px;width:auto}

/* --- 投稿・汎用固定ページ本文（ブロックエディター出力） --- */
.entry-content{font-size:.96rem;line-height:2.2}
.entry-content>*{margin-block:0 1.6em}
.entry-content h2{font-size:clamp(1.3rem,2.8vw,1.75rem);margin-top:2.4em;margin-bottom:.9em;padding-bottom:.5em;border-bottom:1px solid var(--line)}
.entry-content h3{font-size:clamp(1.08rem,2.2vw,1.3rem);margin-top:2em;margin-bottom:.8em;padding-left:.7em;border-left:3px solid var(--kin)}
.entry-content h4{font-size:1.02rem;margin-top:1.8em;margin-bottom:.7em}
.entry-content ul,.entry-content ol{padding-left:1.5em;margin-bottom:1.6em}
.entry-content ul li{list-style:disc}
.entry-content ol li{list-style:decimal}
.entry-content li{margin-bottom:.5em}
.entry-content img{margin-inline:auto}
.entry-content figure{margin:2em 0}
.entry-content figcaption{font-size:.78rem;color:var(--text-mute);text-align:center;margin-top:.8em}
.entry-content blockquote{margin:2em 0;padding:1.2em 1.6em;background:var(--kinari);border-left:3px solid var(--kin);font-family:var(--mincho)}
.entry-content blockquote p:last-child{margin-bottom:0}
.entry-content table{font-size:.9rem;border-top:1px solid var(--line)}
.entry-content th,.entry-content td{padding:14px 10px;border-bottom:1px solid var(--line);text-align:left}
.entry-content a{text-decoration:underline;text-underline-offset:.25em}
.entry-content code{background:var(--kinari);padding:.15em .5em;font-size:.9em}
.entry-content hr{border:0;border-top:1px solid var(--line);margin:3em 0}
.alignwide{width:min(100vw - 40px,1120px);margin-inline:auto;max-width:none}
.alignfull{width:100vw;margin-left:calc(50% - 50vw);max-width:none}
.aligncenter{margin-inline:auto;text-align:center}
.alignleft{float:left;margin:.4em 1.6em 1.2em 0}
.alignright{float:right;margin:.4em 0 1.2em 1.6em}
.wp-caption{max-width:100%}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* --- 投稿一覧・記事ヘッダー --- */
.entry-header{margin-bottom:clamp(28px,4vw,44px);padding-bottom:1.6em;border-bottom:1px solid var(--line)}
.entry-header h1{font-size:clamp(1.5rem,3.4vw,2.1rem);letter-spacing:.06em}
.entry-meta{font-size:.76rem;color:var(--text-mute);letter-spacing:.08em;margin-top:1.2em}
.post-list{display:grid;gap:0;border-top:1px solid var(--line)}
.post-list li{border-bottom:1px solid var(--line)}
.post-list a{display:grid;grid-template-columns:130px 1fr;gap:1.4em;padding:22px 4px;color:var(--text);align-items:baseline}
.post-list a:hover{color:var(--shu)}
.post-list time{font-size:.76rem;color:var(--text-mute);letter-spacing:.08em}
.post-list .ttl{font-family:var(--mincho);font-size:1rem;line-height:1.8}
@media (max-width:620px){.post-list a{grid-template-columns:1fr;gap:.4em}}
.pagination{margin-top:3em;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.pagination .page-numbers{
  display:grid;place-items:center;min-width:44px;height:44px;padding:0 .8em;
  border:1px solid var(--line);font-size:.85rem;color:var(--sumi-2);
}
.pagination .page-numbers:hover,.pagination .current{background:var(--sumi-2);color:var(--washi);border-color:var(--sumi-2)}

/* --- 編集リンク・404 --- */
.edit-link{margin-top:2.4em;font-size:.78rem}
.err-num{font-family:var(--mincho);font-size:clamp(3.4rem,12vw,6rem);color:var(--kin);line-height:1;letter-spacing:.06em}

/* --- 画像スロット（カスタマイザーで設定された実写真） --- */
.togiya-img{display:block;width:100%;height:auto;object-fit:cover}
.ph--16x10{aspect-ratio:16/10}
.togiya-img.ph--4x3{aspect-ratio:4/3}
.togiya-img.ph--3x2{aspect-ratio:3/2}
.togiya-img.ph--1x1{aspect-ratio:1/1}
.togiya-img.ph--16x9{aspect-ratio:16/9}
.togiya-img.ph--16x10{aspect-ratio:16/10}
.shop-card .togiya-img{aspect-ratio:16/10}
.dish .togiya-img{aspect-ratio:1/1;margin-bottom:1.4em}
.feature .togiya-img{aspect-ratio:4/3}

/* --- プロフィール用の特徴ブロック（正方形写真＋表） --- */
.feature .ph--1x1,.feature .togiya-img.ph--1x1{aspect-ratio:1/1}
.feature .ph--16x9,.feature .togiya-img.ph--16x9{aspect-ratio:16/9}
.feature--profile{grid-template-columns:.78fr 1.22fr}
.feature--profile .feature-media{order:-1}
.feature--profile .info-table{font-size:.85rem}
.feature--profile .info-table th{width:106px;font-size:.85rem}
@media (max-width:880px){
  .feature--profile{grid-template-columns:1fr}
  .feature--profile .feature-media{order:0}
}

/* --- 修正：濃色セクション内の店舗カードは白背景のため文字色を戻す --- */
.section--sumi .shop-card h3{color:var(--sumi-2)}
.section--sumi .shop-card h3 .en{color:var(--text-mute)}
.section--sumi .shop-card p{color:var(--text-mute)}
.section--sumi .shop-card .area{color:var(--kin)}

/* --- 修正：プロフィール行は写真を左に固定（nth-child(even) より優先） --- */
.feature.feature--profile .feature-media{order:-1}
@media (max-width:880px){.feature.feature--profile .feature-media{order:0}}

/* =========================================================
   21. コース・宴会プラン
   ========================================================= */
.course-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:clamp(20px,3vw,34px)}
.course{display:flex;flex-direction:column;background:var(--washi);border:1px solid var(--line);overflow:hidden}
.course .ph,.course .togiya-img{aspect-ratio:4/3}
.course-body{padding:clamp(22px,3vw,34px);display:flex;flex-direction:column;flex:1}
.course .catch{font-size:.72rem;letter-spacing:.16em;color:var(--kin);display:block;margin-bottom:1em;line-height:1.8}
.course h3{font-size:clamp(1.08rem,2.1vw,1.28rem);letter-spacing:.05em;line-height:1.7}
.course-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5em;margin-top:1em;padding-bottom:1em;border-bottom:1px dashed var(--line)}
.course-price .yen{font-family:var(--mincho);font-size:clamp(1.5rem,3.4vw,1.95rem);color:var(--shu);letter-spacing:.02em;line-height:1.2;font-weight:600}
.course-price .tax{font-size:.74rem;color:var(--text-mute);letter-spacing:.06em}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.1em}
.badge{
  display:inline-block;font-size:.7rem;letter-spacing:.1em;padding:.4em 1em;
  border:1px solid var(--kin);color:var(--kin);border-radius:99px;white-space:nowrap;
}
.badge--shu{border-color:var(--shu);color:var(--shu)}
.badge--mute{border-color:var(--line);color:var(--text-mute)}
.course-dishes{margin-top:1.5em;font-size:.86rem;line-height:1.95;color:var(--text-mute)}
.course-dishes li{display:flex;gap:.7em}
.course-dishes li::before{content:"◇";flex:none;color:var(--kin);font-size:.8em;line-height:2.4}
.course-dishes li+li{margin-top:.15em}
.course .note{margin-top:1.2em}
.course .btn-row{margin-top:auto;padding-top:1.8em}
.course .btn{flex:1 1 auto}

/* 飲み放題メニュー */
.drinks{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(16px,2.4vw,26px)}
.drink-group{background:var(--washi);border:1px solid var(--line);padding:20px 22px}
.drink-group h3{font-size:.92rem;letter-spacing:.08em;margin-bottom:.7em;color:var(--sumi-2)}
.drink-group p{font-size:.83rem;line-height:2;color:var(--text-mute)}
.section--sumi .drink-group{background:rgba(251,248,241,.05);border-color:rgba(245,241,230,.18)}
.section--sumi .drink-group h3{color:var(--washi)}
.section--sumi .drink-group p{color:#b1a693}

/* =========================================================
   22. 席配置・個室
   ========================================================= */
.seatgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(18px,2.6vw,30px)}
.seat{background:var(--washi);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}
.seat .ph,.seat .togiya-img{aspect-ratio:4/3}
.seat-body{padding:clamp(20px,2.4vw,28px)}
.seat .kind{font-size:.7rem;letter-spacing:.2em;color:var(--kin);display:block;margin-bottom:.9em}
.seat h3{font-size:1.02rem;letter-spacing:.05em;line-height:1.7}
.seat p{margin-top:.9em;font-size:.85rem;line-height:2;color:var(--text-mute)}
.seat .badges{margin-top:1.1em}

/* =========================================================
   23. よくある質問
   ========================================================= */
.faq-group+.faq-group{margin-top:clamp(36px,5vw,56px)}
.faq-group>h3{
  font-size:1.05rem;letter-spacing:.06em;margin-bottom:1em;
  padding-left:.7em;border-left:3px solid var(--kin);
}
.qa{border-top:1px solid var(--line);background:var(--washi)}
.qa:last-of-type{border-bottom:1px solid var(--line)}
.qa>summary{
  list-style:none;cursor:pointer;position:relative;
  padding:22px 54px 22px 50px;font-family:var(--mincho);font-size:.98rem;
  line-height:1.85;color:var(--sumi-2);letter-spacing:.03em;transition:color .25s;
}
.qa>summary::-webkit-details-marker{display:none}
.qa>summary:hover{color:var(--shu)}
.qa>summary::before{
  content:"Q";position:absolute;left:18px;top:21px;
  font-family:var(--mincho);color:var(--kin);font-size:1rem;letter-spacing:.04em;
}
.qa>summary::after{
  content:"";position:absolute;right:24px;top:31px;width:9px;height:9px;
  border-right:1px solid var(--text-mute);border-bottom:1px solid var(--text-mute);
  transform:rotate(45deg);transition:transform .3s;
}
.qa[open]>summary::after{transform:rotate(225deg);top:35px}
.qa-a{
  position:relative;padding:0 30px 26px 50px;font-size:.89rem;line-height:2.15;color:var(--text-mute);
}
.qa-a::before{
  content:"A";position:absolute;left:18px;top:-2px;
  font-family:var(--mincho);color:var(--shu);font-size:1rem;letter-spacing:.04em;
}
.qa-a p+p{margin-top:1em}
@media (max-width:620px){
  .qa>summary{padding:20px 40px 20px 40px;font-size:.94rem}
  .qa>summary::before{left:12px;top:19px}
  .qa>summary::after{right:14px;top:29px}
  .qa-a{padding:0 16px 22px 40px}
  .qa-a::before{left:12px}
}

/* 店舗切り替えの導線 */
.shop-switch{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:clamp(28px,4vw,44px)}
.shop-switch a{
  display:inline-flex;align-items:center;gap:.7em;padding:14px 24px;
  border:1px solid var(--line);background:var(--washi);font-size:.86rem;color:var(--sumi-2);letter-spacing:.06em;
}
.shop-switch a:hover{border-color:var(--shu);color:var(--shu)}
.shop-switch a small{color:var(--text-mute);font-size:.74rem}

/* --- 修正：濃色セクション内の白背景カードは文字色を戻す --- */
.section--sumi .seat h3,.section--sumi .course h3{color:var(--sumi-2)}
.section--sumi .seat p,.section--sumi .course p{color:var(--text-mute)}
.section--sumi .seat .kind,.section--sumi .course .catch{color:var(--kin)}
.section--sumi .course-dishes{color:var(--text-mute)}
.section--sumi .course-price .yen{color:var(--shu)}

/* 4コース構成のため、広い画面では2列で見せる */
@media (min-width:900px){ .course-list{grid-template-columns:repeat(2,1fr)} }
