/* ============================================================
   The TOJIBA 松川館 — 下層ページ デザインシステム v4
   「旧・湯守（シネマティックな没入感）」×「新・v3（黒金の抑制された洗練）」の統合版
   ・旧から継承：ページヒーローの没入感、湯けむり/火の粉の演出、ゆったりしたセクション余白、
     写真×文章の交互レイアウト、スペック表、日帰り⇄宿泊の相互CTA帯
   ・新から継承：黒×金（ember橙ではなくgold)のトーン、游明朝ベースの一本化フォント、
     可変ガター（--gutter）による左右余白の一貫性
   ============================================================ */

:root{
  --bg-deep:#070706; --bg-base:#0d0d0b; --bg-elev:#11110f;
  --ink:#eee9dc; --ink-sub:rgba(238,233,220,0.74); --ink-faint:rgba(238,233,220,0.48);
  --gold:#b7975a; --gold-soft:#d2b77e; --gold-glow:rgba(183,151,90,0.2);
  --hair:rgba(255,255,255,0.09);
  --ease:cubic-bezier(0.16,1,0.3,1);
  --serif:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --sans:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  --en:var(--sans);
  --gutter: clamp(24px, 6vw, 72px);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
:focus:not(:focus-visible){outline:none;}
body{font-family:var(--sans);background:var(--bg-deep);color:var(--ink);overflow-x:hidden;font-feature-settings:"palt";-webkit-font-smoothing:antialiased;}
img{max-width:100%;}
a{color:inherit;text-decoration:none;}

/* ── Header（components.js の実HTMLに合わせる） ── */
#site-header{position:fixed;top:0;left:0;right:0;z-index:98;display:flex;align-items:center;padding:18px var(--gutter);background:linear-gradient(to bottom,rgba(7,7,6,0.75),transparent);backdrop-filter:blur(6px);transition:background .4s var(--ease);}
#site-header.scrolled{background:rgba(7,7,6,0.94);border-bottom:1px solid var(--hair);}
#site-header .logo{font-family:var(--serif);font-size:18px;letter-spacing:0.12em;line-height:1.2;}
#site-header .logo small{display:block;font-family:var(--en);font-size:8px;letter-spacing:0.3em;color:var(--ink-faint);margin-top:4px;}
.main-nav{margin-left:auto;display:flex;gap:20px;font-size:12px;letter-spacing:0.06em;color:var(--ink-sub);align-items:center;}
.main-nav > a{transition:color .3s var(--ease);white-space:nowrap;}
.main-nav > a:hover{color:var(--gold-soft);}
.main-nav .rsv{border:1px solid var(--gold);color:var(--gold-soft);padding:10px 20px;transition:background .3s var(--ease),color .3s var(--ease);}
.main-nav .rsv:hover{background:var(--gold-soft);color:var(--bg-deep);}

/* ドロップダウン（サウナ／温泉／日帰りプラン） */
.nav-drop{position:relative;}
.nav-drop-trigger{background:none;border:0;padding:0;color:var(--ink-sub);font-family:var(--sans);font-size:12px;letter-spacing:0.06em;cursor:pointer;transition:color .3s var(--ease);white-space:nowrap;}
.nav-drop-trigger i{font-style:normal;margin-left:2px;font-size:9px;}
.nav-drop:hover .nav-drop-trigger,.nav-drop-trigger:hover{color:var(--gold-soft);}
.nav-drop-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);padding:24px 0 8px;min-width:190px;background:rgba(7,7,6,.97);border:1px solid var(--hair);opacity:0;visibility:hidden;transition:opacity .2s var(--ease);z-index:97;}
.nav-drop:hover .nav-drop-menu{opacity:1;visibility:visible;}
.nav-drop-menu a{display:block;padding:10px 22px;font-size:12px;letter-spacing:.04em;color:var(--ink-sub);white-space:nowrap;}
.nav-drop-menu a:hover{color:var(--gold-soft);background:rgba(255,255,255,.03);}

.hamburger{display:none;margin-left:auto;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;width:44px;height:44px;z-index:100;}
.hamburger span{display:block;width:22px;height:1px;background:var(--ink);}
.mobile-nav{display:none;position:fixed;inset:0;z-index:99;overflow-y:auto;background:rgba(7,7,6,0.97);flex-direction:column;align-items:center;gap:18px;padding:100px 24px 60px;font-size:14px;letter-spacing:0.16em;}
.mobile-nav.open{display:flex;}
.mobile-nav > a{color:var(--ink-sub);font-family:var(--serif);}
.mobile-nav .rsv{border:1px solid var(--gold);padding:12px 36px;color:var(--gold-soft);margin-top:8px;}

/* モバイルの折りたたみグループ */
.mobile-nav-group{width:100%;max-width:300px;text-align:center;}
.mobile-nav-group-trigger{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--ink-sub);font-family:var(--serif);font-size:14px;letter-spacing:0.16em;cursor:pointer;padding:4px 0;}
.mobile-nav-group-trigger i{font-style:normal;font-size:11px;}
.mobile-nav-group-menu{display:none;flex-direction:column;align-items:center;gap:14px;margin:14px 0 0;}
.mobile-nav-group.open .mobile-nav-group-menu{display:flex;}
.mobile-nav-group-menu a{font-family:var(--sans);font-size:12.5px;letter-spacing:0.04em;color:var(--ink-faint);}

/* ── 下層ページヒーロー（没入感を継承・トーンのみ刷新） ── */
.page-hero{position:relative;height:56vh;min-height:440px;overflow:hidden;display:flex;align-items:flex-end;}
.page-hero .photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0.5;filter:saturate(.85) brightness(.92);}
.page-hero .tint{position:absolute;inset:0;background:linear-gradient(to top,var(--bg-deep) 6%,rgba(7,7,6,0.28) 60%),linear-gradient(to right,rgba(7,7,6,0.62),transparent 70%);}
.page-hero .in{position:relative;z-index:2;padding:0 var(--gutter) 64px;}
.page-hero .en{font-family:var(--en);letter-spacing:0.32em;font-size:11px;text-transform:uppercase;color:var(--gold-soft);}
.page-hero h1{font-family:var(--serif);font-size:clamp(28px,3.6vw,42px);font-weight:400;letter-spacing:0.08em;line-height:1.65;margin-top:16px;text-shadow:0 2px 30px rgba(7,7,6,0.8);}
.page-hero p.lead{font-size:15px;color:var(--ink-sub);letter-spacing:0.04em;line-height:2;margin-top:16px;max-width:640px;font-family:var(--serif);}

/* ── 湯けむり・火の粉（署名演出／transform+opacityのみ、色調は金に統一） ── */
.steam{position:absolute;border-radius:50%;filter:blur(46px);background:radial-gradient(circle,rgba(238,233,220,0.1),transparent 70%);will-change:transform;pointer-events:none;z-index:1;}
.steam.s1{width:420px;height:420px;left:8%;bottom:-12%;animation:drift1 16s var(--ease) infinite alternate;}
.steam.s2{width:340px;height:340px;left:38%;bottom:-18%;animation:drift2 21s var(--ease) infinite alternate;}
.steam.s3{width:520px;height:520px;right:4%;bottom:-22%;animation:drift3 26s var(--ease) infinite alternate;}
@keyframes drift1{from{transform:translateY(0) translateX(0);}to{transform:translateY(-16vh) translateX(4vw);}}
@keyframes drift2{from{transform:translateY(0);}to{transform:translateY(-24vh) translateX(-3vw);}}
@keyframes drift3{from{transform:translateY(0);}to{transform:translateY(-14vh) translateX(-5vw);}}
.ember-p{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--gold-soft);box-shadow:0 0 8px 2px var(--gold-glow);opacity:0;animation:rise 7s linear infinite;pointer-events:none;z-index:1;}
.ember-p.e1{left:16%;bottom:10%;animation-delay:0s;}
.ember-p.e2{left:22%;bottom:6%;animation-delay:2.2s;animation-duration:9s;}
.ember-p.e3{left:64%;bottom:8%;animation-delay:1.1s;animation-duration:8s;}
.ember-p.e4{left:78%;bottom:12%;animation-delay:3.6s;}
.ember-p.e5{left:47%;bottom:4%;animation-delay:5s;animation-duration:10s;}
@keyframes rise{0%{transform:translateY(0) translateX(0);opacity:0;}8%{opacity:0.8;}60%{opacity:0.4;}100%{transform:translateY(-58vh) translateX(3vw);opacity:0;}}

/* ── セクション共通（余白は旧の贅沢さを継承） ── */
section{position:relative;padding:112px var(--gutter);}
.inner{max-width:1120px;margin:0 auto;}
.klabel{font-family:var(--en);font-size:11px;letter-spacing:0.32em;text-transform:uppercase;color:var(--gold-soft);}
h2.tt{font-family:var(--serif);font-size:clamp(26px,2.8vw,34px);font-weight:400;letter-spacing:0.08em;margin-top:14px;line-height:1.65;}
h3.st{font-family:var(--serif);font-size:20px;font-weight:400;letter-spacing:0.06em;line-height:1.75;margin-top:10px;}
.body{font-size:15px;color:var(--ink-sub);line-height:2.15;letter-spacing:0.02em;margin-top:16px;}
.body strong{color:var(--ink);font-weight:500;}
.two{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.alt{background:var(--bg-base);border-top:1px solid var(--hair);}

/* ── 写真（英字キャプションタグ） ── */
.ph{position:relative;}
.ph img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:saturate(0.88) brightness(.94);}
.ph.tall img{aspect-ratio:3/4;}
.ph.wide img{aspect-ratio:16/9;}
.ph::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px var(--hair);pointer-events:none;}
.ph .cap{position:absolute;left:-1px;bottom:-1px;background:var(--bg-deep);border:1px solid var(--hair);font-family:var(--en);font-size:9px;letter-spacing:0.24em;color:var(--gold-soft);padding:8px 16px;text-transform:uppercase;z-index:2;}

.copper{background:linear-gradient(to bottom,var(--bg-base),#12100a 40%,var(--bg-base));border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}

/* ── 湯の華（浮遊パーティクル） ── */
.hana{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--gold-soft);opacity:0.3;filter:blur(1px);animation:sway 9s ease-in-out infinite alternate;pointer-events:none;}
@keyframes sway{from{transform:translateY(0) translateX(0);}to{transform:translateY(-30px) translateX(12px);}}

/* ── カード群 ── */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:52px;}
.cards2{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:52px;}
.card{background:var(--bg-base);transition:background .4s var(--ease);display:block;}
.card:hover{background:var(--bg-elev);}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:saturate(0.88);}
.card .pad{padding:24px 26px 30px;}
.card .no{font-family:var(--en);color:var(--gold-soft);font-size:11px;letter-spacing:0.24em;}
.card h5,.card h3{font-family:var(--serif);font-size:16px;letter-spacing:0.08em;font-weight:400;margin-top:8px;}
.card p{font-size:14px;color:var(--ink-sub);line-height:1.95;margin-top:10px;}
.card .more{display:inline-block;margin-top:14px;font-family:var(--en);font-size:10px;letter-spacing:0.24em;color:var(--gold-soft);text-transform:uppercase;}

/* ── よくあるご質問（アコーディオン） ── */
.faq-item{border-bottom:1px solid var(--hair);}
.faq-item summary{cursor:pointer;list-style:none;display:flex;gap:16px;align-items:baseline;padding:22px 8px;font-family:var(--serif);font-size:14px;letter-spacing:0.05em;line-height:1.8;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::before{content:'問';color:var(--gold);font-size:12px;flex-shrink:0;}
.faq-item .a{display:flex;gap:16px;padding:0 8px 24px;font-size:14px;color:var(--ink-sub);line-height:2.1;}
.faq-item .a::before{content:'答';color:var(--gold-soft);font-size:12px;flex-shrink:0;}

/* ── タイムライン（過ごし方） ── */
.tl{border-left:1px solid var(--hair);margin-top:44px;padding-left:0;}
.tl-item{position:relative;padding:0 0 52px 44px;}
.tl-item::before{content:'';position:absolute;left:-4px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--gold-soft);box-shadow:0 0 12px var(--gold-glow);}
.tl-item .time{font-family:var(--en);font-size:17px;color:var(--gold-soft);letter-spacing:0.1em;}
.tl-item h4{font-family:var(--serif);font-size:16px;font-weight:400;letter-spacing:0.08em;margin-top:8px;}
.tl-item p{font-size:14px;color:var(--ink-sub);line-height:2.05;margin-top:8px;max-width:560px;}
.tl-item img{width:100%;max-width:560px;aspect-ratio:16/9;object-fit:cover;margin-top:16px;filter:saturate(0.88);}

/* ── journal ── */
.jgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:52px;}
.jcard{display:block;}
.jcard img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(0.88);}
.jcard .date{font-family:var(--en);font-size:11px;letter-spacing:0.2em;color:var(--ink-faint);margin-top:14px;display:block;}
.jcard h3{font-family:var(--serif);font-size:15px;font-weight:400;letter-spacing:0.06em;line-height:1.8;margin-top:8px;}
.jcard p{font-size:14px;color:var(--ink-sub);line-height:1.9;margin-top:8px;}
.article{max-width:720px;margin:0 auto;}
.article h2{font-family:var(--serif);font-size:23px;font-weight:400;letter-spacing:0.08em;line-height:1.8;margin:52px 0 8px;}
.article h3{font-family:var(--serif);font-size:17px;font-weight:400;letter-spacing:0.06em;line-height:1.8;margin:38px 0 4px;}
.article p{font-size:15px;color:var(--ink-sub);line-height:2.25;letter-spacing:0.02em;margin-top:16px;}
.article img{width:100%;margin-top:26px;filter:saturate(0.88);}
.article ul{list-style:disc;padding-left:1.4em;margin-top:18px;color:var(--ink-sub);line-height:2.4;font-size:13.5px;letter-spacing:0.05em;}
.article p a{color:var(--ember);}

/* ── 実データ表 ── */
.dt{width:100%;border:1px solid var(--hair);border-collapse:collapse;margin-top:26px;font-size:13.5px;}
.dt th,.dt td{border-bottom:1px solid var(--hair);padding:14px 18px;text-align:left;vertical-align:top;}
.dt th{font-family:var(--serif);font-weight:400;color:var(--ink);white-space:nowrap;width:180px;background:var(--bg-elev);font-size:12.5px;letter-spacing:0.05em;}
.dt td{color:var(--ink-sub);line-height:1.85;}
.dt tr:last-child th,.dt tr:last-child td{border-bottom:none;}

/* ── CTA ボタン ── */
.ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
.c1{display:inline-block;background:var(--gold-soft);color:var(--bg-deep);padding:15px 38px;font-size:13px;letter-spacing:0.16em;font-family:var(--serif);cursor:pointer;transition:opacity .25s var(--ease);}
.c1:hover{opacity:.85;}
.c2{display:inline-block;border:1px solid var(--gold);color:var(--gold-soft);padding:15px 38px;font-size:13px;letter-spacing:0.16em;font-family:var(--serif);cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease);}
.c2:hover{background:var(--gold-soft);color:var(--bg-deep);}

/* ── パンくず ── */
.bc{position:relative;z-index:2;padding:14px var(--gutter);font-size:12px;color:var(--ink-faint);letter-spacing:0.04em;border-bottom:1px solid var(--hair);background:var(--bg-deep);}
.bc a{color:var(--ink-faint);}
.bc a:hover{color:var(--gold-soft);}
.bc span{margin:0 8px;color:rgba(238,233,220,0.25);}

/* ── ギャラリー ── */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:56px;}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:saturate(0.88);}

/* ── 終章CTA ── */
.fin{position:relative;text-align:center;padding:140px var(--gutter);overflow:hidden;}
.fin .photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0.2;filter:saturate(.85);}
.fin .tint{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 30%,var(--bg-deep) 90%);}
.fin .klabel,.fin h2,.fin p,.fin .ctas{position:relative;z-index:2;}
.fin h2{font-family:var(--serif);font-size:clamp(28px,3.2vw,38px);font-weight:400;letter-spacing:0.16em;}
.fin p{color:var(--ink-sub);font-size:15px;margin-top:18px;letter-spacing:0.06em;line-height:2;}
.fin .ctas{justify-content:center;}

/* ── 日帰り⇄宿泊 相互CTA帯 ── */
.crossband{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:rgba(255,255,255,0.02);padding:56px var(--gutter);text-align:center;}
.crossband h3{font-family:var(--serif);font-size:19px;font-weight:400;letter-spacing:0.1em;}
.crossband p{font-size:14px;color:var(--ink-sub);margin-top:12px;letter-spacing:0.02em;line-height:1.9;max-width:640px;margin-left:auto;margin-right:auto;}
.crossband .ctas{justify-content:center;margin-top:22px;}

/* ── Footer（components.js の実HTMLに合わせる） ── */
#site-footer{padding:72px var(--gutter) 40px;border-top:1px solid var(--hair);background:var(--bg-deep);}
#site-footer .fi{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:44px;}
#site-footer .logo{font-family:var(--serif);font-size:16px;letter-spacing:0.12em;line-height:1.3;}
#site-footer .logo small{display:block;font-family:var(--en);font-size:8px;letter-spacing:0.3em;color:var(--ink-faint);margin-top:4px;}
#site-footer .addr{font-size:13px;color:var(--ink-faint);line-height:2;margin-top:16px;letter-spacing:0.03em;}
#site-footer .addr a{color:var(--gold-soft);}
#site-footer h4{font-family:var(--en);font-size:10px;letter-spacing:0.24em;color:var(--gold-soft);text-transform:uppercase;margin-bottom:16px;}
#site-footer ul{list-style:none;}
#site-footer ul li{margin-bottom:10px;}
#site-footer ul a{font-size:13px;color:var(--ink-sub);letter-spacing:0.04em;transition:color .3s var(--ease);}
#site-footer ul a:hover{color:var(--gold-soft);}
#site-footer .fbtm{max-width:1120px;margin:56px auto 0;padding-top:24px;border-top:1px solid var(--hair);display:flex;font-size:10px;color:var(--ink-faint);letter-spacing:0.05em;}
#site-footer .fbtm .r{margin-left:auto;}

/* ── フェードイン ── */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.fade-in.visible{opacity:1;transform:none;}
.fade-in-delay-1{transition-delay:.15s;}
.fade-in-delay-2{transition-delay:.3s;}

/* ── モーション配慮 ── */
@media (prefers-reduced-motion: reduce){
  .steam,.ember-p{animation:none;}
  .fade-in{opacity:1;transform:none;transition:none;}
}

/* ── レスポンシブ ── */
@media (max-width:1080px){
  .main-nav{display:none;}
  .hamburger{display:flex;}
}

@media (max-width:820px){
  #site-header{padding:16px 20px;}
  section{padding:72px 20px;}
  .two{grid-template-columns:1fr;gap:32px;}
  .page-hero .in{padding:0 20px 40px;}
  .page-hero .in>div{min-width:0;max-width:100%;}
  .page-hero h1{letter-spacing:0.06em;}
  .page-hero p.lead br{display:none;}
  .bc{padding:12px 20px;white-space:nowrap;overflow-x:auto;}
  .gal{grid-template-columns:repeat(2,1fr);}
  .cards2,.cards3{grid-template-columns:1fr;}
  .jgrid{grid-template-columns:1fr;}
  .tl-item{padding-left:32px;}
  .crossband{padding:44px 20px;}
  #site-footer{padding:52px 20px 28px;}
  #site-footer .fi{grid-template-columns:1fr;gap:30px;}
  .fin{padding:96px 20px;}
}

/* ===== ロゴ画像（2026-08-11 追加：テキスト組みから公式ロゴへ差し替え） ===== */
#site-header .logo img{display:block;height:42px;width:auto;}
#site-footer .logo img{display:block;height:54px;width:auto;margin-bottom:2px;}
@media (max-width:820px){
  #site-header .logo img{height:34px;}
  #site-footer .logo img{height:46px;}
}
