@charset "utf-8";

:root{
  --gap-s:clamp(10px, 0.341rem + 1.21vw, 20px);
  --gap-m:clamp(20px, 0.682rem + 2.42vw, 40px);
  --gap-l:clamp(40px, 1.364rem + 4.85vw, 80px);

  --color-red:#ba0107;
  --color-blue:#004da1;
  --color-brown:#4d3802;
  --color-pale-brown:#cf9728;
  --color-pale-gold:linear-gradient(135deg, #fff9e6 0%, #b39855 40%, #fff9e6 75%, #b39855 120%);
  --color-gold: linear-gradient(135deg, #B67B03 0%, #DAAF08 20%, #FEE9A0 50%, #DAAF08 80%, #B67B03 100%);
  --color-dark-gold: linear-gradient(135deg, #d89611 0%, #8e6106 20%, #d89611 50%, #8e6106 80%, #d89611 100%);
  --color-gold-turn: linear-gradient(135deg,#B67B03 0%,#DAAF08 25%, #B67B03 50%, #DAAF08 70%, #FEE9A0 80%,#DAAF08 90%,#B67B03 100%);
  --color-pale-gold-turn: linear-gradient(135deg,#b39855 0%,#dac184 25%, #b39855 50%, #c5ae74 70%, #fff9e6 80%,#dac184 90%,#b39855 100%);
  --color-red-bar: linear-gradient(135deg,#ba0107 0%,#fa0201 20%,#fa0201 30%, #ba0107 50%, #fa0201 70%, #f46060 80%,#fa0201 90%,#ba0107 100%);
}

#dospara-point-kessan {
  display:block;
  margin: 0 auto;
  position: relative;
  background: #fff url(../images/bkg-red.webp?001) no-repeat top center / cover;
  background-attachment: fixed;
}


#dospara-point-kessan img{
  width:100%;
  object-fit: contain;
}

#dospara-point-kessan .c-button{
  width:100%;
  font-size: clamp(14px, 0.818rem + 0.24vw, 16px);
}

/*--------------------------
ページトップボタン
--------------------------*/
#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 {
    bottom: 10px;
    right: 10px;
  }
}

/*-------------------------------------
リンク時アニメーション
---------------------------------------*/
.rollover:hover {
  -webkit-animation-duration: 1s;
  -webkit-animation-name: flash;
  animation-name: hover-flash;
  animation-duration: 1s;
  opacity: 1;
}

/*--------------------------
H1
--------------------------*/
.category-page-title {
  width: 100%;
  padding:10px 0;
  border-top: 1px solid #f6f6f6;
  border-bottom: 1px solid #ececec;
  background-color: #fff;
}
.category-page-title h1{
  width: calc(100% - 30px);
  max-width:1140px;
  font-size:1rem;
  font-weight:700;
  margin:auto;
  text-align:left;
}

/*-------------------------------------
全体レイアウト
---------------------------------------*/
.sec-contents{
  position:relative;
  display: block;
  text-align:center;
  width:100%;
  padding:var(--gap-l) 0;
}
.sec-inner{
  width:100%;
  display: block;
}

.sec-contents .sec-product:not(:last-child) {
  margin-bottom:var(--gap-l);
}

.contents-inner{
  margin:auto;
  width:93vw;
  max-width:1140px;
  text-align:left;
}
.sec-contents.--bkg-color{
  background-image: var(--color-pale-gold);
}
.sec-contents.--bkg-color{
  padding:var(--gap-m) 0;
}

.sec-contents.--bkg-trans{
  background:transparent;
}
.sec-contents.--bkg-white{
  background:#fff;
}

.sec-contents.--bkg-color + .sec-contents.--bkg-color{
  padding-top:0;
}
.sec-contents.--bkg-trans + .sec-contents.--bkg-trans{
  padding-top:0;
}


/*-------------------------------------
見出し・テキスト
---------------------------------------*/
.sec-ttl {
  font-size: clamp(24px, 1.136rem + 1.82vw, 40px);
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  letter-spacing: 0.025em;
  color:#fff;
  margin-bottom: 10px;
  text-shadow: 0 0 10px black;
}

.ttl-title{
  font-size: clamp(18px, 0.784rem + 1.45vw, 30px);
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
}

.sec-sub-ttl{
  font-size:clamp(18px, 0.852rem + 1.36vw, 30px);
  font-weight:700;
  letter-spacing:0.05em;
  text-align:center;
  padding: 0.25em 2em;
  background:var(--color-gold-turn);
  color: #fff;
  border-radius:100vw;
  margin-bottom: 10px;
}

#dospara-point-kessan .lead-txt{
  font-size:clamp(14px, 0.761rem + 0.48vw, 18px);
  line-height:1.6;
}

#dospara-point-kessan .lead-txt.--emp{
  text-align:center;
  color:#fff;
  font-weight:700;
}
@media screen and (max-width: 767px) {
  #dospara-point-kessan .lead-txt{
    text-align:left;
  }
}


/*-------------------------------------
KV
---------------------------------------*/
.kv-wrapper {
  position: relative;
  width: 100%;
}
.kv-wrapper::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url(../images/kv-pc.webp) no-repeat center / cover;
  z-index: -1;
}
.kv-wrapper::after {
  content: '';
  position: absolute;
  inset: 0;
  backdrop-filter: blur(60px) brightness(1.2);
  background: rgba(255,255,255,0);
  z-index: -1;
}
.kv-wrapper img {
  width: 100%;
  object-fit: contain;
}
@media screen and (max-width:767px) {
  .kv-wrapper .contents-inner {
      width: 100vw;
  }
}

/*-------------------------------------
ナビ
---------------------------------------*/
.nav-box {
  height: 80px;
  background: #000;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 90;
}
.nav-box__list {
  width: 100%;
  height: 100%;
  max-width: 1140px;
  margin: 0 auto;
  display: flex;
}
.nav-box__list li {
  width: calc(100%/2);
  border-left: 1px solid #fff;
}
.nav-box__list li:last-child {
  border-right: 1px solid #fff;
}
.nav-box__list li a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.25em;
  width: 100%;
  height: 100%;
  line-height: 1.2;
  text-align: center;
  color: #fff;
  position: relative;
}
.nav-box__list li a:hover {
  opacity: 0.7;
}
.nav-box__list li.nav-special a {
  background-color: #e32211;
}
.tag-update {
  margin: 0 auto .5em auto;
  font-weight: bold;
  background: #ff0;
  color: #e43344;
  padding: 0.2em 2em 0.1em;
  font-size: 0.8em;
  border-radius: 1em;
  width: fit-content;
}
.tag-update.-ver2{
  background: #0ff;
}

.fix-anchor {
  margin-top: -80px;
  padding-top: 80px;
}

@media screen and (max-width: 767px) {
  .nav-box {
    height: 18vw;
  }
  .nav-box__list li:first-child{
    border-left: none;
  }
  .nav-box__list li:last-child{
    border-right: none;
  }
  .nav-box__list li a {
    font-size: 2.8vw;
  }
  .fix-anchor {
    margin-top: -18vw;
    padding-top: 18vw;
  }
}

/*-------------------------------------
もっと見るボタン
---------------------------------------*/
.more-link {
  margin: clamp(15px, 0.511rem + 1.82vw, 30px) auto 0 auto;
  width:100%;
  max-width:600px;
}
.more-link .c-button + .c-button{
  margin-top:10px;
}


/*-------------------------------------
説明ブロック
---------------------------------------*/
.block-box{
  padding: 2px;
  background-image: linear-gradient(135deg, #B67B03 0%, #DAAF08 10%, #FEE9A0 25%, #DAAF08 35%, #B67B03 65%);
  border-radius: 10px;
  overflow: hidden;
}
.block-box-inner{
  border-radius: 8px;
  position: relative;
  background:#fff;
  padding:var(--gap-m);
  overflow: hidden;
}
.block-box-inner{
  position: relative;
  background:#fff;
}
.block-head{
  position:relative;
  text-align:center;
  margin-bottom:var(--gap-m);
}
.block-head::after{
  position:absolute;
  content:'';
  width:100%;
  height:4px;
  left:0;
  bottom:calc(var(--gap-s) * -1);
  background:var(--color-gold);
}
.block-box section{
  margin-top:var(--gap-m);
}

/*テキスト*/
.special-tag{
  font-size:clamp(14px, 0.693rem + 0.24vw, 16px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  letter-spacing: 0.025em;
  padding:0.5em 2em;
  background: var(--color-gold);
  color:var(--color-brown);
  width:fit-content;
  border-radius: 100vw;
  margin:0 auto 10px;
}

.note-txt{
  font-size:clamp(12px, 0.636rem + 0.48vw, 16px);
}

.block-box .block-ttl{
  font-size: clamp(18px, 0.784rem + 1.45vw, 30px);
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  letter-spacing: 0.025em;
  background: var(--color-dark-gold);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  margin-bottom: 10px;
}

.block-box .block-ttl strong{
  background:var(--color-red);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  padding:0 0.1em;
}

.block-box h3{
  font-size:clamp(16px, 0.886rem + 0.48vw, 20px);
  font-weight:700;
  margin-left:-0.5em;
  margin-bottom:10px;
  color:var(--color-brown);
}
.block-box p{
  font-size:clamp(14px, 0.693rem + 0.24vw, 16px);
  line-height:1.6;
}
.block-box p + p{
  margin-top:10px;
}

.block-box p.dot{
  position:relative;
  padding-left:1.2em;
}
.block-box p.dot::before{
  position:absolute;
  content:'●';
  font-size:0.8em;
  top:0.3em;
  left:0;
  color:var(--color-brown);
}

/*エントリーボタン*/
.btn-entry{
  margin: clamp(15px, 0.511rem + 1.82vw, 30px) auto 0 auto;
  width:100%;
  max-width:600px;
}
.btn-entry p{
  text-align:center;
  font-size:clamp(14px, 0.818rem + 0.24vw, 16px);
  margin-bottom:10px;
  color:var(--color-red);
  font-weight:700;
}
#dospara-point-kessan .btn-entry .c-button{
  background-image: var(--color-red-bar);
  color:#fff;
  font-weight:900;
  border:none;
  font-size:clamp(16px, 0.886rem + 0.48vw, 20px);
  height:60px;
  border-radius: 100vw;
}

.btn-entry .c-button::after{
  border-color:#fff
}
.btn-entry .c-button::before {
  background-color: #fff;
  opacity: .3;
}
@media screen and (max-width: 767px) {
  #dospara-point-kessan .btn-entry .c-button{
    height:50px;
  }
}

/*注釈*/
.disc-list{
  margin-top:10px;
  margin-left:1.5em;
  list-style: disc;
  line-height:1;
  font-size:clamp(14px, 0.693rem + 0.24vw, 16px);
}
.disc-list li + li{
  margin-top:10px;
}
.caution-list{
  margin-top:10px;
  text-align:left;
  color:#333;
  line-height:1.2;
  font-size:clamp(14px, 0.693rem + 0.24vw, 16px);
}
.caution-list li{
  position:relative;
  padding-left:1.5em;
}
.caution-list li::before{
  position:absolute;
  top:0;
  left:0;
  content:'※';
}
.caution-list li + li{
  margin-top:10px;
}

/*-------------------------
ポイント
--------------------------*/
.point-table-wrap{
  padding: 2px;
  background-image: linear-gradient(135deg, #B67B03 0%, #DAAF08 10%, #FEE9A0 25%, #DAAF08 35%, #B67B03 65%);
  border-radius: 10px;
  overflow: hidden;
  width: 80%;
  margin:10px auto 0
}
.point-table-caution{
  width:80%;
  margin:10px auto 0;
  padding:var(--gap-s);
  border-radius:10px;
  background:rgba(255,255,255,0.9);
}
.point-table{
  border-radius: 8px;
  font-weight:700;
  font-size:clamp(16px, 0.886rem + 0.48vw, 20px);
  overflow: hidden;
  width: 100%;
  letter-spacing:0.03em;
}

.point-table th{
  padding:1em;
  width:70%;
  vertical-align:middle;
}
.point-table td{
  padding:1em;
  width:30%;
  white-space:nowrap;
  vertical-align:middle;
}

.point-table thead th{
  background:#b39855;
  color:#fff;
  text-align:center;
}
.point-table thead td{
  background:#B67B03;
  color:#fff;
  text-align:center;
}
.point-table tbody th{
  color:var(--color-brown);
  font-size:1.2em;
}
.point-table tbody td{
  color:var(--color-red);
  text-align:center;
}
.point-table tbody td span{
  text-align:right;
  width: 7em;
}
.point-table tbody td strong{
  font-size:1.4em;
  font-weight:900;
  padding-right:0.3em;
}
.point-table tbody tr:nth-child(odd) th,
.point-table tbody tr:nth-child(odd) td {
  background-color: #fff;
}
.point-table tbody tr:nth-child(even) th,
.point-table tbody tr:nth-child(even) td {
  background-color: #fffdf0;
}

@media screen and (max-width: 767px) {
  .point-table-wrap{
    width: 100%;
  }
  .point-table-caution{
    width:100%;
  }
  .point-table tbody th{
    font-size:1em;
  }
}

/*-------------------------
キャンペーン
--------------------------*/
.campaign-list{
  width:100%;
  display: flex;
  gap:20px;
  margin-top:var(--gap-m);
  justify-content: center;
}
.campaign-list li {
  flex:1;
}
.campaign-list img{
  width:100%;
  object-fit: contain;
}
.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 {
    gap: 10px;
    flex-wrap: wrap;
  }
  .campaign-list li {
    flex:unset;
    width: calc((100% - 10px) / 2);
  }
}

/*-------------------------
モデル上書き
--------------------------*/
/*エントリーボタン*/
.entry-box .entry-box__point {
  width: 55%;
}
.entry-box .entry-box__link {
  width: 45%;
}

.model-card {
  position: relative;
}

.model-card-wrapper:has(.p-ranking-list__card-label) .card-images {
  margin-top: 10px;
}

.p-ranking-list__card-label {
  position: absolute;
  border: 1px solid #e43344;
  color: #e43344;
  font-size: 0.8rem;
  padding: 0.2rem 0.4rem;
  display: inline-block;
  left: -1px;
  top: -1px;
  border-radius: 0 0 0.4rem 0;
  background: #fff;
}

/*スペック*/
.model-card-wrapper .model-spec li {
  list-style: none;
  font-size: 15px;
  padding: 0.2em 0;
  border-bottom: 1px solid #b6b6b6;
  height: 1.6em;
  display: -webkit-box !important;
  overflow: hidden;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  font-size: clamp(13px, 0.756rem + 0.24vw, 15px);
}
.model-card-wrapper .model-spec > li::before {
  display:none;
}

/*レビュー*/
.model-review{
  text-align:left;
  font-size: clamp(13px, 0.756rem + 0.24vw, 15px);
}
#dospara-point-kessan .review-in-recommend__link {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 5px;
  flex-wrap: nowrap;
  width: fit-content;
  margin: 0 0 10px 0;
}
#dospara-point-kessan .model-review img{
  width:auto;
  height:1em;
  margin: 0 !important;
}

/*納期*/
.model-stkname {
  border-radius: 3px;
  font-size: clamp(12px, 0.659rem + 0.45vw, 16px);
  color: #e43344;
  border: 1px solid #e43344;
  padding: 0.2em 0.5em;
  width: fit-content;
}

/*金額*/
.model-card-wrapper .model-price {
  text-align: left;
  font-size: clamp(12px, 0.705rem + 0.23vw, 14px);
  color: #e43344;
}
.model-card-wrapper .model-price span{
  font-size: clamp(22px, 1.284rem + 0.45vw, 26px);
  font-weight:700;
}



@media screen and (max-width: 767px) {
  .model-card-wrapper{
    overflow-x: scroll;
    width: 100%;
    padding-bottom: 5px;
  }
  .model-card-wrapper .model-card-list{
    width:max-content;
  }
  .model-card-wrapper .model-card-list > li {
      width: 220px;
  }
}

/*-------------------------------------
popup関連
---------------------------------------*/
.popup-point .popup_content {
  overflow-y: hidden;
}
.popup-point h3{
  padding:0.3em;
  background:#004da1;
  color:#fff;
  font-size:clamp(16px, 0.943rem + 0.24vw, 18px);
  font-weight:700;
  text-align:center;
}
.popup-point p{
  font-size:clamp(14px, 0.818rem + 0.24vw, 16px);
  line-height:1.6;
  margin:10px 0;
}
.popup-point strong{
  color:var(--color-red);
}
.popup-img{
  width:100%;
  margin:auto;
  border:1px solid #f6f6f6;
}
.popup-img img{
  width:100%;
}
.popup_caution{
  font-size:80%;
  text-align:right;
}
input.popup_flg ~ .popup_content_wrapper {
  padding: clamp(15px, 0.511rem + 1.82vw, 30px);
  width: 600px;
  max-width: 92vw;
}

@media screen and (max-width: 767px) {
  input.popup_flg ~ .popup_content_wrapper {
    width: 92vw;
  }
}

