@charset "utf-8";

/*------------------------------------------
マウスオーバー時のエフェクト
------------------------------------------*/
.hover-effect:hover {
  position: relaive;
  animation-name: hover-flash;
  animation-duration: 1s;
  opacity: 1;
}

/*-------------------------------------
モデル外側スクロール
---------------------------------------*/
.model-list-wrap{
  position:relative;
  width:100%;
  container-type: inline-size;
}

@media screen and (max-width: 1139px) {
  .model-list-wrap{
    overflow-x: scroll;
    padding-bottom:5px;
  }
}

/*-------------------------------------
モデル一覧レイアウト
---------------------------------------*/
.model-card-list {
  width:100%;
  display:flex;
  justify-content: center;
  gap:15px;
  text-align: left;
}
.model-card-list > li{
  position:relative;
  width: calc((100% - 45px) / 4);
}

.model-card-list .model-card,
.model-card-list .model-card .model-data,
.model-card-list .model-card .model-top,
.model-card-list .model-card .model-btm,
.model-card-list .model-card .model-btm-top{
  display:flex;
  flex-direction: column;
  gap:10px;
}

.model-card-list .model-card{
  position:relative;
  width: 100%;
  justify-content: space-between;
  border: 1px solid #a3a3a3;
  border-radius: 2px;
  background:#fff;
  padding:20px;
}
.model-card-list a.model-card{
  height:100%;
}
.model-card-list a.model-card:hover{
  border: 1px solid #00a2e6;
  filter: drop-shadow(5px 5px 5px rgba(0, 162, 230, 0.1));
}


@container (max-width: 1139px) {
  .model-card-list:has(> li:nth-child(4))  {
    justify-content: flex-start;
    width:max-content;
    gap:10px;
  }
  .model-card-list:has(> li:nth-child(3)) .model-card,
  .model-card-list:has(> li:nth-child(3)) > li{
    width:275px;
  }
}
@container (max-width: 854px) {
  .model-card-list:has(> li:nth-child(3))  {
    justify-content: flex-start;
    width:max-content;
    gap:10px;
  }
}

@media screen and (max-width: 767px) {
  .model-card-list .model-card{
    padding:15px;
  }
  .model-card-list:has(> li:nth-child(3)) .model-card,
  .model-card-list:has(> li:nth-child(3)) > li,
  .model-card-list .model-card,
  .model-card-list > li{
    width:230px;
  }
}

.model-card-list:has(.tag-appeal) .model-card{
  padding-top:30px;
}
.model-card-list:has(.tag-appeal + .tag-appeal) .model-card{
  padding-top:50px;
}

/*-------------------------------------
ランキング
---------------------------------------*/
.model-card-list.--ranking .model-card{
  padding-top:50px;
}

.model-card-list.--ranking > li::after {
  position: absolute;
  content: "";
  width: 40px;
  height: 40px;
  display: block;
  left: 10px;
  top: 5px;
  z-index:+1
}
.model-card-list.--ranking > li:nth-child(1)::after {
  background: url(../images/icon-rank-1.svg) no-repeat 50% 50% / contain;
}
.model-card-list.--ranking > li:nth-child(2)::after {
  background: url(../images/icon-rank-2.svg) no-repeat 50% 50% / contain;
}
.model-card-list.--ranking > li:nth-child(3)::after {
  background: url(../images/icon-rank-3.svg) no-repeat 50% 50% / contain;
}
.model-card-list.--ranking > li:nth-child(4)::after {
  background: url(../images/icon-rank-4.svg) no-repeat 50% 50% / contain;
}


/*-------------------------------------
アピールテキスト
---------------------------------------*/
.model-card-list .tag-appeal-wrap {
  position:absolute;
  right: 2px;
  top: 2px;
  width:calc(100% - 4px);
  font-size: clamp(10px, 0.568rem + 0.24vw, 12px);
  line-height:1;
}
.model-card-list .tag-appeal {
  position:relative;
  border: 1px solid #e43344;
  color: #e43344;
  padding: 0.2em 0.4em;
  font-size: clamp(10px, 0.568rem + 0.24vw, 12px);
  line-height:1;
  border-radius: 2px;
  display: inline-block;
  background: #fff;
  width:100%;
  text-align:center;
}

.model-card-list .tag-appeal+.tag-appeal{
  margin-top:2px;
}

.model-card-list.--ranking .tag-appeal-wrap{
  width:calc(100% - 60px);
}


/*-------------------------------------
中身
---------------------------------------*/

/*--------------
画像
----------------*/

.model-img-wrap {
  position:relative;
  width:100%;
}
.model-img-wrap .model-img{
  margin: auto;
  width:60%;
  max-width:154px;
}
.model-card-list img {
  margin: auto;
  width: 100%;
  object-fit: contain;
}

/*2つあるとき*/
.model-img-wrap:has(object) .model-img:first-child{
  position:relative;
  margin: 0;
  top: 0;
  left: 0;
  z-index:+1;
}
.model-img-wrap .model-img + .model-img{
  position:absolute;
  margin: 0;
  top: 0;
  right: 0;
}

/*--------------
ディスプレイ
----------------*/
.model-display {
  font-size: clamp(12px, 0.722rem + 0.12vw, 13px);
  line-height: 1.2;
  text-align: center;
  padding: 0.3em;
  color: #004da1;
  background: #d9f1fb;
}

/*--------------
キャッチコピー
----------------*/
.model-catch {
  font-size: clamp(12px, 0.693rem + 0.24vw, 14px);
  line-height:1.25;
}

/*--------------
モデル名前
----------------*/
.model-name {
  height: calc(2em * 1.25);
  line-height: 1.25;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-weight: 700;
  font-size: clamp(14px, 0.818rem + 0.24vw, 16px);
}

/*--------------
モデルスペック
----------------*/
.model-spec {
  font-size: clamp(12px, 0.722rem + 0.12vw, 13px);
}

.model-spec > li {
  position:relative;
  padding-left:3.2em;
  padding-top: 0.3em;
  min-height: 1.3em;
}

.model-spec > li + li{
  margin-top:0.3em;
  border-top:1px dotted #ccc;
}
.model-spec > li::before {
  position:absolute;
  top:0.3em;
  left:0;
  font-weight:700;
}
.model-spec > li::after {
  content: "：";
  position:absolute;
  top:0.3em;
  left:2.1em;
  font-weight:700;
}

.model-spec > li:has(span[data-key="os"])::before {
  content: "OS";
}
.model-spec > li:has(span[data-key="video"])::before {
  content: "GPU";
}
.model-spec > li:has(span[data-key="cpu"])::before {
  content: "CPU";
}


/*--------------
レビューブロック
----------------*/
.model-review {
  font-size: clamp(12px, 0.722rem + 0.12vw, 13px);
}
.review-in-recommend img{
  width:auto !important;
  height:1em !important;
  object-fit: contain;
  vertical-align: baseline;
}
.model-review span{
  margin-left:0.5em;
}

/*--------------
入荷・金額
----------------*/
.model-price-block{
  display:flex;
  flex-direction: column;
  gap:5px;
}
.model-stkname{
  font-size:clamp(12px, 0.693rem + 0.24vw, 14px);
  color:#e43344;
  font-weight:700;
  width:fit-content;
}
.model-price{
  font-weight:700;
  font-size:clamp(12px, 0.693rem + 0.24vw, 14px);
}
.model-price .main_price{
  font-size:clamp(20px, 1.108rem + 0.61vw, 25px);
}

/*--------------
SMBC調整
----------------*/
.model-card-list .smbc-item{
  margin:0;
  font-size:clamp(10px, 0.568rem + 0.24vw, 12px);
  font-weight:700;
  line-height:1.2;
  text-align: left;
}
.model-card-list .smbc-item .smbc-connect,
.model-card-list .smbc-item .js-products-show_fee-modal-recommend{
  font-weight:400;
}
.model-card-list .smbc-item img{
  width:auto !important;
  height:1em !important;
  margin-left: 0.25em;
  vertical-align: middle;
  overflow: visible;
}

.model-card-list .smbc-item .recItemIcon {
  background: none;
  padding: 0;
}
.model-card-list .smbc-item .recItemPrice span {
  font-size: clamp(14px, 0.83rem + 0.23vw, 16px);
  font-weight: 700;
}
.model-card-list .smbc-item .js-products-show_fee-modal-recommend {
  color: #00a1e8;
  font-weight: normal;
  text-decoration: underline;
}
.model-card-list .smbc-item img:hover,
.model-card-list .smbc-item .js-products-show_fee-modal-recommend:hover {
  cursor: pointer;
}

/*--------------
ボタン
----------------*/
.model-btn-wrap{
  width:100%;
  display:flex;
  gap:10px;
}

.model-btn-wrap > .model-btn{
  flex:1;
}

.model-card-list .c-button {
  margin: auto;
  width: 100%;
}

.model-card-list .c-button,
.model-card-list .c-button span {
  font-size:14px !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
}

.model-card-list .c-button::after{
  right:12px !important;
}

.model-button--metal {
  border-color: #666;
  background: #666;
  color: #fff;
}

.model-button--metal::after {
  border-color: #fff;
}

.model-button--metal::before {
  background-color: #fff;
  opacity: .2;
}

.model-button--white {
  border-color: #a3a3a3;
  background-color: #fff;
  color: #484848;
}

.model-button--white::before {
  background-color: #484848;
  opacity: .1;
}

.model-button--white::after {
  border-color: #333;
}

.model-button--black {
  border-color: #000;
  background: #000;
  color: #fff;
}

.model-button--black::after {
  border-color: #fff;
}

.model-button--black::before {
  background-color: #fff;
  opacity: .2;
}

/*-------------------------------------
クーポン・エントリー共通調整
---------------------------------------*/

.model-campaign,
.model-campaign > object{
  width:100%;
}

.model-campaign > object.--none{
  visibility: hidden;
}

/*-------------------------------------
エントリー調整
---------------------------------------*/
.model-campaign .entry-box {
  margin:0;
}

.model-campaign .entry-box .entry-box__link {
  padding: 0.2em 15px 0.2em 0;
}

.model-campaign .entry-box .entry-box__point {
  font-size: 0.8em;
  padding: 2px 0;
}

.model-campaign .entry-box .entry-box__point .point {
  font-size: 18px;
  padding-top: 0.1em;
}

.model-campaign .entry-box .entry-box__link {
  font-size: 0.8em;
}

@media screen and (max-width: 767px) {
  .model-campaign .entry-box {
    flex-direction: column;
  }

  .model-campaign .entry-box .entry-box__point {
    width: 100%;
  }

  .model-campaign .entry-box .entry-box__link {
    width: 100%;
    padding: 5px 0 2px 0;
  }

  .model-campaign .entry-box::after {
    top: auto;
    bottom: 6px;
  }
}

/*-------------------------------------
クーポン調整
---------------------------------------*/
.model-campaign .coupon-wrapper{
  width:100%;
  flex-direction: column;
  padding:0;
  border:none;
}

.model-campaign .coupon-wrapper br{
  display: none;
}
.model-campaign .ribbon{
  display:none;
}
.model-campaign .coupon-value{
  width:100%;
  padding: 0.5em;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  border:2px solid;
  border-image: linear-gradient(135deg, #fff9e6 0%, #b39855 40%, #fff9e6 75%, #b39855 120%) 1;
}
.model-campaign .coupon-value::before{
  position:absolute;
  top:0;
  left:0;
  width:20%;
  height:100%;
  content: "";
  background:#ff0 url(../images/coupon-use.webp?01) no-repeat center center / contain;
  clip-path: polygon(0% 0%, calc(100% - 10px) 0%, 100% 50%, calc(100% - 10px) 100%, 0% 100%);
}
.model-campaign .coupon-value__detail {
  font-size: 24px;
}
.model-campaign .coupon-value__detail{
  padding-left:15%;
  white-space:nowrap;
}
.model-campaign .coupon-value__detail .sub{
  font-size: 60%;
  margin-left: 0;
}
.model-campaign .coupon-value__inner{
  position:relative;
  z-index:5;
  display: block;
}

.model-campaign .coupon-code{
  width:100%;
  padding:0;
}
.model-campaign .coupon-code__inner {
  width:100%;
}
.model-campaign .coupon-code__text{
  font-size:clamp(12px, 0.705rem + 0.23vw, 14px);
  padding: 0.5em 0;
  font-weight:600;
}
.model-campaign .coupon-code__button {
  font-size: 13px;
  height: auto;
}
.model-campaign .coupon-code__text::before {
  display: block !important;
  font-size: 0.8em;
}


/*-------------------------------------
右下 ＞色調整
---------------------------------------*/
.model-card-list .c-panel-arrow::before{
  border-color: #fff;
}
.model-card-list .c-panel-arrow::after{
  background: #004da1;
}

/*-------------------------------------
周辺機器セット
---------------------------------------*/
.model-device-set{
  width:100%;
  text-align:center;
}
.model-device-set p{
  font-weight:700;
  text-align:center;
  font-size:clamp(10px, 0.568rem + 0.24vw, 12px);
  padding:0.3em;
  background:#d9f1fb;
  color:#004da1;
  border-radius: 2px;
}
.model-device-set img{
  width:80% !important;
  object-fit: contain;
  margin:10px auto 0 auto;
}

