@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/onsen/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;
  }
}










    .onsen02 {
        padding: 5% 5% 0;
    }
    .onsen02 .area {
        max-width:1100px;
        margin:0 auto;
    }
    .onsen02 .wrap {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem 0;
        max-width:100%;
    }
    .onsen02 .wrap .image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .onsen02 .wrap .image {
    }
    .onsen02 .wrap .image:nth-child(1),
    .onsen02 .wrap .image:nth-child(2) {
        padding-left: 1rem;
    }
    .onsen02 .wrap .image:nth-child(3),
    .onsen02 .wrap .image:nth-child(4) {
        padding-right: 1rem;
    }
    @media (max-width: 768px) {
        .onsen02 {
            padding: 10% 5% 0;
        }
        .onsen02 .wrap {
            gap: 0.5rem 0;
        }
        .onsen02 .wrap .image:nth-child(1),
        .onsen02 .wrap .image:nth-child(2) {
            padding-left: 0.5rem;
        }
        .onsen02 .wrap .image:nth-child(3),
        .onsen02 .wrap .image:nth-child(4) {
            padding-right: 0.5rem;
        }
    }















    .onsen03 {
        padding: 15% 5% 0;
        color: white;
        overflow: hidden;
    }
    .onsen03 .area {
        max-width: 1400px;
        margin: 0 auto;
    }
    .onsen03 .wrap {
        display: grid;
        grid-template-columns: 60% auto;
        gap:2rem;
        align-items: center;
    }
    .onsen03 .image {
        position: relative;
    }
    .onsen03 .image img {
        width: 100%;
        aspect-ratio: 3 / 2;
        object-fit: cover;
    }
    .onsen03 .image::after {
        content: '';
        position: absolute;
        top: -15px;
        right: -15px;
        width: 150px;
        height: 150px;
        border-top: 1px solid #c3a771; 
        border-right: 1px solid #c3a771;
    }
    .onsen03 .text {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        max-width:300px;
        margin:0 auto;
    }
    .onsen03 h3 {
        writing-mode: vertical-rl;
        font-size: 2rem;
        color: #c3a771;
        margin:0 auto;
    }
    .onsen03 p {
        font-size: 1rem;
    }
    @media (max-width: 900px) {
    .onsen03 {
        padding: 30% 5% 0;
    }
    .onsen03 .wrap {
        grid-template-columns: 1fr;
        gap:2rem;
    }
    .onsen03 .image {
        order:2;
    }
    .onsen03 .text {
        order:1;
        gap:1rem;
        max-width:100%;
    }
    .onsen03 h3 {
        writing-mode: horizontal-tb;
        margin:0;
    }
    }









/**room-nav-type3**/
.room-nav-type3 {
    padding: 10% 5% 0;
    color: white;
}
.room-nav-type3 .area {
    max-width: 1100px;
    margin: 0 auto;
}
.room-nav-type3 .sec-title {
    text-align: center;
    font-size: 1.2rem;
    margin-bottom: 40px;
}
.room-nav-type3 .wrap {
    display: grid;
    /* ここを2から4に変更し、PCで4つ横並びにする */
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.room-nav-type3 .box {
    display: block;
    text-decoration: none;
    border: 1px solid rgba(255,255,255,0.15); /* 細い枠線 */
    padding: 10px; /* 枠線と画像の間に余白を作る */
    transition: 0.4s ease;
    background: rgba(255,255,255,0.02);
}

.room-nav-type3 .img-wrap {
    width: 100%;
    /* 4列にすると画像が細長くなりすぎるため、少し縦幅を持たせました（元の16/7に戻してもOKです） */
    aspect-ratio: 4/3; 
    overflow: hidden;
}

.room-nav-type3 img {
    width: 100%; height: 100%; object-fit: cover;
    transition: 0.6s ease;
}

.room-nav-type3 .room-name {
    display: block;
    text-align: center;
    padding: 15px 0 5px;
    font-family: "Yu Mincho", serif;
    font-size: 1rem;
    color: #ddd;
    letter-spacing: 0.15em;
    transition: 0.3s;
}
.room-nav-type3 .room-name span {
    font-size: 0.75rem;
}

.room-nav-type3 .box:hover {
    border-color: #c3a771;
    background: rgba(195,167,113,0.05);
}
.room-nav-type3 .box:hover img {
    filter: brightness(1.1);
    transform: scale(1.03);
}
.room-nav-type3 .box:hover .room-name {
    color: #fff;
}

/* レスポンシブ対応（画面サイズごとの列数調整） */
@media (max-width: 1024px) {
.room-nav-type3 {
    padding: 30% 5% 0;
}
    .room-nav-type3 .wrap {
        /* タブレットサイズでは2列にする */
        grid-template-columns: repeat(2, 1fr);
    }

}










.daiyoku {
    padding: 15% 5% 0;
    color: white;
}
.daiyoku .area {
    max-width: 1600px;
    margin: 0 auto;
}
.daiyoku .wrap {
}
.daiyoku .image {
    max-width: 800px;
    margin: 0 auto 1rem;
}
.daiyoku h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
    text-align: center;
}
.daiyoku p {
    font-size: 1rem;
    text-align: center;
}
@media (max-width: 768px) {
.daiyoku {
    padding: 30% 5% 0;
    }
.daiyoku p {
    text-align: left;
}
}







.daiyoku02 .onsen-splide {
}
.daiyoku02 .onsen-splide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.daiyoku02 .splide__pagination {
  bottom:0;
  left: 0;
  padding: 5px 0 0 0;
  position: relative;
  right: 0;
  z-index: 500;
}
.daiyoku02 .splide__pagination__page {
  width: 10px;
  height: 2px;
  background: gray;
  border-radius: 0;
  margin:0 5px;
}
.daiyoku02 .splide__pagination__page.is-active {
  background: #c3a771;
  transform: scale(2);
  z-index: 1;
}
.daiyoku02 {
    padding: 5% 5% 0;
    color: white;
}
.daiyoku02 .area {
    margin: 0 auto;
}
.daiyoku02 .wrap {
    display: flex;
    gap: 2rem;
}
.daiyoku02 .card {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.daiyoku02 h3 {
    font-size: 2rem;
    font-weight: bold;
    text-align: center;
}
.daiyoku02 h3 span {
    display: block;
    font-size: 1rem;
    color: #c3a771;
}
.daiyoku02 .text {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding-inline:5%;
}
.daiyoku02 h4 {
    font-size: 1.5rem;
}
.daiyoku02 p {
    font-size: 1rem;
}
.daiyoku02 .spec {
    border-top: 1px solid #c3a771;
    padding-top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.daiyoku02 dl {
    display: flex;
    font-size: 1rem;
    gap: 0.5rem;
}
.daiyoku02 dt {
    width: 7rem;
    color: #c3a771;
    font-weight: bold;
}
.daiyoku02 dd {
    flex: 1;
}
@media (max-width: 768px) {
.daiyoku02 {
padding: 30% 5% 0;
}
.daiyoku02 .wrap {
flex-direction: column;
gap: 5rem;
}
.daiyoku02 .spec {
gap: 1rem;
}
.daiyoku02 dl {
flex-direction: column;
}
.daiyoku02 .text {
    padding-inline:0%;
}
}



















        /* -------------------------------------
           .kashikiri 全体のスタイル
        ------------------------------------- */
        .kashikiri {
            padding: 10% 5% 0;
            overflow: hidden;
        }
        .kashikiri .area {
            margin: 0 auto;
        }
        .kashikiri h3.main-title {
            font-size: 2rem;
            font-weight: bold;
            text-align: center;
            padding-bottom: 1.5rem;
            margin: 0;
        }
        .kashikiri h3.main-title span {
            display: block;
            font-size: 1rem;
            color: #c3a771;
            margin-bottom: 0.5rem;
        }
        
        /* 追加: タイトル下の説明文スタイル */
        .kashikiri .top-desc {
            text-align: center;
            margin-bottom: 3.5rem;
        }
        .kashikiri .top-desc h4 {
            font-size: 1.5rem;
            margin: 0 0 1.5rem;
        }
        .kashikiri .top-desc p.desc-text {
            font-size: 1rem;
            line-height: 1.8;
            margin: 0;
        }

        /* -------------------------------------
           .private-type1 (カードレイアウト部分)
        ------------------------------------- */
        .private-type1 {
            padding: 0 0 5%;
        }
        .private-type1 .area {
            max-width: 1600px; /* バランスを考慮し幅を調整 */
            margin: 0 auto;
        }
        .private-type1 .wrap {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 3rem;
        }
        .private-type1 .item {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }
        .private-type1 .image {
            width: 100%;
            aspect-ratio: 4 / 3;
            overflow: hidden;
        }
        .private-type1 .image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s ease;
        }
        .private-type1 .item:hover .image img {
            transform: scale(1.05);
        }
        .private-type1 .text {
            display: flex;
            flex-direction: column;
            gap: 1rem;
        }
        .private-type1 h3.item-title {
            font-size: 1.4rem;
            display: flex;
            flex-direction: column;
            margin: 0;
            text-align: left;
            padding: 0;
        }
        .private-type1 .sub-ttl {
            font-size: 1rem;
            color: #c3a771;
            margin-bottom: 0.3rem;
        }
        .private-type1 p {
            font-size: 1rem;
            line-height: 1.8;
            margin: 0;
        }

        /* -------------------------------------
           .kashikiri 下部の説明・スペック部分
        ------------------------------------- */
        .kashikiri .bottom-wrap {
            max-width: 1100px;
            margin: 0 auto;
        }
        .kashikiri .specs {
            border-top: 1px solid #c3a771;
            padding-top: 1.5rem;
            display: flex;
            flex-direction: column;
            gap: 1rem;
        }
        .kashikiri dl {
            display: flex;
            font-size: 1rem;
            margin: 0;
            line-height: 1.6;
        }
        .kashikiri dt {
            width: 8rem; /* 少し広げて調整 */
            color: #c3a771;
            font-weight: bold;
            flex-shrink: 0;
        }
        .kashikiri dd {
            flex: 1;
            margin: 0;
        }

        /* -------------------------------------
           レスポンシブ (スマホ向け)
        ------------------------------------- */
        @media (max-width: 768px) {
            .kashikiri {
                padding: 30% 5% 0;
            }
            .kashikiri h3.main-title {
                font-size: 1.5rem;
            }
            .kashikiri .top-desc h4 {
                font-size: 1.25rem;
            }
            .private-type1 .wrap {
                grid-template-columns: 1fr;
                gap: 4rem;
            }
            .kashikiri .bottom-wrap {
                flex-direction: column;
            }
            .kashikiri dl {
                flex-direction: column;
                gap: 0.2rem;
            }
            .kashikiri .specs {
                gap: 1.5rem;
            }
        }






.kyakuro{
padding: 15% 0 0 0;
color: white;
overflow: hidden;
}
.kyakuro .area {
margin: 0 auto;
}
.kyakuro h3 {
font-size: 2rem;
font-weight: bold;
text-align: center;
padding-bottom:2rem;
padding-inline:5%;
}
.kyakuro h3 span {
display: block;
font-size: 1rem;
color: #c3a771;
}
.kyakuro .onsen-splide02 {
width: 100%;
}
.kyakuro .onsen-splide02 img {
width: 100%;
height: 100%;
object-fit: cover;
}
.kyakuro .splide__slide {
  position: relative;
}
.kyakuro .splide__slide::after {
  content: attr(data-caption);
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  color: white;
  font-size: 1rem;
  pointer-events: none;
}
.kyakuro .wrap {
max-width:1100px;
margin: 0 auto;
padding-inline:5%;
}
.kyakuro h4 {
font-size: 1.5rem;
margin:2rem 0 1rem;
}
.kyakuro p {
font-size: 1rem;
}
.kyakuro p:last-of-type {
margin-bottom: 1rem;
}
.kyakuro .specs {
border-top: 1px solid #c3a771;
padding-top: 1rem;
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.kyakuro dl {
display: flex;
font-size: 1rem;
gap: 0.5rem;
}
.kyakuro dt {
width: 7rem;
color: #c3a771;
font-weight: bold;
}
.kyakuro dd {
flex: 1;
}
@media (max-width: 768px) {
.kyakuro {
padding: 30% 0 0;
}
.kyakuro .wrap {
flex-direction: column;
}
.kyakuro .specs {
gap: 1rem;
}
.kyakuro dl {
flex-direction: column;
}
}








/* --- 全体設定 --- */
.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;
  }
}


