/* =========================================================
  Kirigahara – Clean CSS (Images-only backgrounds)
  依存なし / 背景は全て画像（色・CSSグラデ未使用）
========================================================= */

/* ========== 0) Tokens（色は文字用のみ） ========== */
:root{
  --ink:   #333300;
  --muted: #6f6f6f;
  --accent:#E84800;

  --max: 1080px;
  --container: min(92%, var(--max));
  --radius: 16px;
  --shadow: 0 12px 30px rgba(0,0,0,.08);
  --header-h: 64px;
}

/* ========== 1) Base / Reset ========== */
*{ box-sizing: border-box; }
html, body{ margin:0; padding:0; }
html{ font-size:16px; }
body{
  font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
  color: var(--ink);
  line-height: 1.9;

  /* サイト共通の下地（タイル） */
  background-repeat: repeat;
  background-position: top center;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--ink); text-decoration:none; }
a:hover{ text-decoration:underline; }
strong{ color:#EB6409; }

.wrap{ width: var(--container); margin-inline:auto; }
.section{ padding: clamp(48px, 7vw, 96px) 0; }

/* 見出し */
.section h2, #faq-title{
  font-size: clamp(26px, 4.2vw, 40px);
  line-height: 1.25;
  letter-spacing:.03em;
  text-align:center;
  color:#6f8e4f;
  margin:0 0 14px;
}
h2{ padding-bottom:20px; }

/* 読みやすさ */
.intro p, .about-lead, .benefits p, .access li, .spot p{
  font-size: clamp(18px, 1.8vw, 20px);
}
.intro{ padding: 50px 0 150px; }

/* ========== 2) Full-bleed band（全幅帯） ========== */
/* 背景は各クラスで画像を割り当て（色は使わない） */
.band{ position: relative; isolation:isolate; }
.bg-ivory{
  background-image: url("../images/washi_normal.png");
  background-repeat: repeat;
  background-size: 100%;
  background-position: top center;
}
.bg-mist{
  background-image: url("../images/washi.png");
  background-repeat: repeat;
  background-size: 100%;
  background-position: top center;
}
.bg-stone{
  background-image: url("../images/seigaiha_sage.png");
  background-repeat: repeat;
  background-size: 260px 260px;
  background-position: top center;
}
.bg-sage{
  background-image: url("../images/washi_blue.png");
  background-repeat: repeat;
  background-size: 100%;
  background-position: top center;
}

/* ========== 3) Header（背景色なし） ========== */
.site-header{
  position: sticky; top:0; z-index:100;
  /* 背景色は使わない。必要ならヘッダー用の薄い画像を作って敷く */
  border-bottom: 1px solid #e8e4dd;
  backdrop-filter: blur(6px);
}
.header-inner{
  height: var(--header-h);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.brand{ display:inline-flex; align-items:center; gap:10px; }
.brand img{ height:28px; width:auto; }
.brand-text{ font-weight:700; letter-spacing:.08em; font-size: clamp(1.05rem,1.9vw,1.2rem); }

/* トグル */
.nav-check{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.nav-toggle{
  display:grid; grid-template-columns:20px 1fr 20px; align-items:center; gap:8px;
  height:40px; padding:0 12px; border:1px solid #ddd; border-radius:10px; line-height:1; cursor:pointer;
}
.nav-toggle .bars{ display:grid; gap:4px; }
.nav-toggle .bars i{ width:20px; height:2px; background:var(--ink); display:block; }
.nav-toggle .label{ text-align:center; font-size:14px; font-weight:500; white-space:nowrap; }
.nav-toggle::after{ content:""; width:20px; height:2px; visibility:hidden; }
@media (min-width:980px){ .nav-toggle{ display:none; } }

/* ナビ（背景画像を使わない＝透明） */
.site-nav{
  position: fixed; left:0; right:0; top:var(--header-h);
  border-bottom:1px solid #e8e4dd;
  transform-origin: top; transform: scaleY(0);
  transition: transform .22s ease; pointer-events:none;
}
.site-nav ul{ list-style:none; margin:0; padding:0; display:grid; }
.site-nav li{ border-top:1px solid #eee; }
.site-nav a{ display:block; padding:16px min(5vw,24px); font-size:1rem; }
.nav-check:checked ~ .site-nav{ transform: scaleY(1); pointer-events:auto; }
.nav-cta{
  display:inline-block; padding:.65em 1em; border-radius:999px;
  color:#fff; background: var(--accent); box-shadow:0 6px 18px rgba(232,72,0,.18);
}
@media (min-width:980px){
  .site-nav{ position: static; transform:none; pointer-events:auto; border:0; }
  .site-nav ul{ display:flex; gap:clamp(12px,2.4vw,26px); align-items:center; }
  .site-nav a{ padding:0; }
}

/* ========== 4) Hero（画像のみ／柄は出さない） ========== */
.hero{
  position: relative;
  min-height: clamp(56vh, 60vw, 72vh);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  overflow:hidden; box-shadow: var(--shadow);

  background-image: url("../images/hero.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.hero h1{
  margin:0 0 .25em; font-weight:800; letter-spacing:.05em;
  font-size: clamp(3.5rem, 5vw, 5.5rem); line-height:1.3;
  color:#fff; text-shadow:1px 1px 10px rgba(0,51,102,1);
  position:relative; z-index:5; display:inline-block; padding:.6em 1em;
}
/* 擬似要素の帯は必要なら hero__mask.png を作って被せる（色は使わない） */
/* .hero::before{
  content:""; position:absolute; inset:0; z-index:2;
  background-image: url("../images/hero-mask.png");
  background-repeat:no-repeat; background-size:cover; background-position:center;
} */
.hero .lead{
  margin:.25em 0 0; font-size: clamp(1.5rem, 2vw, 2.5rem);
  color:#ea5506; text-shadow:1px 1px 2px rgba(255,255,180,.9);
  z-index:4;
}
/* 初回フェード */
.hero h1, .hero .lead{ opacity:0; animation: fadein 1.5s ease forwards; }
@keyframes fadein{ from{opacity:0} to{opacity:1} }

/* 湯気（画像はHTML <img> でOK） */
.steamWrap{ position:absolute; inset:0; pointer-events:none; z-index:1; }
.steamBox{ position:relative; width:100%; height:100%; overflow:hidden; }
.steam01,.steam02,.steam03,.steam04{ position:absolute; opacity:0; z-index:1; }
.steam01{ right:0;  animation: steam01 8s infinite linear; }
.steam02{ left:0;   animation: steam02 12s infinite linear; }
.steam03{ left:0; right:0; margin:auto; animation: steam02 11s infinite linear; animation-delay:3s; }
.steam04{ display:none; }
@media (min-width:1020px){
  .steam04{ display:block; right:-20px; bottom:-420px; width:420px; filter:blur(16px); animation: steam02 14s infinite linear; animation-delay:4s; z-index:2; }
  .steam04 img{ width:100%; height:auto; }
}
.steam01 img,.steam03 img{ width:532px; height:800px; }
.steam02 img{ width:399px; height:600px; }
@keyframes steam01{
  0%{ bottom:-600px; filter:blur(16px); transform:rotateY(0) scale(.6,1); opacity:0; }
  33%{ transform:rotateY(40deg) scale(1,1.4); opacity:.5; }
  66%{ transform:rotateY(10deg) scale(1.8,1); opacity:.4; }
  100%{ bottom:0; filter:blur(20px); transform:rotateY(60deg) scale(2,1.8); opacity:0; }
}
@keyframes steam02{
  0%{ bottom:-400px; filter:blur(16px); transform:rotateY(0) scale(.6); opacity:0; }
  33%{ transform:rotateY(40deg) scale(.8,1); opacity:.4; }
  66%{ transform:rotateY(2deg) scale(1,1.2); }
  100%{ bottom:0; filter:blur(20px); transform:rotateY(50deg) scale(1.2,1.4); opacity:0; }
}

/* ========== 5) About ========== */
.about-lead{ text-align:center; margin:0 auto 18px; max-width:800px; }
.about-grid{ display:grid; gap:12px 20px; grid-template-columns: repeat(2, minmax(240px,1fr)); }
.about-grid > div{ display:grid; grid-template-columns:90px 1fr; align-items:start; gap:8px; }
.about-grid dt{ font-weight:800; color:#d75523; }
.about-grid dd{ margin:0; }
@media (max-width:640px){
  .about-grid{ grid-template-columns:1fr; }
  .about-grid > div{ grid-template-columns:84px 1fr; }
}

/* ========== 6) How to / Benefits ========== */
.steps-wrap{ text-align:center; margin:24px 0; }
.steps{ display:inline-block; text-align:left; list-style:none; padding:0; margin:0; counter-reset: step-counter; }
.steps li{
  counter-increment: step-counter; position:relative;
  padding: 8px 0 8px 60px; margin:12px 0; font-size: clamp(16px, 1.6vw, 18px);
}
.steps li::before{
  content: counter(step-counter); position:absolute; left:0; top:50%; transform:translateY(-50%);
  background: var(--accent); color:#fff; width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px;
}
@media (max-width:480px){
  .steps li{ padding-left:50px; display:grid; grid-template-columns:32px 1fr; align-items:center; column-gap:12px; }
  .steps li::before{ position:static; width:32px; height:32px; font-size:14px; display:grid; place-items:center; }
}

/* ベネフィット（カードは背景色なし＝透過。縁と影で可読性確保） */
.benefits{
  display:grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px; margin:18px 0;
}
@media (max-width:960px){ .benefits{ grid-template-columns:1fr; } }
.benefits article{
  display:flex; flex-direction:column; padding:16px;
  border:1px solid #eee; border-radius: var(--radius); box-shadow: var(--shadow);
  text-align:center;
}
.benefits h3{ margin:0 0 6px; font-size:1.5rem; }
.benefit-list{ display:inline-block; text-align:left; margin:0 auto; padding-left:1.2em; }
.benefit-list li{ margin:.2em 0; }
.benefits .benefit-img{
  margin-top:auto; width:100%; aspect-ratio:16/9; object-fit:cover; object-position:bottom; border-radius:8px; display:block;
}
.notes{ color:var(--muted); font-size:.92rem; text-align:center; }

/* ========== 7) Spots ========== */
.spots{ display:grid; gap: clamp(14px, 2.5vw, 22px); grid-template-columns:1fr; }
.spot{ border:1px solid #eee; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); display:grid; }
.spot img{ aspect-ratio:16/9; object-fit:cover; }
.spot .txt{ padding:16px 16px 18px; }
.spot h3{ margin:0 0 .25em; font-weight:700; font-size:clamp(1.3rem, 2.4vw, 1.6rem); }
@media (min-width:640px){ .spots{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width:980px){ .spots{ grid-template-columns: repeat(3, 1fr); } }

/* ========== 8) Map card / Access ========== */
.map-card{
  border:1px solid #eee; border-radius: var(--radius); box-shadow: var(--shadow);
  padding: clamp(24px, 4vw, 28px); text-align:center;
}
.map-card img, .access-map img{ border-radius: var(--radius); margin-inline:auto; }

.access{
  border:1px solid #eee; border-radius: var(--radius);
  box-shadow: var(--shadow); padding: clamp(18px, 4vw, 28px);
  display:grid; gap:10px; text-align:center;
}
.access h3{ margin:0; font-size: clamp(1.1rem, 2.2vw, 1.35rem); }
.access ul{ margin:4px 0 0; padding:0; list-style:none; }

/* ========== 9) FAQ ========== */
.section[aria-labelledby="faq-title"] .inner{ max-width:920px; margin-inline:auto; }
details{
  border:1px solid rgba(0,0,0,.08); border-radius:12px;
  padding:12px 14px; margin:10px 0; box-shadow:none;background-color: rgba(255, 255, 255, 0.7);
}
details[open]{ box-shadow: var(--shadow); }
summary{ font-weight:700; cursor:pointer; }
@media (min-width:900px){ summary, details p{ text-align:center; } }

/* ========== 10) CTA bottom（背景は画像のみ） ========== */
.cta{
  text-align:center; padding: clamp(28px, 6vw, 60px) 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.cta .btn{
  display:inline-block; padding:14px 26px; border-radius:999px; font-weight:700;
  color:#fff; background: var(--accent); font-size: clamp(16px, 1.8vw, 20px);
  box-shadow:0 10px 24px rgba(232,72,0,.16);
}
.cta .sub{ margin-top:10px; color: color: #334354; font-size:1rem; }

/* ========== 11) Footer（色は使わず、線だけ） ========== */
.footer{
  border-top:1px solid #ddd;
  padding:50px 0 40px; text-align:center; font-size:.9rem; color:var(--muted);
}

/* ========== 12) Utilities ========== */
.fadein{ opacity:0; transform: translateY(24px); transition: opacity .6s, transform .6s; will-change:opacity,transform; }
.fadein.visible{ opacity:1; transform: translateY(0); }
.section-head{ text-align:center; }

.cta-wrap{ display:flex; gap:18px; justify-content:center; margin-top:18px; flex-wrap:wrap; }
.btn{
  display:inline-block; padding:14px 26px; border-radius:999px;
  font-weight:700; text-decoration:none; color:#fff; background: var(--accent);
  font-size: clamp(16px, 1.8vw, 20px);
  box-shadow:0 10px 24px rgba(232,72,0,.16);
  transition: transform .2s ease, filter .2s ease;
}
.btn:hover{ filter:brightness(1.08); transform: translateY(-1px) scale(1.03); }
.btn.ghost{
  color: var(--accent);
  border:2px solid currentColor; border-radius:999px; padding:12px 24px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
}
@media (max-width:640px){
  .cta-wrap{ gap:12px; }
  .btn{ width:100%; max-width:520px; }
}

/* ========== 13) 調整 ========== */
.tokuten__intro{ margin-top:-100px; color:#334354; }

/* モバイル展開時のナビは白い下地＋ぼかしで透け防止 */
.site-nav{
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(6px);
  z-index: 200;
}
/* ハンバーガー → × のアニメ */
.nav-toggle .bars i{
  transition: transform .2s ease, opacity .2s ease;
  transform-origin: center;
}
.nav-check:checked + .nav-toggle .bars i:nth-child(1){
  transform: translateY(6px) rotate(45deg);
}
.nav-check:checked + .nav-toggle .bars i:nth-child(2){
  opacity: 0;
}
.nav-check:checked + .nav-toggle .bars i:nth-child(3){
  transform: translateY(-6px) rotate(-45deg);
}
/* 特典カード */
.benefits article{
  background-color: rgba(255,255,255,.7);
}

/* MAPカード / Accessボックス */
.map-card,
.access{
  background-color: rgba(255,255,255,.7);
}

/* スポット（画像の下のテキスト側だけ白70%にしたい場合） */
.spot .txt{
  background-color: rgba(255,255,255,.7);
}

