@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-yellow-gra:linear-gradient(135deg, #f9d45b 0%, #f09928 40%, #f9d45b 75%, #f09928 120%);
  --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%);

}


#buyback-campaign {
  display:block;
  margin: 0 auto;
  position: relative;
}

#buyback-campaign img{
  width:100%;
  object-fit: contain;
}

#buyback-campaign .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: hover-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{
  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-contents.--bkg-color{
  box-shadow: inset 0px 20px 20px -10px rgba(0, 0, 0, 0.6);
  background: #a30e0e url(../images/bg-pc.webp) no-repeat top center / cover;
  background-attachment: fixed;
}

@media screen and (max-width: 767px) {
  .sec-contents.--bkg-color{
    background: #a30e0e url(../images/bg-sp.webp) no-repeat top center / cover;
    background-attachment: fixed;
  }
}


/*-------------------------------------
見出し・テキスト
---------------------------------------*/
.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;
}

#buyback-campaign .lead-txt{
  font-size:clamp(14px, 0.761rem + 0.48vw, 18px);
  line-height:1.6;
}

#buyback-campaign .lead-txt.--emp{
  text-align:center;
  color:#fff;
  font-weight:700;
}
@media screen and (max-width: 767px) {
  #buyback-campaign .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;
  }
}

/*-------------------------------------
説明ブロック
---------------------------------------*/
.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-head{
  position:relative;
  text-align:center;
  margin-bottom:var(--gap-l);
}
.block-head::after{
  position:absolute;
  content:'';
  width:100%;
  height:4px;
  left:0;
  bottom:calc(var(--gap-m) * -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;
}


/*エントリーボタン*/
.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;
}
.btn-entry .c-button{
  background: var(--color-red-bar);
  color: #fff;
  font-weight: 900;
  border: none;
  font-size: clamp(16px, 0.886rem + 0.48vw, 20px);
  width:100%;
  border-radius: 100vw;
  padding:0.5em;
  box-shadow: 0px 5px 2px 0 rgb(0 0 0 / 0.1);
  text-align:center;
}
.btn-entry .c-button::after {
  border-color:#fff;
}
.btn-entry .c-button::before {
  background-color: #fff;
  opacity: .3;
}
.btn-entry .c-button:hover{
  transform: translateY(4px);
  box-shadow: 0px 1px 1px 0 rgb(0 0 0 / 0.2);
}

/*注釈*/

.num-list{
  margin-top:0.5em;
  padding-left:1.5em;
  list-style: decimal;
  line-height:1;
}
.num-list li::marker{
  margin-left:-2em;
  font-weight:800;
  font-size:110%;
}
.num-list li + li{
  margin-top:10px;
}

.disc-list{
  margin-top:0.5em;
  margin-left:1.5em;
  list-style: disc;
  line-height:1;
}
.disc-list li + li{
  margin-top:10px;
}
.disc-list strong{
  font-size:110%;
  color: #004da1;
  font-weight:800;
  letter-spacing:0.02em;
}

.caution-list{
  margin-top:0.5em;
  text-align:left;
  color:#333;
  line-height:1.2;
}
.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;
}

.caution-list strong{
  color: #e43344;
  font-weight:700;
}

.num-list,
.disc-list,
.caution-list{
  font-size:clamp(14px, 0.693rem + 0.24vw, 16px);
}

/*-------------------------
キャンペーン
--------------------------*/
.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);
  }
}


/*------------------------------
モーダル用
------------------------------*/

.text-caution {
  margin-top:20px;
  text-align: center;
}

.show-in-modal {
  display: none;
}
.c-modal-inner section {
  text-align: left;
  font-size:clamp(12px, 0.693rem + 0.24vw, 14px);
  color:#484848;
}
.c-modal-inner section p{
  line-height:1.6;
  margin-bottom:0.5em;
}
.c-modal-inner section .num-list,
.c-modal-inner section .disc-list,
.c-modal-inner section .caution-list{
  font-size:clamp(12px, 0.693rem + 0.24vw, 14px);
}

.c-modal-inner section h2{
  font-weight:900;
  color:var(--color-brown);
  font-size:clamp(16px, 0.773rem + 0.97vw, 24px);
  text-align:center;
}

.c-modal-inner section h3{
  font-weight:700;
  color:var(--color-brown);
  font-size:clamp(14px, 0.818rem + 0.24vw, 16px);
  margin-bottom:0.5em;
}
.c-modal-inner section+section {
  margin-top:20px;
}

.c-modal-inner .show-in-modal {
  display: inline-block;
}

.c-modal-inner .hide-in-modal {
  display: none;
}

.modaal-content-container {
  padding: 0;
}

@media screen and (max-width: 767px) {
  .c-modal-inner {
    padding: 20px 20px 45px;
  }
}

/*------------------------------
キャンペーン終了時
------------------------------*/
.end-wrap {
  position: relative;
  width: 100%;
  padding: 10px;
  color: #f00;
  font-size: clamp(18px, 0.784rem + 1.45vw, 30px);
  font-weight: bold;
  text-align: center;
  z-index: 1;
  line-height:1.5;
}
.contents-inner .end-wrap {
  padding: 1.5em;
  -webkit-text-fill-color: #f00;
  paint-order: stroke fill;
  -webkit-text-stroke: 4px #fff;
}

.btn-entry{
  position:relative;
}
.btn-entry .btn-end-wrap{
  top:-10px;
  left:-10px;
  width:calc(100% + 20px);
  height:calc(100% + 20px);
  position:absolute;
  background:rgba(0,0,0,0.8);
  border-radius: 10px;
  color:#fff;
  display:flex;
  justify-content: center;
  align-items: center;
  font-weight:700;
  z-index:5;
}