@charset "utf-8";
/* CSS Document */
.fv-section {
  position: relative;
  width: 100%;
  aspect-ratio: 1920 / 977;
  overflow: hidden;
}
.fv-bg {
  position: absolute;
  inset: 0;
  background: url('../img/index/top-image_1.webp') center center / cover no-repeat;
  z-index: 1;
  aspect-ratio: 1920 / 977;
  background-position: top;
}
/* 湯気共通 */
.steam {
  position: absolute;
  bottom: 0;
  width: 120px;
  height: 120px;
  background: radial-gradient(white 20%, rgba(255, 255, 255, 0) 70%);
  opacity: 0;
  border-radius: 50%;
  filter: blur(8px);
  animation: steam-rise 6s infinite ease-in; /* ← 8s → 6s（約1.3倍速） */
  z-index: 2;
}
.steam1 {
  left: 20%;
  animation-delay: 0s;
}
.steam2 {
  left: 35%;
  width: 140px;
  height: 140px;
  animation-delay: 2s;
}
.steam3 {
  left: 50%;
  width: 160px;
  height: 160px;
  animation-delay: 4s;
}
.steam4 {
  left: 65%;
  width: 120px;
  height: 120px;
  animation-delay: 1s;
} /* 追加 */
.steam5 {
  left: 80%;
  width: 100px;
  height: 100px;
  animation-delay: 3s;
} /* 追加 */
@keyframes steam-rise {
  0% {
    transform: translateY(0) scale(1);
    opacity: 0;
  }
  10% {
    opacity: 0.7;
  }
  50% {
    transform: translateY(-150px) scale(1.2);
    opacity: 0.5;
  }
  100% {
    transform: translateY(-300px) scale(1.4);
    opacity: 0;
  }
}
/* 右の説明テキスト（制作メモ用） */
.fv-anim-text {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  font-size: 16px;
  line-height: 2;
  background: rgba(255, 255, 255, 0.6);
  padding: 10px;
  border-radius: 8px;
  z-index: 3;
}
.top-news .top-news-title {
  color: var(--color-main);
}
.top-news .news-grid {
  display: flex; /*grid-template-columns:repeat(3,1fr);*/ /*gap:32px;margin-top:28px;*/ justify-content: center;
  align-items: flex-start;
  max-width: 1280px;
  margin: 28px auto 0;
  justify-content: space-between;
  width: 96%;
}
.top-news .news-grid li {
  width: 32%;
}
.top-news .news-card a {
  display: block;
  text-decoration: none
}
.top-news .news-thumb {
  aspect-ratio: 16/9;
  overflow: hidden; /*border-radius:8px;background:#999*/
}
.top-news .news-thumb img {
  width: 100%;
  height: 100%;
  max-width: 400px;
  max-height: 300px;
  object-fit: cover;
  display: block
}
.top-news .news-title {
  margin-top: 12px;
  line-height: 1.6
}
.top-news .news-more {
  margin-top: 28px;
  text-align: center
}
@media (max-width:900px) {
  .top-news .news-grid {
    grid-template-columns: 3fr;
    gap: 20px;
    w96%;
  }
}
section.about-aoidake {
  position: relative;
  padding-top: clamp(140px, calc(180 * (100vw / 1920)), 180px);
  padding-bottom: 65px;
  text-align: center;
  background-image: url("../img/index/mountain-image.webp");
  background-repeat: no-repeat;
  background-position: top center;
}
section.about-aoidake h2{
    margin-top: 0;
}
section.about-aoidake p{
    margin-bottom: 0;
}
@media (max-width: 1200px) {
  .about-aoidake {
    /*padding: 120px 16px 64px;*/
    /*background-size: 1300px auto;*/
  }
}
@media (max-width: 768px) {
  .about-aoidake {
    padding: 96px 14px 56px;
    background-size: 1100px auto;
  }
}
/* ===== CSS-only marquee gallery ===== */
.marquee-gallery {
  --items-visible: 4; /* 4枚見せ表示数 */
  --pad-side: calc(100% / (var(--items-visible) * 2)); /* 左右半分見せ */
  --duration: 45s; /* ゆっくり。好みで 30〜80s */
  width: 100%;
  overflow: hidden;
  /*padding-inline: var(--pad-side);*/
  box-sizing: border-box;
}
.marquee-row {
  overflow: hidden;
}
.marquee-row + .marquee-row {
  margin-top: 0;
}
.marquee-track {
  display: flex;
  gap: 0;
  /* 中身を2周分にしておく → 0%→-50% で無限ループが継ぎ目なくなる */
  animation: marquee-scroll var(--duration) linear infinite;
  will-change: transform;
}
.marquee-row.reverse .marquee-track {
  animation-direction: reverse; /* 下段だけ逆流にしたいとき用（必要なら .reverse を row に） */
}
.marquee-item {
  flex: 0 0 calc(100% / var(--items-visible)); /* 3枚表示 */
  margin: 0;
}
.marquee-item img {
  display: block;
  width: 100%;
  aspect-ratio: 476 / 298;
  object-fit: cover;
  object-fit: cover;
  vertical-align: bottom;
}
/* 右→左スクロール（2周分 → -50%でちょうど1周ぶん移動） */
@keyframes marquee-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* ホバーで一時停止（不要なら削除） */
/*.marquee-gallery:hover .marquee-track{ animation-play-state: paused; }*/
/* 低視覚負荷対応 */
@media (prefers-reduced-motion: reduce) {
  .marquee-track {
    animation: none;
  }
}
/* SP時：見せ枚数を調整したい場合 */
@media (max-width: 768px) {
  .marquee-gallery {
    --items-visible: 2.5;
  } /* 2枚＋左右0.25ずつ等、好みで */
}
/* --- 調整つまみ --- */
#hamon {
  --wrap-h: 400px; /* ボックス高さ */
  --cx: 50%; /* 中心X（% or px）*/
  --cy: 50%; /* 中心Y（% or px）*/
  --rw: 1260px; /* 楕円の横幅 */
  --rh: 360px; /* 楕円の縦幅 */
  --stroke: 11px; /* 線の太さ */
  --color: #248a66; /* 線色 */
  --opacity: 0.3; /* 初期透明度 */
  --start: 0.2; /* 開始スケール */
  --end: 1.0; /* 終了スケール */
  --dur: 8s; /* 1波の時間 */
  --gap: 2.6s; /* ずらし時間 */
  --text-color: #248a66;
  --text-fs: 18px;
  --text-lh: 1.6;
}
.ripple-wrap {
    margin-top: 60px;
  position: relative;
  width: 100%;
  height: var(--wrap-h);
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  background: #fff;
  isolation: isolate; /* テキストを上に固定しやすく */
}
.ripple {
  position: absolute;
  top: var(--cy);
  left: var(--cx);
  width: var(--rw);
  height: var(--rh);
  border: var(--stroke) solid var(--color);
  border-radius: 50%;
  transform: translate(-50%, -70%) scale(var(--start));
  /*opacity: var(--opacity);*/
  opacity: 0;
  animation: rippleExpand var(--dur) ease-out infinite;
  z-index: 1;
  will-change: transform, opacity;
}
.ripple:nth-child(1) {
  animation-delay: 0s;
}
.ripple:nth-child(2) {
  animation-delay: var(--gap);
}
.ripple:nth-child(3) {
  animation-delay: calc(var(--gap) * 2);
}
.ripple:nth-child(4) {
  animation-delay: calc(var(--gap) * 3);
}
.ripple:nth-child(5) {
  animation-delay: calc(var(--gap) * 4);
}
@keyframes rippleExpand {
  0% {
    transform: translate(-50%, -70%) scale(var(--start));
    opacity: 0; /* 完全に透明からスタート */
  }
  10% {
    opacity: calc(var(--opacity) - 0.2); /* ここで一気に見える（例: 0.4～0.6くらい） */
  }
  70% {
    opacity: calc(var(--opacity) - 0.2); /* 少し薄くなる */
  }
  100% {
    transform: translate(-50%, -50%) scale(var(--end));
    opacity: 0; /* 最後は消える */
  }
}
.ripple-text {
  position: relative;
  z-index: 2;
  text-align: center;
  color: var(--text-color);
  font-weight: 700;
  line-height: var(--text-lh);
  font-size: var(--text-fs);
  padding-inline: 12px;
}
/* 動きを苦手とする人向け */
@media (prefers-reduced-motion: reduce) {
  .ripple {
    animation: none;
    opacity: 0.2;
  }
}
/* SPで全体縮めたい場合の例 */
@media (max-width: 768px) {
  #hamon {
    --wrap-h: 220px;
    --rw: 90%;
    --rh: 64%;
    /*--rw: 160px;
      --rh: 64px;*/
    --text-fs: 16px;
    opacity:
  }
}
.onsen-intro-image img {
  display: block;
  margin: auto;
  max-width: 1280px;
  width: 80%;
  margin-bottom: 70px;
}
/* オレンジの強調リスト */
.onsen-effects-wrap {
  text-align: center;
}
.onsen-effects {
  margin: 2em 0;
  /*list-style: none;*/
  padding: 0;
  display: inline-block;
  margin: auto;
}
.onsen-effects li {
  color: #f08437;
  margin: 0.4em 0;
  text-align: left;
}
/* 温泉リンク */
.onsen-link {
  margin-top: 2em;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 65px;
  justify-content: center;
}
.onsen-link img, .onsen-link .onsen-spacer {
  width: 183px;
  height: auto;
}
@media(max-width:767px) {
  .onsen-link img, .onsen-link .onsen-spacer {
    width: 80px;
    height: auto;
  }
}
.btn-outline {
  display: inline-block;
  border: 1px solid #000;
  padding: 1.2em 2em;
  text-decoration: none;
  color: #000;
  border-radius: 9999px;
  transition: background 0.3s;
  background-color: #fff;
  font-size: 24px;
}
.btn-outline:hover {
  background: #000;
  color: #fff;
}
/* ===== 雲アニメ背景 ===== */
.facility-guide {
  --cloud-url: url('<?php echo get_stylesheet_directory_uri(); ?>/img/index/soft-cloud-deco.png.webp');
  position: relative;
  overflow: hidden; /* セクション外は隠す */
  isolation: isolate; /* ドロップシャドウのにじみ防止 */
  background-color: #fce3cd;
}
.facility-guide .cloud {
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* 同じ画像を2段重ねてパララックス風に */
  background-image: var(--cloud-url), var(--cloud-url);
  background-repeat: repeat-x, repeat-x;
  background-size: 320px auto, 240px auto; /* 雲サイズ（必要なら調整） */
  /* y座標だけ固定、xはアニメで動かす */
  background-position: 0 12%, 0 78%;
  opacity: .6;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .04));
  will-change: background-position;
  animation: cloud-scroll 60s linear infinite;
  z-index: -1; /* 中身より奥に */
}
.facility-guide .cloud--fast {
  opacity: .85;
  background-size: 260px auto, 200px auto;
  background-position: 0 20%, 0 72%;
  animation-duration: 35s; /* 速いレイヤー */
}
/* 横方向に流す。数値は長めにしてループ継ぎ目を感じさせない */
@keyframes cloud-scroll {
  from {
    background-position: 0 12%, 0 78%;
  }
  to {
    background-position: -2000px 12%, -1400px 78%;
  }
}
/* 動きを苦手な人向けに停止 */
@media (prefers-reduced-motion: reduce) {
  .facility-guide .cloud {
    animation: none;
  }
}
/* セクション枠 */
.facility-guide {
  padding: 130px 0;
}
/* 2×3 グリッド（1280px・20px間隔） */
.facility-grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
/* カード本体 */
.facility-card {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1; /* 正方形。不要なら削除 */
  border-radius: 10%;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
.facility-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease, filter .3s ease;
}
/* ホバー暗くする＋軽いズーム */
.facility-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  transition: background .25s ease;
  z-index: 1; /* ★ 文字より下、画像より上 */
}
.facility-card:hover::after, .facility-card:focus-visible::after {
  background: rgba(0, 0, 0, .45);
}
.facility-card:hover img, .facility-card:focus-visible img {
  transform: scale(1.03);
  opacity: 1 !important;
}
/* 中央ラベル（白文字） */
.label {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  text-align: center;
  font-weight: 700;
  letter-spacing: .04em;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .4);
  pointer-events: none;
  z-index: 2; /* ★ 追加：黒幕より上に */
}
/* 指定のテキストサイズ */
.ts28 {
  font-size: 28px;
  line-height: 1.2;
}
/* 小さめ画面での崩れケア（任意） */
@media (max-width: 980px) {
  .facility-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 96%;
  }
}


    .first-time-guide{background-color: #231815;padding: 130px 0;}
    .first-time-guide-img{
        max-width: 1280px;
        height: auto;
        width: 96%;
        margin: auto;
        display: block;
        
    }
    .first-time-guide-title{
        margin-bottom: 20px;
        margin-top: 0;
    }
    .first-time-guide-text{
        margin-bottom: 75px;
    }
    .event-card img{
        aspect-ratio:16/9;background-position:center;object-fit: cover;

    }


        .event-card img{}
    .events {
  position: relative;
  overflow: hidden; /* はみ出し防止 */
  padding: 48px 0;  /* 上下に余白 */
    background-color: #e1efd8;
}

/* 左側の背景画像 */
.events::before,
.events::after {
  content: "";
  position: absolute;
  top: 0;
  width: 300px;        /* 画像の実サイズに合わせて調整 */
  height: 100%;
  background-repeat: no-repeat;
  background-position: top;
  background-size: contain;
  pointer-events: none;
  z-index: 0;
}

.events::before {
  left: 0;
  background-image: url('<?php echo get_stylesheet_directory_uri(); ?>/img/index/event-left.webp');
}

.events::after {
  right: 0;
  background-image: url('<?php echo get_stylesheet_directory_uri(); ?>/img/index/event-right.webp');
}

/* 中のコンテンツを上に乗せる */
.events > * {
  position: relative;
  z-index: 1;
}

/* 画面幅が狭いときは非表示にして崩れ防止 */
@media (max-width: 768px) {
  .events::before,
  .events::after {
    display: none;
  }
}

        
.events-grid {
  max-width: 1280px;
    width: 96%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 横3つ */
  gap: 50px; /* 画像間の間隔 */
  padding: 50px 0 ;
  box-sizing: border-box;
}
        .events-more{
            text-align: center;
        }
        

    /* 背景の木（左上／右下） */
.recommend{
  position: relative;
  padding: 48px 0 56px;
  overflow: hidden;
    --tree-left:url('<?php echo get_stylesheet_directory_uri(); ?>/img/index/tree-left.webp');
    --tree-right:url('<?php echo get_stylesheet_directory_uri(); ?>/img/index/tree-right.webp');
}
.recommend::before,
.recommend::after{
  content:"";
  position:absolute;
  background-repeat:no-repeat;
  background-size:contain;
  pointer-events:none;
  z-index:0;
}
.recommend::before{
  top:20px; left:20px;
  width: 260px; height: 260px;
  background-image: var(--tree-left);
}
.recommend::after{
  right:20px; bottom:20px;
  width: 260px; height: 260px;
  background-image: var(--tree-right);
    background-position: right bottom;
}
/* 中身を前面に */
.recommend > *{ position: relative; z-index:1; }

/* 6枚グリッド：最大幅1280px・間隔50px */
.recommend-grid{
  max-width:1280px;
  margin:24px auto 0;
  padding:0 20px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:50px;
  box-sizing:border-box;
}

/* カード（画像＋白文字ラベル） */
.rec-card{
  position:relative;
  display:block;
  border-radius:clamp(20px, 2.083vw, 40px);
  overflow:hidden;
  aspect-ratio: 4 / 3;         /* 必要に応じ 1/1 などに変更可 */
  -webkit-tap-highlight-color: transparent;
}
.rec-card img{
  width:100%; height:100%;
  object-fit:cover;
  transition: transform .6s ease;
}
/* 暗幕（hoverで暗く） */
.rec-card::after{
  content:"";
  position:absolute; inset:0;
  background: rgba(0,0,0,0);
  transition: background .25s ease;
  z-index:1;
}
.rec-card:hover img,
.rec-card:focus-visible img{ transform: scale(1.03); }
.rec-card:hover::after,
.rec-card:focus-visible::after{ background: rgba(0,0,0,.25); }

/* ラベルは暗幕より上（白を保つ） */
.rec-label{
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%);
  color:#fff; font-weight:700; text-align:center;
  letter-spacing:.04em;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
  z-index:2; pointer-events:none;
}


/* 配置 */
.recommend-cta{ text-align:center; margin:36px 0 0; }

/* レスポンシブ */
@media (max-width: 1024px){
  .recommend-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); gap:32px; }
}
@media (max-width: 640px){
  .recommend-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; }
  .ts28{ font-size:16px; }
    .events-featured{
        display: flex;
        flex-direction: column;
        width: 96%;
        padding: 0 0 10px 0;
        
    }
    .events-featured article{
        width: 100%;
    }
    .first-time-guide-text {
    margin-bottom: 10px;
}
.first-time-guide {
    background-color: #231815;
    padding: 30px 0;
}
.events {

    padding: 30px 0;
}
.facility-guide {
    padding: 0 0 30px 0;
}
  .recommend::before, .recommend::after{ display:none; } /* モバイルで装飾カット */
.recommend {
    padding: 30px 0 30px;

}

.events-grid {
    max-width: 1280px;
    width: 96%;
    margin: 0 auto;
    display: grid
;
    grid-template-columns: 1fr;
    gap: 5px;
    padding: 0px 0;
    box-sizing: border-box;
}
    .onsen-intro{
        width: 96%;
        margin: auto;
    }
}
@media (max-width: 560px){
    .top-news .news-grid{display:block; width: 96%;}
    .top-news .news-grid li{width: 100%;}
  .facility-grid{ grid-template-columns: repeat(2, minmax(0,1fr));width: 96%; }
  .ts28{ font-size: 16px; }
}
