@charset "UTF-8";

/* =========================================
   1. CSS Reset
========================================= */

/* Box sizing */
*, *::before, *::after {
  box-sizing: border-box;
}

/* Remove default margin */
body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, ul, dl, dd {
  margin: 0;
}
ul{
  padding: 0;
}

/* Reset list styles */
ul[role="list"],
ol[role="list"] {
  list-style: none;
  padding: 0;
}
li{list-style: none;}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Improve media defaults */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

/* Remove built-in form typography */
input, button, textarea, select {
  font: inherit;
}

/* Avoid text overflow */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

/* Anchor reset */
a {
  text-decoration: none;
  color: inherit;
}

button{
  border: none;
}
/* =========================================
   2. Root Design Tokens
========================================= */

:root {
  /* Color */
  --color-thema: #96CA3F;
  --color-std: #0168B2;
  --color-gd: #EC9D26;
  --color-em: #C95743;

  --color-bg-primary: #ffffff;
  --color-bg-secondary: #F2F2F2;
  --color-bg-thema: #EBF9D4;
  --color-bg-std: #F2F9FF;
  --color-bg-gd: #FFFAF2;

  --color-text-base: #000;
  --color-text-link: #3891DE;


  /* Radius */
  --radius-sm: 10px;
  --radius-md: 20px;
  --radius-: 20px;

}

/* Dark mode */
@media (prefers-color-scheme: dark) {
  :root {
    --color-bg: #0f172a;
    --color-text: #e5e7eb;
  }
}


/* =========================================
   3. Base Styles
========================================= */

body {
  color: var(--color-text-base);
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

a, button{
  transition: .3s;
}


/* =========================================
   4. Typography
========================================= */

h1, h2, h3, h4 {
  line-height: 1.6;
  font-weight: 700;
}

p {
  line-height: 1.8;
}

/* 12 */
.fz-tiny{font-size: 12px;}
@media screen and (max-width: 768px) {
  .fz-tiny{font-size: 10px;}
}

/* 14 */
.fz-small{font-size: 14px;}
@media screen and (max-width: 768px) {
  .fz-small{font-size: 14px;}
}

/* 18 */
.fz-medium{font-size: 18px;}
@media screen and (max-width: 768px) {
  .fz-medium{font-size: 16px;}
}

/* 30 */
.fz-large{font-size: 30px;}
@media screen and (max-width: 768px) {
  .fz-large{font-size: 24px;}
}

/* relative */
.fz-larger{font-size: 160%}
.fz-smaller{font-size: 70%}


/* =========================================
   5. Utility Classes
========================================= */

.flex {
  display: flex;
}
@media screen and (min-width: 769px) {
    .flex-pc{
      display: flex;
    }
}


.grid {
  display: grid;
}

.center {
  display: grid;
  place-items: center;
}

@media screen and (max-width: 768px) {
  .pc{display: none!important}
  .sp{display: revert}
}
@media screen and (min-width: 769px) {
  .pc{display: revert}
  .sp{display: none!important}
}

.marker-std{ 
  background: linear-gradient(
    transparent 60%,
    #D7EEFF 60%
  );
}
.marker-gd{
  background: linear-gradient(
    transparent 60%,
    #FFEAC1 60%
  );
}


.shadow{
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.25);
}

.bg-primary{
  background-color: var(--color-bg-primary)
}
.bg-secondary{
  background-color: var(--color-bg-secondary);
}

.bg-std{
  background-color: var(--color-bg-std);
}

.bg-gd{
  background-color: var(--color-bg-gd);
}

.w100{
  max-width: 100%!important;
}

.font-thema{
  color: var(--color-thema);
}
.font-std{
  color: var(--color-std);
}
.font-gd{
  color: var(--color-gd);
}
.font-em{
  color: var(--color-em);
}
.font-bk{
  color: #000;
}

.weight-light{
  font-weight: 500;
}
.weight-bold{
  font-weight: 700;
}
.weight-heavy{
  font-weight: 900;
}

.mt-none{
  margin-top: 0!important;
}
.mt-small{
  margin-top: 1em;
}
.mt-medium{
  margin-top: 80px;
}
.mb-none{
  margin-bottom: 0!important;
}

.ta-c{
  text-align: center;
}
.ta-j{
  text-align: justify;
}


/* =========================================
   6. Components
========================================= */

.section{
  padding: 70px 0;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .section{
    padding: 50px 0;
  }
}

.section-content{
  width: 90%;
  max-width: 1100px;
}

.txt-link{
  color: var(--color-text-link);
  cursor: pointer;
  text-decoration: underline;
}
.txt-link-ex{
  color: var(--color-text-link);
  cursor: pointer;
  text-decoration: underline;
  padding-right: 1.1em;
}
.txt-link-ex::after{
  content: "";
  display: inline-block;
  background-image: url(../../img/icon-exlink.svg);
  background-position: center;
  background-repeat: no-repeat;
  height: 1em;
  width: 1em;
}
@media screen and (min-width: 769px) {
  .txt-link:hover,
  .txt-link-ex:hover  {
    opacity: .6;
  }
}


ul.note-list{
  padding-left: 1.1em; 
  display: grid;
  gap: .2em;
}
ul.note-list > li::before{
  content: "※";
  margin-left: -1.1em;  
}
ul.note-list > li.is-list-asta::before{
  content: "＊";
  margin-left: -1.1em;  
}

.note{
  font-weight: 400;
  margin: 2em auto 0;
  line-height: 1.7;
  text-align: justify;
  max-width: 800px;
}
.note-headline{
  align-items: center;
  display: flex;
  font-weight: 700;
}
.note-icon{
  background-image: url(../../img/icon-note.svg);
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  background-position: center;
  display: inline-block;
  margin-right: .5em;
  height: 1.5em;
  width: 1.5em;
}
.std .note-icon{
  background-image: url(../../img/icon-note-std.svg);
}
.gd .note-icon{
  background-image: url(../../img/icon-note-gd.svg);
}


.btn{
  border-radius: 999px;
  display: grid;
  padding: .7em .8em;
  place-items: center;
  position: relative;
  width: 100%;
}
@media screen and (min-width: 769px) {
  .btn:hover{
    box-shadow: none;
    opacity: .7;
    transform: scale(.99);
  }
}
@media screen and (max-width: 768px) {
    .btn{
      border-radius: 10px;
      padding: 1.1em .8em;
    }
}

.btn.link::after{
  background-image: url(../../img/arrow.svg);
  background-position: center;
  background-size: 1em 1em;
  content: "";
  display: block;
  position: absolute;
  height: 1em;
  transition: .3s ease;
  width: .7em;
  right: 1em;
}
@media screen and (max-width: 768px) {
  .btn.link::after{
  right: .2em;
  }
}

.btn-std{
  background-color: var(--color-std);
  color: #fff;
}

.btn-gd{
  background-color: var(--color-gd);
  color: #fff;
}

.headline {
  font-weight: 900;
  text-align: center;
}






/* =========================================
   7. Layout 
========================================= */

.stack > * + * {
  margin-top: var(--space-md);
}

.cluster {
  display: flex;
  flex-wrap: wrap;
}

.card{
  border-radius: var(--radius-md);
}



/* =========================================
   8. Project 
========================================= */

.kv-title{
  background: linear-gradient(
    to right,
    #5DB3D4 0%,
    #5DB3D4 50%,
    #9EC75C 50%,
    #9EC75C 100%
  );
}


.cp-note-box{
  margin: auto;
  padding: 40px 0;
  width: 90%;
  max-width: 1100px;

}

.term{
  align-items: center;
  display: flex;
  font-weight: 900;
  justify-content: flex-start;
  gap: 20px;
  margin: auto;
  width: 100%;
  max-width: 800px;
}
@media screen and (max-width: 768px) {
  .term{
    gap: 10px;
  }
  .term .fz-larger{
    font-size: 130%;
  }
}
.term-baloon{
  background-color: var(--color-thema);
  color: #fff;
  width: fit-content;
  padding: 1em;
  border-radius: var(--radius-sm) var(--radius-sm) 0 var(--radius-sm);
}
@media screen and (max-width: 768px) {
  .term-baloon{
    font-size: 16px;
    padding: 1em .5em;
  }   
}




.cp-info-box{
  font-weight: 900;
  padding: 40px 0;
  width: 90%;
  max-width: 1100px;
}
@media screen and (max-width: 768px) {
  .cp-info-box{
    padding: 40px 5%;
  }
}

.cp-headline{
  color: var(--color-thema);
  font-size: 40px;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .cp-headline{
    color: var(--color-thema);
    font-size: 28px;
    line-height: 1.2;
  }
}

.cp-info-box-content{
  display: grid;
  font-size: 24px;
  gap: 30px;
  margin-top: 1.5em;
}

.cp-info-box-content .fz-smaller{
  font-size: 60%;
}
.cp-info-box-content-txt{
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .cp-info-box-content-txt{
    margin-top: .5em;
  }  
}

.cp-info-box-baloon{
  margin-bottom: -10px;
}




/* headline */
.section-headline{
  margin-bottom: 40px;
  text-align: center;
  min-width: 0;
}
.section-headline-txt{
  font-weight: 900;
}
.section-headline-txt .fz-larger{
  font-size: 190%;
}
@media screen and (max-width: 768px) {
  .section-headline-txt .fz-larger{
    font-size: 160%;
  }
}
.section-headline-bg-txt{
  color: #f2f2f2;
  font-family: "Goldman", sans-serif;
  font-size: 120px;
  margin-bottom: -1em;
  user-select: none;
}
@media screen and (max-width: 768px) {
  .section-headline-bg-txt{
    font-size: 70px;
  } 
}
.bg-secondary .section-headline-bg-txt{
  color: #fff;
}


.section-headline-img{
  margin: auto;
  width: 90%;
  max-width: 788px;
}



/* lineup */
.credit-card-box{
  display: flex;
  font-size: 26px;
  font-weight: 900;
  gap: 20px;
  justify-content: center;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .credit-card-box{
  gap: 8px;
  width: 96%;
  margin-top: 19vw;
}
}
.credit-card-box .card{
  padding: 40px 30px;
  width: 50%;
}
@media screen and (max-width: 768px) {
  .credit-card-box .card{
    padding: 30px 5px;
  }
}
.credit-card-img{
  margin: -100px auto 0;
  position: relative;
  width: 50%;
  max-width: 300px;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .credit-card-img{
    margin: -70px auto 0;
    width: 100%;
  }
}
.credit-card-img-ballon{
  position: absolute;
  width: 12vw;
  max-width: 154px;

  top: -50px;
  left: 24px;
}
@media screen and (max-width: 768px) {
  .credit-card-img-ballon{
  width: 24vw;
  margin: auto;
  top: calc(-11vw - 70px);
  left: 0;
  right: 0;
  }
}

.credit-card-name{
  font-weight: 900;
}
@media screen and (max-width: 768px) {
  .credit-card-name{
    font-size: 13px;
  }
}

.credit-card-prise{
  border: 2px solid #000;
  border-radius: 999px;
  display: flex;
  font-size: 18px;
  margin: 20px auto 0;
  padding: .2em 2em;
  width: fit-content;
}
@media screen and (max-width: 768px) {
  .credit-card-prise{
    font-size: 12px;
    margin: 6px auto 0;
    padding: .2em .8em;
  }
}

.credit-card-merit-list{
  display: grid;
  font-size: 20px;
  gap: 30px;
  margin: 40px 0;
}
@media screen and (max-width: 768px) {
  .credit-card-merit-list{
    font-size: 16px;
    gap: 20px;
    margin: 20px 0;
  }
}
.credit-card-merit-list > li{
  align-items: center;
  display: flex;
  line-height: 1.2;
  text-align: left;
}
.credit-card-merit-list > li::before{
  background-position: center;
  background-size: 1.5em 1.5em;
  content: "";
  display: inline-block;
  margin-right: .5em;
  height: 1.5em;
  width: 1.5em;
}
@media screen and (max-width: 768px) {
  .credit-card-merit-list > li::before{
    display: inline-block;
    height: 100%;
    width: 4px;
  }
  .credit-card-box .btn{
    font-size: 12px;
  }
}


/* std */
.credit-card-std{
  position: relative;
}
.credit-card-std .credit-card-merit-list > li::before{
  background-image: url(../../img/check.svg);
}
@media screen and (max-width: 768px) {
  .credit-card-std .credit-card-merit-list > li::before{
    background-color: var(--color-std);
  }  
}
.credit-card-std .credit-card-prise{
  color: var(--color-std);
  border-color: var(--color-std);
}

/* gd */
.credit-card-gd .credit-card-merit-list > li::before{
  background-image: url(../../img/check-gd.svg);
}
@media screen and (max-width: 768px) {
  .credit-card-gd .credit-card-merit-list > li::before{
    background-color: var(--color-gd);
  }  
}
.credit-card-gd .credit-card-prise{
  color: var(--color-gd);
  border-color: var(--color-gd);
}



/*　.campaign-list */
.campaign-list{
  display: grid;
  font-family: Goldman, "Noto Sans JP", sans-serif;
  gap: 18px;
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .campaign-list{
    gap: 10px;
    margin-top: 30px;
  }
}

.campaign-list > li:not(:first-of-type)::before{
  background-image: url(../../img/icon-plus.svg);
  content: "";
  display: block;
  margin: 0 auto 18px;
  height: 40px;
  width: 40px;
}
@media screen and (max-width: 768px) {
  .campaign-list > li:not(:first-of-type)::before{
    background-size: 20px 20px;
    margin-bottom: 10px;
    height: 20px;
    width: 20px;
  }
}

.campaign-list .card{
  background-color: var(--color-bg-primary);
  font-weight: 900;
  overflow: hidden;
  padding: 1.5em;
  position: relative;
  width: 100%;
}
@media screen and (min-width: 769px) {
  .campaign-list .card:hover{
    box-shadow: none;
    background-color: #fafafa;
  }
}
@media screen and (max-width: 768px) {
  .campaign-list .card{
    padding: 2.5em 5%;
  }
  .campaign-list .card:has(.tip-type2){
    padding: 3.5em 5% 2.5em;
  }
}



/* tip */
.tip-cardtop{
  background-color: var(--color-thema);
  border-radius: 0 0 var(--radius-sm) 0;
  color: #fff;
  padding: 0 1em;
  position: absolute;
  top: 0;
  left: 0;
} 
.tip-type2{
  padding: .7em;
}

.tip-cardend{
  background-color: #618B1A;
  border-radius: var(--radius-sm) 0 0 0;
  color: #fff;
  line-height: 1;
  padding: .5em 1em;
  position: absolute;
  right: 0;
  bottom: 0;
}

/* campaign-item-content */
.campaign-item-content{
  display: grid;
}

@media screen and (min-width: 769px) {
  .campaign-item button:hover{
    transform: scale(.99);
  }
}

.campaign-item-content .fz-medium{
  font-size: 26px;
}
@media screen and (max-width: 768px) {
  .campaign-item-content .fz-medium{
    font-size: 20px;
  }
}

.campaign-item-content .fz-large{
  font-size: 38px;
}
@media screen and (max-width: 768px) {
  .campaign-item-content .fz-large{
    font-size: 26px;
  }
}

@media screen and (max-width: 768px) {
  .campaign-item-content-subtxt{
    line-height: 1.2;
  }
  .campaign-item-content-subtxt .fz-larger .fz-hack{
    font-size: 70%;
  }
}

.campaign-item-content-maintxt{
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .campaign-item-content-maintxt{
    line-height: 1.2;
  }
}
.campaign-item-content-maintxt + p{
  margin-top: 1em;
}

.campaign-item-content-maintxt .fz-larger{
  font-size: 190%;
}
.campaign-item-content-maintxt .fz-larger .fz-hack{
  font-size: 170%;
}
@media screen and (max-width: 768px) {
  .campaign-item-content-maintxt .fz-larger{
    font-size: 160%;
  }  

}
  


/* schedule */
.schedule{
  margin: auto;
  max-width: 800px;
}
.schedule-list{
  display: grid;
  grid-template-columns: 250px 1fr;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .schedule-list{
    grid-template-columns: 1fr 1fr;
  }
}

.schedule-list :where( dt,dd )  {
  margin-top: 10px;
  padding: .5em 0;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}
.schedule-list dt{
  background-color: #D6F1A8;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  color: #4B7800;
  justify-content: center;
}
.schedule-list dt:last-of-type{
  background-color: #96CA3F;
  color: #fff;
}

.schedule-list dd{
  background-color: #EBF9D4;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: 0 50px;
}
@media screen and (max-width: 768px) {
  .schedule-list dd{
    padding: .5em;
  }
}



/* feature */
.feature{
  display: grid;
  gap: 40px;
}
.feature .card{
  padding: 70px 0;
  text-align: center;
  gap: 70px;
}
.feature-wrap{
  padding: 0 5%;
}
.feature-headline{
  font-size: 34px;
  font-weight: 900;
}
@media screen and (max-width: 768px) {
  .feature-headline{
    font-size: 28px;
  }
}
.feature-headline-tip{
  background-color: var(--color-thema);
  border-radius: var(--radius-md) var(--radius-md) 0 var(--radius-md);
  color: #fff;
  display: inline-block;
  font-family: "Goldman", sans-serif;
  font-size: 40px;
  line-height: 1;
  margin-right: .2em;
  padding: .3em .6em;
  transform: translateY(-.5em);
}
@media screen and (max-width: 768px) {
  .feature-headline-tip{
    font-size: 24px;
  }
}
.feature-headline-tip-gd{
  background-color: var(--color-gd);
  position: relative;
}
.feature-headline-tip-gd::before{
  background-image: url(../../img/icon-spark.svg);
  content: "";
  display: block;
  position: absolute;
  height: 50px;
  width: 50px;

  top: -35px;
  left: -35px;
}

.feature-iconbox{
  background-color: #F5F5F5;
  border-radius: var(--radius-sm);
  margin-top: 20px;
  padding: 2px 0 20px;
}
.feature-icon{
  margin: 20px auto 0;
  width: 70%;
  max-width: 450px;
}

.feature-card-headline{
  font-size: 30px;
  font-weight: 900;
  margin-top: 20px;
}
@media screen and (max-width: 768px) {
  .feature-card-headline{
  font-size: 22px;
  }
}
.feature-card-headline:has(.fz-larger){
  line-height: 1.2;
}

.feature-card-txt{
  font-size: 22px;
  font-weight: 900;
  line-height: 1.2;
}



/* gold */
.feature-creditcard-gd{
  width: 320px;
}
.feature-creditcard-gd-img{
  margin: auto;
  width: 90%;
  max-width: 800px;
}


.belt{
  border-radius: var(--radius-sm);
  padding: .4em 0;
}
.belt.std{
  background-color: var(--color-bg-std);
}

.belt.gd{
  background-color: var(--color-bg-gd);
}


.bonus-box{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(8px, 3vw, 20px);
  margin: 120px auto 0;
  width: 90%;
}
@media screen and (max-width: 768px) {
  .bonus-box{
    margin-top: 0;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
  }
  .odr0-sp{
    order: 0;
  }
  .odr1-sp{
    order: 1;
  }
  .odr2-sp{
    order: 2;
  }
  .odr3-sp{
    order: 3;
  }
}

.bonus-box-txt{
  border-radius: var(--radius-sm);
  border: 1px solid #090606;
  font-weight: 900;
  padding: 40px 0;
}
.bonus-box-txt p:has(.fz-larger){
  line-height: 1.2;
}
.bonus-box-txt .fz-small{
  font-size: 18px;
}
@media screen and (max-width: 768px) {
  .bonus-box-txt .fz-small{
    font-size: 14px;
  }
}

.bonus-box-txt .fz-medium{
  font-size: 20px;
}
@media screen and (max-width: 768px) {
  .bonus-box-txt .fz-medium{
    font-size: 20px;
  }
}

.bonus-box-txt .fz-large{
  font-size: 30px;
}
@media screen and (max-width: 768px) {
  .bonus-box-txt .fz-large{
    font-size: 24px;
  } 
}

@media screen and (max-width: 768px) {
    .bonus-box-inner{
      margin-top: 50px;
    }
}

.bonus-box-creditcard{
  margin: -120px auto 0;
  width: 50%;
  max-width: 256px;
}
@media screen and (max-width: 768px) {
  .bonus-box-creditcard{
    margin-top: -80px;
    width: 70%;
  }
}

.point-table{
  margin-top: 20px;
  width: 100%;
}

.bonus-box-note{
  border-radius: var(--radius-md);
  padding: 20px;
}

:where(.bonus-box-note , .insurance ) .note-headline::before{
  border-radius: 999px;
  content: "";
  display: block;
  height: 1.2em;
  margin-right: .2em;
  width: 4px;
}
.note-headline.std::before{
  background-color: var(--color-std);
}
.note-headline.gd::before{
  background-color: var(--color-gd);
}



/* baloon */
.baloon{
  background-color: var(--color-bg-secondary);
  border-radius: var(--radius-sm);
  margin: auto;
  line-height: 1.8;
  padding: .8em 2em;
  position: relative;
  width: fit-content;
  max-width: 750px
}
.baloon::before{
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-bottom: 1em solid var(--color-bg-secondary);
  border-left: 1em solid transparent;
  border-right: 1em solid transparent;
  position: absolute;
}
.baloon-thema{
  background-color: var(--color-bg-thema);
}
.baloon-thema::before{
  border-bottom: 1em solid var(--color-bg-thema);
}
.baloon-bottom{
  margin-top: 1em;
}
.baloon-bottom::before{
  right: 0;
  left: 0;
  top: -.8em;
  margin: auto;
}



/* insurance */
.insurance .note{
  margin-top: .4em;

}



/* detail */
.selector{
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr 1fr;
}
@media screen and (max-width: 768px) {
  .selector{
    display: grid;
    gap: 8px;
    grid-template-columns: 1fr 1fr;
  }
}

.selector .button{
  border: 2px solid #000;
  border-radius: var(--radius-sm);
  font-size: 28px;
  font-weight: 900;
  display: flex;
  gap: 10px;
  justify-content: center;
  line-height: 1.2;
  padding: .8em .5em;
  place-items: center;
  text-align: center;
}
@media screen and (min-width: 769px) {
    .selector .button:hover{
      box-shadow: none;
    }
    .button.std:hover{
      background-color: var(--color-bg-std);
    }
    .button.gd:hover{
      background-color: var(--color-bg-gd);
    }
}
@media screen and (max-width: 768px) {
  .selector .button{
    display: block;
    font-size: 12px;
    gap: 10px;
  }
}

.selector .button .credit-card{
  width: 2.5em;
}
@media screen and (max-width: 768px) {
  .selector .button .credit-card{
    margin: -30px auto 0;
    width: 50%;
  } 
}
.button.std{
  color: var(--color-std);
  border-color: var(--color-std);
}
.button.gd{
  color: var(--color-gd);
  border-color: var(--color-gd);
}



.detail-content.std{
  background-color: var(--color-bg-std);
}
.detail-content.gd{
  background-color: var(--color-bg-gd);
}

.detail-content{
  margin-top: 40px;
  padding: 70px 0;
}
@media screen and (max-width: 768px) {
  .detail-content{
    margin-top: 20px;
    padding: 40px 0;
  }
}

.detail-content .card{
  margin: auto;
  padding: 30px 50px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .detail-content .card{
    padding: 30px 5%;
  }
}
.detail-content-inner{
  margin: auto;
  display: grid;
  gap: 40px;
  width: 90%;
  max-width: 800px;
}
@media screen and (max-width: 768px) {
  .detail-content-inner{
    gap: 20px;
  }
}


/* detail-headline */
.detail-headline{
  font-size: 50px;
  font-weight: 900;
}
@media screen and (max-width: 768px) {
  .detail-headline{
    font-size: 24px;
  }
}

.detail-note{
  align-items: center;
  border: 2px solid #000;
  padding: .8em;
  justify-content: center;
}
.std .detail-note{
  border-color: #C2DFFA;
}

.gd .detail-note{
  border-color: #F6D7A9;
}
.detail-note p{
  line-height: 1.6;
  width: fit-content;
}

.detail-content-headline{
  font-size: 30px;
  font-weight: 900;
  text-align: center;
  margin-bottom: -20px;
}
@media screen and (max-width: 768px) {
  .detail-content-headline{
    font-size: 22px;
    margin-bottom: 0;
  }
}

.detail-content-headline.line{
  border-top: 2px dashed #C2DFFA;
}
.detail-content-headline.line span{
  background-color: var(--color-bg-std);
  display: inline-block;
  padding: 0 .5em;
  transform: translateY(-50%);
}
@media screen and (max-width: 768px) {
  .detail-content-headline.line span{
    transform: translateY(0);
  } 
}




.detail-content-img{
  padding: 40px 0;
  margin-top: 10px;
}
.detail-content-img > img{
  margin: auto;
  width: 90%;
  max-width: 440px;
}

.qr-box{
  align-items: center;
  display: flex;
  gap: 10px;
  margin-top: 40px;
  padding: 20px 80px;
}


/* detail-table */
.detail-table {
  border-collapse: collapse;
  margin-top: 40px;
  width: 100%;
}
.detail-table :where(td , th) {
  border: 2px solid #BEB9AF;
  padding: 1em;
}
.detail-table thead{
  background-color: #F7F7F7;
}
.cut-tl{
  border-radius: var(--radius-md) 0 0 0;
}
.cut-tr{
  border-radius: 0 var(--radius-md) 0 0;
}

/* detail-list */
.detail-list dt{
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: 20px;
  padding: .4em 1.2em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .detail-list dt{
    font-size: 16px;
  }
}
.detail-list dd{
  padding: 1em;
  margin-bottom: 20px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .detail-list dd{
    padding: 1em 0;
  }
}

.detail-list.std dt{
  background-color: #DDEDFC;
}
.detail-list.gd dt{
  background-color: #FCE8CA;
}

.ditail-option{
  display: grid;
  grid-template-columns: 1fr 100px 1fr;
  place-items: center;
}
@media screen and (max-width: 768px) {
  .ditail-option{
    grid-template-columns: 45% 10% 45%;
  }
}

.ditail-option.col1{
  grid-template-columns: 1fr;
}
.ditail-option img{
  max-width: 320px;
  width: 100%;
}
.ditail-option-split{
  margin: auto;
  height: 100%;
  width: 2px;
}
.std .ditail-option-split{
  background-color: #DDEDFC;

}
.gd .ditail-option-split{
  background-color: #FCE8CA;

}

.detail-brand img{
  margin: auto;
  width: 50%;
  max-width: 260px;
}


/* application-box */
.application-wrap{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media screen and (max-width: 768px) {
  .application-wrap{
    gap: 8px;
  }
  .application-box .card{
    padding: 15px 5%;
  }
}
.option{
  display: grid;
  font-size: 14px;
  grid-template-columns: 85px 1fr;
  gap: 10px;
  place-items: center;
}
@media screen and (max-width: 768px) {
  .option{
    display:block;
  }
}
.option-split{
  border: none;
  border-top: 1px solid #ddd;
  margin: 10px 0;
}
.option-img{
  height: 40px;
  width: 84px;
}
.option-img img{
  object-fit: contain;
  width: 100%;
  height: 100%;
}

.cta.btn{
  background-color: #F57200;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .cta.btn{
    font-size: 14px;
  }
}



















/* accordion */
.accordion-panel {
  overflow: hidden;
  height: 0;
  transition: height 0.3s ease;
}

.js-accordion {
  background: #fff;
  border: 1px solid #000;
  border-radius: var(--radius-sm);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  margin-top: 20px;
  padding: 1em 3em;
}
@media screen and (min-width: 769px) {
  .js-accordion:hover{
    box-shadow: none;
  }
}

.js-accordion::before,
.js-accordion::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1em;
  width: 14px;
  height: 2px;
  background: currentColor;
  transform-origin: center;
  transition:
    transform 0.28s ease,
    opacity 0.28s ease;
}

.js-accordion::before {
  transform: translateY(-50%);
}
.js-accordion::after {
  transform: translateY(-50%) rotate(90deg);
}
.js-accordion.is-open{
  background-color: #f2f2f2;
  box-shadow: none;
}
.js-accordion.is-open::after {
  transform: translateY(-50%) rotate(0deg);
  opacity: 0;
}






/* table */
.section-content:has(.table-wrap){
  min-width: 0;
}

.table-wrap {
  border-radius: var(--radius-md);
  margin: auto;
  overflow: hidden;
  position: relative;
  max-width: 1100px;
  min-width: 0;
  
}

/* shadow */
@media (max-width: 605px) {
  .table-wrap::before,
  .table-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    width: 24px;
    height: 100%;
    pointer-events: none;
    z-index: 10;
  }

  .table-wrap::before {
    left: 170px;
    background: linear-gradient(to right, rgba(0,0,0,0.15), transparent);
  }

  .table-wrap::after {
    right: 0;
    background: linear-gradient(to left, rgba(0,0,0,0.15), transparent);
  }
}

.table-scroll {
  overflow-x: auto;
  padding-top: 80px;
}
@media screen and (max-width: 768px) {
  .table-scroll {
    padding-top: 0;
  }
}

.table {
  border-collapse: collapse;
  font-size: 16px;
  font-weight: 900;
  width: 100%;
  min-width: 900px;
  table-layout: fixed;
}
@media screen and (max-width: 768px) {
  .table {
    font-size: 12px;
    min-width: 531px;
  }
}

/* 表カラム幅 */
.col-first{
  width: 136px;
}
@media screen and (max-width: 768px) {
  .col-first{
    width: 65px;
  } 
}

.col-second{
  width: 250px;
}
@media screen and (max-width: 768px) {
  .col-second{
    width: 106px;
  } 

  .col-third,
  .col-fourth{
    width: 180px;
  }
}

.table thead th:not(.cat){
  background-color: #Fff;
}
.table :where(th,td) {
  background-color: #F7F7F7;
  padding: 14px;
  text-align: center;
  vertical-align: middle;
}
.table tr td:not(.item) ,
.table thead th:not(:first-of-type){
  border-left:2px solid #fff ;
}
.table tr td:not(.item) {
  border-top: 1px solid #E2DDD2;
}
.table tr:nth-of-type(2n) td:not(.item) {
  background-color: #fff;
}

.table tbody tr:nth-of-type(2n-1) th {
  background-color: #8AC12C;
}
.table tbody tr th{
  border-top: 1px solid #BADE7F;
}

.cat {
  background: #96CA3F;
  color: #fff;
  font-weight: bold;
}

.cat-creditcard{
  margin: -100px auto 0;
  width: 50%;
  max-width: 216px;
}
@media screen and (max-width: 768px) {
  .cat-creditcard{
    margin-top: 0;
  }
}
.item {
  background: #dfe9c9;
  border-top: 1px solid #BADE7F;
  color: #5F9602;
  font-size: 14px;
  text-align: left;
  white-space: normal;
  word-break: break-word;
}
@media screen and (max-width: 768px) {
  .item {
    font-size: 12px;
    }
  }

/* sticky */
@media (max-width: 768px) {
  .cat {
    position: sticky;
    left: 0;
    z-index: 6;
  }

  .item {
    position: sticky;
    left: 65px; /* colgroupと一致 */
    z-index: 6;
  }
}

/* データ */
.table-std { color: #0b61b2; font-weight: bold; }
.table-gd { color: #d97a00; font-weight: bold; }


.table-title {
  font-size: 20px;
}
@media screen and (max-width: 768px) {
  .table-title {
    font-size: 12px;
  }
}

@media (max-width: 768px) {
  .table-wrap {
    margin: 0;
  }
}





/* sticky-application */
.sticky-application{
  background-color: rgba(255,255,255,.7);
  padding: 10px 2%;
  position: sticky;
  bottom: 0;
  z-index: 999;
}
.sticky-application-box{
  gap: 20px;
  margin: auto;
  max-width: 1100px;
}
@media screen and (max-width: 768px) {
  .sticky-application-box{
    gap: 6px;
  } 
}
.sticky-application-box .btn{
  font-size: 26px;
  font-weight: 900;
}
@media screen and (max-width: 768px) {
  .sticky-application-box .btn{
    font-size: 12px;
  }
}




/* footer */
.footer{
  background-color: #333;
  color: #F5F5F5;
  padding: 30px 5%;
}
.footer-inner{
  width: fit-content;
}
.copyright{
  color: #ccc;
  display: block;
  padding-top: 20px;
}






/* =========================================
   9. modal 
========================================= */

.modal {
  display: none;
}

.modal.is-open {
  display: block;
}

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.6);
  display: flex;
  justify-content: center;
  align-items: center;
}


/* ===== アニメーション ===== */

/* 初期状態 */
.modal-overlay {
  opacity: 0;
}


/* 開くとき */
.modal.is-open .modal-overlay {
  animation: fadeIn 0.3s ease forwards;
}

.modal.is-open .modal-container {
  animation: slideIn 0.3s ease forwards;
}

/* 閉じるとき */
.modal[aria-hidden="true"] .modal-overlay {
  animation: fadeOut 0.2s ease forwards;
}

.modal[aria-hidden="true"] .modal-container {
  animation: slideOut 0.2s ease forwards;
}

/* keyframes */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes fadeOut {
  from { opacity: 1; }
  to   { opacity: 0; }
}

.modal-container {
  background-color: #fff;
  border-radius: var(--radius-md);
  overflow: hidden;
  position: relative;
  text-align: center;
  width: 90%;
  max-width: 900px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}
.modal-scroll{
  overflow-y: auto;
  padding: 40px 70px;
}
@media screen and (max-width: 768px) {
  .modal-scroll{
    padding: 50px 5%;
  }
}

.modal-container .tip-cardtop{
  font-family: Goldman, "Noto Sans JP", sans-serif;
}
.modal-content .campaign-item-content{
  font-family: Goldman, "Noto Sans JP", sans-serif;
  font-weight: 900;
  line-height: 1.2;
}
.modal-content .campaign-item-content-maintxt{
  line-height: .7;
}
@media screen and (max-width: 768px) {
  .modal-content .campaign-item-content-maintxt{
    margin-top: -.3em;
    line-height: 1.2;
  }
}

.modal-content-capsule{
  background-color: var(--color-thema);
  color: #fff;
  border-radius: 999px;
  margin: 20px auto 0;
  padding: .2em 2em;
  width: fit-content;
}

.modal-close {
  background: none;
  border: none;
  font-size: 20px;
  cursor: pointer;
  position: absolute;

  top: 8px;
  right: 8px;
}

.modal-content .card{
  padding: 20px 5%;
}

.modal-content-headline{
  font-weight: 900;
  font-size: 22px;
}

.modal-content-txt-center{
  margin: auto;
  text-align: justify;
  width: fit-content;
}

@media screen and (max-width: 768px) {
  .modal-content-txt-center{
    width: 90%;
  }
}