/* =====================================================
   湯宿 結木 — 固定ページ共通CSS（_shared.css）
   トークン・ベース・ヘッダー/フッター/spメニューはトップの設計と同一
   ===================================================== */
:root{
  --wood:#2A2018; --wood2:#3A2C1C; --wood3:#241A10;
  --kinari:#F6F1E4; --kinari2:#EFE7D3; --paper:#FBF7EC; --washi:#F3ECDC;
  --akane:#B85C2E; --akane-deep:#9C4A24; --dusk:#E0A35C;
  --ink:#2C2418; --body:#4D4438; --muted:#8A7E6A;
  --line:rgba(44,36,24,.16); --line-soft:rgba(44,36,24,.08); --line-w:rgba(243,236,220,.16);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; color:var(--body); font-family:"Zen Kaku Gothic New",sans-serif; line-height:1.95; font-size:16px; -webkit-font-smoothing:antialiased; overflow-x:hidden;
  background-color:var(--kinari);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='w'><feTurbulence type='fractalNoise' baseFrequency='0.014 0.1' numOctaves='3' seed='7' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.32 0 0 0 0 0.26 0 0 0 0 0.17 0 0 0 0.035 0'/></filter><rect width='100%25' height='100%25' filter='url(%23w)'/></svg>");
  background-size:300px;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
p{margin:0;}
.mono{font-family:"Space Grotesk",monospace; letter-spacing:.06em;}
h1,h2,h3{margin:0; color:var(--ink); font-family:"Shippori Mincho",serif; font-weight:700; line-height:1.55;}
h1,h2,h3,.lead,.btn,summary{word-break:auto-phrase; text-wrap:balance;}
.wrap{width:min(1120px,calc(100% - 56px)); margin:0 auto;}
.wrap--narrow{width:min(840px,calc(100% - 56px)); margin:0 auto;}
.eyebrow{font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--akane); font-weight:700; display:inline-flex; gap:12px; align-items:center;}
.eyebrow::before{content:""; width:30px; height:1px; background:var(--akane);}
.mk{color:var(--akane);}
h2.big{font-size:clamp(24px,3.6vw,38px); margin:14px 0 0;}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5em; font-weight:700; font-size:15px; min-height:54px; padding:14px 34px; border:1.5px solid transparent; transition:transform .2s ease, background .25s ease, color .25s ease; cursor:pointer;}
.btn--akane{background:var(--akane); color:#fff;}
.btn--akane:hover{transform:translateY(-2px); background:var(--akane-deep);}
.btn--ghost{border-color:var(--akane); color:var(--akane); background:transparent;}
.btn--ghost:hover{background:var(--akane); color:#fff;}
.kumiko{height:10px; background:repeating-linear-gradient(90deg, var(--line) 0 1px, transparent 1px 64px), linear-gradient(180deg, transparent 4px, var(--line) 4px 5px, transparent 5px);}

/* ===== ヘッダー（header-02） ===== */
.site-header{position:relative; z-index:90; background:var(--kinari); border-bottom:1px solid var(--line-soft);}
.hd-topbar{background:var(--wood); color:rgba(243,236,220,.86);}
.hd-topbar-in{max-width:1200px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding:8px 32px; font-size:12px; letter-spacing:.04em;}
.hd-topbar-r{display:flex; gap:20px; align-items:center;}
.hd-topbar a{opacity:.9;} .hd-topbar a:hover{opacity:1; color:var(--dusk);}
.hd-topbar .hd-tel{color:#fff; font-weight:700;}
.hd-main{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:18px 32px; gap:24px; position:relative;}
.hd-nav{display:flex; gap:28px;}
.hd-nav.l{justify-content:flex-end;} .hd-nav.r{justify-content:flex-start;}
.hd-nav a{font-family:"Shippori Mincho",serif; font-weight:700; font-size:14.5px; color:var(--ink); white-space:nowrap; position:relative;}
.hd-nav a::after{content:""; position:absolute; left:0; bottom:-7px; height:2px; width:0; background:var(--akane); transition:width .25s ease;}
.hd-nav a:hover{color:var(--akane);} .hd-nav a:hover::after{width:100%;}
.hd-nav a[aria-current="page"]{color:var(--akane);} .hd-nav a[aria-current="page"]::after{width:100%;}
.hd-brand{text-align:center; display:block;}
.hd-nm{display:block; font-family:"Shippori Mincho",serif; font-weight:800; font-size:25px; letter-spacing:.2em; color:var(--ink);}
.hd-en{display:block; font-size:9.5px; letter-spacing:.34em; color:var(--muted); margin-top:3px;}
.hd-strip{height:5px; background:linear-gradient(90deg, var(--akane), var(--dusk));}
.sp-burger{display:none; position:absolute; right:20px; top:50%; transform:translateY(-50%); width:44px; height:44px; border:none; background:var(--akane); border-radius:50%; cursor:pointer; z-index:95;}
.sp-burger i{position:absolute; left:50%; top:50%; width:17px; height:2px; background:#fff; transform:translate(-50%,-50%); transition:transform .35s, opacity .25s;}
.sp-burger i:nth-child(1){transform:translate(-50%,calc(-50% - 5.5px));}
.sp-burger i:nth-child(3){transform:translate(-50%,calc(-50% + 5.5px));}
body.is-menu-open .sp-burger i:nth-child(1){transform:translate(-50%,-50%) rotate(45deg);}
body.is-menu-open .sp-burger i:nth-child(2){opacity:0;}
body.is-menu-open .sp-burger i:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg);}
@media(max-width:1000px){
  .site-header{position:sticky; top:0;}
  .hd-topbar{display:none;}
  .hd-nav{display:none;}
  .hd-main{grid-template-columns:1fr; justify-items:center; padding:12px 64px;}
  .hd-nm{font-size:20px;}
  .sp-burger{display:block;}
}

/* ===== spメニュー＋下部固定バー（spmenu-03） ===== */
.sp-menu{position:fixed; inset:0; z-index:80; opacity:0; visibility:hidden; transition:opacity .45s, visibility .45s;
  background:radial-gradient(70% 50% at 80% 0%, rgba(224,163,92,.16) 0%, transparent 60%), linear-gradient(165deg, var(--wood) 0%, var(--wood3) 100%);}
body.is-menu-open .sp-menu{opacity:1; visibility:visible;}
body.is-menu-open{overflow:hidden;}
.sp-menu__in{height:100%; display:flex; flex-direction:column; justify-content:center; padding:0 34px 96px; max-width:480px; margin:0 auto;}
.sp-menu__lb{font-size:9px; letter-spacing:.3em; color:var(--dusk); margin-bottom:12px; opacity:0; transition:opacity .4s ease .06s;}
body.is-menu-open .sp-menu__lb{opacity:1;}
.sp-menu__mi{display:flex; align-items:baseline; gap:14px; color:var(--washi); padding:14px 0; border-bottom:1px solid var(--line-w);
  opacity:0; transform:translateY(14px); transition:opacity .45s ease, transform .45s cubic-bezier(.22,1,.36,1);}
body.is-menu-open .sp-menu__mi{opacity:1; transform:none;}
body.is-menu-open .sp-menu__mi:nth-of-type(2){transition-delay:.1s;} body.is-menu-open .sp-menu__mi:nth-of-type(3){transition-delay:.16s;}
body.is-menu-open .sp-menu__mi:nth-of-type(4){transition-delay:.22s;} body.is-menu-open .sp-menu__mi:nth-of-type(5){transition-delay:.28s;}
body.is-menu-open .sp-menu__mi:nth-of-type(6){transition-delay:.34s;} body.is-menu-open .sp-menu__mi:nth-of-type(7){transition-delay:.4s;}
.sp-menu__no{font-size:10px; letter-spacing:.2em; color:var(--dusk); width:2.4em;}
.sp-menu__tx{font-family:"Shippori Mincho",serif; font-size:21px; letter-spacing:.1em; font-weight:600;}
.sp-menu__sns{display:flex; gap:18px; margin-top:24px; font-size:9.5px; letter-spacing:.22em; opacity:0; transition:opacity .5s ease .5s;}
body.is-menu-open .sp-menu__sns{opacity:1;}
.sp-menu__sns a{color:rgba(243,236,220,.6);}
.sp-fixbar{display:none; position:fixed; left:0; right:0; bottom:0; z-index:85; grid-template-columns:1fr 1.3fr; background:var(--paper); border-top:1px solid var(--line); box-shadow:0 -14px 30px -18px rgba(42,32,24,.4);}
.sp-fixbar a{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:11px 6px 13px; line-height:1.3;}
.sp-fixbar__tel b{font-size:15px; letter-spacing:.02em; color:var(--ink);}
.sp-fixbar__tel small{font-size:9px; color:var(--muted);}
.sp-fixbar__rsv{background:var(--akane); color:#fff;}
.sp-fixbar__rsv b{font-size:14.5px; letter-spacing:.1em;}
.sp-fixbar__rsv small{font-size:9px; opacity:.9;}
@media(max-width:820px){ .sp-fixbar{display:grid;} body{padding-bottom:68px;} }

/* ===== ページヒーロー（FVではない・タイトル帯） ===== */
.page-hero{position:relative; background:var(--wood); color:var(--washi); padding:76px 0 64px; overflow:hidden;}
.page-hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:5px; background:linear-gradient(90deg, var(--akane), var(--dusk)); }
.page-hero::before{content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background:
    repeating-linear-gradient(0deg, rgba(74,58,38,.5) 0 3px, transparent 3px 120px),
    repeating-linear-gradient(90deg, rgba(74,58,38,.5) 0 3px, transparent 3px 160px),
    radial-gradient(60% 50% at 78% 20%, rgba(224,163,92,.22) 0%, transparent 70%);}
.page-hero .wrap{position:relative; z-index:1;}
.page-hero .eyebrow{color:var(--dusk);} .page-hero .eyebrow::before{background:var(--dusk);}
.page-hero h1{font-size:clamp(28px,4.4vw,44px); font-weight:700; color:var(--washi); margin:14px 0 0; letter-spacing:.06em;}
.page-hero p{color:rgba(243,236,220,.74); font-size:14.5px; margin:14px 0 0; max-width:36em;}
@media(max-width:680px){ .page-hero{padding:56px 0 48px;} }

/* ===== 固定ページ共通パーツ ===== */
.page-sec{padding:88px 0;}
.page-sec--soft{background:var(--kinari2); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);}
.page-sec--paper{background:var(--paper); border-top:1px solid var(--line-soft);}
.page-sec .lead{margin:20px 0 0; max-width:38em;}
@media(max-width:680px){ .page-sec{padding:60px 0;} }

/* 写真＋本文の見開き（ジグザグ） */
.media-row{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; margin-top:48px;}
.media-row--rev .media-row__ph{order:2;}
.media-row__ph{position:relative; aspect-ratio:16/11; overflow:hidden;}
.media-row__ph img{width:100%; height:100%; object-fit:cover;}
.media-row__cap{position:absolute; left:12px; bottom:10px; font-family:"Space Grotesk",monospace; font-size:10px; letter-spacing:.22em; color:#fff; background:rgba(36,26,16,.55); padding:4px 10px;}
.media-row h3{font-size:clamp(20px,2.4vw,26px); margin:0 0 14px;}
.media-row p{font-size:14.5px;}
.media-row .nb{font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.26em; color:var(--akane); font-weight:700; display:block; margin-bottom:10px;}
@media(max-width:820px){ .media-row,.media-row--rev{grid-template-columns:1fr; gap:24px;} .media-row--rev .media-row__ph{order:0;} }

/* 細罫インデックス表（雑誌風・箱を使わない） */
.index-table{border-top:1px solid var(--ink); margin-top:40px;}
.index-table__row{display:grid; grid-template-columns:180px 1fr auto; gap:18px; padding:18px 4px; border-bottom:1px solid var(--line); align-items:baseline;}
.index-table__k{font-family:"Shippori Mincho",serif; font-weight:700; color:var(--ink); font-size:16px;}
.index-table__v{font-size:14px;}
.index-table__n{font-family:"Space Grotesk",monospace; font-size:13px; color:var(--ink); white-space:nowrap;}
@media(max-width:680px){ .index-table__row{grid-template-columns:1fr; gap:4px;} }

/* 概要・定義リスト */
.def-table{border-top:1px solid var(--ink); margin-top:40px;}
.def-table > div{display:grid; grid-template-columns:160px 1fr; gap:18px; padding:15px 4px; border-bottom:1px solid var(--line);}
.def-table dt{font-family:"Space Grotesk",monospace; font-size:12px; letter-spacing:.14em; color:var(--akane); font-weight:700; padding-top:3px;}
.def-table dd{margin:0; font-size:14.5px;}
@media(max-width:680px){ .def-table > div{grid-template-columns:1fr; gap:2px;} }

/* FAQ（固定ページは details/summary・JS不要） */
.faq-list{border-top:1px solid var(--line); margin-top:40px;}
.faq-list details{border-bottom:1px solid var(--line);}
.faq-list summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:16px; padding:22px 4px;}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list .qn{font-family:"Space Grotesk",monospace; font-size:13px; color:var(--akane); letter-spacing:.1em; font-weight:700; flex:0 0 auto;}
.faq-list .qt{font-family:"Shippori Mincho",serif; font-size:clamp(16px,2vw,19px); font-weight:600; color:var(--ink); flex:1;}
.faq-list .ico{flex:0 0 auto; width:18px; height:18px; position:relative;}
.faq-list .ico::before,.faq-list .ico::after{content:""; position:absolute; background:var(--ink); border-radius:2px;}
.faq-list .ico::before{top:8px; left:0; width:18px; height:2px;}
.faq-list .ico::after{top:0; left:8px; width:2px; height:18px; transition:opacity .3s;}
.faq-list details[open] .ico::after{opacity:0;}
.faq-list .ans{padding:0 4px 24px 46px; color:var(--body); font-size:14.5px;}
@media(max-width:680px){ .faq-list .ans{padding-left:4px;} }

/* お問い合わせフォーム */
.form-grid{display:grid; gap:22px; margin-top:40px;}
.form-grid label{display:block;}
.form-grid .lb{display:flex; align-items:center; gap:10px; font-weight:700; color:var(--ink); font-size:14px; margin-bottom:8px;}
.form-grid .req{font-size:10px; color:#fff; background:var(--akane); border-radius:3px; padding:2px 8px; letter-spacing:.08em;}
.form-grid .opt{font-size:10px; color:var(--muted); border:1px solid var(--line); border-radius:3px; padding:2px 8px; letter-spacing:.08em;}
.form-grid input[type="text"],.form-grid input[type="email"],.form-grid input[type="tel"],.form-grid input[type="date"],.form-grid select,.form-grid textarea{
  width:100%; font:inherit; font-size:15px; color:var(--ink); background:#fff; border:1px solid var(--line); padding:13px 14px; border-radius:4px;}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid var(--dusk); outline-offset:1px;}
.form-grid textarea{min-height:140px; resize:vertical;}
.form-note{font-size:12.5px; color:var(--muted); margin-top:14px;}

/* CTA帯（固定ページ末尾） */
.page-cta{background:var(--wood); color:var(--washi); text-align:center; padding:72px 0;}
.page-cta h2{color:var(--washi); font-size:clamp(22px,3.4vw,32px);}
.page-cta p{color:rgba(243,236,220,.78); font-size:14.5px; margin:14px auto 0; max-width:32em;}
.page-cta .btns{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:30px;}
.page-cta .btn--ghost{border-color:rgba(243,236,220,.5); color:var(--washi);}
.page-cta .btn--ghost:hover{background:rgba(243,236,220,.14); color:#fff;}

/* ===== フッター（footer-05） ===== */
.site-footer{background:var(--washi); color:var(--ink); position:relative; border-top:1px solid var(--line);}
.ft-seigaiha{height:34px; opacity:.55;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='64' height='32'><g fill='none' stroke='%23CBB98F' stroke-width='1.3'><path d='M0 32 A16 16 0 0 1 32 32 A16 16 0 0 1 64 32'/><path d='M0 24 A16 16 0 0 1 32 24 A16 16 0 0 1 64 24'/><path d='M0 16 A16 16 0 0 1 32 16 A16 16 0 0 1 64 16'/></g></svg>");
  background-size:64px 32px;}
.ft-main{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:auto 1fr auto; gap:50px; padding:58px 32px 40px; align-items:start;}
.ft-brand{display:flex; gap:14px; align-items:flex-start;}
.ft-seal{width:50px; height:50px; border:1.5px solid var(--akane); border-radius:6px; color:var(--akane); display:flex; align-items:center; justify-content:center;
  font-family:"Shippori Mincho",serif; font-weight:800; font-size:26px; transform:rotate(-4deg);}
.ft-nm{writing-mode:vertical-rl; font-family:"Shippori Mincho",serif; font-weight:800; font-size:24px; letter-spacing:.18em;}
.ft-row{display:flex; gap:12px; font-size:14px; padding:6px 0; line-height:1.8;}
.ft-lab{font-size:10px; letter-spacing:.12em; color:var(--akane); min-width:60px; padding-top:4px; font-weight:700;}
.ft-telnum{font-weight:700; font-size:20px;}
.ft-nav{display:flex; flex-direction:column; gap:2px; text-align:right;}
.ft-nav a{font-family:"Shippori Mincho",serif; font-weight:700; font-size:15px; color:var(--ink); padding:6px 0;}
.ft-nav a:hover{color:var(--akane);}
.ft-bottom{border-top:1px solid var(--line);}
.ft-bottom-in{max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding:18px 32px; flex-wrap:wrap; gap:8px;}
.ft-cp{font-size:12px; color:var(--muted);}
.ft-legal{display:flex; gap:18px; align-items:center; flex-wrap:wrap;}
.ft-legal a{color:var(--muted); font-size:12px;} .ft-legal a:hover{color:var(--akane);}
.ft-note{color:var(--muted); font-size:11px;}
@media(max-width:820px){ .ft-main{grid-template-columns:1fr; gap:30px;} .ft-nav{text-align:left;} }

.hd-brand .lg-img{ height:56px; width:auto; display:block; margin:0 auto; mix-blend-mode:multiply; }
