@charset "UTF-8";
/* CSS Document */
/* ===== ロイヤルスプーンの選び方 ===== */
/* ===== ロイヤルスプーンの選び方（はみ出し対策・640px基準） ===== */

/* このブロック内だけ box-sizing を統一（paddingで幅が増えない） */
.rs-select,
.rs-select *{
  box-sizing: border-box;
}

.rs-select{
  width: 100%;
  max-width: 1100px;
  margin: 30px auto;
  padding: 0 4%;          /* 14px固定 → %に変更（他CSSと思想を揃える） */
  overflow-x: hidden;     /* 念のため、右にはみ出す要素を隠す保険 */
}

/* グリッドもはみ出し防止 */
.rs-select__grid{
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)); /* minmax(0,1fr) が重要 */
  gap: 18px;
}

/* カード自体も100%にしておく（親の幅以上にならない） */
.rs-card{
  width: 100%;
  max-width: 100%;
  position: relative;
  display: block;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  min-height: 260px;
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
  transform: translateZ(0);
  border:1px solid #cccccc;
}

/* 背景画像 */
.rs-card__bg{
  position:absolute;
  top:0; left:0; right:0; bottom:0; /* inset:0 の互換目的で明示 */
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  transition: transform .35s ease;
}

/* オーバーレイ */
.rs-card__overlay{
  position:absolute;
  top:0; left:0; right:0; bottom:0;
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: #222;
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,.88) 0%,
    rgba(255,255,255,.55) 45%,
    rgba(255,255,255,.15) 100%
  );
}

.rs-card__top{
  margin: 0;
  font-size: 18px;
  font-weight: 700;
}

.rs-card__line{
  display:block;
  width: 70%;
  height: 2px;
  background: #c5a46d;
  margin: 10px 0 0;
}

.rs-card__mid{
  margin: 10px 0 0;
  font-size: 16px;
  font-weight: 600;
}

.rs-card__btn{
  align-self: center;
  display: inline-block;
  margin-top: auto;
  padding: 10px 18px;
  border-radius: 6px;
  background: #51300d;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  box-shadow: 0 8px 16px rgba(179,71,42,.25);
  transition: transform .2s ease, filter .2s ease;
}

/* hover */
.rs-card:hover .rs-card__bg{
  transform: scale(1.08);
}
.rs-card:hover .rs-card__btn{
  transform: translateY(-1px);
  filter: brightness(1.02);
}

/* ===== スマホ（640px基準） ===== */
@media (max-width: 640px){
  .rs-select{
    padding: 0 4%; /* スマホも%で統一 */
  }

  .rs-select__grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .rs-card{
    min-height: 220px;
  }

  /* 文字が長い時に横はみ出しを防ぐ */
  .rs-card__top,
  .rs-card__mid{
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* ===== 商品ラインナップ（はみ出し対策・640px基準） ===== */

/* このブロック内だけ幅計算を統一（padding/borderで増えない） */
.rs-lineup,
.rs-lineup *{
  box-sizing: border-box;
}

.rs-lineup{
  width: 100%;
  max-width: 1000px;
  margin: 40px auto;
  padding: 0 4%;        /* 15px固定 → %へ（640px設計と合わせる） */
  overflow-x: hidden;   /* 念のため */
}

.rs-lineup-title{
  text-align:center;
  font-size:22px;
  margin-bottom:20px;
}

/* テーブル（PC） */
.rs-lineup-table{
  width:100%;
  max-width:100%;
  border-collapse: collapse;
  border-spacing: 0;     /* どこかのCSSで入っていても潰す */
  table-layout: fixed;   /* 長文で横に広がるのを防ぐ */
  font-size:15px;
}

.rs-lineup-table th,
.rs-lineup-table td{
  border:1px solid #cccccc;
  padding:14px;
  overflow-wrap:anywhere; /* 長い文字で横に伸びない */
}

.rs-lineup-table th{
  background:#f5f5f5;
  text-align:center;
}

.rs-lineup-table td{
  text-align:center;
}

/* 星 */
.stars{
  color:#c5a46d;
  font-size:16px;
  line-height:1.2;
  white-space: nowrap;
}

/* ===== スマホ（横スクロール無し） ===== */
@media (max-width:640px){

  .rs-lineup{
    padding: 0 4%;
  }

  /* ヘッダー非表示 */
  .rs-lineup-table thead{
    display:none;
  }

  /* ブロック化 */
  .rs-lineup-table,
  .rs-lineup-table tbody,
  .rs-lineup-table tr,
  .rs-lineup-table td{
    display:block;
    width:100%;
    max-width:100%;
  }

  /* ここが肝：tdのborder/padding由来の横はみ出しを完全に排除 */
  .rs-lineup-table td{
    border: none !important;
    padding: 12px 12px 12px 38% !important;  /* 左を%に（640px運用と合わせる） */
    text-align:left;
    position:relative;
    min-height:44px;
  }

  /* 1カード（1商品）の枠線は tr 側でまとめて持つ
     borderだと幅計算に影響することがあるため outline を使用 */
  .rs-lineup-table tr{
    margin: 0 0 16px 0;
    outline: 1px solid #cccccc;
    outline-offset: 0;
    border-radius: 0;   /* 角丸が必要なら入れてOK */
    overflow: hidden;
    background:#fff;
  }

  /* 行間の仕切り（最後だけ消す） */
  .rs-lineup-table td{
    border-bottom: 1px solid #eeeeee !important;
  }
  .rs-lineup-table td:last-child{
    border-bottom: none !important;
  }

  /* 左側ラベル */
  .rs-lineup-table td:before{
    content:attr(data-label);
    position:absolute;
    left:12px;
    top:12px;
    width: 34%;
    font-weight:bold;
    color:#555;
    white-space: nowrap;
  }
}