:root{
    /* 案B「凛」のパレット */
    --bg:#F7F3EA; --surface:#FCFAF4; --band:#F0EADC;
    --ink:#2C2721; --sub:#6B6153;
    /* --gold=明るいブランド金（大見出しem・ロゴ・罫線・グラフィック専用＝3:1でOKな用途）。
       --gold-d=AAテキスト/ボタン地用の金（全明地で4.5:1+）。--gold-dd=ボタンhover（クリーム6.8:1）。
       --gold-l=墨地(--ink)の上の明るい金テキスト（9:1） */
    --gold:#A5804A; --gold-d:#846237; --gold-dd:#6E5330; --gold-l:#E4C68F; --line:#E4DCCB;
    /* --sub-soft は墨地の上の副次テキスト専用。AA(4.5:1)確保のため #8E8474→#A0947F（4.96:1） */
    --sub-soft:#A0947F;
    /* 言語別フォント（非日本語ページは head のインラインstyleで上書き） */
    --f-serif:"Noto Serif JP",serif;
    --f-sans:"Noto Sans JP",sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
  body{background:var(--bg);color:var(--ink);font-family:var(--f-sans);font-weight:400;font-size:15px;line-height:1.95;letter-spacing:.05em;-webkit-font-smoothing:antialiased}
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}
  /* padding は左右のみ指定する（shorthand にすると section の padding-top を打ち消す） */
  .wrap{max-width:1120px;margin:0 auto;padding-left:48px;padding-right:48px}
  .kicker{font-size:10px;letter-spacing:.44em;color:var(--gold-d);text-transform:uppercase;font-weight:500}

  /* ============ HEADER（新規） ============ */
  header{position:sticky;top:0;z-index:80;background:rgba(247,243,234,.95);border-bottom:1px solid var(--line)}
  header{transition:transform .35s ease}
  header.head-hide{transform:translateY(-100%)}
  .head-in{max-width:1240px;margin:0 auto;padding:15px 48px;display:flex;justify-content:space-between;align-items:center;gap:24px}
  .brand{display:flex;align-items:baseline;gap:14px}
  .brand .logo{font-family:var(--f-serif);font-size:23px;letter-spacing:.42em;font-weight:500}
  .brand .sub{font-size:9px;letter-spacing:.28em;color:var(--sub);text-transform:uppercase}
  nav{display:flex;align-items:center;gap:26px;font-size:14px;letter-spacing:.12em}
  nav a.nv{position:relative;padding-bottom:3px}
  nav a.nv::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .4s}
  nav a.nv:hover::after{width:100%}
  .lang{font-size:13px;letter-spacing:.12em;color:var(--sub);border-left:1px solid var(--line);padding-left:24px}
  .lang b{color:var(--gold-d);font-weight:500}
  .head-cta{background:var(--gold-d);border:1px solid var(--gold-d);color:var(--surface);padding:11px 28px;font-size:13px;letter-spacing:.22em;font-weight:400;transition:background .3s,border-color .3s}
  .head-cta:hover{background:var(--gold-dd);border-color:var(--gold-dd);color:var(--surface)}

  /* ============ FV（案C・色味B） ============ */
  .hero{position:relative;height:calc(100vh - 141px);min-height:520px;overflow:hidden}  /* ヘッダー80+帯61を引き、黒帯を画面下端にぴったり付ける */
  .hero>img{width:100%;height:100%;object-fit:cover}
  .hero-panel{position:absolute;left:0;bottom:0;background:var(--surface);padding:46px 60px 42px 48px;max-width:640px}
  .hero-panel::before{content:"";position:absolute;top:0;left:0;width:60px;height:4px;background:var(--gold)}
  .hero-panel h1{font-family:var(--f-serif);font-weight:300;font-size:clamp(23px,3.4vw,34px);letter-spacing:.13em;line-height:1.75;margin:16px 0 12px}
  .hero-panel h1 em{font-style:normal;color:var(--gold)}
  .hero-panel p{color:var(--sub);font-size:15px;letter-spacing:.08em}
  .hero-strip{display:flex;background:var(--ink);color:#EDE6D8}
  .hero-strip div{flex:1;text-align:center;padding:18px 10px;font-size:13px;letter-spacing:.14em}
  .hero-strip div + div{border-left:1px solid rgba(237,230,216,.16)}
  .hero-strip b{font-family:var(--f-serif);font-weight:400;color:var(--gold-l);letter-spacing:.06em}

  /* ============ SECTION 基本 ============ */
  section{padding:110px 0 0}
  .sec-head{margin-bottom:52px}
  .sec-head h2,.sec-head h1{font-family:var(--f-serif);font-weight:300;font-size:clamp(21px,2.8vw,28px);letter-spacing:.26em;margin-top:14px}
  .sec-head.center{text-align:center}

  /* ============ CONCEPT（案BのFVレイアウト転用） ============ */
  .concept{display:grid;grid-template-columns:46% 54%;min-height:660px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:0}
  .concept-l{position:relative;display:flex;align-items:center;padding:80px 56px}
  .concept-body h2{font-family:var(--f-serif);font-weight:300;font-size:clamp(22px,2.4vw,31px);line-height:1.9;letter-spacing:.12em;margin:26px 0 22px}
  .concept-body h2 em{font-style:normal;color:var(--gold)}
  .concept-body p{color:var(--sub);font-size:15px;letter-spacing:.08em;max-width:34em;margin-bottom:14px}
  .concept-meta{margin-top:40px;display:flex;flex-direction:column;gap:10px;font-size:13.5px;letter-spacing:.16em;color:var(--sub)}
  .concept-meta span::before{content:"—";color:var(--gold-d);margin-right:14px}
  .concept-r{position:relative;overflow:hidden}
  .concept-r img{width:100%;height:100%;object-fit:cover}
  .concept-r .seal{position:absolute;left:26px;bottom:26px;background:rgba(252,250,244,.92);backdrop-filter:blur(4px);padding:14px 18px;font-size:11.5px;letter-spacing:.24em;border:1px solid var(--line)}
  .concept-r .seal b{color:var(--gold-d);font-weight:500}

  /* ============ FLOW（スティッキー写真＋フィルムストリップ） ============ */
  /* PC：従来どおり中央見出し。モバイル：上部に貼り付く細いバー */
  .flow-bar{display:none}
  .flow-lede{text-align:center;color:var(--sub);font-size:15px;letter-spacing:.1em;margin:-32px 0 72px}
  .flow-n{max-width:1160px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:44% 1fr;gap:52px;align-items:start}
  .n-stage{position:sticky;top:110px;aspect-ratio:4/5;overflow:hidden;background:var(--band)}
  .n-stage figure{position:absolute;inset:0;opacity:0;transition:opacity .8s ease,transform 1.5s ease;transform:scale(1.06)}
  .n-stage figure.act{opacity:1;transform:scale(1)}
  .n-stage img{width:100%;height:100%;object-fit:cover}
  /* 写真左上の工程番号：モバイルのみ */
  .n-num{display:none}

  /* フィルムストリップ：写真の下端に貼り付く全幅の帯。
     通過済み＝淡い金、現在地＝金の矢羽根。区切り線や矢印記号は使わず、形と色だけで右へ進むことを示す */
  .n-strip{position:absolute;left:0;right:0;bottom:0;display:flex;isolation:isolate;
    background:linear-gradient(to top,rgba(30,26,21,.9),rgba(30,26,21,.52));
    border-top:1px solid rgba(243,236,221,.14)}
  .n-strip span{position:relative;flex:1;text-align:center;padding:12px 2px;cursor:pointer;
    font-size:10.5px;letter-spacing:.1em;color:rgba(243,236,221,.45);transition:color .3s ease}
  .n-strip span:hover{color:rgba(243,236,221,.9)}
  .n-strip span::before{content:"";position:absolute;top:0;bottom:0;left:-9px;right:0;z-index:-1;
    background:var(--gold);opacity:0;transition:opacity .3s ease,background .3s ease;
    clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%,9px 50%)}
  .n-strip span:first-child::before{left:0;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%)}
  .n-strip span:last-child::before{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,9px 50%)}
  .n-strip span.done{color:rgba(252,250,244,.82)}
  .n-strip span.done::before{opacity:1;background:rgba(165,128,74,.42)}
  .n-strip span.act{color:var(--surface)}
  /* 現在地の矢羽根はrole=button＝操作要素なのでAA用の金（クリーム文字で5.3:1） */
  .n-strip span.act::before{opacity:1;background:var(--gold-d)}

  .n-track{padding-top:8px}
  .nrow{padding:30px 0;border-bottom:1px solid var(--line);opacity:.34;transition:opacity .6s ease}
  .nrow:first-child{padding-top:2px}
  .nrow.act{opacity:1}
  .nrow .top{display:flex;align-items:baseline;gap:14px}
  .nrow .no{font-family:var(--f-serif);font-size:22px;font-weight:200;color:var(--gold-d)}
  .nrow .en{font-size:9px;letter-spacing:.24em;color:var(--sub);text-transform:uppercase}
  .nrow h3{font-family:var(--f-serif);font-weight:400;font-size:20px;letter-spacing:.14em;margin:8px 0 8px}
  .nrow p{font-size:15px;color:var(--sub);line-height:1.95;max-width:28em}
  .nrow.move h3{color:var(--gold-d)}
  .flow-legend{display:flex;justify-content:center;gap:32px;margin-top:44px;font-size:13px;letter-spacing:.2em;color:var(--sub)}
  .flow-legend b{color:var(--gold-d);font-weight:500;margin-right:8px}

  @media(max-width:900px){
    /* モバイルもPCと同じ構成（中央見出し＋下部の凡例）。
       バーは施術の流れに入ったときだけ上から降りてくるオーバーレイ */
    .sec-head h2,.sec-head h1{letter-spacing:.2em}
    .flow-bar{display:flex;position:fixed;top:0;left:0;right:0;z-index:70;height:46px;
      background:rgba(247,243,234,.98);border-bottom:1px solid var(--line);
      align-items:center;gap:14px;padding:0 22px;
      transform:translateY(-100%);transition:transform .4s cubic-bezier(.22,.61,.36,1)}
    .flow-bar.show{transform:none}
    .flow-bar h2{font-family:var(--f-serif);font-weight:300;font-size:15px;letter-spacing:.14em;line-height:1}
    .flow-bar .legend{margin-left:auto;display:flex;gap:14px;font-size:9px;letter-spacing:.1em;color:var(--sub)}
    .flow-bar .legend b{color:var(--gold-d);font-weight:500;margin-right:5px}
    .flow-lede{margin:-18px 0 48px;padding:0 22px}
    .flow-legend{gap:18px;margin-top:26px;font-size:9.5px}
    .flow-n{grid-template-columns:1fr;gap:20px;padding:0 22px}
    .n-stage{position:sticky;top:46px;aspect-ratio:16/10;z-index:5;
      width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
    .n-num{display:block;position:absolute;left:0;top:0;z-index:4;pointer-events:none;
      font-family:var(--f-serif);font-weight:200;font-size:30px;line-height:1;letter-spacing:.04em;
      color:#F3ECDD;padding:14px 24px 16px 16px;
      background:linear-gradient(135deg,rgba(30,26,21,.55) 0%,rgba(30,26,21,.28) 55%,rgba(30,26,21,0) 100%)}
    .n-strip span{padding:9px 1px;font-size:9px;letter-spacing:.04em}
    .n-strip span::before{left:-7px;right:0;
      clip-path:polygon(0 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,0 100%,7px 50%)}
    .n-strip span:first-child::before{left:0;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,0 100%)}
    .n-strip span:last-child::before{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,7px 50%)}
      .nrow{padding:22px 0}
  }

  /* ============ MENU（案C・色味B） ============ */
  .menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .m-card{background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column}
  .m-card .head{padding:22px 30px;border-bottom:1px solid var(--line)}
  .m-card.reco .head{background:var(--ink);color:#EDE6D8;border-bottom-color:var(--ink)}
  .m-card .head .tag{font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--sub);min-height:16px}
  .m-card.reco .head .tag{color:var(--gold-l)}
  .m-card .head h2,.m-card .head h3{font-family:var(--f-serif);font-weight:400;font-size:19px;letter-spacing:.12em;margin-top:4px}
  .m-card .body{padding:26px 30px 30px;display:flex;flex-direction:column;flex-grow:1}
  .m-card .price{font-family:var(--f-serif);font-size:clamp(28px,3.4vw,36px);font-weight:300}
  .m-card .price small{font-size:13px;color:var(--sub);letter-spacing:.12em}
  .m-card .time{font-size:13px;letter-spacing:.16em;color:var(--gold-d);margin:2px 0 14px}
  .m-card p{font-size:15px;color:var(--sub);line-height:1.9;flex-grow:1}
  .options{margin-top:26px;background:var(--band);padding:30px 36px;display:flex;align-items:center;justify-content:center;text-align:center;gap:28px;flex-wrap:wrap}
  .options h4{width:100%;font-size:14px;letter-spacing:.24em;font-weight:500;color:var(--gold-d)}
  .options ul{display:flex;gap:12px;flex-wrap:wrap;list-style:none;justify-content:center}
  .options li{background:var(--surface);border:1px solid var(--line);padding:12px 24px;font-size:15px;letter-spacing:.08em;color:var(--ink)}
  .options li b{color:var(--gold-d);font-weight:500;font-size:16px;margin-left:8px}

  /* ============ GALLERY（案C そのまま） ============ */
  .gal{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:110px}
  .gal figure{aspect-ratio:3/4;overflow:hidden}
  .gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
  .gal figure:hover img{transform:scale(1.05)}

  /* ============ ACCESS（新規・道順つき） ============ */
  .access{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:start}
  .access>div{min-width:0}
  .map{aspect-ratio:16/11;border:1px solid var(--line);background:var(--band);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--sub);font-size:12.5px;letter-spacing:.22em}
  .map .pin{font-family:var(--f-serif);color:var(--gold-d);font-size:19px}
  .map iframe{width:100%;height:100%;border:0;display:block}
  .route{margin-top:26px;border:1px solid var(--line);background:var(--surface);padding:26px 30px}
  .route h2,.route h3{font-size:12.5px;letter-spacing:.26em;color:var(--gold-d);font-weight:500;margin-bottom:16px}
  .route ol{list-style:none;counter-reset:r}
  .route li{counter-increment:r;position:relative;padding:0 0 14px 34px;font-size:14.5px;color:var(--sub);line-height:1.8}
  .route li:last-child{padding-bottom:0}
  .route li::before{content:counter(r);position:absolute;left:0;top:1px;width:20px;height:20px;border:1px solid var(--line);border-radius:50%;font-family:var(--f-serif);font-size:10.5px;color:var(--gold-d);display:flex;align-items:center;justify-content:center}
  .info dl{display:grid;grid-template-columns:96px 1fr;row-gap:20px;font-size:15px}
  .info dt{color:var(--gold-d);letter-spacing:.22em;font-size:12.5px;font-family:var(--f-serif);padding-top:3px}
  .info dd{line-height:1.95}
  .info dd small{color:var(--sub);display:block;font-size:13px}

  /* ============ FAQ（新規） ============ */
  .faq{max-width:820px;margin:0 auto;border-top:1px solid var(--line)}
  .faq details{border-bottom:1px solid var(--line)}
  .faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:20px;padding:24px 6px;font-size:15px;letter-spacing:.06em}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary .q{font-family:var(--f-serif);font-size:13px;color:var(--gold-d);letter-spacing:.1em}
  .faq summary::after{content:"＋";margin-left:auto;color:var(--gold-d);font-weight:300;font-size:15px}
  .faq details[open] summary::after{content:"−"}
  .faq .a{padding:0 6px 26px 46px;color:var(--sub);font-size:15px;border-left:1px solid var(--gold);margin-left:6px}

  /* ============ CTA（新規） ============ */
  .cta{margin-top:110px;background:var(--band);text-align:center;padding:96px 24px}
  .cta h2{font-family:var(--f-serif);font-weight:300;font-size:clamp(22px,3vw,30px);letter-spacing:.26em;margin:20px 0 12px}
  .cta .rule{width:1px;height:36px;background:var(--gold);margin:0 auto 24px}
  .cta p{color:var(--sub);font-size:15px;letter-spacing:.14em;margin-bottom:34px}
  .btn{display:inline-block;background:var(--gold-d);color:var(--surface);padding:18px 64px;font-size:13px;letter-spacing:.32em;transition:background .4s}
  .btn:hover{background:var(--gold-dd);color:var(--surface)}
  .cta .note{margin-top:22px;font-size:13px;letter-spacing:.12em;color:var(--sub)}

  /* ============ FOOTER（新規） ============ */
  footer{background:var(--surface);border-top:1px solid var(--line);padding:64px 0 40px}
  .foot{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:44px}
  .foot .logo{font-family:var(--f-serif);font-size:20px;letter-spacing:.44em;margin-bottom:12px}
  .foot p{font-size:14px;color:var(--sub);line-height:2}
  .foot .fh{font-size:10px;letter-spacing:.3em;color:var(--gold-l);font-weight:500;margin-bottom:14px;text-transform:uppercase}
  .foot ul{list-style:none;font-size:14.5px;color:var(--sub);line-height:2.2}
  .foot ul a:hover{color:var(--ink)}
  .foot-bot{max-width:1120px;margin:52px auto 0;padding:22px 48px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:13px;letter-spacing:.16em;color:var(--sub);flex-wrap:wrap;gap:12px}

  /* ============ 固定予約バー（新規・中央フロートのピル） ============ */
  .bookbar{position:fixed;left:50%;transform:translateX(-50%);bottom:26px;z-index:95;display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 34px rgba(44,39,33,.14)}
  .bookbar{transition:transform .35s ease,opacity .3s ease,visibility .35s ease}
  .bookbar .hours{padding:14px 24px;font-size:13px;letter-spacing:.14em;color:var(--sub);white-space:nowrap}
  .bookbar a{background:var(--gold-d);color:var(--surface);padding:16px 34px;font-size:13px;letter-spacing:.26em;transition:background .3s;white-space:nowrap}
  .bookbar a:hover{background:var(--gold-dd)}

  .rv{opacity:0;transform:translateY(20px);transition:opacity 1s ease,transform 1s ease}
  .rv.on{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
  a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
  .n-strip span:focus-visible{outline:2px solid var(--surface);outline-offset:-3px}
  /* キーボードで本文へ飛ぶスキップリンク（普段は画面外、フォーカスで出現） */
  .skip{position:fixed;left:8px;top:-56px;z-index:200;background:var(--ink);color:#F3ECDD;padding:12px 20px;font-size:13px;letter-spacing:.1em;transition:top .2s ease}
  .skip:focus{top:8px}
  html.locked .skip{visibility:hidden}  /* ドロワー（モーダル）展開中はスキップを封じる（z-indexで上に浮くため） */
  main{scroll-margin-top:90px}  /* スキップ着地時に sticky ヘッダーへ潜り込まない */

  /* ============ RESPONSIVE ============ */
  @media(max-width:900px){
    .wrap,.head-in{padding-left:22px;padding-right:22px}
    nav a.nv,.lang{display:none}
    .fv{display:flex;flex-direction:column;min-height:calc(100vh - 71px);min-height:calc(100svh - 71px)}  /* svh=ツールバー表示時に固定→スクロールで伸縮しない */
    .hero{display:flex;flex-direction:column;flex:1 1 auto;height:auto;min-height:0}
    .hero>img{flex:1 1 auto;height:auto;min-height:150px}
    .hero-panel{position:static;max-width:none;padding:14px 22px 16px}
    .hero-strip{flex-wrap:wrap}
    .hero-strip div{flex:1 1 50%;border-left:none;border-top:1px solid rgba(237,230,216,.16);padding:9px 8px;font-size:10.5px;letter-spacing:.04em}
    section{padding:76px 0 0}
    .concept{grid-template-columns:1fr;min-height:0;margin-top:0}
    .concept-l{order:2;padding:48px 22px 56px}
    .concept-r{order:1;aspect-ratio:4/3}

    /* フロー: 階段 → 縦のレール */

    .menu-grid{grid-template-columns:1fr}
    .options{padding:20px;gap:14px;flex-direction:column;align-items:stretch}
    .options ul{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .options li{font-size:12px;padding:9px 10px;text-align:center;letter-spacing:.02em}
    .options li b{font-size:13px;margin-left:5px}
    .gal{grid-template-columns:1fr 1fr;margin-top:76px}
    .access{grid-template-columns:1fr;gap:36px}
    .faq .a{padding-left:32px}
    .cta{margin-top:76px;padding:72px 22px}
    .foot{grid-template-columns:1fr;gap:34px}
    .foot-bot{padding:22px 22px 0;flex-direction:column}
    .bookbar{left:16px;right:16px;transform:none;bottom:16px;justify-content:space-between}
  }


  /* ヘッダー・予約バーの表示/非表示（下スクロールで隠す・上スクロールで戻す） */
  .bookbar.book-hide{transform:translateY(140px);opacity:0;visibility:hidden}
  /* 予約バーはスマホのみ。PCはヘッダーの「予約する」に集約 */
  @media(min-width:901px){.bookbar{display:none}}

  /* ============ ロゴ（SVG・色はCSSで切り替え） ============ */
  .logo-svg{display:block;height:42px;width:139px;fill:currentColor;flex:0 0 auto}
  .brand{color:var(--gold)}
  .drawer-top .logo-svg{height:32px;width:106px;color:#C8A97E}
  .foot .logo-svg{height:52px;width:172px;color:#C8A97E;margin-bottom:18px}
  @media(max-width:900px){
    .logo-svg{height:32px;width:106px}
    .brand .logo-svg{height:38px;width:126px}
    .foot .logo-svg{height:46px;width:152px}
  }

  /* ============ 予約バー：R案（画面下端いっぱいの墨の帯） ============ */
  .bookbar{left:0;right:0;bottom:0;transform:none;background:var(--ink);border:0;
    box-shadow:0 -8px 30px rgba(44,39,33,.16);justify-content:space-between;align-items:stretch;padding-left:44px}
  .bookbar .hours{display:flex;align-items:center;color:#C0B5A1;letter-spacing:.16em}
  .bookbar a{padding:18px 46px}

  /* ============ CTA：R案（夜の写真に白抜き） ============ */
  .cta{position:relative;overflow:hidden;background:var(--ink);padding:120px 24px}
  .cta img.bgphoto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.4}
  .cta>*:not(img){position:relative;z-index:2}
  .cta h2{color:#F3ECDD}
  .cta p,.cta .note{color:#C0B5A1}
  .cta .kicker{color:var(--gold-l)}
  .cta .rule{background:var(--gold-l)}

  /* ============ フッター：R案（墨地） ============ */
  footer{background:var(--ink);border-top:0;color:#EDE6D8}
  .foot .logo{color:#F3ECDD}
  .foot p,.foot ul{color:#B7AC98}
  .foot ul a:hover{color:#F3ECDD}
  .foot-sns{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px}
  .foot-sns a{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.18em;color:#B7AC98;text-transform:uppercase}
  .foot-sns a:hover{color:#F3ECDD}
  .foot-sns svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
  .foot-bot{border-top-color:rgba(237,230,216,.16);color:var(--sub-soft)}

  /* ============ モバイル：ハンバーガー → 全画面メニュー ============ */
  .burger{display:none;width:40px;height:40px;border:1px solid var(--line);background:var(--surface);
    position:relative;cursor:pointer}
  .burger span{position:absolute;left:11px;right:11px;height:1px;background:var(--ink);transition:transform .3s,opacity .3s}
  .burger span:nth-child(1){top:14px}
  .burger span:nth-child(2){top:20px}
  .burger span:nth-child(3){top:26px}
  .drawer{position:fixed;inset:0;z-index:120;background:var(--ink);color:#F3ECDD;
    display:flex;flex-direction:column;padding:16px 22px 26px;overflow:hidden;
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility 0s linear .35s}  /* 閉じ：フェード完了後に隠す */
  .drawer.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .35s ease,visibility 0s}  /* 開き：即可視（開いた瞬間の focus() を効かせる） */
  .drawer-top{display:flex;align-items:center;justify-content:space-between;
    padding-bottom:18px;border-bottom:1px solid rgba(237,230,216,.16)}
  .drawer-top .logo{font-family:var(--f-serif);font-size:22px;letter-spacing:.42em;font-weight:500}
  .dclose{background:none;border:0;color:#F3ECDD;font-size:26px;line-height:1;cursor:pointer;
    font-family:inherit;font-weight:200;padding:4px 6px}
  .drawer-nav{display:flex;flex-direction:column;justify-content:center;align-items:stretch;flex-grow:1}
  .drawer-nav a{font-family:var(--f-serif);font-weight:300;font-size:17px;letter-spacing:.2em;
    padding:14px 2px;text-align:left;border-bottom:1px solid rgba(237,230,216,.12)}
  .drawer-foot{padding-top:20px}
  .dbook{display:block;text-align:center;background:var(--gold-d);color:var(--surface);
    padding:16px 20px;font-size:13px;letter-spacing:.26em;transition:background .3s}
  .dbook:hover{background:var(--gold-dd)}
  .dlang{margin-top:16px;font-size:12px;letter-spacing:.16em;color:#B7AC98;text-align:right}
  .dhours{margin-top:7px;font-size:11px;letter-spacing:.1em;color:var(--sub-soft);text-align:right}
  /* ロックは html に掛ける：html{overflow-x:clip} があると body の overflow はビューポートへ伝播しない */
  html.locked{overflow:hidden}

  @media(max-width:900px){
    .burger{display:block}
    nav{gap:14px}
    .head-cta{display:inline-block;padding:8px 15px;font-size:11px;letter-spacing:.16em}
    /* スマホ：下部バーは50/50（左=営業時間・右=予約する） */
    .bookbar{left:0;right:0;bottom:0;padding-left:0}
    .bookbar .hours{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
      padding:0 8px;font-size:10px;letter-spacing:.04em;line-height:1.55;text-align:center;white-space:normal}
    .bookbar a{flex:1;text-align:center;padding:15px 12px;font-size:13px;letter-spacing:.18em}
    .cta{padding:84px 22px}
  }

  /* ============ 下層ページ共通：ページヒーロー ============ */
  .page-hero{position:relative;min-height:42vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--band)}
  .page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .page-hero::after{content:"";position:absolute;inset:0;
    background:linear-gradient(to top,rgba(30,26,21,.66),rgba(30,26,21,.16))}
  .page-hero .ph-in{position:relative;z-index:2;max-width:1120px;margin:0 auto;width:100%;
    padding:0 48px 54px;color:#F3ECDD}
  .page-hero .kicker{color:var(--gold-l)}
  .page-hero h1{font-family:var(--f-serif);font-weight:300;font-size:clamp(26px,4.2vw,40px);letter-spacing:.2em;line-height:1.5;margin-top:14px}
  .page-hero .crumb{margin-top:16px;font-size:12.5px;letter-spacing:.16em;color:rgba(243,236,221,.72)}
  .page-hero .crumb a:hover{color:#fff}
  .page-hero .crumb span{margin:0 8px;color:rgba(243,236,221,.4)}

  /* 汎用リード */
  .lead{max-width:720px;margin:0 auto 56px;text-align:center;color:var(--sub);font-size:15px;letter-spacing:.06em;line-height:2}
  .lead::before{content:"";display:block;width:1px;height:30px;background:var(--gold);opacity:.7;margin:0 auto 26px}

  /* ============ Q&A（FAQ専用ページ） ============ */
  .faq-toc{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:840px;margin:0 auto}
  .faq-toc a{border:1px solid var(--line);background:var(--surface);padding:10px 20px;font-size:13px;
    letter-spacing:.06em;color:var(--sub);border-radius:2px;transition:border-color .3s,color .3s}
  .faq-toc a:hover{border-color:var(--gold-d);color:var(--gold-d)}
  .faq-cat{max-width:840px;margin:72px auto 0;scroll-margin-top:96px}
  .faq-cat .en{font-size:10px;letter-spacing:.26em;color:var(--gold-d);text-transform:uppercase}
  .faq-cat > h2{font-family:var(--f-serif);font-weight:300;font-size:clamp(19px,2.4vw,24px);
    letter-spacing:.16em;margin:6px 0 4px;padding-bottom:16px;border-bottom:1px solid var(--gold)}
  .faq-cat .faq{max-width:none;margin:0;border-top:0}
  @media(max-width:900px){
    .faq-toc a{padding:9px 15px;font-size:12px}
    .faq-cat{margin-top:52px}
  }

  /* 現在地ナビ */
  nav a.nv[aria-current="page"]{color:var(--gold-d)}
  nav a.nv[aria-current="page"]::after{width:100%}
  .drawer-nav a[aria-current="page"]{color:var(--gold-l)}
  nav a.nv.spy-active{color:var(--gold-d)}
  nav a.nv.spy-active::after{width:100%}

  /* ============ メニュー詳細：含まれる施術 ============ */
  .m-card .incl{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
  .m-card .incl h3,.m-card .incl h4{font-size:11.5px;letter-spacing:.24em;color:var(--gold-d);text-transform:uppercase;margin-bottom:12px}
  .m-card .incl ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px}
  .m-card .incl li{font-size:13px;color:var(--sub);letter-spacing:.04em;
    background:var(--band);padding:5px 11px;border-radius:2px}
  .m-card.reco .incl{border-top-color:rgba(237,230,216,.2)}
  .options .note{width:100%;font-size:13px;color:var(--sub);letter-spacing:.08em;margin-top:4px}
  .options>h5{width:100%;font-size:12px;letter-spacing:.24em;font-weight:500;color:var(--gold-d);margin-top:14px}
  .opt-set{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
  .opt-set > div{flex:1 1 108px;max-width:170px;background:var(--surface);border:1px solid var(--line);padding:12px 8px;display:flex;flex-direction:column;gap:3px;align-items:center}
  .opt-set b{font-size:12px;letter-spacing:.14em;color:var(--sub);font-weight:500}
  .opt-set span{font-size:15px;color:var(--gold-d);letter-spacing:.04em}
  .opt-set small{font-size:10.5px;color:var(--sub);letter-spacing:.04em}
  .opt-desc{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:16px 26px;margin-top:8px;text-align:left}
  .opt-desc h5{font-size:13px;letter-spacing:.1em;font-weight:500;color:var(--ink);margin-bottom:5px}
  .opt-desc p{font-size:12.5px;line-height:1.8;color:var(--sub);letter-spacing:.04em}
  @media(max-width:900px){.opt-desc{grid-template-columns:1fr;gap:12px}}

  /* ============ 施術内容の説明 ============ */
  .svc{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;border:1px solid var(--line);background:var(--line)}
  .svc article{background:var(--surface);padding:34px 36px}
  .svc .en{font-size:9px;letter-spacing:.24em;color:var(--gold-d);text-transform:uppercase}
  .svc h3{font-family:var(--f-serif);font-weight:400;font-size:19px;letter-spacing:.12em;margin:8px 0 12px}
  .svc p{font-size:14.5px;color:var(--sub);line-height:1.95}
  .svc .top{display:flex;align-items:baseline;gap:12px}
  .svc .no{font-family:var(--f-serif);font-size:18px;font-weight:200;color:var(--gold-d)}
  .svc-floor{display:flex;align-items:center;gap:14px;margin:44px 0 16px;font-family:var(--f-serif);font-size:15px;letter-spacing:.2em;color:var(--gold-d)}
  .svc-floor span{font-family:var(--f-sans);font-size:11px;letter-spacing:.18em;color:var(--sub)}
  .svc-floor::after{content:"";flex:1;height:1px;background:var(--line)}
  .svc-move{margin:2px 0;background:var(--ink);color:#EDE6D8;padding:22px 34px;display:flex;align-items:center;gap:20px}
  .svc-move .no{font-family:var(--f-serif);font-size:24px;font-weight:200;color:var(--gold-l);line-height:1}
  .svc-move .mv{font-family:var(--f-serif);font-size:17px;letter-spacing:.14em;color:#F3ECDD}
  .svc-move .en2{font-size:9px;letter-spacing:.24em;color:#B7AC98;text-transform:uppercase;margin-bottom:4px}
  .svc-move p{font-size:13px;color:#B7AC98;line-height:1.85;margin-left:auto;max-width:26em}
    .nocut{margin-top:30px;background:var(--ink);color:#EDE6D8;padding:30px 40px;text-align:center;
    font-size:15px;letter-spacing:.1em;line-height:2}
  .nocut b{color:var(--gold-l);font-weight:500}

  /* ============ プロダクト（TBD枠） ============ */
  .prod{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;
    border:1px solid var(--line);background:var(--surface)}
  .prod .ph{aspect-ratio:4/3;overflow:hidden;background:var(--band)}
  .prod .ph img{width:100%;height:100%;object-fit:cover}
  .prod .tx{padding:44px 48px}
  .prod .tx p{font-size:15px;color:var(--sub);line-height:2;margin-top:14px}

  /* ============ コンセプト：本文・要点 ============ */
  .prose{max-width:760px;margin:0 auto;font-size:15px;line-height:2.15;color:var(--ink)}
  .prose p{margin-bottom:26px}
  .prose em{font-style:normal;color:var(--gold-d)}
  .values{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:8px}
  .values article{border-top:2px solid var(--gold);background:var(--surface);padding:30px 26px;border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .values .en{font-size:9px;letter-spacing:.24em;color:var(--gold-d);text-transform:uppercase}
  .values h3{font-family:var(--f-serif);font-weight:400;font-size:17px;letter-spacing:.1em;margin:10px 0 10px}
  .values p{font-size:14px;color:var(--sub);line-height:1.9}

  /* ============ マネージャー紹介 ============ */
  .manager{display:grid;grid-template-columns:44% 1fr;gap:56px;align-items:center;
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0}
  .manager .ph{aspect-ratio:4/5;overflow:hidden;background:var(--band)}
  .manager .ph img{width:100%;height:100%;object-fit:cover}
  .manager .tx h3{font-family:var(--f-serif);font-weight:300;font-size:clamp(22px,2vw,28px);
    letter-spacing:.12em;line-height:1.9;margin:22px 0 8px}
  .manager .tx .role{font-size:13px;letter-spacing:.22em;color:var(--gold-d);margin-bottom:22px}
  .manager .tx p{font-size:15px;color:var(--sub);line-height:2.05;margin-bottom:14px;max-width:34em}

  /* ============ アクセス：目印の外観写真 ============ */
  .landmark{margin-top:26px;border:1px solid var(--line);background:var(--surface)}
  .landmark img{width:100%;aspect-ratio:16/9;object-fit:cover}
  .landmark .cap{padding:16px 20px;font-size:14px;color:var(--sub);letter-spacing:.06em;line-height:1.85}
  .landmark .cap b{color:var(--gold-d);font-weight:500;margin-right:10px}
  .map-acts{display:flex;gap:10px;margin-top:12px}
  .map-acts a{flex:1;text-align:center;border:1px solid var(--line);background:var(--surface);
    padding:14px 10px;font-size:13px;letter-spacing:.12em;color:var(--sub);transition:border-color .3s,color .3s}
  .map-acts a:hover{border-color:var(--gold-d);color:var(--gold-d)}

  @media(max-width:900px){
    .page-hero{min-height:34vh}
    .page-hero .ph-in{padding:0 22px 40px}
    .svc{grid-template-columns:1fr}
    .svc-move{flex-wrap:wrap;gap:10px}
    .svc-move p{margin-left:0;max-width:none}
    .prod{grid-template-columns:1fr}
    .prod .tx{padding:32px 24px}
    .values{grid-template-columns:1fr;gap:12px}
    .values article{padding:24px 24px}
    .manager{grid-template-columns:1fr;gap:28px;padding:44px 0}
    .manager .ph{aspect-ratio:4/3}
    .map-acts{flex-direction:column}
  }

