



/**kv**/
.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/room/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**/
    .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;
  }
}











/**room-slider**/
/* セクション全体 */
.room-slider {
  padding: 10% 0 0 0;
}

/* スライド（li）自体は「位置」を守るためスケールさせない */
.room-slider .splide__slide {
  transition: opacity 0.8s ease;
}

/* アクティブ（中央）のスライド */
.room-slider .splide__slide.is-active {
  opacity: 1;
}

/* ★ 画像ボックス（中身）だけをスケールさせる */
.room-slider .img-box {
  width: 100%;
  overflow: hidden;
  transition: transform 0.8s ease; /* ここでアニメーション */
  transform: scale(0.9);           /* デフォルトは小さく */
}

/* ★ アクティブな時の画像ボックスを1倍に戻す */
.room-slider .splide__slide.is-active .img-box {
  transform: scale(1);
}

.room-slider .img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 矢印（カスタマイズ：最小限の白ライン） */
.room-slider .splide__arrow {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.4);
  width: 50px;
  height: 50px;
  transition: 0.3s;
}
.room-slider .splide__arrow:hover {
  border-color: #c3a771; /* 和の金色 */
}
.room-slider .splide__arrow svg {
  fill: #fff;
  width: 1.2rem;
}










/**room-nav-type3**/
.room-nav-type3 {
    padding: 15% 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 {
        grid-template-columns: repeat(2, 1fr);
    }
}










/**room4**/
.room04 {
    padding:10% 0 0 0;
    padding-inline:5%;
    color:white;
}
.room04 .area{
    margin: 0 auto;
    max-width:1200px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap:2rem;
}
.room04 .wrap01{
}
.room04 .wrap01 .ttl{
    position: sticky;
    top:50px;
    display: flex;
}
.room04 .wrap01 .ttl div{
    display: flex;
    flex-direction: column;
}
.room04 .wrap01 .ttl h3{
    font-size:2rem;
    position: relative;
    writing-mode: vertical-rl;
    text-orientation: upright;
    color:#c3a771;
}
.room04 .wrap01 .ttl h3 span{
    writing-mode: horizontal-tb; /* ← 横書きに戻す */
    text-orientation: mixed;
    display: inline-block;       /* ← 横書きが崩れないように */
    font-size:1rem;              /* ← 縦見出しより控えめに（好みで調整） */
    margin-left: 4px;            /* ← 縦文字との距離を少し空ける */
}
.room04 .wrap01 .ttl p{
    font-size:1rem;
    position:relative;
    transform: translate(0,0);
    writing-mode: vertical-rl;
    text-orientation: upright;
}
.room04 .wrap02{
    display: flex;
    flex-direction: column;
    gap:2rem;
}
.room04 .list{
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.room04 dl {
  color: white;
  display: grid;
	grid-template-columns: repeat(2, auto);
  gap: 0.5rem 1rem;
  width: fit-content;
}
.room04 dt {
  color: #c3a771;
}
.room04 dd {
}
.room04 .nidan {
  color: white;
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}
.room04 .madori {
  flex: 1 1 400px;
  max-width:400px;
}
.room04 .splide__slide{
    width:100%;
}
.room04 .splide__slide img{
    width:100%;
    height:100%;
    object-fit: cover;
}
.room04 .text{
    display: flex;
    flex-direction: column;
    gap:1rem;
flex: 1 1 600px;
}
.room04 .text h3{
    font-size:1.25rem;
}
.room04 .btn {
    display: flex;
    gap:2rem;
}
.room04 .btn-more {
    width: fit-content;
    padding:10px 15px;
    color:black;
    background-color:white;
    transition: all 0.5s;
}
.room04 .btn-more:hover {
    background-color:#c3a771;
    background-size: 0% 1px;
}
@media (max-width: 768px) {
  .room04 {
    padding: 30% 5% 0;
  }
  .room04 .area {
	display: flex;
    flex-direction: column;
  }
  .room04 .wrap01 {
    width: 100%;
  }
  .room04 .wrap01 .ttl {
    position: static;
    display: flex;
    flex-direction: column;
  }
  .room04 .wrap01 .ttl h3 {
    writing-mode: horizontal-tb;
  }
  .room04 .wrap01 .ttl span {
    writing-mode: horizontal-tb;
  }
.room04 .wrap01 .ttl p{
    writing-mode: horizontal-tb;
}
  .room04 .wrap02 {
    width: 100%;
    gap: 2rem;
  }
  .room04 .nidan {
    flex-direction: column;
  }
  .room04 .text {
    flex: 1 1 auto;
    gap: 2rem;
  }
  .room04 .text h3 {
    font-size: 1.2rem;
  }
  .room04 .madori {
    max-width: 100%;
  }
  .room04 .btn {
    flex-direction: column;
    gap: 1rem;
  }
  .room04 .btn-more {
    width: 100%;
    text-align: center;
  }
}


  .room04 .kashikiri {
    display:grid;gap:2rem;grid-template-columns: 45% auto;align-items: flex-end;
  }
  .room04 .kashikiri .dis{
    background-color:black;padding:1rem;color:white;
  }
  .room04 .kashikiri .dis h3{
    font-size:1.25rem;
  }
  .room04 .kashikiri .dis p{
    font-size:1rem;
  }
@media (max-width: 768px) {
  .room04 .kashikiri {
    display:flex;
	flex-direction: column;
  }
}






/**onsen-sec06**/
.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;
  }
}