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

/* ===== Base ===== */
:root{
  --container: min(1170px, 98vw);
  --gap: clamp(16px, 2vw, 28px);
  --card-radius: 18px;
  --arch-radius: 220px; /* 画像上部のアーチ感。お好みで調整 */
  --none-radius: 0;
  --shadow: 0 10px 28px rgba(0,0,0,.08);
  --border: #e8edf1;
  --text: #2b2f33;
  --muted:#6a757e;
  --brand:#ff9800;
}
.rooms{
  width: var(--container);
  margin-inline: auto;
  position: relative;
  padding: 8rem 0;
}
.visually-hidden{position:absolute!important;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}

/* ===== Track（PC: grid / SP: 横スクロール） ===== */
.rooms-track{
  padding: 6rem 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap);
}

/* カード */
.room-card{
  background: transparent;
  border: none;
  box-shadow: none;
  padding-bottom: 14px;      /* 最下部の余白 */
  display: flex;
  flex-direction: column;
}

/* 画像：上部アーチ、下はまっすぐ。影は弱めに。 */
.room-media{
  margin: 0;
  overflow: hidden;
  border-top-left-radius: var(--arch-radius);
  border-top-right-radius: var(--none-radius);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  box-shadow: 0 2px 0 rgba(0,0,0,0); /* 影は付けない（下の白パネルに影を付ける） */
}
.room-media img{
  width: 100%;
  height: clamp(350px, 30vw, 410px);
  object-fit: cover;
  display: block;
}

/* テキストエリア */
/* 白い内容パネル：画像に軽く重ねる（マイナスマージン） */
.room-body{
  width: calc(100% - 24px);
  margin: -80px 0 0 auto;        /* 画像に重なって見える量 */
  background: #fff;
  border: 1px solid #eef2f5;
  border-radius: 10px 0 10px 10px;
  /*box-shadow: 0 12px 26px rgba(17, 28, 45, .10);*/ /* 添付の“ふわっと”影 */
  padding: 16px 18px 20px;
}

/* タイトル＋ボタン行：添付の余白感に近づける */
.room-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    border-bottom: 1px solid #ccc;
    padding-bottom: 8px;
    margin-bottom: 8px;
}
.room-title{
  margin: 0;
  font-weight: 700;
  color: var(--text);
  font-size: clamp(16px, 1.5vw, 18px);
}
/* 予約ボタン：オレンジのピル、文字やや大きめ */
.room-cta{
  display: inline-block;
  background: var(--brand);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  padding: 8px 28px;
  border-radius: 999px;
  /*box-shadow: 0 6px 16px rgba(255,152,0,.35);*/
  transform: translateZ(0);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.room-cta:hover{ transform: translateY(-1px); filter: brightness(1.03); }

/* 説明文：行間広め＆色薄め、添付の字面に近づける */
.room-desc{
  margin: 10px 0 0;
  color: #5d6b75;
  line-height: 1.9;
  font-size: 14px;
}

/* ===== スマホでスライダー化 ===== */
:root{
  --nav-size: 36px;         /* ボタンの外側サイズ（タップ面積） */
  --nav-stroke: 6px;        /* 矢印の太さ */
  --nav-color: #a7adb3;     /* 矢印色（グレー） */
  --nav-bg: transparent;    /* 背景（透過） */
  --nav-hover: #8f969d;     /* ホバー時の色 */
}
@media (max-width: 768px){
  .rooms{  padding: 4rem calc(var(--nav-size) * .9); }   /* 矢印の余白確保 */
  .room-media img{
    height: clamp(220px, 58vw, 280px);
  }
  .room-body{
    width: calc(100% - 20px);
    margin-top: -50px;
    padding: 16px 16px 18px;
    border-radius: 12px;
  }
  .room-cta{ padding: 12px 26px; font-size: 13.5px; }

  .rooms-track{
    display: flex;               /* ← grid→flex */
    overflow-x: auto;
    gap: 18px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 0 4px 6px;
  }
  .rooms-track > .room-card{
    flex: 0 0 96%;               /* 1枚の幅 */
    scroll-snap-align: center;
  }
  .rooms-nav{
    position: absolute;
    top: 50%;
    translate: 0 -50%;
    width: var(--nav-size);
    height: var(--nav-size);
    padding: 0;
    background: var(--nav-bg);
    border: none;
    box-shadow: none;
    border-radius: 50%;         /* ヒットエリア丸 */
    display: grid;
    place-items: center;
    cursor: pointer;
    z-index: 5;
    -webkit-tap-highlight-color: transparent;
  }
  .rooms-nav::before{
    content: "";
    width: 60%;
    height: 60%;
    /* 2本の線（border）で“くの字”を作る */
    border-style: solid;
    border-width: 0 var(--nav-stroke) var(--nav-stroke) 0;
    border-color: var(--nav-color);
    border-radius: 2px;        /* 角に少し丸み */
    display: block;
  }
   .rooms-nav.prev{ left: 4px; }
  .rooms-nav.next{ right: 4px; }

  /* 向き */
  .rooms-nav.prev::before{
    transform: rotate(135deg);   /* ‹  */
  }
  .rooms-nav.next::before{
    transform: rotate(-45deg);   /* ›  */
  }
  /* ホバー/アクティブ（PCデバッグ用 & iOSの押下） */
  .rooms-nav:hover::before{ border-color: var(--nav-hover); }
  .rooms-nav:active{ scale: .96; }
  .rooms-nav:focus-visible{
    outline: 2px solid color-mix(in oklab, var(--nav-color), #fff 40%);
    outline-offset: 2px;
    border-radius: 50%;
  }

  /* 端で無効化したい場合のスタイル（任意でJSから付与） */
  .rooms-nav[disabled]{ opacity: .35; pointer-events: none; }
}

/* PCでは非表示（既出の指定があれば不要） */
@media (min-width: 769px){
  .rooms-nav{ display: none; }
}