@charset "UTF-8";

/* ------------------------------------
共通
------------------------------------ */
.l-container {
  width: 100%;
}

.page-container {
  width: 100%;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  margin-bottom: 70px;
}

.page-container * {
  box-sizing: border-box;
}

.page-container img {
  width: 100%;
  display: block;
}

.page-container a {
  text-decoration: none;
  color: #000;
}

.page-container a:hover {
  opacity: 0.6;
  text-decoration: none;
}

.page-container .sp {
  display: none;
}

/* ------------------------------------
contents
------------------------------------ */
/* -------------.visual------------- */
.visual {
  width: 100%;
  margin-bottom: 160px;
}

.visual .inner {
  /* 0903修正: メインビジュアルの背景（旧#8f8d93）を削除。差し替えたバナー画像に背景が含まれるため */
  width: 100%;
}

.visual .inner h1 {
  width: 1140px;
  margin: 0 auto 100px;
}

.visual .lead {
  text-align: center;
}

.visual .lead p {
  font: 400 16px/1.8 "Noto Sans JP", sans-serif;
  margin-bottom: 1.5em;
}

.visual .lead p:last-child {
  margin-bottom: 0;
}

.visual .lead .kome-list {
  max-width: 740px;
  margin: 0 auto 30px;
  text-align: left;
  background: #e5e5e5;
  padding: 30px;
  text-align: center;
}

.visual .lead .kome-list li {
  font-size: 16px;
  text-indent: -0.5em;
  margin: 0 0 1em 1em;
  line-height: 1.6;
}

.visual .lead .kome-list li:last-child {
  margin-bottom: 0;
}

.visual .lead .kome-list li:before {
  display: inline-block;
  font-size: 16px;
}

.visual .lead a {
  color: #666;
  text-decoration: underline;
}

.visual .lead hr {
  width: 740px;
  margin: 20px auto;
  border: none;
  background-color: #eee;
  border-width: 1px 0 0 0;
  border-top: dotted;
  border-color: black;
}

.visual .lead hr:first-of-type {
  margin-top: 40px;
}

.info_bnr {
  width: 50%;
  margin: 0 auto;
  gap: 20px;
  display: flex;
  text-align: center;
}

.lead p.title {
  font-weight: 700;
}

.dabiki {
  font-weight: 700;
}

/* ------.other-wrap ------ */
.other-wrap {
  width: 1140px;
  margin: 80px auto 160px;
}

.other-wrap .inner {
  /* ↑ 修正②(0902-02): 支給の正方形画像に差し替え、PC3列グリッドへ */
  border: 1px solid #000;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
  align-items: center;
  column-gap: 20px;
  row-gap: 20px;
  padding: 40px 40px 60px;
  position: relative;
}

.other-wrap .other-wrap-ttl {
  grid-column: 1/-1;
  width: 100%;
  margin: -50px 0 10px;
  text-align: center;
}

.other-wrap .other-wrap-ttl img {
  width: 187px;
  display: inline;
}

.other-wrap [class^=other-] {
  width: 100%;
  margin: 0;
}

.other-wrap .more {
  width: 1140px;
  text-align: center;
  position: absolute;
  bottom: -30px;
}

.other-wrap .more a {
  display: inline-block;
  width: 285px;
  font: 400 20px/60px "Cambria", serif;
  border: 1px solid #000;
  background: #fff;
  transition: 0.3s;
}

.other-wrap .more a:hover {
  color: #fff;
  background: #000;
  opacity: 1;
}

/* -------------.pickup-wrap------------- */
.pickupitem-01 {
  width: 1140px;
  margin: 0 auto 100px;
}

.pickupitem-02 {
  width: 1140px;
  margin: 0 auto 100px;
}

.pickupitem-03 {
  width: 1140px;
  margin: 0 auto 100px;
}

.pickupitem-04 {
  width: 1140px;
  margin: 0 auto 100px;
}

.pickupitem-05 {
  width: 1140px;
  margin: 0 auto 100px;
}

.pickupitem-06 {
  width: 1140px;
  margin: 0 auto 100px;
}

.pickupitem-07 {
  width: 1140px;
  margin: 0 auto 100px;
}

.pickup-wrap-ttl {
  text-align: center;
  font: 400 42px/1 "Noto Serif JP", serif;
  margin: 0 auto 40px;
}

/* ------.pickup-wrap .main-item ------ */
.pickup-wrap .main-item {
  /* ↑ 修正②: obiを外出ししたため再計算。.ph は絶対配置なので高さを確保する
     通常セクション=画像540px（テキスト列≒556px）／アクセサリー有=画像540+Accessory約283px */
  min-height: 560px;
  margin-bottom: 110px;
  padding-left: 600px;
  position: relative;
}

/* ↑ 修正②(0902-02): obi はブロックの上に中央揃えで設置 */
.pickup-wrap h3 {
  text-align: center;
  margin: 0 auto 80px;
}

.pickup-wrap h3 .obi {
  display: inline-block;
  background: #457962;
  color: #fff;
  font: 400 30px/1 "Cambria", serif;
  padding: 10px 20px 14px;
}

.pickupitem-01 h3 .obi {
  background: #000;
}

.pickupitem-02 h3 .obi {
  background: #bf9000;
}

.pickupitem-03 h3 .obi {
  background: #a51b84;
}

.pickupitem-04 h3 .obi {
  background: #404040;
}

.pickupitem-05 h3 .obi {
  background: #354b38;
}

.pickupitem-06 h3 .obi {
  background: #66491a;
}

.pickupitem-07 h3 .obi {
  background: #26527a;
}

.pickup-wrap .colors {
  font: 400 40px/1 "Cambria", serif;
  letter-spacing: 2px;
  color: #000;
  margin-bottom: 40px;
  text-align: right;
}

.pickup-wrap .colors li {
  margin-bottom: 4px;
}

.pickup-wrap .main-item .ph {
  position: absolute;
  left: 0;
  top: 0;
  width: 540px;
  overflow: hidden;
}

.acc {
  width: 100%;
  position: relative;
}

.acc img {
  /* ↑ 修正②追補: アクセサリー画像は横幅84px指定
     素材 628x1098（縦横比 1.748）。横84px時の高さ147pxを上限にする */
  width: 84px;
  max-width: 84px;
  max-height: 147px;
  height: auto;
  object-fit: contain;
  margin: 20px 0 0 350px;
}

.pickup-wrap .item-name {
  font: 400 20px/1.8 "Noto Serif JP", serif;
  margin-bottom: 1em;
}

.pickup-wrap .item-price {
  font: 400 20px/1 "Cambria", serif;
}

.pickup-wrap .item-price strong {
  font: 400 40px/1 "Cambria", serif;
}

/* ------ マイル要素（0903修正・価格の10%）------ */
.pickup-wrap .item-mile {
  margin: 8px 0 0;
  /* 0903修正: もう一段上げ 16px→18px（本文15px＜マイル18px＜商品名20px） */
  font: 400 18px/1.6 "Noto Sans JP", sans-serif;
  color: #333;
}

.pickup-wrap .item-mile-num {
  /* 0903修正: 「さらに◯◯マイルたまる」は全体を太字＋赤 */
  font-weight: bold;
  color: #ff0000;
}

.pickup-wrap .item-color-list {
  display: flex;
  gap: 20px;
  margin-top: 40px;
}

.pickup-wrap .item-color-list li {
  width: 96px;
  cursor: pointer;
}

.pickup-wrap .item-color-list li.current {
  opacity: 0.6;
}

.pickup-wrap .item-color-list .color-name {
  /* ↑ 修正②追補: カラー名 10px→13px。
     SPは仕様(R114)で12px確定。PCはSPと揃えるのではなく、この要素固有の
     元のPC:SP比（PC10px : SP9px = 1.111）を新SP値に適用して算出:
       12px × 1.111 = 13.3px ≒ 13px */
  font: 400 13px/1 "Noto Sans JP", sans-serif;
  color: #333;
}

/* ------ 商品詳細ボタン（修正②0902-02）------
   サイト共通コンポーネント .g-common-btn を本番(store.megasports.jp/shop/c/cMS/)から1:1移植。
   テキストのみ「商品詳細はこちら」に変更 */
.g-common-btn {
  margin-top: 38px;
  width: 100%;
}

.g-common-btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 320px;
  height: 50px;
  border-radius: 50px;
  margin: 0 auto;
  background: rgb(0, 0, 0);
  font-size: 14px;
  font-weight: 600;
  color: rgb(255, 255, 255);
}

.g-common-btn a::after {
  position: absolute;
  content: "";
  right: 30px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid rgb(255, 255, 255);
  border-bottom: 2px solid rgb(255, 255, 255);
  border-radius: 1px;
  transform: translate(0, -50%) rotate(-45deg);
}

.g-common-btn a:hover {
  opacity: 0.8;
  transition: 0.1s;
  text-decoration: none;
}

.pickup-wrap .item-info {
  margin: 40px 0;
  width: 540px;
  /* ↑ 修正②(0902-02): フォント大きく 14px→15px */
  font: 400 15px/1.8 "Noto Sans JP", sans-serif;
}

.pickup-wrap table {
  /* 列数は列均等割りの分母。列の増減時はここだけ変更する */
  --table-col-count: 5;
  width: 540px;
  margin-top: 100px;
  border-collapse: collapse;
  font-size: 16px;
}

.pickup-wrap table caption {
  text-align: left;
  margin-bottom: 0.5em;
}

.pickup-wrap table caption::before {
  content: "●";
}

.pickup-wrap table thead tr {
  background: #efeeea;
}

.pickup-wrap table tr:nth-child(even) {
  background: #f8f8f8;
}

.pickup-wrap table th {
  width: calc(100% / var(--table-col-count));
  font: 400 16px/45px "Noto Sans JP", sans-serif;
  text-align: center;
}

.pickup-wrap table td {
  font: 400 16px/45px "Noto Sans JP", sans-serif;
  text-align: center;
}

.pickupitem-01 .main-item,
.pickupitem-02 .main-item {
  /* アクセサリー有: 画像540px + Accessory約147px（実測ph=707px） */
  min-height: 710px;
}

/* ------.pickup-wrap .styling-item ------ */
.pickup-wrap .styling-item {
  display: flex;
  justify-content: space-between;
  padding-bottom: 150px;
  border-bottom: 1px solid #000;
  background: url("../img/bg_styling-item_pc.jpg") center 50px no-repeat;
}

.pickup-wrap:last-child .styling-item {
  border-bottom: none;
  padding-bottom: 60px;
}

.pickup-wrap .styling-item h4 {
  font: 400 50px/2 "Cambria", serif;
}

.pickup-wrap .styling-item .ph {
  width: 440px;
}

.pickup-wrap .styling-item .active {
  position: relative;
}

.pickup-wrap .styling-item .active .lead {
  position: absolute;
  top: 150px;
  left: 350px;
  z-index: 1;
}

.pickup-wrap .styling-item .active .lead p {
  word-break: keep-all;
  font: 400 16px/1.8 "Noto Sans JP", sans-serif;
}

.pickup-wrap .styling-item .relax {
  position: relative;
  padding-top: 130px;
}

.relax .lead {
  /* ↑ 修正②追補: margin-top を除去（画像84px化に合わせて位置を詰める） */
  position: absolute;
  z-index: 1;
  left: 60px;
}

.relax .lead p {
  word-break: keep-all;
  font: 400 16px/1.8 "Noto Sans JP", sans-serif;
}

.relax .lead h4 {
  word-break: keep-all;
  font: 400 30px/2 "Cambria", serif;
}

.link_btn {
  width: 63%;
  margin: 0 auto;
  border: 1px solid #ccc;
  margin-bottom: 30px;
  font-size: 16px;
}

.link_btn:hover {
  text-decoration: underline;
}

.link_btn a {
  text-decoration: none;
  display: block;
  padding: 20px 10px;
  text-align: center;
}

/* ------------------------------------
動き
------------------------------------ */
/* 拡大 */
.page-container .ph a img {
  transition: transform 0.4s ease;
}

.page-container .ph a:hover img {
  transform: scale(1.05);
}

/*　浮かび上がる動き　*/
.page-container .animated {
  animation-name: fadeUpAnime;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(50px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
