@charset "UTF-8";
/* ##################################################
  基本設定
################################################## */

/* ------------------------------
  ベース設定
------------------------------ */

html {
  font-size: 62.5%;
  margin: 0;
  padding: 0;
}

body {
  background-color: #f3f4f5;
  font-size: 1.6rem;
  font-family: YakuHanJP, "M PLUS Rounded 1c", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴシック","Segoe UI", "Meiryo", sans-serif;
  line-height: 1.6;
  color: #003487;
}


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

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

img {
  max-width: 100%;
  height: auto;
}


/*--------------------------
メソッド
--------------------------*/

:root {
  --base: #003487;
  --sub: #00bfce;
  --pink: #fa629f;
  --gray: #222222;
  --white: #ffffff;
  --back: #a8dde5;
  --back02: #e4e4e4;

  --font_no-yaku: "M PLUS Rounded 1c", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴシック","Segoe UI", "Meiryo", sans-serif;

}

.l_container {
  max-width: 750px;
  margin: 0 auto;
  overflow: hidden;
}

.l_inner {
  padding: 0 calc(40/750*100%);
}

.l_inner02 {
  padding: 0 calc(40/670*100%);
}

.shadow{
    filter:drop-shadow(3px 7px 5px rgba(35 24 21 / .4));
    will-change: filter;
}

/* テキスト系 */
.text-m, .text-b, .text-b_lh01 {
  font-family: var(--font_yaku-mplus);
  font-size: 30px;
  line-height: 1.5;
  font-weight: 500;
}

@media screen and (max-width: 750px) {
  .text-m, .text-b, .text-b_lh01 {
    font-size: 4vw;
  }
}

.text-b {
  font-weight: 700;
}

.text-b_lh01 {
  font-weight: 700;
  line-height: 1.1;
}

.center {
  text-align: center;
}

.large {
  font-size: 125%;
}

.small {
  font-size: 75%;
}

.indent01 {
  text-indent: -1em;
  padding-left: 1em;
}

.mt-1em {
  margin-top: 1em;
  display: inline-block;
}

.mt-05em {
  margin-top: .5em;
  display: inline-block;
}

.no_yaku {
  font-family: var(--font_no-yaku);
}

/*--------------------------
ボタン
--------------------------*/

.btn_fix {
  max-width: 750px;
  margin: 0 auto;
  background-color: var(--white);
  position: fixed;
  z-index: 100;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.btn_fix.is-hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.btn_fix_wrap {
  padding: calc(30/750*100%) calc(80/750*100%);
}

.oubo_ttl {
  font-size: 30px;
  font-weight: 700;
  text-align: center;
  line-height: 1;
  margin: calc(60/590*100%) auto .5em;
}

@media screen and (max-width: 750px) {
  .oubo_ttl {
    font-size: 4vw;
  }
}

.btn_oubo button, .btn_oubo a, .btn_accordion, .btn_dl a {
  width: 100%;
  border-radius: 9999px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  padding: 1.2em 0;
  color: var(--white);
  text-decoration: none;
  font-weight: 700;
  font-size: 30px;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: var(--base);
  margin: 0 auto;
  transition: .3s;
}

@media screen and (max-width: 750px) {
  .btn_oubo a, .btn_accordion, .btn_dl a {
    font-size: 4vw;
  }
}

.btn_oubo a {
  background-color: var(--base);
  margin: 0 auto;
}

.btn_accordion  {
  background-color: var(--sub);
  margin: calc(80/590*100%) auto 0;
}

.btn_dl a {
  background-color: var(--base);
  margin: calc(60/590*100%) auto 0;
}

.btn_oubo a:after {
  content: '';
  width: 16px;
  height: 16px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg) translateY(-50%);
  position: absolute;
  top: 50%;
  right: 0;
  transition: 0.3s ease-in-out;
  margin: auto calc(40/590*100%) auto 0;
}

@media screen and (max-width: 750px) {
  .btn_oubo a:after {
    content: '';
    width: 2.1vw;
    height: 2.1vw;
  }
}

.btn_dl a:after {
  content: '';
  background: url(../img/p_download.png) no-repeat center center / contain;
  width: calc(27/590*100%);
  padding-top: calc(25/590*100%);
  position: absolute;
  top: auto;
  right: 0;
  transition: 0.3s ease-in-out;
  margin: auto calc(35/590*100%) auto 0;
}

.btn_oubo a:hover, .btn_accordion:hover, .btn_dl a:hover {
  opacity: .8;
}

@media screen and (max-width: 750px) {
  .btn_oubo a:hover, .btn_accordion:hover, .btn_dl a:hover {
    opacity: 1;
  }
}

.icon_wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 50%;
  right: calc(20/590*100%);
  width: 40px;
  height: 40px;
  margin-top: -20px;
  box-sizing: border-box;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transform-origin: center center;
  transition-duration: 0.2s;
}

@media screen and (max-width: 750px) {
  .icon_wrap {
    width: 5.3vw;
    height: 5.3vw;
    margin-top: -2.6vw;
  }
}

.icon {
  display: block;
  width: 18px;
  height: 18px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transform-origin: center center;
  transition-duration: 0.2s;
  position: relative;
}

@media screen and (max-width: 750px) {
  .icon {
    width: 2.4vw;
    height: 2.4vw;
  }
}

.btn_accordion.open 
.icon_wrap {
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
}

.icon:before, .icon:after {
  display: flex;
  content: '';
  background-color: #fff;
  width: 22px;
  height: 2px;
  position: absolute;
  top: 10px;
  left: 0;
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  transform-origin: center center;
}

.icon:before {
  width: 2px;
  height: 22px;
  top: 0;
  left: 10px;
}

@media screen and (max-width: 750px) {
  .icon:before, .icon:after {
    width: 2.9vw;
    height: .26vw;
    top: 1.3vw;
  }
  
  .icon:before {
    width: .26vw;
    height: 2.93vw;
    top: 0;
    left: 1.33vw;
  }
}

.btn_accordion.open 
.icon_wrap .icon:before {
  content: none;
}

.btn_accordion.open 
.icon_wrap .icon:after {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

/* アコーディオン内部 */

.js-accordion_inner {
  padding:calc(30/590*100%) 0 0;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}

.acc_lead {
  font-size: 36px;
  line-height: 1.3;
  font-weight: 500;
  margin-bottom: 1em;
}

@media screen and (max-width: 750px) {
  .acc_lead {
    font-size: 4.8vw;
  }
}

.receipt_image {
  width: calc(398/590*100%);
  margin: calc(70/590*100%) auto 0;
}

.receipt_list {
  font-size: 30px;
  font-weight: 500;
  line-height: 1.5;
  margin: calc(70/590*100%) 0 1em;
}

@media screen and (max-width: 750px) {
  .receipt_list {
    font-size: 4vw;
  }
}

.receipt_list li {
  text-indent: -1em;
  padding-left: 1em;
}

.receipt_sample_wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.receipt_sample_wrap li {
  width: calc(270/590*100%);
  margin-top: calc(30/590*100%);
}

.receipt_sample_wrap li p {
  font-size: 28px;
  font-weight: 700;
  text-align: center;
  line-height: 1.2;
  margin-top: .5em;
}

@media screen and (max-width: 750px) {
  .receipt_sample_wrap li p {
    font-size: 3.7vw;
  }
}

/* チェックボックス */

.btn_oubo.is-disabled a, .btn_oubo.is-disabled button {
  background-color: #a0a6ac;
  cursor: not-allowed;
  pointer-events: none;
  color: rgba(255 255 255 / .6);
}

.btn_oubo.is-disabled a:after, .btn_oubo.is-disabled button:after {
  border-color: var(--white);
  opacity: 0.6;
}

.agree_wrap {
  display: flex;
  justify-content: center;
  margin: 0 auto;
  padding-top: calc(40/670*100%);
}

.agree_check {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: calc(40/670*100%);
  font-size: 30px;
  color: var(--base);
  font-weight: 500;
  cursor: pointer;
}

@media screen and (max-width: 750px) {
  .agree_check {
    gap: 1.6vw;
    font-size: 4vw;
  }
}

.agree_check input {
  display: none;
}

.checkmark {
  width: 60px;
  height: 60px;
  border: 2px solid #b7b7b7;
  background-color: var(--white);
  position: relative;
}

@media screen and (max-width: 750px) {
  .checkmark {
    width: 8vw;
    height: 8vw;
    border: .26vw solid #b7b7b7;
  }
}

.agree_check input:checked + .checkmark::after {
  content: "";
  position: absolute;
  left: 18px;
  top: 6px;
  width: 20px;
  height: 32px;
  border-right: 6px solid var(--base);
  border-bottom: 6px solid var(--base);
  transform: rotate(45deg);
}

@media screen and (max-width: 750px) {
  .agree_check input:checked + .checkmark::after {
    left: 2.4vw;
    top: .8vw;
    width: 2.66vw;
    height: 4.26vw;
    border-right: .8vw solid var(--base);
    border-bottom: .8vw solid var(--base);
  }
}

/*--------------------------
セクション01
--------------------------*/

.sec01 {
  background-color: var(--pink);
  background: var(--pink) url("../img/kv.png") no-repeat center top / contain;
  padding: calc(1057/750*100%) 0 calc(25/750*100%);
}

h1 {
  display: none;
}

.sec01_ttl {
  width: 100%;
  margin: 0 auto;
  padding: calc(30/670*100%);
  background-color: #fff562;
  border-radius: 20px 20px 0 0;
  font-size: 36px;
  font-weight: 700;
  text-align: center;
  line-height: 1;
}

@media screen and (max-width: 750px) {
  .sec01_ttl {
    border-radius: 2.66vw 2.66vw 0 0;
    font-size: 4.8vw;
  }
}

.sec01_ttl .large {
  font-size: 135%;
}

.sec01_ttl .notes {
  font-size: 65%;
}

.sec01_container {
  padding: calc(40/670*100%) calc(20/670*100%) calc(40/670*100%);
  background-color: rgba(255 255 255 / .85);
  border-radius: 0 0 20px 20px;
}

@media screen and (max-width: 750px) {
  .sec01_container {
    border-radius: 0 0 2.66vw 2.66vw;
  }
}

.sec01_container_ttl {
  margin: calc(40/670*100%) 0 calc(10/670*100%);
  background-color: var(--base);
  border-radius: 10px;
  font-size: 30px;
  font-weight: 700;
  color: var(--white);
  text-align: center;
  line-height: 1;
  padding: .3em 0;
}

@media screen and (max-width: 750px) {
  .sec01_container_ttl {
    border-radius: 1.3vw;
    font-size: 4vw;
  }
}

.sec01_container_ttl:first-child {
  margin: 0 0 calc(10/670*100%);
}

.sec01_wrap_times {
  display: flex;
  justify-content: space-between;
  list-style: none;
  margin-top: calc(20/630*100%);
}

.sec01_wrap_times li {
  width: calc(198/630*100%);
  border: 4px solid var(--sub);
  box-sizing: border-box;
  border-radius: 10px;
}

@media screen and (max-width: 750px) {
  .sec01_wrap_times li {
    border-radius: 1.3vw;
  }
}

.sec01_wrap_times_ttl {
  background-color: var(--sub);
  overflow: hidden;
  color: var(--white);
  font-size: 30px;
  font-weight: 700;
  text-align: center;
  line-height: 1.3;
  padding: 0 0 calc(10/198*100%);
}

@media screen and (max-width: 750px) {
  .sec01_wrap_times_ttl {
    font-size: 4vw;
  }
}

.sec01_wrap_times_ttl .large {
  font-size: 150%;
}

.sec01_wrap_times_ttl .number {
  width: 90%;
  margin: 0 auto;
  font-size: 28px;
  background-color: var(--pink);
  border: 2px solid var(--white);
  box-sizing: border-box;
  border-radius: 9999px;
  line-height: 1;
  padding: .2em;
}

@media screen and (max-width: 750px) {
  .sec01_wrap_times_ttl .number {
    font-size: 3.7vw;
    border: .26vw solid var(--white);
  }
}

.sec01_wrap_times_ttl .number span {
  font-size: 130%;
}

.sec01_wrap_times_contents {
  background-color: var(--white);
  padding: calc(15/198*100%) 0;
  border-radius: 0 0 8px 8px;
}

@media screen and (max-width: 750px) {
  .sec01_wrap_times_contents {
    border-radius: 0 0 1.06vw 1.06vw;
  }
}

.sec01_wrap_times_contents_ttl {
  width: calc(166/190*100%);
  margin: 0 auto;
  background-color: #a8dde5;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  line-height: 1;
  padding: .3em;
  border-radius: 8px;
}

@media screen and (max-width: 750px) {
  .sec01_wrap_times_contents_ttl {
    font-size: 3.0vw;
    border-radius: 1.06vw;
  }
}

.sec01_wrap_times_contents .day {
  font-size: 33px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  margin: calc(7/190*100%) 0 calc(14/190*100%);
}

@media screen and (max-width: 750px) {
  .sec01_wrap_times_contents .day {
    font-size: 4.2vw;
  }
}

.sec01_wrap_times_contents .day_deli {
  font-family: var(--font_yaku-mplus);
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  margin: calc(7/190*100%) 0 0;
}

@media screen and (max-width: 750px) {
  .sec01_wrap_times_contents .day_deli {
    font-size: 3.0vw;
  }
}

.sec01_notes {
  font-family: var(--font_yaku-mplus);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  margin-top: calc(15/630*100%);
  list-style: none;
}

@media screen and (max-width: 750px) {
  .sec01_notes {
    font-size: 3.2vw;
  }
}

.sec01_notes li {
  text-indent: -1em;
  padding-left: 1em;
}

.sec01_prize {
  width: calc(750/670*100%);
  margin: calc(30/670*100%) 0 0 calc(-40/670*100%);
}


/*--------------------------
セクション02
--------------------------*/

.sec02 {
  background-color: var(--back);
  padding: calc(80/750*100%) 0 calc(120/750*100%);
}

.sec02_container {
  padding: calc(40/670*100%) calc(40/670*100%) calc(80/670*100%);
  background-color: var(--white);
  border-radius: 20px;
  margin-top: calc(80/670*100%);
}

@media screen and (max-width: 750px) {
  .sec02_container {
    border-radius: 2.6vw;
  }
}

.sec02_container:first-child {
  margin-top: 0px;
}

.sec02_ttl {
  position: relative;
  font-family: var(--font_yaku-mplus);
  font-size: 48px;
  font-weight: 700;
  text-align: center;
  line-height: 1;
}

@media screen and (max-width: 750px) {
  .sec02_ttl {
    font-size: 6.4vw;
  }
}

.sec02_ttl::after {
  content: "";
  position: absolute;
  background-color: var(--pink);
  width: 100px;
  height: 8px;
  border-radius: 9999px;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto -20px;
}

@media screen and (max-width: 750px) {
  .sec02_ttl::after {
    content: "";
    width: 13.33vw;
    height: 1.066vw;
    margin: 0 auto -2.66vw;
  }
}

.sec02_lead {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  margin-top: calc(60/590*100%);
}

@media screen and (max-width: 750px) {
  .sec02_lead {
    font-size: 4.8vw;
  }
}

.sec02_lead .line01, .sec02_lead .line02 {
  text-decoration: underline;
  text-decoration-thickness: 0.4em;
  text-decoration-color: var(--back);
  text-underline-offset: -0.2em;
  text-decoration-skip-ink: none;
}

.sec02_lead .line02 {
  text-decoration-color: #ffc5dc;
}

.sec02_container_ttl, .sec02_container_ttl02 {
  margin: calc(60/590*100%) 0 calc(25/590*100%);
  background-color: var(--sub);
  border-radius: 10px;
  font-size: 36px;
  font-weight: 700;
  color: var(--white);
  text-align: center;
  line-height: 1;
  padding: .3em 0;
}

@media screen and (max-width: 750px) {
  .sec02_container_ttl, .sec02_container_ttl02 {
    border-radius: 1.33vw;
    font-size: 4.8vw;
  }
}

.sec02_container_ttl:nth-of-type(2) {
  margin: calc(80/590*100%) 0 calc(25/590*100%);
  background-color: var(--pink);
}

.sec02_container_ttl02 {
  margin: calc(40/590*100%) 0 calc(25/590*100%);
  background-color: var(--base);
}

.sec02_sec02_container_ttl02 {
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  margin: calc(50/590*100%) 0 calc(10/590*100%);
  display: flex;
  align-items: center;
}

@media screen and (max-width: 750px) {
  .sec02_sec02_container_ttl02 {
    font-size: 4vw;
  }
}

.sec02_sec02_container_ttl02::after {
  content: "";
  flex: 1; 
  height: 2px;
  background-color: var(--base);
  margin-left: .5em; 
}

@media screen and (max-width: 750px) {
  .sec02_sec02_container_ttl02::after {
    content: "";
    height: .266vw;
  }
}

.sec02_notes, .sec02_notes02 {
  list-style: none;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.5;
  margin-top: .3em;
}

@media screen and (max-width: 750px) {
  .sec02_notes, .sec02_notes02 {
    font-size: 3.2vw;
  }
}

.sec02_notes02 {
  font-size: 24px;
  line-height: 1.4;
}

@media screen and (max-width: 750px) {
  .sec02_notes02 {
    font-size: 3.2vw;
  }
}

.sec02_notes li, .sec02_notes02 li {
  text-indent: -1em;
  padding-left: 1em;
}

.sec02_notes li span {
  color: #ce2c4a;
}

.sec02_step {
  list-style: none;
  margin: calc(40/590*100%) 0 calc(10/590*100%);
  line-height: 1.3;
  display: flex;
  gap: .3em;
}

.sec02_step:first-of-type {
  margin: calc(80/590*100%) 0 calc(10/590*100%);
}

.sec02_step .step_number {
  font-size: 40px;
  color: var(--pink);
  font-weight: 700;
  margin-top: -.1em;
}

@media screen and (max-width: 750px) {
  .sec02_step .step_number {
    font-size: 5.3vw;
  }
}

.sec02_step .step_text {
  flex: 1;
  font-size: 36px;
  font-weight: 700;
}

@media screen and (max-width: 750px) {
  .sec02_step .step_text {
    font-size: 4.8vw;
  }
}

.sec02_center {
  font-size: 40px;
  font-weight: 700;
  text-align: center;
  margin-top: calc(40/590*100%);
}

@media screen and (max-width: 750px) {
  .sec02_center {
    font-size: 5.3vw;
  }
}


/*--------------------------
セクション03
--------------------------*/

.sec03 {
  background-color: var(--back02);
  padding: calc(80/750*100%) 0 calc(120/750*100%);
}

.sec03_container {
  padding: calc(40/670*100%) calc(20/670*100%) calc(40/670*100%) calc(40/670*100%);
  background-color: var(--white);
  border-radius: 20px;
  margin-top: calc(10/670*100%);
}

@media screen and (max-width: 750px) {
  .sec03_container {
    border-radius: 2.66vw;
  }
}

.sec03_ttl {
  font-size: 48px;
  font-weight: 700;
  text-align: center;
}

@media screen and (max-width: 750px) {
  .sec03_ttl {
    font-size: 6.4vw;
  }
}

.sec03_kiyaku_wrap {
  overflow-y: auto;
  overflow-x: hidden;
  height: 34em;
}

@media screen and (max-width: 750px) {
  .sec03_kiyaku_wrap {
    height: 18em;
  }
}

.sec03_kiyaku_text {
  font-size: 28px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--gray);
  padding-right: .5em;
  word-break: break-all;
}

@media screen and (max-width: 750px) {
  .sec03_kiyaku_text {
    font-size: 3.7vw;
  }
}

.sec03_kiyaku_text a {
  color: var(--sub);
  text-decoration: underline;
  transition: .3s;
}

.sec03_kiyaku_text a:hover {
  opacity: .8;
}

@media screen and (max-width: 750px) {
  .sec03_kiyaku_text a:hover {
    opacity: 1;
  }
}

.sec03_kiyaku_text a:visited {
  color: var(--sub);
}

.sec03_kiyaku_text ol {
  list-style: decimal;
  margin-left: 1.5em;
  margin-top: .5em;
}

.sec03_kiyaku_text .notes {
  font-size: 24px;
  text-indent: -1em;
  padding-left: 1em;
}

@media screen and (max-width: 750px) {
  .sec03_kiyaku_text .notes {
    font-size: 3.2vw;
  }
}



/*--------------------------
セクション04
--------------------------*/

.sec04 {
  background-color: var(--white);
  padding: calc(60/750*100%) 0 calc(120/750*100%);
}

.sec04_ttl {
  margin: 0 0 calc(25/670*100%);
  font-size: 30px;
  font-weight: 700;
  text-align: center;
  color: var(--white);
  background-color: #5e6a78;
  line-height: 1;
  padding: .3em 0;
  border-radius: 10px;
}

@media screen and (max-width: 750px) {
  .sec04_ttl {
    font-size: 4vw;
    border-radius: 1.33vw;
  }
}

.sec04_text {
  font-size: 28px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--gray);
}

@media screen and (max-width: 750px) {
  .sec04_text {
    font-size: 3.7vw;
  }
}

.sec04_text span {
  font-weight: 500;
}

.sec04_text ul {
  list-style: none;
  margin-top: 1em;
}

.sec04_text ul li {
  text-indent: -1em;
  padding-left: 1em;
}

.sec04_text a {
  color: var(--sub);
  text-decoration: underline;
  transition: .3s;
}

.sec04_text a:hover {
  opacity: .8;
}

@media screen and (max-width: 750px) {
  .sec04_text a:hover {
    opacity: 1;
  }
}

.sec04_text a:visited {
  color: var(--sub);
}



/*--------------------------
フッター
--------------------------*/
footer {
  background-color: var(--back02);
  padding: calc(30/750*100%) 0 calc(60/750*100%);
  color: var(--gray);
}

.copyright {
  font-size: 20px;
  line-height: 1;
  font-weight: 400;
  text-align: center;
}

@media (max-width: 750px) {
  .copyright {
    font-size: 2.66vw;
  }
}

/*--------------------------
終了表記
--------------------------*/

.is-closed {
  background-color: #fff562;
  color: #d7536b;
  text-align: center;
  padding: 0.5em 1em;
  font-weight: bold;
}
