@charset "utf-8";

:root {
  --gap-s: clamp(10px, 0.398rem + 1.14vw, 20px);
  --gap-m: clamp(20px, 0.795rem + 2.27vw, 40px);
  --gap-l: clamp(20px, 0.398rem + 3.64vw, 50px);

  --color-red: #e43344;
  --color-blue: #004da1;
  --color-dark: #333;
  --color-pale-blue:#e2f5fb;
  --color-light-blue:#00a2e6;
  --color-pale-gray:#f6f6f6;

  --color-yellow:#ffc040;
  --color-light-yellow:#eff75a;

  --filter-blue: brightness(0) saturate(100%) invert(21%) sepia(100%) saturate(1493%) hue-rotate(195deg) brightness(90%) contrast(105%);

}

/*------------------------------------------
基本レイアウト
------------------------------------------*/
html {
  scroll-behavior: smooth;
}

#trend-passion-hdd img{
  width:100%;
  object-fit: contain;
}

#trend-passion-hdd .c-button{
  width:100%;
  padding-right: 16px;
}
#trend-passion-hdd .c-button::after {
  right: 16px;
}
#trend-passion-hdd .c-button,
#trend-passion-hdd .c-button span{
  letter-spacing: 0;
  line-height:1.25;
  font-size:clamp(14px, 0.818rem + 0.24vw, 16px);
}

#trend-passion-hdd p + p,
#trend-passion-hdd ul + p,
#trend-passion-hdd p + ul,
#trend-passion-hdd ul + ul {
  margin-top:var(--gap-s);
}

/*------------------------------------------
共通レイアウト
------------------------------------------*/

.sec-cont {
  padding: var(--gap-l) 0;
  overflow: hidden;
}

.contents-inner {
  width: calc(100% - 30px);
  max-width: 1140px;
  margin: auto;
  text-align: left;
}

.sec-cont section + section{
  margin-top: var(--gap-l);
}

.--bkg-gray{
  background:var(--color-pale-gray);
}
.--bkg-blue{
  background:var(--color-pale-blue);
}
.--bkg-yellow{
  background:var(--color-yellow);
}

.sec-cont.--bkg-white + .sec-cont.--bkg-white,
.sec-cont.--bkg-gray + .sec-cont.--bkg-gray,
.sec-cont.--bkg-blue + .sec-cont.--bkg-blue{
  padding-top: 0;
}

/*------------------------------------------
共通レイアウト ヘッダ・テキスト
------------------------------------------*/
.sec-ttl {
  display: block;
  line-height: 1.25;
  letter-spacing: 0.05em;
  font-weight: 700;
  margin: 0 0 var(--gap-s) 0;
  color: var(--color-dark);
  font-size: clamp(18px, 0.989rem + 0.68vw, 24px);
}

.sec-ttl.--ttl-l{
  font-size: clamp(20px, 1.068rem + 0.91vw, 28px);
}

.lead-txt {
  line-height: 1.6;
  font-size: clamp(13px, 0.744rem + 0.34vw, 16px);
}

.caution {
  position:relative;
  font-size:0.8em;
  padding-left:1em;
}
.caution::before{
  position:absolute;
  content: '※';
  top:0;
  left:0;
}

/*------------------------------------------
もっと見る
------------------------------------------*/
.more-link{
  width:100%;
  max-width:600px;
  margin:var(--gap-m) auto 0;
}

/*-------------------------------------
ページトップ
---------------------------------------*/
#pagetop {
  opacity: 1;
  position: fixed;
  bottom: 30px;
  right: 55px;
  transition: opacity .5s;
  z-index: 2;
}

#pagetop a {
  background-color: rgba(51, 51, 51, .8);
  border-radius: 5px;
  color: #fff;
  display: block;
  font-size: 12px;
  line-height: 1.5em;
  padding: 5px 10px;
  text-align: center;
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  #pagetop {
    right: 10px;
    bottom: 10px;
  }
}

/*------------------------------------------
KV
------------------------------------------*/
.sec-kv{
  width:100%;
}

/*------------------------------------------
導入
------------------------------------------*/
.cont-about .contents-inner {
  text-align:center;
}

/*------------------------------------------
用途・目的からさがす
------------------------------------------*/
.navi-tab{
  display:grid;
  grid-template-columns: repeat(4,1fr);
  gap:var(--gap-s);
}

@media screen and (max-width: 767px) {
  .navi-tab{
    grid-template-columns: repeat(2,1fr);
  }
}

.navi-tab input[type="radio"] {
  display: none;
}

.tab-btn {
  position:relative;
  width: 100%;
  height: 100%;
  padding: 10px 10px 25px 10px;
  border: 2px solid #f6f6f6;
  transition: transform .2s;
  border-radius: 20px;
  background:#fff;
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:10px;
  cursor: pointer;
  color: var(--color-dark);
}

.tab-btn::after{
  position:absolute;
  content:'';
  bottom:10px;
  left:calc(50% - 10px);
  width: 20px;
  height:10px;
  background:#484848;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.tab-ttl {
  font-size:clamp(16px, 0.886rem + 0.48vw, 20px);
  font-weight:700;
}

.tab-img {
  width:50%;
  margin:auto;
}

/* 選択中のタブ */
.tab-btn:hover{
  border: 2px solid var(--color-light-blue);
  filter: drop-shadow(5px 5px 5px rgba(0, 162, 230, 0.1));
}
.tab-btn:has(input:checked) {
  border: 2px solid var(--color-blue);
  color:var(--color-blue);
}
.tab-btn:has(input:checked)::after{
  background:var(--color-blue);
}
.tab-btn:has(input:checked) .tab-img {
  filter:var(--filter-blue);
}

/* コンテンツ */
.tab-content {
  display: none;
  width: 100%;
  padding-top:var(--gap-m);
}

.tab-content h3{
  font-weight:700;
  font-size: clamp(18px, 0.989rem + 0.68vw, 24px);
  color:var(--color-blue);
}

/* 1番目のラジオが選択されたら content1 */
.navi-tab:has(li:nth-child(1) input:checked) ~ .content1 {
  display: block;
}
/* 2番目のラジオが選択されたら content2 */
.navi-tab:has(li:nth-child(2) input:checked) ~ .content2 {
  display: block;
}
/* 3番目のラジオが選択されたら content3 */
.navi-tab:has(li:nth-child(3) input:checked) ~ .content3 {
  display: block;
}
/* 4番目のラジオが選択されたら content4 */
.navi-tab:has(li:nth-child(4) input:checked) ~ .content4 {
  display: block;
}

/*------------------------------------------
商品自動取得リスト
------------------------------------------*/

.recommend-wrap.c-include-search-result .productMoreGrid .p-products-all-item__item {
  flex:1;
  max-width: 100%;
  border:1px solid #ccc;
  background:#fff;
  padding: 20px;
  margin-top: 20px;
}

.recommend-wrap.c-include-search-result .p-products-all-item-product__name__text {
  height:3em;
}
.recommend-wrap.c-include-search-result .productMoreGrid .p-products-all-item__item::before {
  display:none;
}

@media screen and (max-width: 767px) {
  .recommend-wrap.c-include-search-result{
    overflow-x: scroll;
  }
  .recommend-wrap.c-include-search-result .productMoreGrid .p-products-all-item__item {
    max-width: 230px;
    min-width:230px;
    width:230px;
    margin-top: 10px;
  }

}

/*------------------------------------------
取り付け方法
------------------------------------------*/
.info-wrap{
  display:flex;
  gap:20px;
  align-items: center;
}
.block-txt{
  flex:1;
}
.block-info{
  margin:auto;
  background:var(--color-pale-blue);
  border-radius:10px;
  padding:20px;
  width:40%;
  font-size: 14px;
}
.block-info h3{
  font-weight:700;
  margin-bottom:10px;
  color:var(--color-blue);
}
.block-info ul li{
  list-style: disc;
  list-style-position: inside;
  line-height:1.6;
}

.sec-cont.--bkg-gray .block-info,
.sec-cont.--bkg-blue .block-info{
  background:#fff;
}

.block-lead{
  margin-top:var(--gap-m);
  background:var(--color-pale-blue);
  border-radius:10px;
  padding:20px;
}

.sec-cont.--bkg-gray .block-lead,
.sec-cont.--bkg-blue .block-lead{
  background:#fff;
}

@media screen and (max-width: 767px) {
  .info-wrap{
    flex-direction: column;
  }
  .block-info{
    width:100%;
  }
}


/*------------------------------------------
サイズに関する警告
------------------------------------------*/
.block-caution{
  padding:10px;
  font-weight:700;
  background: repeating-linear-gradient(
    -45deg,
    var(--color-yellow),
    var(--color-yellow) 10px,
    #333 10px,
    #333 20px
  );
}

.block-caution-inner{
  position:relative;
  padding:20px 20px 20px 100px;
  width:100%;
  background:var(--color-yellow);
  color:#333;
}

.block-caution-inner::before{
  position:absolute;
  content:'';
  top:calc(50% - 30px);
  left:20px;
  width:60px;
  height:60px;
  background: transparent url(../images/ico-exclamation.svg) no-repeat top center / cover;
  filter: brightness(0) saturate(100%) invert(16%) sepia(0%) saturate(0%) hue-rotate(50deg) brightness(101%) contrast(89%);
}

.block-caution h2{
  font-size: clamp(18px, 0.989rem + 0.68vw, 24px);
  font-weight:900;
  color: var(--color-red);
}

.caution-list{
  margin-bottom:10px;
}

.caution-list li{
  position:relative;
  padding-left:1em;
  margin-top:10px;
}

.caution-list li::before{
  position:absolute;
  content: '※';
  top:0;
  left:0;
}

@media screen and (max-width: 767px) {
  .block-caution-inner{
    padding:60px 20px 20px 20px;
  }
  .block-caution-inner::before{
    top:10px;
    left:calc(50% - 20px);
    width:40px;
    height:40px;
  }
  .block-caution h2{
    text-align:center;
  }
}

/*------------------------------------------
よくある質問
------------------------------------------*/
.faq-list {
  width:100%;
  border-top: 1px solid #f1f1f1;
  font-size:clamp(14px, 0.818rem + 0.24vw, 16px);
}

.faq-list li {
  width:100%;
  border-bottom: 1px solid #f1f1f1;
}

.faq-list details summary::-webkit-details-marker {
  display: none;
}

.faq-list li details summary {
  position: relative;
  cursor: pointer;
  display: block;
  padding: 1em 0.5em;
}

.faq-list details summary::after {
  position: absolute;
  content: "";
  top: calc(50% - 0.4em);
  right: 1em;
  width: 0.8em;
  height: 0.8em;
  transform: rotate(45deg);
  border-right: 2px solid #484848;
  border-bottom: 2px solid #484848;
  transition: transform 0.4s;
}

.faq-list details[open] summary::after {
  transform: rotate(-135deg);
}

.faq-list details summary span {
  font-weight: 700;
  font-size: clamp(18px, 1.068rem + 0.24vw, 20px);
  line-height: 1;
  color: var(--color-blue);
  position: relative;
  top: 0px;
  padding-right: 10px;
}

.faq-cont {
  margin-bottom:1em;
  background: #e5f6fc;
  padding: 16px;
  border-radius: 8px;
  line-height: 1.8;
}

.sec-cont.--bkg-gray .faq-list,
.sec-cont.--bkg-blue .faq-list{
  border-top: 1px solid #fff;
}

.sec-cont.--bkg-gray .faq-list li,
.sec-cont.--bkg-blue .faq-list li {
  border-bottom: 1px solid #fff;
}

.sec-cont.--bkg-gray .faq-cont,
.sec-cont.--bkg-blue .faq-cont {
  background: #fff;
}


/*------------------------------------------
売れ筋ランキング
------------------------------------------*/
.ranking-wrap{
  width:100%;
  overflow-x: scroll;
  padding-bottom:5px
}

.ranking-wrap .p-products-all-item-product__shipment,
.ranking-wrap .p-products-all-item-product__shipment--red {
  margin:5px 0;
}

#trend-passion-hdd .p-products-all-item-product__review {
  justify-content: flex-start;
  width: fit-content !important;
}

#trend-passion-hdd .p-products-all-item-product__review img{
  width:auto !important;
  height:1em !important;
  object-fit: contain;
  vertical-align: baseline;
}

/*------------------------------------------
キャンペーンバナー
------------------------------------------*/
.campaign-list{
  display:grid;
  grid-template-columns: repeat(4,1fr);
  gap:var(--gap-s);
}

.campaign-list a:hover {
  -webkit-animation-duration: 1s;
  -webkit-animation-name: flash;
  animation-name: hover-flash;
  animation-duration: 1s;
  opacity: 1;
}

@media screen and (max-width: 767px) {
  .campaign-list{
    grid-template-columns: repeat(2,1fr);
  }
}

/*-------------------------------------
外付けHDD誘導
---------------------------------------*/
.block-external{
  margin-top:var(--gap-m);
  background:var(--color-light-yellow);
  border-radius:10px;
  padding:20px;
  font-weight: 700;
}

#trend-passion-hdd .model-list p + p,
#trend-passion-hdd .model-list ul + p,
#trend-passion-hdd .model-list p + ul,
#trend-passion-hdd .model-list ul + ul {
  margin-top:0;
}

.model-wrap{
  margin-top:var(--gap-m);
  width:100%;
}

.model-list{
  width:100%;
  display:flex;
  gap:15px;
}

.model-list li{
  flex: 1;
}

.model-card{
  width:100%;
  border: 1px solid #ccc;
  background: #fff;
  padding: 20px;
  display:flex;
  flex-direction: column;
  gap:10px;
}

.model-img {
  width:100%;
  max-width: 200px;
  margin-inline: auto;
}

.model-img:hover{
  -webkit-animation-duration: 1s;
  -webkit-animation-name: flash;
  animation-name: hover-flash;
  animation-duration: 1s;
  opacity: 1;
}

.model-name {
  font-weight:700;
  font-size: clamp(14px, 0.818rem + 0.24vw, 16px);
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-height: 1.5;
}
.model-name:hover{
  color:#00a2e6;
  text-decoration: underline;
}


.model-price-block{
  display:flex;
  gap:8px;
  align-items: center;
}

.model-price {
  color:var(--color-red);
  font-weight:700;
  font-size:clamp(15px, 0.739rem + 0.85vw, 22px);
  letter-spacing: 0.1em;
}

.model-price :hover{
  -webkit-animation-duration: 1s;
  -webkit-animation-name: flash;
  animation-name: hover-flash;
  animation-duration: 1s;
  opacity: 1;
}


.model-stkname {
  font-weight:700;
  color:var(--color-red);
  border:1px solid var(--color-red);
  font-size:clamp(10px, 0.568rem + 0.24vw, 12px);
  padding: 6px 5px;
  letter-spacing:0.1em;
  border-radius: 2px;
  width:fit-content;
}

.model-review {
  font-size:14px;
  font-weight:700;
}

.model-review img {
  width: auto !important;
  height: 1em !important;
  object-fit: contain;
  vertical-align: baseline;
  padding-right:10px;
}

@media screen and (max-width: 767px) {
  .model-wrap{
    width:100%;
    overflow-x: scroll;
    padding-bottom:5px;
  }
  .model-list{
    width:max-content;
  }
  .model-list li{
    width:230px;
  }
}