/* ============================================================
   巡鍼堂 -junshindo- — 伝統鍼灸院テンプレート
   意匠：濃紺(藍) × 生成り(和紙) × 青灰 — 伝統・東洋医学の「格」で組む
   採寸元: zinen-do.com（伝統鍼灸 自然堂）実CSS実測
     生成り #faf6e8 / 青灰 #5d6970 / 濃紺(globalNav) #334657 / 淡金 #B8A47F
     書体: 游明朝系 → Shippori Mincho（しっぽり明朝＝筆脈のある伝統明朝）主・EB Garamond 従
   差別化署名（凪と別テンプレ）:
     ①濃紺ヘッダー（美容系の淡色ヘッダーと反転）②円相(enso)エンブレムの反復
     ③特色は漢数字「壱弐参」④理念(creed)＋適応症状セクション（鍼灸固有）⑤しっぽり明朝主体
   ============================================================ */

:root{
  /* Palette — 生成り(地) × 藍/濃紺(格・締め) × 青灰(弱アクセント) */
  --sumi:      #23282f;   /* 最も濃い墨紺：本文の締め・強い差し */
  --ink:       #2c333b;   /* 本文（読ませる紺墨） */
  --navy:      #334657;   /* 濃紺（ヘッダー・主ボタン・格の色）＝自然堂実測 */
  --navy-dark: #26333f;   /* 濃紺の暗部・hover */
  --aizu:      #5d6970;   /* 青灰＝弱アクセント（細罫・小ラベル・見出しの差し）＝自然堂実測 */
  --aizu-dark: #4a555c;   /* 濃青灰・hover */
  --aizu-soft: #b9c1c4;   /* 淡青灰（細罫） */
  --gold:      #b8a47f;   /* 淡金（ごく弱い格の差し・自然堂実測。多用しない） */
  --paper:     #fdfbf4;   /* 面（カード・紙）＝温かい生成り */
  --washi:     #faf6e8;   /* 地＝和紙（ページ基調）＝自然堂実測 */
  --mist:      #f1ecdd;   /* 交互セクション背景（生成りより一段濃い） */
  --stone:     #eee7d5;   /* 温かい淡パネル */
  --line:      #e6ddc8;   /* ヘアライン罫（生成り地の上で） */
  --mute:      #837c6f;   /* 弱いテキスト */
  --dusk:      #222c36;   /* ダーク差し（予約CTA・ページ内1箇所のみ）＝濃紺の夜 */

  --f-en:  "EB Garamond", "Times New Roman", Georgia, serif;
  --f-min: "Shippori Mincho", "游明朝", YuMincho, "游明朝体", "Yu Mincho", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;

  --maxw:  1140px;
  --trans: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--f-min);color:var(--ink);background:var(--washi);
  font-size:15px;line-height:2.15;letter-spacing:.07em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:opacity .4s var(--trans),color .4s var(--trans),border-color .4s var(--trans)}
a:hover{opacity:.64}
.container{max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,5.5vw,56px)}
em{font-style:normal}

/* ============ 円相(enso) — この意匠の核となる印。開いた筆環をCSSで ============ */
.enso{
  --enso-w:1.5px;
  display:inline-block;border-radius:50%;
  background:conic-gradient(from 208deg, var(--aizu) 0deg, var(--aizu) 298deg, transparent 298deg 360deg);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--enso-w)), #000 calc(100% - var(--enso-w)));
          mask:radial-gradient(farthest-side, transparent calc(100% - var(--enso-w)), #000 calc(100% - var(--enso-w)));
}

/* ============ ヘッダー（濃紺・格の帯） ============ */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;height:80px;
  background:rgba(38,51,63,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.08);transition:background .5s var(--trans);
}
.header.scrolled{background:rgba(34,44,54,.97)}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;height:100%;
  max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,44px);
}
.logo a{display:flex;flex-direction:column;line-height:1.25}
.logo-en{font-family:var(--f-min);font-weight:600;font-size:1.5rem;letter-spacing:.34em;color:#f6f1e4;text-indent:.16em}
.logo-ja{font-family:var(--f-en);font-style:italic;font-size:.62rem;letter-spacing:.3em;color:var(--aizu-soft);margin-top:5px}
.nav-list{display:flex;align-items:center;gap:clamp(18px,2.6vw,34px);list-style:none}
.nav-list a{
  font-family:var(--f-min);font-weight:500;font-size:.86rem;letter-spacing:.16em;
  position:relative;padding:6px 2px;color:#e9e3d5;white-space:nowrap;
}
.nav-list a::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--trans);
}
.nav-list a.active::after,.nav-list a:hover::after{transform:scaleX(1)}
.nav-list a:hover{opacity:1}
/* 予約ピル：字送りで右へ寄る分 padding-left を +3px 補正。余白は控えめに */
.nav-list a.nav-reservation{
  background:var(--gold);color:#232833 !important;
  padding:10px 13px 10px 16px;letter-spacing:.2em;text-indent:.1em;
  font-weight:700;font-size:.8rem;
  transition:background .4s var(--trans),color .4s var(--trans);
}
.nav-list a.nav-reservation::after{display:none}
.nav-list a.nav-reservation:hover{background:#c9b78f;opacity:1}
.hamburger{display:none;flex-direction:column;gap:6px;background:none;border:0;cursor:pointer;padding:8px}
.hamburger span{width:26px;height:1px;background:#e9e3d5;transition:.35s var(--trans)}

/* ============ Hero（全面大判 × 中央・横組み明朝 × 円相） ============ */
.hero{position:relative}
.hero-media{
  position:relative;overflow:hidden;isolation:isolate;
  height:min(96vh,920px);min-height:560px;
  display:flex;align-items:center;justify-content:center;text-align:center;
}
.hero-bg{
  position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;
  animation:slowZoom 20s ease-out forwards;
}
@keyframes slowZoom{from{transform:scale(1.09)}to{transform:scale(1)}}
.hero-overlay{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg, rgba(28,36,46,.52) 0%, rgba(28,36,46,.30) 42%, rgba(24,31,40,.62) 100%);
}
/* 内側の細フレーム（額装の静けさ） */
.hero-media::after{
  content:"";position:absolute;z-index:2;pointer-events:none;
  inset:clamp(16px,2.4vw,34px);border:1px solid rgba(246,241,228,.34);
}
.hero-inner{position:relative;z-index:3;color:#f7f2e6;padding:0 24px;max-width:min(920px,92%)}
.hero-enso{
  --enso-w:2px;width:clamp(120px,20vw,196px);height:clamp(120px,20vw,196px);
  position:absolute;left:50%;top:50%;transform:translate(-50%,-58%);
  opacity:.6;z-index:-1;
  background:conic-gradient(from 208deg, rgba(246,241,228,.92) 0deg, rgba(246,241,228,.92) 298deg, transparent 298deg 360deg);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--enso-w)), #000 calc(100% - var(--enso-w)));
          mask:radial-gradient(farthest-side, transparent calc(100% - var(--enso-w)), #000 calc(100% - var(--enso-w)));
}
.hero-eyebrow{
  font-family:var(--f-en);font-style:italic;font-size:.98rem;letter-spacing:.26em;
  opacity:.9;margin-bottom:26px;font-weight:500;
}
.hero-catch{display:flex;flex-direction:column;gap:.14em;margin:0}
.hero-catch-line{
  font-family:var(--f-min);font-weight:600;
  font-size:clamp(1.85rem,4.6vw,3rem);letter-spacing:.13em;line-height:1.44;
  text-shadow:0 2px 34px rgba(18,24,32,.5);text-indent:.13em;
  word-break:auto-phrase;
}
.hero-catch-em{color:#e9dcc0}
.hero-subtitle{
  font-family:var(--f-min);margin:30px auto 0;
  font-size:clamp(.9rem,1.5vw,1.02rem);line-height:2.5;letter-spacing:.11em;
  opacity:.96;max-width:34em;text-shadow:0 2px 24px rgba(18,24,32,.42);
}
.hero-buttons{display:flex;gap:16px;margin-top:38px;flex-wrap:wrap;justify-content:center}
.hero-scroll{
  position:absolute;z-index:3;left:50%;transform:translateX(-50%);bottom:0;color:#f6f1e4;
  font-family:var(--f-en);font-style:italic;font-size:.8rem;letter-spacing:.28em;opacity:.9;
}
.hero-scroll::after{
  content:"";display:block;width:1px;height:56px;background:rgba(246,241,228,.7);margin:12px auto 0;
  animation:scrollLine 2.8s var(--trans) infinite;
}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}50.01%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ============ セクション基礎 ============ */
.section{padding:clamp(90px,12.5vw,168px) 0;position:relative}
.section-mist{background:var(--mist)}
.sec-head{margin-bottom:clamp(50px,7vw,76px)}
.sec-head.centered{text-align:center}
/* 欧文小見出し（従）＋ 円相の小さな印 */
.sec-eyebrow{
  font-family:var(--f-en);font-style:italic;font-size:.94rem;letter-spacing:.26em;
  color:var(--aizu-dark);margin-bottom:16px;font-weight:500;
}
.sec-head.centered .sec-eyebrow::after{
  content:"";display:block;width:26px;height:26px;margin:14px auto 0;--enso-w:1.5px;
  background:conic-gradient(from 208deg, var(--aizu) 0deg, var(--aizu) 298deg, transparent 298deg 360deg);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1.5px));
          mask:radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1.5px));
}
.sec-head:not(.centered) .sec-eyebrow{display:inline-flex;align-items:center;gap:14px}
.sec-head:not(.centered) .sec-eyebrow::after{content:"";width:34px;height:1px;background:var(--aizu)}
/* 和文大見出し（主）＝しっぽり明朝 */
.sec-title{
  font-family:var(--f-min);font-weight:600;
  font-size:clamp(1.7rem,3.5vw,2.45rem);line-height:1.55;letter-spacing:.14em;
  color:var(--navy);text-indent:.14em;
}
.copy-title{
  font-family:var(--f-min);font-weight:500;color:var(--navy);
  font-size:clamp(1.5rem,3vw,2.05rem);line-height:1.95;letter-spacing:.12em;
  word-break:auto-phrase;
}
.copy-title em{font-style:normal;color:var(--aizu-dark)}
.copy-lead{font-size:.95rem;line-height:2.6;color:var(--ink);letter-spacing:.08em;max-width:46ch}

/* ============ お知らせ ============ */
.news-strip{border-bottom:1px solid var(--line);background:var(--paper)}
.news-inner{
  max-width:var(--maxw);margin:0 auto;padding:26px clamp(24px,5.5vw,56px);
  display:flex;align-items:baseline;gap:clamp(20px,3.4vw,46px);
}
.news-label{
  font-family:var(--f-en);font-style:italic;font-size:1rem;letter-spacing:.2em;
  color:var(--aizu);white-space:nowrap;font-weight:500;
}
.news-list{list-style:none;flex:1;min-width:0}
.news-list li{
  display:flex;gap:24px;align-items:baseline;padding:8px 0;
  border-bottom:1px dotted var(--line);font-size:.88rem;
}
.news-list li:last-child{border-bottom:0}
.news-date{font-family:var(--f-en);color:var(--aizu-dark);font-size:.92rem;letter-spacing:.08em;white-space:nowrap}
.news-text{letter-spacing:.06em;line-height:1.9}

/* ============ 理念（creed）— 「一人一人にとっての健康」鍼灸固有の署名 ============ */
.creed{background:var(--mist);position:relative;text-align:center}
.creed .container{max-width:820px}
.creed-enso{
  --enso-w:2px;width:clamp(66px,10vw,92px);height:clamp(66px,10vw,92px);margin:0 auto clamp(30px,4vw,40px);
}
.creed-lead{
  font-family:var(--f-min);font-weight:500;color:var(--navy);
  font-size:clamp(1.35rem,2.9vw,2rem);line-height:2.05;letter-spacing:.14em;
  word-break:auto-phrase;
}
.creed-lead em{font-style:normal;color:var(--aizu-dark)}
.creed-body{
  margin-top:clamp(28px,4vw,40px);font-size:.96rem;line-height:2.7;color:var(--ink);
  letter-spacing:.09em;
}
.creed-sign{
  display:inline-block;margin-top:clamp(30px,4vw,42px);
  font-family:var(--f-en);font-style:italic;font-size:.92rem;letter-spacing:.2em;color:var(--aizu-dark);
}
.creed-sign::before{content:"";display:block;width:44px;height:1px;background:var(--aizu-soft);margin:0 auto 16px}

/* ============ 当院について（コピー × 重ねコラージュ + 縦書きラベル） ============ */
.about-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:clamp(44px,7vw,96px);align-items:center}
.about-copy .sec-head{margin-bottom:clamp(28px,4vw,40px)}
.about-copy .copy-lead{margin-top:28px}
.collage{position:relative;padding:0 clamp(30px,4vw,54px) clamp(50px,7vw,74px) 0}
.collage-main{width:100%;aspect-ratio:3/4;object-fit:cover}
.collage-sub{position:absolute;right:0;bottom:0;width:52%;aspect-ratio:4/5;object-fit:cover;border:7px solid var(--paper)}
.collage-vlabel{
  position:absolute;top:6px;left:calc(100% - 8px);writing-mode:vertical-rl;
  font-family:var(--f-min);font-size:.72rem;letter-spacing:.5em;color:var(--aizu-dark);
}

/* ============ 当院の特色（写真×交互・漢数字「壱弐参」） ============ */
.feature-row{
  display:grid;grid-template-columns:1.08fr 1fr;gap:clamp(38px,6vw,88px);
  align-items:center;margin-bottom:clamp(64px,9vw,116px);
}
.feature-row:last-child{margin-bottom:0}
.feature-row.is-flip .feature-img{order:2}
.feature-row.is-flip .feature-body{order:1}
.feature-img{overflow:hidden;aspect-ratio:5/4;position:relative}
.feature-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--trans)}
.feature-row:hover .feature-img img{transform:scale(1.04)}
/* 漢数字の印（伝統署名） */
.feature-num{
  font-family:var(--f-min);font-weight:500;font-size:clamp(2rem,3.4vw,2.7rem);
  color:var(--aizu);line-height:1;margin-bottom:18px;
  display:inline-flex;align-items:center;gap:16px;
}
.feature-num small{
  font-family:var(--f-en);font-style:italic;font-size:.42em;letter-spacing:.2em;color:var(--aizu-dark);
  font-weight:500;
}
.feature-title{
  font-family:var(--f-min);font-weight:600;color:var(--navy);
  font-size:clamp(1.35rem,2.3vw,1.72rem);line-height:1.85;letter-spacing:.11em;
  margin-bottom:20px;word-break:auto-phrase;
}
.feature-desc{font-size:.93rem;line-height:2.55;color:var(--ink);letter-spacing:.07em}

/* ============ 適応症状（こんなお悩みに）— 鍼灸固有の署名。効能断定しない ============ */
.symptoms .sec-head{margin-bottom:clamp(40px,5.5vw,60px)}
.symptom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,32px)}
.symptom-card{
  background:var(--paper);border:1px solid var(--line);padding:clamp(28px,3vw,40px) clamp(24px,2.6vw,34px);
  transition:border-color .5s var(--trans),transform .5s var(--trans);
}
.symptom-card:hover{border-color:var(--aizu-soft);transform:translateY(-3px)}
.symptom-cat{
  display:flex;align-items:baseline;gap:12px;margin-bottom:20px;
  padding-bottom:16px;border-bottom:1px solid var(--line);
}
.symptom-cat-num{font-family:var(--f-en);font-style:italic;font-size:1rem;color:var(--gold);letter-spacing:.14em;font-weight:500}
.symptom-cat-name{font-family:var(--f-min);font-weight:600;font-size:1.12rem;letter-spacing:.1em;color:var(--navy)}
.symptom-list{list-style:none;display:flex;flex-wrap:wrap;gap:9px 10px}
.symptom-list li{
  font-size:.82rem;font-weight:500;letter-spacing:.04em;color:var(--ink);line-height:1.7;
  background:var(--washi);border:1px solid var(--line);padding:5px 12px;
}
.symptoms-note{
  max-width:760px;margin:clamp(42px,6vw,58px) auto 0;text-align:center;
  font-size:.84rem;color:var(--mute);line-height:2.3;letter-spacing:.06em;
}

/* ============ 施術メニュー（3カード・フラット罫） ============ */
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,38px)}
.course-card{
  background:var(--paper);display:flex;flex-direction:column;
  border:1px solid var(--line);transition:border-color .5s var(--trans);
}
.course-card:hover{border-color:var(--aizu-soft)}
.course-img{aspect-ratio:4/3;overflow:hidden}
.course-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--trans)}
.course-card:hover .course-img img{transform:scale(1.05)}
.course-body{padding:clamp(26px,2.8vw,36px);display:flex;flex-direction:column;flex:1}
.course-name-en{font-family:var(--f-en);font-style:italic;font-size:1rem;letter-spacing:.16em;color:var(--aizu);margin-bottom:10px;font-weight:500}
.course-name{font-family:var(--f-min);font-weight:600;font-size:1.22rem;letter-spacing:.08em;color:var(--navy);margin-bottom:14px;line-height:1.8}
.course-desc{font-size:.87rem;line-height:2.25;color:var(--ink);letter-spacing:.05em;margin-bottom:22px}
.course-meta{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* 読ませる価格＝明朝ライニング。装飾セリフを使わない */
.course-price{font-family:var(--f-min);font-weight:600;font-size:1.3rem;letter-spacing:.02em;color:var(--navy)}
.course-price small{font-family:var(--f-min);font-size:.66rem;color:var(--mute);margin-left:8px;letter-spacing:.1em;font-weight:400}
.course-note{font-size:.76rem;color:var(--aizu-dark);letter-spacing:.06em}
.course-cta{margin-top:clamp(44px,6vw,60px);text-align:center}

/* ============ ボタン ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:13px;
  padding:15px 40px;font-family:var(--f-min);font-weight:600;font-size:.84rem;letter-spacing:.2em;text-indent:.1em;
  border:0;cursor:pointer;transition:all .5s var(--trans);
}
.btn-primary{background:var(--navy);color:#f6f1e4}
.btn-primary:hover{background:var(--navy-dark);opacity:1;transform:translateY(-2px)}
.btn-secondary{background:transparent;color:var(--navy);border:1px solid var(--aizu-soft)}
.btn-secondary:hover{background:var(--navy);color:#f6f1e4;opacity:1;border-color:var(--navy)}
.btn-ghost{background:transparent;color:#f6f1e4;border:1px solid rgba(246,241,228,.6)}
.btn-ghost:hover{background:#f6f1e4;color:var(--navy);opacity:1;border-color:#f6f1e4}
.btn-line{background:#06c755;color:#fff}
.btn-line:hover{background:#05b34c;opacity:1;transform:translateY(-2px)}
.btn-arrow{display:inline-block;transition:transform .4s var(--trans)}
.btn:hover .btn-arrow{transform:translateX(5px)}

/* ============ 施術の流れ ============ */
.flow-grid{display:grid;grid-template-columns:minmax(300px,430px) 1fr;gap:clamp(40px,6vw,90px);align-items:start}
.flow-img{aspect-ratio:3/4;overflow:hidden;position:sticky;top:112px}
.flow-img img{width:100%;height:100%;object-fit:cover}
.flow-steps{list-style:none;position:relative}
.flow-steps::before{content:"";position:absolute;left:1.15em;top:14px;bottom:14px;width:1px;background:var(--line)}
.flow-step{display:grid;grid-template-columns:auto 1fr;gap:clamp(22px,3vw,36px);padding:26px 0;position:relative}
.flow-step-num{
  font-family:var(--f-en);font-style:italic;font-size:1.7rem;color:var(--aizu);
  line-height:1.3;min-width:2.3em;background:var(--mist);position:relative;z-index:1;text-align:center;
}
.section:not(.section-mist) .flow-step-num{background:var(--washi)}
.flow-step-title{font-family:var(--f-min);font-weight:600;font-size:1.12rem;letter-spacing:.1em;color:var(--navy);margin-bottom:10px;line-height:1.8}
.flow-step-desc{font-size:.88rem;line-height:2.3;color:var(--ink);letter-spacing:.05em}

/* ============ ギャラリー（段差エディトリアル） ============ */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.6vw,30px);align-items:start}
.gallery-item{overflow:hidden;aspect-ratio:3/4}
.gallery-item:nth-child(2){margin-top:clamp(22px,4vw,52px)}
.gallery-item:nth-child(3){margin-top:clamp(44px,8vw,104px)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--trans)}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-caption{text-align:center;margin-top:clamp(34px,5vw,52px);font-size:.84rem;color:var(--aizu-dark);letter-spacing:.14em}

/* ============ FAQ ============ */
.faq-container{max-width:800px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-question{
  width:100%;padding:28px 0;background:transparent;border:0;cursor:pointer;
  display:flex;align-items:center;gap:24px;text-align:left;
  font-family:var(--f-min);font-size:1rem;letter-spacing:.06em;color:var(--navy);
  transition:color .4s var(--trans);
}
.faq-question:hover{color:var(--aizu-dark)}
.faq-q-label{font-family:var(--f-en);font-style:italic;font-size:1.05rem;color:var(--aizu);letter-spacing:.1em;flex-shrink:0;font-weight:500}
.faq-q-text{flex:1;line-height:1.9}
.faq-toggle{flex-shrink:0;width:24px;height:24px;position:relative;transition:transform .5s var(--trans)}
.faq-toggle::before,.faq-toggle::after{content:"";position:absolute;background:var(--aizu);transition:all .5s var(--trans)}
.faq-toggle::before{top:50%;left:0;right:0;height:1px;transform:translateY(-50%)}
.faq-toggle::after{left:50%;top:0;bottom:0;width:1px;transform:translateX(-50%)}
.faq-item.is-open .faq-toggle::after{transform:translateX(-50%) scaleY(0)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .55s var(--trans)}
.faq-item.is-open .faq-answer{max-height:560px}
.faq-answer-inner{padding:2px 0 30px;font-size:.9rem;line-height:2.4;color:var(--ink);letter-spacing:.05em;max-width:64ch}

/* 表示制御 — admin から .is-hidden */
[data-section].is-hidden{display:none !important}

/* ============ 予約CTA（ページ内で唯一のダーク面） ============ */
.reservation-section{position:relative;padding:clamp(96px,13vw,150px) 0;text-align:center;background:var(--dusk);color:#f6f1ea;isolation:isolate}
.reservation-bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;opacity:.85}
.reservation-section::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(30,40,50,.76)}
.reservation-inner{max-width:720px;margin:0 auto;padding:0 24px;position:relative}
.reservation-label{
  font-family:var(--f-en);font-style:italic;font-size:1.02rem;letter-spacing:.24em;font-weight:500;
  color:var(--aizu-soft);display:inline-flex;align-items:center;gap:15px;margin-bottom:24px;
}
.reservation-label::before,.reservation-label::after{content:"";width:32px;height:1px;background:var(--aizu-soft)}
.reservation-title{font-family:var(--f-min);font-weight:500;font-size:clamp(1.5rem,3.2vw,2.15rem);letter-spacing:.16em;line-height:1.9;margin-bottom:18px;word-break:auto-phrase}
.reservation-note{font-size:.9rem;opacity:.88;margin-bottom:40px;line-height:2.4;letter-spacing:.07em}
/* 読ませる電話番号＝明朝 */
.reservation-tel{
  font-family:var(--f-min);font-weight:500;font-size:clamp(1.7rem,3.1vw,2.25rem);letter-spacing:.06em;
  color:#f6f1ea;display:inline-block;margin-bottom:36px;border-bottom:1px solid rgba(246,241,234,.38);padding-bottom:8px;
}
.reservation-tel:hover{border-color:#f6f1ea;opacity:1}
.reservation-tel small{font-family:var(--f-min);display:block;font-size:.62rem;letter-spacing:.3em;opacity:.82;margin-bottom:8px}
.reservation-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ============ フッター ============ */
.footer{background:var(--paper);border-top:1px solid var(--line);padding:72px 0 30px;font-size:.88rem}
.footer-inner{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(30px,5vw,64px);max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,5.5vw,56px)}
.footer-logo{font-family:var(--f-min);font-weight:600;font-size:1.6rem;letter-spacing:.2em;color:var(--navy);line-height:1.4;text-indent:.12em}
.footer-logo-ja{font-family:var(--f-en);font-style:italic;font-size:.68rem;letter-spacing:.24em;color:var(--aizu-dark);margin-bottom:20px}
.footer-info{line-height:2.25;color:var(--ink)}
.footer-sns{margin-top:16px}
.footer-sns a{font-family:var(--f-en);font-style:italic;font-size:.92rem;letter-spacing:.1em;color:var(--aizu-dark);display:inline-flex;align-items:center;gap:9px}
.footer-sns a::before{content:"";width:9px;height:9px;--enso-w:1.5px;display:inline-block;background:conic-gradient(from 208deg,var(--aizu) 0 298deg,transparent 298deg);-webkit-mask:radial-gradient(farthest-side,transparent 5.5px,#000 5.5px);mask:radial-gradient(farthest-side,transparent 5.5px,#000 5.5px)}
.footer-heading{font-family:var(--f-en);font-style:italic;font-size:.92rem;letter-spacing:.22em;font-weight:500;color:var(--aizu);margin-bottom:18px}
.footer-links{list-style:none}
.footer-links li{margin-bottom:11px}
.footer-links a{font-family:var(--f-min);font-size:.9rem;letter-spacing:.08em;color:var(--navy)}
.footer-bottom{text-align:center;margin-top:56px;padding-top:22px;border-top:1px solid var(--line);font-family:var(--f-en);font-size:.74rem;color:var(--mute);letter-spacing:.2em}

/* ============ モバイルCTA ============ */
.mobile-cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:90;background:rgba(38,51,63,.96);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1);padding:11px 14px;gap:10px}
.mobile-cta-bar .btn{flex:1;padding:14px;font-size:.78rem}
.mobile-cta-bar .btn-secondary{color:#f0eadc;border-color:rgba(246,241,228,.5)}
.mobile-cta-bar .btn-secondary:hover{background:#f6f1e4;color:var(--navy)}

/* ============ Fade-in ============ */
.fade-in{opacity:0;transform:translateY(30px);transition:opacity 1.1s var(--trans), transform 1.1s var(--trans)}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* ============ Reduced motion ============ */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .fade-in{opacity:1;transform:none;transition:none}
  .hero-bg{animation:none;transform:none}
  .hero-scroll::after{animation:none}
  .feature-img img,.course-img img,.gallery-item img{transition:none}
  .feature-row:hover .feature-img img,.course-card:hover .course-img img,.gallery-item:hover img{transform:none}
  .symptom-card:hover{transform:none}
  .btn,.btn-arrow{transition:none}
  .btn-primary:hover,.btn-line:hover{transform:none}
  .btn:hover .btn-arrow{transform:none}
  .faq-answer,.faq-toggle,.faq-toggle::before,.faq-toggle::after{transition:none}
  .nav-list a::after{transition:none}
  .form-submit{transition:none}
  .form-submit:hover{transform:none}
}

/* ============ 下層ページ共通 ============ */
.page-header{
  padding:calc(80px + clamp(58px,10vw,104px)) 0 clamp(54px,7vw,80px);text-align:center;
  background:var(--mist);border-bottom:1px solid var(--line);
}
.page-header-eyebrow{font-family:var(--f-en);font-style:italic;font-weight:500;color:var(--aizu-dark);font-size:.98rem;letter-spacing:.24em}
.page-header-eyebrow::after{
  content:"";display:block;width:26px;height:26px;margin:12px auto 15px;--enso-w:1.5px;
  background:conic-gradient(from 208deg,var(--aizu) 0 298deg,transparent 298deg);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1.5px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1.5px));
}
.page-header-title{font-family:var(--f-min);font-weight:600;color:var(--navy);font-size:clamp(1.65rem,4vw,2.5rem);letter-spacing:.16em;line-height:1.5;text-indent:.16em}

/* --- メニュー・料金ページ --- */
.menu-category{margin-bottom:clamp(66px,9vw,104px)}
.menu-category:last-child{margin-bottom:0}
.menu-category-title{font-family:var(--f-min);font-weight:600;font-size:clamp(1.35rem,2.4vw,1.72rem);color:var(--navy);letter-spacing:.14em;margin-bottom:12px;display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.menu-category-title-en{font-family:var(--f-en);font-style:italic;font-weight:500;font-size:1.02rem;color:var(--aizu);letter-spacing:.14em}
.menu-category-intro{font-size:.9rem;color:var(--ink);line-height:2.4;letter-spacing:.07em;margin-bottom:34px;max-width:58ch}
.menu-list{border-top:1px solid var(--line)}
.menu-item{display:grid;grid-template-columns:1fr auto;gap:6px 36px;padding:26px 6px;border-bottom:1px solid var(--line)}
.menu-item-name{font-family:var(--f-min);font-weight:500;font-size:1.05rem;letter-spacing:.08em;line-height:1.9;color:var(--navy)}
.menu-item-badge{display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:.16em;color:#fff;background:var(--aizu);padding:3px 11px;margin-left:14px;vertical-align:2px}
.menu-item-desc{grid-column:1;font-size:.85rem;color:var(--mute);line-height:2.2;letter-spacing:.05em;max-width:52ch}
/* 読ませる価格＝明朝ライニング */
.menu-item-price{grid-row:1;grid-column:2;text-align:right;font-family:var(--f-min);font-weight:600;font-size:1.1rem;letter-spacing:.02em;white-space:nowrap;color:var(--navy)}
.menu-item-price small{font-family:var(--f-min);font-size:.66rem;color:var(--mute);margin-left:7px;letter-spacing:.08em;font-weight:400}
.menu-item-note{grid-column:2;grid-row:2;text-align:right;font-size:.74rem;color:var(--aizu-dark);letter-spacing:.05em}
.menu-footnote{max-width:680px;margin:clamp(52px,7vw,68px) auto 0;font-size:.82rem;color:var(--mute);line-height:2.4;letter-spacing:.05em;border:1px solid var(--line);padding:26px clamp(22px,3vw,36px);background:var(--paper)}

/* --- 症状から選ぶ型（症状ナビ / 自費・保険 / 東洋医学のことば） --- */
/* 症状ナビのジャンプ先が固定ヘッダー(80px)に隠れないように */
.menu-category{scroll-margin-top:100px}

/* 症状ナビ：写真カード → 該当施術へ（和・直角・明朝） */
.symnav-lead{max-width:60ch;margin:0 auto clamp(44px,6vw,60px);text-align:center;font-size:.94rem;line-height:2.5;color:var(--ink);letter-spacing:.06em}
.symnav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.2vw,26px)}
.symnav-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);overflow:hidden;position:relative;transition:transform .5s var(--trans),border-color .5s var(--trans),box-shadow .5s var(--trans)}
.symnav-card:hover{transform:translateY(-4px);border-color:var(--aizu-soft);box-shadow:0 24px 52px -34px rgba(35,40,47,.5);opacity:1}
.symnav-photo{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.symnav-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--trans)}
.symnav-card:hover .symnav-photo img{transform:scale(1.05)}
.symnav-body{display:flex;flex-direction:column;gap:9px;flex:1;padding:clamp(22px,2.4vw,28px) clamp(22px,2.4vw,28px) clamp(24px,2.6vw,30px)}
.symnav-name{font-family:var(--f-min);font-weight:600;font-size:1.12rem;line-height:1.8;letter-spacing:.08em;color:var(--navy)}
.symnav-rec{display:block;font-size:.85rem;font-weight:500;line-height:1.95;letter-spacing:.05em;color:var(--aizu-dark)}
.symnav-rec-lbl{display:inline-block;font-family:var(--f-min);font-weight:600;font-size:.68rem;letter-spacing:.1em;color:var(--navy);background:var(--stone);border:1px solid var(--aizu-soft);padding:2px 10px;margin-right:9px;vertical-align:2px}
.symnav-go{margin-top:auto;font-family:var(--f-min);font-weight:600;font-size:.86rem;letter-spacing:.08em;color:var(--navy);display:inline-flex;align-items:center;gap:9px;border-top:1px solid var(--line);margin-top:14px;padding-top:16px}
.symnav-go .arw{font-family:var(--f-en);transition:transform .4s var(--trans)}
.symnav-card:hover .symnav-go .arw{transform:translateX(5px)}

/* 自費診療と健康保険 の2枚組 */
.coverage-lead{max-width:64ch;margin:0 auto clamp(40px,5vw,54px);text-align:center;font-size:.94rem;line-height:2.5;color:var(--ink);letter-spacing:.06em}
.coverage-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.6vw,32px)}
.coverage-panel{background:var(--paper);border:1px solid var(--line);padding:clamp(30px,3.4vw,46px) clamp(26px,3vw,40px);position:relative}
.coverage-panel--self{border-top:3px solid var(--navy)}
.coverage-panel--ins{border-top:3px solid var(--gold)}
.coverage-kind{font-family:var(--f-en);font-style:italic;font-weight:500;font-size:.94rem;letter-spacing:.14em;color:var(--aizu);margin-bottom:12px;display:inline-block}
.coverage-title{font-family:var(--f-min);font-weight:600;font-size:1.16rem;line-height:1.7;letter-spacing:.08em;color:var(--navy);margin-bottom:8px}
.coverage-note{font-size:.82rem;color:var(--mute);letter-spacing:.05em;line-height:2;margin-bottom:22px}
.coverage-list{list-style:none;display:flex;flex-direction:column;gap:14px}
.coverage-list li{position:relative;padding-left:24px;font-size:.92rem;line-height:1.95;letter-spacing:.05em;color:var(--ink)}
.coverage-list li::before{content:"";position:absolute;left:3px;top:.78em;width:7px;height:7px;transform:rotate(45deg)}
.coverage-panel--self .coverage-list li::before{background:var(--navy)}
.coverage-panel--ins .coverage-list li::before{background:var(--gold)}
.coverage-foot{grid-column:1/-1;margin-top:6px;font-size:.81rem;color:var(--mute);line-height:2.35;letter-spacing:.05em}

/* 名物: 東洋医学のことば（辞典風） */
.glossary{background:var(--paper);border:1px solid var(--line);padding:clamp(36px,4.5vw,64px) clamp(28px,4.5vw,64px);position:relative}
.glossary::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.glossary-lead{max-width:60ch;font-size:.92rem;line-height:2.5;color:var(--ink);letter-spacing:.06em;margin-bottom:clamp(30px,4vw,46px)}
.glossary-list{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3.4vw,44px) clamp(40px,5vw,76px)}
.glossary-item{border-top:1px solid var(--line);padding-top:20px}
.glossary-term{font-family:var(--f-min);font-weight:700;font-size:1.3rem;letter-spacing:.1em;color:var(--navy);margin-bottom:11px;display:flex;align-items:baseline;gap:13px;flex-wrap:wrap}
.glossary-reading{font-family:var(--f-min);font-weight:400;font-size:.8rem;letter-spacing:.12em;color:var(--aizu-dark)}
.glossary-desc{font-size:.88rem;line-height:2.4;color:var(--ink);letter-spacing:.05em}

@media (max-width:920px){
  .symnav-grid{grid-template-columns:1fr 1fr;gap:18px}
}
@media (max-width:760px){
  .symnav-grid{grid-template-columns:1fr;max-width:440px;margin-left:auto;margin-right:auto}
  .coverage-grid{grid-template-columns:1fr;gap:20px}
  .glossary-list{grid-template-columns:1fr;gap:24px}
}

/* --- 院長・当院について ページ --- */
.about-story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,84px);align-items:center}
.about-story .collage{padding:0 clamp(24px,3vw,44px) clamp(44px,6vw,64px) 0}
.chief-block{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:clamp(36px,6vw,80px);align-items:start}
.chief-img{aspect-ratio:3/4;overflow:hidden;background:var(--stone)}
.chief-img img{width:100%;height:100%;object-fit:cover}
.chief-role{font-family:var(--f-en);font-style:italic;font-size:1rem;color:var(--aizu);font-weight:500;letter-spacing:.18em;margin-bottom:12px}
.chief-name{font-family:var(--f-min);font-weight:600;font-size:1.7rem;letter-spacing:.18em;color:var(--navy);margin-bottom:6px}
.chief-name small{font-size:.5em;font-weight:400;color:var(--mute);letter-spacing:.14em;margin-left:12px}
.chief-name-en{font-family:var(--f-en);font-style:italic;font-size:.94rem;color:var(--aizu-dark);letter-spacing:.16em;margin-bottom:26px}
.chief-bio{font-size:.94rem;line-height:2.55;color:var(--ink);letter-spacing:.07em;margin-bottom:28px}
.chief-credentials{display:flex;flex-wrap:wrap;gap:11px}
/* 国家資格バッジ＝ウェイト上げ・読ませる */
.chief-credential{font-size:.78rem;font-weight:600;letter-spacing:.08em;color:var(--navy);border:1px solid var(--aizu-soft);padding:7px 16px;background:var(--paper)}
/* 東洋医学の考え（証・気血水）ブロック */
.tenets{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,32px)}
.tenet{background:var(--paper);border:1px solid var(--line);padding:clamp(30px,3.2vw,42px) clamp(24px,2.6vw,34px);text-align:center}
.tenet-mark{font-family:var(--f-min);font-weight:600;font-size:clamp(1.8rem,3.2vw,2.4rem);color:var(--aizu);letter-spacing:.1em;margin-bottom:16px;line-height:1}
.tenet-title{font-family:var(--f-min);font-weight:600;font-size:1.14rem;letter-spacing:.09em;color:var(--navy);margin-bottom:14px}
.tenet-desc{font-size:.86rem;line-height:2.35;color:var(--ink);letter-spacing:.05em;text-align:left}

/* --- アクセスページ --- */
.access-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(44px,6vw,76px);align-items:start}
.access-map{aspect-ratio:4/5;overflow:hidden;position:sticky;top:112px}
.access-map iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(.96)}
.access-info-block{padding:26px 0;border-bottom:1px solid var(--line)}
.access-info-block:first-child{padding-top:0}
.access-info-block:last-child{border-bottom:0}
.access-info-label{font-family:var(--f-en);font-style:italic;font-size:1rem;font-weight:500;color:var(--aizu);letter-spacing:.2em;margin-bottom:12px;display:inline-block;border-bottom:1px solid var(--aizu-soft);padding-bottom:5px}
.access-info-text{font-size:.94rem;line-height:2.3;letter-spacing:.05em}
.access-info-text a{border-bottom:1px solid var(--line);padding-bottom:2px}
.access-info-text a:hover{border-color:var(--navy);opacity:1}
.hours-table{width:100%;border-collapse:collapse}
.hours-table td{padding:11px 0;font-size:.9rem;letter-spacing:.05em;vertical-align:top}
.hours-table td:first-child{color:var(--aizu-dark);width:40%;letter-spacing:.1em;white-space:nowrap}
.phone-link{font-family:var(--f-min);font-weight:600;font-size:1.44rem;letter-spacing:.04em;color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:5px;display:inline-block}
.phone-link:hover{border-color:var(--navy);opacity:1}

/* --- お問い合わせページ --- */
.contact-intro{max-width:640px;margin:0 auto clamp(50px,7vw,72px);text-align:center}
.contact-intro .copy-lead{margin:0 auto;max-width:none;line-height:2.55}
.contact-form{max-width:580px;margin:0 auto}
.form-group{margin-bottom:30px}
.form-label{display:block;font-size:.88rem;color:var(--navy);letter-spacing:.08em;margin-bottom:11px}
.form-label .required{display:inline-block;font-size:.66rem;letter-spacing:.08em;color:#a8583f;margin-left:9px;vertical-align:2px}
.form-label .required::before{content:"※";margin-right:2px;font-size:.9em}
.form-input,.form-select,.form-textarea{width:100%;padding:15px 18px;border:1px solid var(--line);border-radius:2px;font-family:var(--f-min);font-size:1rem;color:var(--ink);background:var(--paper);transition:all .3s var(--trans);letter-spacing:.03em}
.form-input::placeholder,.form-textarea::placeholder{color:rgba(60,66,74,.34)}
.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--aizu-soft)}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:0;border-color:var(--aizu);box-shadow:0 0 0 3px rgba(93,105,112,.15)}
.form-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235d6970' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:calc(100% - 18px) center;background-repeat:no-repeat;padding-right:40px;cursor:pointer}
.form-textarea{min-height:150px;resize:vertical;line-height:1.95}
.form-submit{display:block;margin:46px auto 0;padding:17px 72px;min-width:230px;font-family:var(--f-min);font-size:.86rem;font-weight:600;letter-spacing:.26em;text-indent:.26em;background:var(--navy);color:#f6f1e4;border:0;cursor:pointer;transition:all .45s var(--trans)}
.form-submit:hover{background:var(--navy-dark);transform:translateY(-2px)}
.quick-contact{text-align:center;padding:clamp(68px,9vw,108px) 0;background:var(--mist);border-top:1px solid var(--line)}
.quick-contact .copy-title{margin:0 auto 26px;text-align:center}
.quick-contact-phone{font-family:var(--f-min);font-weight:600;font-size:clamp(1.7rem,3vw,2.25rem);letter-spacing:.06em;color:var(--navy);display:inline-block;border-bottom:1px solid var(--line);padding-bottom:7px;margin-top:12px}
.quick-contact-phone:hover{border-color:var(--navy);opacity:1}
.quick-contact-hours{font-size:.84rem;color:var(--aizu-dark);margin-top:18px;letter-spacing:.08em}

/* --- 下層の簡易予約帯 --- */
.reservation-compact{background:var(--dusk);color:#f6f1ea;padding:clamp(38px,5vw,54px) 0}
.reservation-compact-inner{max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,5.5vw,56px);display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,4vw,48px);flex-wrap:wrap}
.reservation-compact-text{display:flex;align-items:baseline;gap:clamp(16px,2vw,26px);flex-wrap:wrap;min-width:0}
.reservation-compact-eyebrow{font-family:var(--f-en);font-style:italic;font-size:1rem;color:var(--aizu-soft);font-weight:500;letter-spacing:.22em;display:inline-flex;align-items:center;gap:13px;white-space:nowrap}
.reservation-compact-eyebrow::before{content:"";width:26px;height:1px;background:var(--aizu-soft)}
.reservation-compact-title{font-family:var(--f-min);font-weight:500;font-size:clamp(1.02rem,1.8vw,1.28rem);letter-spacing:.12em;line-height:1.9}
.reservation-compact-actions{display:flex;gap:14px;flex-shrink:0;flex-wrap:wrap}

/* ============ レスポンシブ ============ */
/* ナビ切替：横ナビが詰まる帯の直上で余裕をもってハンバーガー化（独立ブロック・タブレット帯の途中折れ対策） */
@media (max-width: 1060px){
  .nav-list{display:none;list-style:none}
  .nav-list.open{display:flex;flex-direction:column;position:absolute;top:80px;left:0;right:0;background:rgba(34,44,54,.98);padding:28px 32px;gap:18px;border-bottom:1px solid rgba(255,255,255,.1);align-items:flex-start}
  .hamburger{display:flex}
}
@media (max-width: 920px){
  .about-grid{grid-template-columns:1fr;gap:clamp(40px,7vw,56px)}
  .about-story{grid-template-columns:1fr;gap:clamp(40px,7vw,56px)}
  .collage{max-width:520px;margin:0 auto}
  .feature-row{grid-template-columns:1fr;gap:26px;margin-bottom:60px}
  .feature-row.is-flip .feature-img{order:0}
  .feature-row.is-flip .feature-body{order:1}
  .symptom-grid{grid-template-columns:1fr 1fr;gap:20px}
  .course-grid{grid-template-columns:1fr;gap:30px;max-width:500px;margin:0 auto}
  .tenets{grid-template-columns:1fr;gap:20px;max-width:520px;margin:0 auto}
  .flow-grid{grid-template-columns:1fr;gap:40px}
  .flow-img{position:static;max-width:430px;margin:0 auto}
  .chief-block{grid-template-columns:1fr;gap:32px}
  .chief-img{max-width:360px}
  .access-layout{grid-template-columns:1fr;gap:44px}
  .access-map{position:static;aspect-ratio:16/10}
  .footer-inner{grid-template-columns:1fr 1fr}
}
@media (max-width: 768px){
  .mobile-cta-bar{display:flex}
  body{padding-bottom:74px}
  .hero-media{height:84vh;min-height:500px}
  .hero-media::after{inset:14px}
  .hero-eyebrow{font-size:.74rem;letter-spacing:.14em;margin-bottom:20px}
  .hero-catch-line{font-size:clamp(1.7rem,7.4vw,2.4rem);letter-spacing:.08em}
  .hero-subtitle{font-size:.86rem;line-height:2.3}
  .news-inner{flex-direction:column;gap:10px}
  .symptom-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr;gap:14px}
  .gallery-item:nth-child(2){margin-top:0}
  .gallery-item:nth-child(3){margin-top:0;grid-column:1 / -1;aspect-ratio:16/10}
  .menu-item{grid-template-columns:1fr}
  .menu-item-price{grid-row:auto;grid-column:1;text-align:left}
  .menu-item-note{grid-column:1;text-align:left}
  .footer-inner{grid-template-columns:1fr}
}
@media (max-width:600px){
  .reservation-compact-inner{flex-direction:column;align-items:flex-start}
  .reservation-compact-actions{width:100%}
  .reservation-compact-actions .btn{flex:1 1 auto;justify-content:center}
  .reservation-buttons{width:100%}
  .reservation-buttons .btn{flex:1 1 auto;min-width:44%;justify-content:center}
}

/* ============ 下層ページ 視覚エンリッチメント（2026-07-13 下層最低基準） ============ */
/* washi/mist/navy/dusk トークン流用。角はシャープ（和の意匠を継承）。写真は既存画像を再利用。 */

/* 下層ヒーロー：写真背景 */
.page-header--photo{
  background-color:var(--dusk);
  background-size:cover;background-position:center;
  border-bottom:none;overflow:hidden;
  padding-top:calc(80px + clamp(88px,12vw,150px));
  padding-bottom:clamp(72px,10vw,116px);
}
.page-header-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,28,38,.40) 0%,rgba(20,28,38,.68) 100%)}
.page-header-inner{position:relative;z-index:1}
.page-header--photo .page-header-eyebrow{color:#d9cca8}
.page-header--photo .page-header-eyebrow::after{background:conic-gradient(from 208deg,#cdbf9c 0 298deg,transparent 298deg)}
.page-header--photo .page-header-title{color:#fdfbf4}
.page-header-lead{font-family:var(--f-min);color:rgba(253,251,244,.9);font-size:clamp(.86rem,1.5vw,.98rem);line-height:2.2;letter-spacing:.1em;max-width:30em;margin:18px auto 0;text-shadow:0 2px 18px rgba(18,24,32,.4)}

/* menu：施術写真の帯 */
.menu-band{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,66px);align-items:center}
.menu-band-photo{aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.menu-band-photo img{width:100%;height:100%;object-fit:cover}
.menu-band-copy .copy-lead{margin-top:20px}

/* menu：カテゴリ見出しの写真サムネ（正方・角シャープ） */
.menu-category-head{display:flex;align-items:center;gap:clamp(16px,2vw,22px);margin-bottom:14px}
.menu-category-thumb{flex:0 0 auto;width:74px;height:74px;overflow:hidden;background:var(--stone)}
.menu-category-thumb img{width:100%;height:100%;object-fit:cover}
.menu-category-head .menu-category-title{margin-bottom:0}

/* 全幅の温度写真バンド（access / contact） */
.lead-photo{position:relative;width:100%;aspect-ratio:21/9;max-height:440px;overflow:hidden}
.lead-photo img{width:100%;height:100%;object-fit:cover;display:block}
.lead-photo-cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(46px,8vw,80px) clamp(24px,5.5vw,56px) clamp(20px,3vw,30px);background:linear-gradient(0deg,rgba(20,28,38,.72) 0%,rgba(20,28,38,0) 100%);color:#fdfbf4;font-family:var(--f-min);font-size:clamp(.86rem,1.5vw,1rem);line-height:2.2;letter-spacing:.1em;text-align:center}

@media (max-width:760px){
  .menu-band{grid-template-columns:1fr;gap:26px}
  .lead-photo{aspect-ratio:4/3}
  .menu-category-thumb{width:58px;height:58px}
}
