@charset "utf-8";
/* CSS Document */








    .kv {
        position: relative;
    }
    .kv .area {
        width: 100%;
        height: 80vh;
        position: relative;
        overflow: hidden;
    }
    .kv .area::after {
        content: "";
        position: absolute;
        inset: 0;
        background-image: url("../img/fas/kv.jpg");
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
        -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 80%, rgba(0,0,0,0) 100%);
        mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 80%, rgba(0,0,0,0) 100%);
        filter: brightness(0.6);
        z-index: 1;
    }
    .kv .ttl {
        position: absolute;
        top: 50%;
        left: 50%;
        z-index: 20;
        transform: translate(-50%, -50%);
        width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
        text-align: center;
        font-size: 1.75rem;
        font-weight: bold;
        color: white;
        text-shadow: 0 0 15px rgba(0, 0, 0, 0.4);
        letter-spacing: 0.25rem;
    }
    @media (max-width: 768px) {
        .kv .area { height: 60vh; }
        .kv .ttl { font-size: 1.6rem; }
    }









    .intro{
    padding:15% 0 0 0;
    color:white;
    position: relative;
    }
    .intro .area{
    }
    .intro .mark {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 0;
        pointer-events: none;
		filter: brightness(0.1);
		max-width:350px;
    }
    .intro .wrap{
        position: relative;
        z-index:5;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap:2rem;
        text-align: center;
    }
    .intro h2 {
        font-size:2rem;
        color:#c3a771;
    }
    .intro h3 {
        font-size:1.5rem;
        color:#c3a771;
    }
    .intro p {
        font-size:1rem;
    }
    
    @media (max-width: 768px) {
        .intro {
            padding: 30% 0 0 0; /* 上を広めに、下は少し詰める */
        }
        .intro .mark {
        top: 0;
        left: 50%;
        transform: translate(-50%, 20%);
        }
        .intro .wrap {
    gap: 1.5rem;
    padding-inline: 5%;
    align-items: flex-start;
    text-align: left;
  }
}













.sld {
  padding: 10% 0 0 0;
    }
/* ★ ここが重要：高さは auto にする */
#center-slider .splide__track,
#center-slider .splide__list,
#center-slider .splide__slide {
  height: auto !important;
}
/* 画像の比率を維持してフィット */
#center-slider .splide__slide img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
#center-slider .splide__slide.is-active img {
}
    @media (max-width: 768px) {
        
.sld {
  padding: 15% 0 0 0;
    }
    }










        /* ====================================================
           .fatest PCベースのレイアウト
        ==================================================== */
        .fatest {
            padding: 10% 5% 0; /* 下部にも少し余白を追加 */
        }
        .fatest .area {
            max-width: 1600px;
            margin: 0 auto;
        }
        .fatest .wrap {
            display: flex;
            gap: 2.5rem;
            align-items: flex-end; /* PC時は下揃え */
        }
        
        /* 画像が親要素の幅に合わせて伸縮するための必須設定 */
        .fatest .wrap img {
            width: 100%;
            height: auto;
            display: block; /* 画像下の余分な隙間を消す */
        }

        /* --- 各カラムの幅比率 --- */
        .fatest .wrap div:nth-of-type(1) {
            flex: 1 1 0%;
        }
        .fatest .wrap div:nth-of-type(2) {
            flex: 1 1 0%;
            /* テキストが一番下にくっつきすぎないよう、必要に応じて調整 */
            padding-bottom: 1rem; 
        }
        .fatest .wrap div:nth-of-type(3) {
            flex: 1 1 40%;
        }

        /* --- テキスト周りの装飾 --- */
        .fatest h2 {
            font-size: 2rem;
            color: #c3a771;
            margin: 0 0 1.5rem 0; /* タイトル下に余白を追加 */
            line-height: 1.4;
        }
        .fatest p {
            font-size: 1rem;
            line-height: 1.8;
            margin: 0;
        }

        /* ====================================================
           レスポンシブ (スマホ・タブレット向け)
        ==================================================== */
        @media (max-width: 768px) {
            .fatest {
                padding: 15% 5% 10%;
            }
            .fatest .wrap {
                flex-direction: column; /* 縦並びに変更 */
                align-items: stretch;   /* 下揃えを解除して横幅いっぱいに */
                gap: 1rem;              /* 縦並び時の間隔を少し広めに */
            }

            /* スマホ時は左の画像を非表示にする */
            .fatest .wrap div:nth-of-type(1) {
                display: none;
            }
            
            /* 残りの要素（テキストと右画像）のflexの比率指定を解除して横幅100%に */
            .fatest .wrap div:nth-of-type(2),
            .fatest .wrap div:nth-of-type(3) {
                flex: auto;
                width: 100%;
                padding-bottom: 0; /* PC用のpaddingをリセット */
            }

            /* スマホ時のテキスト調整 */
            .fatest h2 {
                font-size: 1.75rem; /* スマホ用に少しサイズダウン */
                text-align: center; /* スマホでは中央揃えにすると綺麗です（お好みで外してください） */
            }
        }

















.bar-ttl {
padding: 15% 5% 0;
color:white;
}
.bar-ttl .area{
text-align: center;
}
.bar-ttl h2{
font-size:2rem;
font-weight: bold;
}
.bar-ttl p{
font-size:1rem;
}
@media (max-width: 768px) {
.bar-ttl {
}
}









.bar {
  padding: 5% 5% 15%;
  overflow: hidden;
  color: white;
}
.bar .area {
max-width: 1400px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap:200px;
}
.bar .wrap {
display: flex;
flex-direction: column;
gap:2rem;
}
.bar .up {
display: flex;
align-items: flex-end;
gap: 2.5vw;
}
.bar .up.rev {
flex-direction: row-reverse;
}
.bar .image {
flex: 0 0 55%;
}
.bar .image img {
width: 100%;
height: auto;
object-fit: cover;
}
.bar .text {
flex: 1;
padding-bottom:30px;
}
.bar h3 {
font-size: 2rem;
font-weight: bold;
display: flex;
flex-direction: column;
margin-bottom:1rem;
}
.bar h3:nth-of-type(odd) {
text-align: left;
}
.bar h3:nth-of-type(even) {
text-align: right;
}
.bar .sub-ttl {
font-size: 1rem;
color: #c3a771;
}
.bar p {
font-size: 1rem;
margin-bottom:1rem;
}
.bar .spec {
border-top: 1px solid #c3a771;
padding-top: 1rem;
display: flex;
flex-direction: column;
gap: 1rem;
}
.bar dl {
display: flex;
gap:1rem;
font-size: 1rem;
}
.bar dt {
color: #c3a771;
font-weight: bold;
flex:0 0 auto;
}
.bar dd {
}
.bar .gallery {
display: grid;
gap: 1rem;
max-width:100%;
margin: 0 auto;
grid-template-columns: repeat(auto-fit, minmax(auto, 350px));
justify-content: center;
}
.bar .item {
flex: 1;
}
.bar .item img {
aspect-ratio: 16 / 9;
object-fit: cover;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
.bar {
padding: 15% 5%;
}
.bar .area {
gap:10rem;
}
.bar .text {
padding-bottom:0;
}
.bar .up, 
.bar .up.rev {
flex-direction: column;
gap: 2rem;
}
.bar .gallery {
grid-template-columns: repeat(auto-fit, minmax(auto, 80%));
}
.bar h3 {
font-size: 1.5rem;
}
}













.other {
padding: 10% 5% ;
background-color: #1a1a1a;
color: white;
z-index:50;
position:relative;
}
.other .area {
max-width: 1100px;
margin: 0 auto;
}
.other .wrap {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
gap: 5rem 3rem;
}
.other .item {
display: flex;
flex-direction: column;
gap: 1rem;
}
.other .image {
width: 100%;
aspect-ratio: 3 / 2;
overflow: hidden;
}
.other .image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s ease;
}
.other .item:hover .image img {
transform: scale(1.08);
}
.other .text {
display: flex;
flex-direction: column;
gap: 0rem;
padding: 0 15px;
}
.other h3 {
font-size: 1.5rem;
display: flex;
flex-direction: column;
}
.other h3 span {
font-size: 1rem;
color: #c3a771;
}
.other p {
font-size: 1rem;
}
@media (max-width: 768px) {
.other .wrap {
display: grid;
grid-template-columns: 1fr;
gap: 5rem 3rem;
}
}


















.onsen-sec06 {
    padding:15% 5% 15%;
    color:white;
}
.onsen-sec06 .area {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 5vw;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-sizing: border-box;
}
.onsen-sec06 .wrap {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.onsen-sec06 h2 {
  font-size: 2rem;
  font-weight:bold;
  margin:0 auto;
}
.onsen-sec06 ul {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid gray;
}
.onsen-sec06 li {
  display: flex;
  padding: 20px 0;
  border-bottom: 1px solid gray;
  align-items: baseline;
}
.onsen-sec06 .label {
  flex: 0 0 180px;
  font-size: 1rem;
  font-weight: bold;
  color: #c3a771;
}
.onsen-sec06 .desc {
  flex: 1;
  color: white;
  font-size: 1rem;
}
@media (max-width: 768px) {
.onsen-sec06 {
    padding:30% 5% 30%;
    color:white;
}
.onsen-sec06 .area {
  padding: 10vw;
}
  .onsen-sec06 li {
    flex-direction: column;
    gap: 0.5rem;
  }
  .onsen-sec06 .label {
  flex: 0 0;
  }
}














