/* ============================================================
   サウナ無音（むおん）— 固定ページ共有CSS
   ミストグレー #eef0ec × ティール #4e7a72 × 墨 #23292a
   index.html の設計システムを継承（固定ページはこのCSSをリンク）
   ============================================================ */
:root{
  --mist:#eef0ec; --mist-2:#e3e7e1; --paper:#f7f8f5; --white:#fdfdfc;
  --ink:#23292a; --ink-soft:#39423f; --teal:#4e7a72; --teal-d:#3a5d56; --teal-bg:#e8eeec;
  --muted:#6c7672; --line:rgba(35,41,42,.14); --line-soft:rgba(35,41,42,.08);
  --serif:'Noto Serif JP',serif; --sans:'Zen Kaku Gothic New',sans-serif; --mono:'Space Grotesk',monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--mist);color:var(--ink-soft);font-family:var(--sans);font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:inherit;}
h1,h2,h3,h4,.lead,.btn,summary{word-break:auto-phrase;text-wrap:balance;}
.serif{font-family:var(--serif);}
.mono{font-family:var(--mono);letter-spacing:.04em;}
.s-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.34em;color:var(--teal);text-transform:uppercase;display:inline-flex;align-items:center;gap:14px;}
.s-eyebrow::before{content:"";width:40px;height:1px;background:var(--teal);}

/* ---------- header（header-12 予約特化・本日空きあり） ---------- */
.hd{position:sticky;top:0;z-index:50;background:rgba(253,253,252,.92);backdrop-filter:blur(10px);box-shadow:0 2px 18px -12px rgba(35,41,42,.5);}
.hd .hd-in{max-width:1240px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 28px;}
.hd .logo{display:flex;align-items:center;gap:12px;text-decoration:none;}
.hd .logo .lg-img{height:44px;width:auto;display:block;mix-blend-mode:multiply;}
.hd .logo .mk{width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--mist);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:19px;flex:none;}
.hd .logo .nm{font-family:var(--serif);font-weight:600;font-size:20px;letter-spacing:.08em;line-height:1.2;color:var(--ink);}
.hd .logo .nm small{display:block;font-size:10px;color:var(--muted);font-family:var(--sans);font-weight:500;letter-spacing:.16em;}
.hd nav{display:flex;gap:22px;}
.hd nav a{color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:700;white-space:nowrap;}
.hd nav a:hover{color:var(--teal);}
.hd nav a[aria-current="page"]{color:var(--teal-d);border-bottom:2px solid var(--teal);padding-bottom:2px;}
.hd .stat{display:flex;align-items:center;gap:9px;border:1.5px solid var(--teal);border-radius:999px;padding:6px 15px;background:var(--teal-bg);white-space:nowrap;}
.hd .stat .pulse{position:relative;width:9px;height:9px;border-radius:50%;background:var(--teal);flex:none;}
.hd .stat .pulse::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--teal);opacity:.6;animation:hd-pl 1.8s ease-out infinite;}
@keyframes hd-pl{to{transform:scale(2);opacity:0;}}
.hd .stat b{font-size:12.5px;color:var(--teal-d);}
.hd .stat small{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--muted);}
.hd .convs{display:flex;align-items:center;gap:10px;}
.hd .tel{display:inline-flex;flex-direction:column;align-items:center;text-decoration:none;border:1.5px solid var(--ink);color:var(--ink);border-radius:10px;padding:7px 15px;line-height:1.25;}
.hd .tel .num{font-family:var(--mono);font-weight:700;font-size:16px;}
.hd .tel small{font-size:9.5px;}
.hd .btn-r{display:inline-flex;flex-direction:column;align-items:center;background:var(--teal);color:#fff;border-radius:10px;padding:7px 19px;text-decoration:none;line-height:1.3;box-shadow:0 8px 16px -8px rgba(78,122,114,.6);}
.hd .btn-r b{font-size:14px;letter-spacing:.06em;}
.hd .btn-r small{font-size:9.5px;opacity:.85;}
.hd .btn-r:hover{filter:brightness(1.06);}
@media(max-width:1160px){.hd nav{display:none;}}
@media(max-width:640px){.hd .stat small{display:none;}.hd .tel{display:none;}.hd .hd-in{padding:10px 14px;gap:10px;}.hd .logo .nm{font-size:17px;}.hd .logo .lg-img{height:34px;}.hd .logo .nm small{display:none;}}
@media(max-width:400px){.hd .logo .mk{display:none;}.hd .stat{padding:6px 10px;}}
@media(prefers-reduced-motion:reduce){.hd .stat .pulse::after{animation:none;}}

/* ---------- ページヒーロー（タイトル帯。FVではない） ---------- */
.page-hero{background:var(--ink);color:var(--mist);padding:88px 0 64px;position:relative;overflow:hidden;}
.page-hero::after{content:"";position:absolute;right:-80px;top:50%;transform:translateY(-50%);width:340px;height:340px;border-radius:50%;border:1px solid rgba(238,240,236,.18);pointer-events:none;}
.page-hero::before{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:220px;height:220px;border-radius:50%;border:1px solid rgba(78,122,114,.5);pointer-events:none;}
.page-hero .in{width:min(1100px,calc(100% - 48px));margin:0 auto;position:relative;z-index:1;}
.page-hero .crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.3em;color:#9fc4bb;text-transform:uppercase;}
.page-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4.4vw,44px);line-height:1.5;margin:14px 0 0;}
.page-hero p{margin:16px 0 0;font-size:14px;color:rgba(238,240,236,.75);max-width:36em;}

/* ---------- 本文セクション ---------- */
.page-section{padding:72px 0;}
.page-section.alt{background:var(--paper);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.page-section .in{width:min(1100px,calc(100% - 48px));margin:0 auto;}
.page-section h2{font-family:var(--serif);font-weight:600;font-size:clamp(22px,3vw,30px);line-height:1.6;color:var(--ink);margin:0 0 22px;}
.page-section h3{font-family:var(--serif);font-weight:600;font-size:clamp(17px,2vw,20px);color:var(--ink);margin:0 0 10px;}
.page-section p{margin:0 0 14px;font-size:14.5px;}
.page-section p:last-child{margin-bottom:0;}

/* カードグリッド */
.sub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.sub-grid.two{grid-template-columns:1fr 1fr;}
.sub-card{background:var(--white);border:1px solid var(--line);padding:26px 24px;}
.sub-card h3{margin-bottom:8px;}
.sub-card p{font-size:13.5px;color:var(--muted);margin:0;}
.sub-card .no{font-family:var(--mono);font-size:10px;letter-spacing:.26em;color:var(--teal);display:block;margin-bottom:8px;text-transform:uppercase;}

/* 写真2カラム */
.sub-split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.sub-split img{width:100%;aspect-ratio:16/10;object-fit:cover;}

/* 罫線インデックス（料金・概要などの表） */
.sub-table{border-top:1px solid var(--ink);}
.sub-row{display:grid;grid-template-columns:200px 1fr;gap:18px;padding:16px 4px;border-bottom:1px solid var(--line);font-size:14px;}
.sub-row dt{font-weight:700;color:var(--ink);margin:0;}
.sub-row dd{margin:0;color:var(--ink-soft);}
.sub-row dd small{display:block;color:var(--muted);font-size:12px;}

/* 価格行（罫線インデックス型） */
.price-row{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:18px 4px;border-bottom:1px solid var(--line);}
.price-row .nm{font-family:var(--serif);font-weight:600;font-size:17px;color:var(--ink);}
.price-row .nm small{display:block;font-family:var(--sans);font-weight:400;font-size:12px;color:var(--muted);}
.price-row .pr{font-family:var(--mono);font-weight:700;font-size:21px;color:var(--teal-d);white-space:nowrap;}
.price-row .pr small{font-size:.6em;}

/* FAQ（details式・固定ページ用） */
.sub-faq{border-top:1px solid var(--ink);}
.sub-faq details{border-bottom:1px solid var(--line);}
.sub-faq summary{cursor:pointer;list-style:none;display:flex;gap:14px;align-items:baseline;padding:18px 4px;font-family:var(--serif);font-weight:600;font-size:15.5px;color:var(--ink);}
.sub-faq summary::-webkit-details-marker{display:none;}
.sub-faq summary::before{content:"Q";font-family:var(--serif);color:var(--teal);font-size:20px;flex:none;}
.sub-faq details p{margin:0;padding:0 4px 20px 36px;font-size:14px;color:var(--muted);}

/* フォーム枠 */
.zoroya-form-slot{border:2px dashed var(--line);background:var(--white);padding:36px 28px;text-align:center;color:var(--muted);font-size:13.5px;}

/* ページ内CTA帯 */
.sub-cta{background:linear-gradient(120deg,var(--teal),#32524c);color:#fff;text-align:center;padding:56px 24px;}
.sub-cta h2{font-family:var(--serif);font-weight:600;font-size:clamp(21px,3vw,30px);margin:0 0 10px;color:#fff;}
.sub-cta p{font-size:13.5px;opacity:.88;margin:0 0 26px;}
.sub-cta .btn{display:inline-block;background:#fff;color:var(--teal-d);font-weight:700;font-size:15px;padding:16px 44px;border-radius:10px;text-decoration:none;transition:.2s;}
.sub-cta .btn:hover{transform:translateY(-2px);}

@media(max-width:820px){
  .page-section{padding:56px 0;}
  .sub-grid,.sub-grid.two{grid-template-columns:1fr;}
  .sub-split{grid-template-columns:1fr;gap:22px;}
  .sub-row{grid-template-columns:1fr;gap:4px;}
}

/* ---------- footer（footer-06 カラーCTA分割） ---------- */
.ft .cta{position:relative;background:linear-gradient(120deg,var(--teal),#32524c);color:#fff;overflow:hidden;}
.ft .cta::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1px);background-size:24px 24px;opacity:.5;-webkit-mask-image:linear-gradient(120deg,#000,transparent 70%);mask-image:linear-gradient(120deg,#000,transparent 70%);}
.ft .cta .in{position:relative;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.4fr auto;gap:30px;align-items:center;padding:64px 32px;}
.ft .cta .lbl{font-family:var(--mono);font-size:12px;letter-spacing:.24em;opacity:.8;}
.ft .cta h2{font-family:var(--serif);font-weight:600;font-size:clamp(25px,4vw,42px);margin:10px 0 0;line-height:1.5;}
.ft .cta .sub{font-size:13.5px;opacity:.88;margin-top:12px;}
.ft .actions{display:flex;flex-direction:column;gap:14px;}
.ft .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:var(--teal-d);font-weight:700;font-size:15px;padding:18px 36px;border-radius:10px;text-decoration:none;transition:.2s;}
.ft .btn:hover{transform:translateY(-2px);}
.ft .telno{text-align:center;font-family:var(--mono);font-weight:700;font-size:21px;}
.ft .telno small{display:block;font-family:var(--sans);font-weight:400;font-size:11px;opacity:.8;letter-spacing:.04em;}
.ft .info{background:#181e1d;color:var(--mist);}
.ft .info .in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.2fr 2fr;gap:40px;padding:48px 32px 30px;}
.ft .brand .nm{font-family:var(--serif);font-weight:700;font-size:25px;}
.ft .brand .nm small{font-family:var(--mono);font-size:10px;letter-spacing:.3em;display:block;margin-top:6px;color:#8b9994;font-weight:500;}
.ft .brand p{color:#8b9994;font-size:13px;max-width:24em;margin:14px 0 0;line-height:1.9;}
.ft .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.ft .col h4{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#9fc4bb;margin:0 0 12px;}
.ft .col a{display:block;color:var(--mist);text-decoration:none;font-size:13px;padding:5px 0;opacity:.85;}
.ft .col a:hover{opacity:1;color:#9fc4bb;}
.ft .bottom{border-top:1px solid rgba(255,255,255,.12);}
.ft .bottom .in2{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-family:var(--mono);font-size:11.5px;color:#8b9994;}
.ft .legal{display:flex;gap:18px;}
.ft .legal a{color:#8b9994;text-decoration:none;font-size:12px;}
.ft .rights{margin:0 auto;max-width:1180px;padding:0 32px 20px;font-size:11px;line-height:1.7;opacity:.5;text-align:center;color:#8b9994;}
@media(max-width:820px){.ft .cta .in{grid-template-columns:1fr;}.ft .info .in{grid-template-columns:1fr;gap:28px;}.ft .cols{grid-template-columns:1fr 1fr;}}
