/* 夢sauna 下層ページ共通スタイル（pages.css） */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --paper:#f4efe3;--cream:#fbf8f1;--ink:#221d15;--ink-2:#6c6353;--ink-3:#a59c8b;
  --forest:#33492f;--forest-2:#27381f;--amber:#c0703a;--amber-d:#a85c2c;
  --line:rgba(34,29,21,.14);--ease:cubic-bezier(.22,.61,.36,1);
  --disp:'Anton',sans-serif;--jp:'Zen Kaku Gothic New',sans-serif;--body:'Noto Sans JP',sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.95;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1040px;margin:0 auto;padding:0 24px}
/* header */
header{position:sticky;top:0;z-index:50;background:rgba(251,248,241,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:68px;max-width:1100px;margin:0 auto;padding:0 24px}
.brand img{height:42px;width:auto}
.nav{display:flex;align-items:center;gap:24px}
.nav a{font-family:var(--jp);font-weight:700;font-size:.9rem;color:var(--ink);transition:color var(--ease)}
.nav a:hover{color:var(--amber)}
.nav .book{background:var(--amber);color:#fff;padding:10px 22px;border-radius:50px}
.nav .book:hover{background:var(--amber-d);color:#fff}
/* page head */
.phead{background:linear-gradient(160deg,#33492f,#27381f);color:var(--cream);padding:60px 0 52px;text-align:center}
.phead .crumb{font-family:var(--jp);font-size:.78rem;letter-spacing:.06em;color:rgba(251,248,241,.65);margin-bottom:16px}
.phead .crumb a:hover{color:var(--cream)}
.phead .label{font-family:var(--disp);letter-spacing:.18em;color:#e3a36a;font-size:.92rem}
.phead h1{font-family:var(--jp);font-weight:900;font-size:clamp(1.7rem,5vw,2.6rem);margin-top:10px;line-height:1.4}
.phead p{margin-top:14px;color:rgba(251,248,241,.85);font-size:.96rem}
/* content */
main{padding:56px 0 76px}
.lead{max-width:760px;margin:0 auto 34px;color:var(--ink-2);font-size:1rem;text-align:center}
.faq{max-width:820px;margin:0 auto}
.faq details{background:var(--cream);border:1px solid var(--line);border-radius:12px;margin-bottom:13px;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:21px 58px 21px 24px;position:relative;font-family:var(--jp);font-weight:700;font-size:1.04rem;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'＋';position:absolute;right:22px;top:50%;transform:translateY(-50%);color:var(--amber);font-size:1.15rem}
.faq details[open] summary::after{content:'−'}
.faq .a{padding:0 24px 23px;color:var(--ink-2);font-size:.96rem;line-height:2}
.faq .a a{color:var(--amber);text-decoration:underline}
.faq .a b{color:var(--ink)}
/* CTA */
.cta{max-width:820px;margin:50px auto 0;text-align:center;background:var(--forest);color:var(--cream);border-radius:16px;padding:46px 24px}
.cta h2{font-family:var(--jp);font-weight:900;font-size:1.5rem;margin-bottom:8px}
.cta p{color:rgba(251,248,241,.85);margin-bottom:22px;font-size:.95rem}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--jp);font-weight:700;padding:15px 38px;border-radius:50px;transition:var(--ease)}
.btn-amber{background:var(--amber);color:#fff}.btn-amber:hover{background:var(--amber-d)}
/* footer */
footer{background:var(--forest-2);color:rgba(251,248,241,.7);padding:58px 0 30px}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:34px;border-bottom:1px solid rgba(251,248,241,.16)}
.foot .b img{height:58px;width:auto}
.foot p{font-size:.83rem;line-height:2;margin-top:16px;max-width:300px}
.foot h5{font-family:var(--disp);letter-spacing:.16em;font-size:.78rem;color:#e8b486;margin-bottom:14px}
.foot a{display:block;font-size:.85rem;line-height:2.2;color:rgba(251,248,241,.7)}
.foot a:hover{color:var(--cream)}
.foot-b{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:24px;font-size:.73rem;opacity:.7}
/* content sections（施設紹介など下層ページ用） */
.block{padding:46px 0}
.block.alt{background:var(--paper-2)}
.section{max-width:980px;margin:0 auto}
.seclabel{font-family:var(--disp);letter-spacing:.16em;color:var(--amber);font-size:.9rem;display:inline-flex;align-items:center;gap:10px}
.seclabel::before{content:'';width:26px;height:2px;background:var(--amber)}
.sectitle{font-family:var(--jp);font-weight:900;font-size:clamp(1.4rem,4vw,2rem);margin:10px 0 28px;line-height:1.5}
.sectitle .am{color:var(--amber)}
.prose{max-width:780px;color:var(--ink-2);line-height:2.05}
.prose p{margin-bottom:16px}.prose b{color:var(--ink)}
.feat-list{display:flex;flex-direction:column;gap:26px}
.feat-row{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;background:var(--cream);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.feat-row .ph{width:100%;height:100%;min-height:250px;object-fit:cover;display:block}
.feat-row:nth-child(even) .ph{order:2}
.feat-row .tx{padding:30px 34px;align-self:center}
.feat-row .tx .n{font-family:var(--disp);color:var(--amber);font-size:1rem;letter-spacing:.1em}
.feat-row .tx h3{font-family:var(--jp);font-weight:900;font-size:1.25rem;margin:6px 0 10px}
.feat-row .tx p{color:var(--ink-2);font-size:.96rem;line-height:2}
.points{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.point{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:26px 18px;text-align:center}
.point .ic{font-size:1.7rem}
.point b{display:block;font-family:var(--jp);font-weight:900;margin:8px 0 4px;font-size:1.02rem}
.point span{color:var(--ink-2);font-size:.85rem}
.infobox{background:var(--forest);color:var(--cream);border-radius:14px;padding:30px 32px}
.infobox h3{font-family:var(--jp);font-weight:900;margin-bottom:14px}
.infobox .row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid rgba(251,248,241,.18);font-size:.95rem}
.infobox .row:last-child{border-bottom:none}
.infobox a{color:#f0c79a;text-decoration:underline}
.linkrow{margin-top:18px;display:flex;gap:14px;flex-wrap:wrap}
/* 料金表・予約フロー */
.ptable{width:100%;border-collapse:collapse;background:var(--cream);border:1px solid var(--line);border-radius:12px;overflow:hidden;max-width:720px}
.ptable th,.ptable td{padding:15px 16px;text-align:center;border-bottom:1px solid var(--line);font-size:1rem}
.ptable thead th{background:var(--forest);color:var(--cream);font-family:var(--jp);font-weight:700}
.ptable thead th.th-day{background:#e3963c}
.ptable thead th.th-night{background:#4a4a85}
.ptable tbody th{background:var(--paper-2);font-family:var(--jp);font-weight:700;text-align:left}
.ptable td .am{color:var(--amber);font-weight:700}
.ptable tr:last-child td,.ptable tr:last-child th{border-bottom:none}
/* 料金カード風テーブル（人数／1組料金／1人あたり） */
.ptbl{width:100%;max-width:720px;margin:0 0 20px;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:var(--cream)}
.ptbl-h{font-family:var(--jp);font-weight:900;font-size:1.1rem;color:var(--ink);padding:15px 22px;border-bottom:1.5px solid var(--line);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ptbl-h small{font-weight:400;font-size:.72rem;color:var(--ink-2)}
.ptc{width:100%;border-collapse:collapse}
.ptc th{font-family:var(--jp);font-size:.74rem;font-weight:700;color:var(--ink-2);padding:10px 8px;border-bottom:1px solid var(--line);text-align:center}
.ptc td{font-family:var(--jp);font-size:1.16rem;font-weight:700;color:var(--ink);padding:13px 8px;text-align:center;border-bottom:1px solid var(--line)}
.ptc tr:last-child td{border-bottom:none}
.ptc th:first-child,.ptc td:first-child{text-align:left;padding-left:22px}
.ptc .hpr{color:var(--amber);background:rgba(192,112,58,.08)}
@media(max-width:560px){.ptc td{font-size:1.05rem;padding:12px 4px}.ptc th:first-child,.ptc td:first-child{padding-left:14px}.ptbl-h{padding:14px 16px}}
.note{max-width:760px;color:var(--ink-2);font-size:.9rem;line-height:1.95;margin-top:16px}
.note li{margin-left:1.2em;margin-bottom:5px}
.steps{counter-reset:s;display:flex;flex-direction:column;gap:14px;max-width:760px}
.step{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:20px 22px 20px 66px}
.step::before{counter-increment:s;content:counter(s);position:absolute;left:18px;top:18px;width:34px;height:34px;border-radius:50%;background:var(--amber);color:#fff;font-family:var(--disp);display:flex;align-items:center;justify-content:center;font-size:1.05rem}
.step b{font-family:var(--jp);font-weight:900;display:block;margin-bottom:4px}
.step span{color:var(--ink-2);font-size:.92rem;line-height:1.9}
/* 地図 */
.mapbox{border:1px solid var(--line);border-radius:14px;overflow:hidden;max-width:980px;margin-top:8px}
.mapbox iframe{width:100%;height:420px;border:0;display:block}
.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.route{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:22px 22px}
.route .n{font-family:var(--disp);color:var(--amber);letter-spacing:.08em;font-size:.92rem}
.route b{display:block;font-family:var(--jp);font-weight:900;margin:6px 0 8px;font-size:1.05rem}
.route p{color:var(--ink-2);font-size:.92rem;line-height:1.95}
@media(max-width:760px){.routes{grid-template-columns:1fr}}
/* コラム/ブログ */
.article{max-width:760px;margin:0 auto}
.article .meta{color:var(--ink-3);font-size:.85rem;margin-bottom:18px}
.article h2{font-family:var(--jp);font-weight:900;font-size:1.32rem;margin:36px 0 12px;color:var(--ink);border-left:5px solid var(--amber);padding-left:13px;line-height:1.5}
.article p{color:var(--ink-2);line-height:2.05;margin-bottom:16px}
.article b{color:var(--ink)}
.article img{width:100%;border-radius:12px;margin:20px 0}
.article a{color:var(--amber);text-decoration:underline}
.article ul{margin:0 0 16px 1.3em;color:var(--ink-2);line-height:1.95}
.article ul li{margin-bottom:6px}
.bloglist{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:900px;margin:0 auto}
.blogcard{display:block;background:var(--cream);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:var(--ease)}
.blogcard:hover{transform:translateY(-3px);border-color:var(--amber)}
.blogcard img{width:100%;height:190px;object-fit:cover}
.blogcard .bc{padding:20px 22px}
.blogcard .cat{font-family:var(--disp);color:var(--amber);font-size:.8rem;letter-spacing:.08em}
.blogcard h3{font-family:var(--jp);font-weight:900;font-size:1.08rem;margin:6px 0 8px;line-height:1.5;color:var(--ink)}
.blogcard p{color:var(--ink-2);font-size:.88rem;line-height:1.8}
@media(max-width:760px){.bloglist{grid-template-columns:1fr}}
@media(max-width:760px){
  .nav a:not(.book){display:none}
  .foot{grid-template-columns:1fr;gap:26px}
  .feat-row{grid-template-columns:1fr}
  .feat-row:nth-child(even) .ph{order:0}
  .points{grid-template-columns:1fr 1fr}
}
