@charset "UTF-8";

:root {
  --primaryColor: #a51627;
}

img {
  width: 100%;
}

body {
  font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;  position: relative;
  color: #000;
  line-height: 1.5;
  word-break: break-all;
  background: #e5e5dd url(../img/bg.jpg) no-repeat center top;
  background-size: cover;
  background-attachment: fixed;
}

body.overflow {
  overflow: hidden;
}

.main-wrapper {
  width: 100%;
  max-width: 640px;
  margin: auto;
  position: relative;

}

.kv-wrapper {
  width: 100%;
  margin-top: 40px;
}

.top-caution-message {
  width: 90%;
  max-width: 600px;
  background: #fff;
  color: var(--primaryColor);
  font-size: 18px;
  font-weight: bold;
  line-height: 1.7em;
  text-align: center;
  margin: 12px auto 24px;
  padding: 12px;
}

/* トップのキャンペーン情報 */
.campaign_data_wrapper {
  width: 94%;
  max-width: 600px;
  background: #c10e24;
  margin: 16px auto;
  padding: 0;
  border-radius: 12px;
  color: #fff;
}

.campaign_data_heading {
    /* background: var(--primaryColor); */
    padding: 8px 4px 6px;
    font-size: 18px;
    /* color: #fff; */
    text-align: center;
    border-bottom: 1px solid #fff;
    margin: auto 12px;
}

.campaign_data_contents {
  padding: 12px 16px;
}

.campaign_date {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.7em;
  text-align: center;
  margin-bottom: 12px;
}

.campaign_date_caution {
  font-size: 15px;
  margin: auto auto 8px 1em;
  text-indent: -1em;
}

.campaign_date_caution:last-of-type {
  margin-bottom: 0;
}


/* LINEログインボタン */
.line_btn_img_wrapper {
  margin: 16px 8px 4px;
}




/* 応募は簡単　初回登録ボタン */
/* .easy_to_apply {
  background: #FFF100;
  color: var(--primaryColor);
  font-size: 20px;
  font-weight: bold;
  text-align: center;
  padding: 12px 4px;
}

.user_name {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 32px;
  line-height: 1.7em;
}

.now_point {
  font-size: 18px;
  line-height: 2em;
  margin-bottom: 20px;
}

.now_point_area {
  font-size: 22px;
  font-weight: bold;
}

.registration_wrapper {
  background: #fff;
  color: #000;
  font-size: 16px;
  text-align: center;
  margin: auto auto 24px;
  padding: 20px 12px 0;
}

.point_wrapper {
  background: #fff;
  color: #000;
  font-size: 16px;
  text-align: center;
  margin: auto auto 24px;
  padding: 20px 12px 28px;
}

.read_notes_message {
  color: var(--primaryColor);
  margin-bottom: 16px;
}

.read_notes_message span a {
  text-decoration: underline;
}

.registration_btn {
  background: #0a0541;
  font-size: 20px;
  font-weight: bold;
  border: 1px solid #fff;
  border-radius: 8px;
  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.3);
}

.registration_btn a,
.registration_btn a:hover {
  display: block;
  color: #fff;
  padding: 12px 4px;
}

.registration_wrapper .caution {
  text-indent: -1em;
  margin-left: 2rem;
  padding-right: 0rem;
  font-size: 16px;
  text-align: left;
  margin-bottom: 24px;
} */

/* チェックボックス */
.checkbox-001 {
  display: flex;
  flex-wrap: wrap;
  gap: .5em 2em;
  border: none;
  justify-content: center;
  margin-bottom: 20px;
}

.checkbox-001 label {
  display: flex;
  align-items: center;
  position: relative;
  cursor: pointer;
}

a.notes {
  font-size: 18px;
  text-decoration: underline;
}

.checkbox-001 label::before,
.checkbox-001 label:has(:checked)::after {
  content: '';
}

.checkbox-001 label::before {
  width: 17px;
  height: 17px;
  border-radius: 3px;
  background-color: #e6edf3;
  margin-right: 10px;
  border: 1px solid #555;
}

.checkbox-001 label:has(:checked)::before {
  background-color: var(--primaryColor);
  border: none;
}

.checkbox-001 label:has(:checked)::after {
  position: absolute;
  top: 8px;
  left: 6px;
  transform: rotate(45deg);
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
}

.checkbox-001 input {
  display: none;
}

/* [type="button"] {
  color: #fff100;
  background: #df0012;
  padding: 12px 4px;
  border-radius: 8px;
  width: 90%;
  margin: auto auto 16px;
  display: block;
  text-align: center;
  font-size: 20px;
  border: 2px solid #fff;
  box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.5);
}

[type="button"]:disabled {
  color: #fff;
  background: #afafaf;
  opacity: 1;
} */

/*** ラジオボタン　チェックボックス ***/
input[type=radio],
input[type=checkbox] {
  display: none;
}

.radio,
.checkbox {
  box-sizing: border-box;
  -webkit-transition: background-color 0.2s linear;
  transition: background-color 0.2s linear;
  position: relative;
  display: inline-block !important;
  margin: 10px 20px 20px 0px;
  padding: 0px 12px 3px 36px;
  border-radius: 8px;
  vertical-align: middle;
  cursor: pointer;
  font-size: 16px;
  text-align: left;
}

.radio:hover:after,
.checkbox:hover:after {
  border-color: #0d223f;
}

.radio:after,
.checkbox:after {
  -webkit-transition: border-color 0.2s linear;
  transition: border-color 0.2s linear;
  position: absolute;
  top: 54%;
  left: 15px;
  display: block;
  margin-top: -10px;
  width: 16px;
  height: 16px;
  border: 2px solid #444;
  border-radius: 4px;
  content: '';
}

.checkbox:before {
  -webkit-transition: opacity 0.2s linear;
  transition: opacity 0.2s linear;
  position: absolute;
  top: 60%;
  left: 11px;
  display: block;
  margin-top: -9px;
  width: 5px;
  height: 9px;
  border-right: 3px solid #0d223f;
  border-bottom: 3px solid #0d223f;
  content: '';
  opacity: 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

input[type=checkbox]:checked+.checkbox:before {
  opacity: 1;
}


/* パスワード保存のチェックボックス */
label.checkbox {
  padding: 0px 0px 3px 26px;
  font-size: 14px;
  font-weight: normal;
  margin-bottom: 28px;
}

label.checkbox::after {
  left: 6px;
}

/* トップのログインフォーム */
.login_form_wrapper {
  margin: auto;
  padding: 0 0 16px 0;
  text-align: center;
  height: auto;
  background-color: #fff;
  border: 2px solid #000;
}

.alredy_register {
  text-align: center;
  background-color: #000;
  color: #fff;
  font-size: 18px;
  padding: 12px 0 14px;
  margin-bottom: 12px;
}

.alredy_register_comment {
  text-align: center;
  color: #000;
  font-size: 14px;
  line-height: 24px;
  width: 90%;
  margin: auto auto 16px;
}

.register_input_wrapper {
  width: 90%;
  margin: auto;
  color: #000;
}

.login_top_text {
  font-size: 16px;
  font-weight: bold;
}

.register_input_label {
  text-align: left;
  color: #000;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 4px;
}

.register_input_wrapper .form-item input {
  padding: 8px 4px;
  margin: 2px 0 10px 0;
  width: 100%;
  text-align: left;
  color: #000;
  background-color: #FFFEF1 !important;
  font-size: 16px;
  font-weight: 800;
  line-height: 26px;
  letter-spacing: 0.4px;
  border: solid 2px #0a0541;
  border-radius: 6px;
  vertical-align: middle;
}

.register_input_wrapper .apply {
  margin: 12px 0;
  padding: 12px 0;
  background-color: #DC0019;
  border: 1px solid #DC0019;
  border-radius: 4px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
}

.register_input_wrapper .login_btn {
  width: 90%;
  background: var(--primaryColor);
  color: #FFF100;
  padding: 12px;
  font-size: 20px;
  margin: auto;
  border-radius: 6px;
}

.register_input_wrapper .login_error_message {
  color: var(--primaryColor);
  font-weight: bold;
  margin-bottom: 20px;
}

.register_input_wrapper .forget-pw {
  padding: 20px 0 6px;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 0.4px;
  text-decoration: underline;
  display: block;
}

.dropdown-select {
  width: 100%;
  padding: 8px;
  padding-right: 30px; /* 矢印のスペースを確保 */
  color: #000;
  background-color: #fff;
  border: solid 1px #0a0541;
  border-radius: 4px;
  height: 40px;
  margin-top: 8px;
  font-size: 16px;
  
  /* デフォルトの矢印を削除 */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  
  /* カスタム矢印を追加 */
  background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8"><path fill="%230a0541" d="M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z"/></svg>');
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 12px;
}

/* IEのデフォルト矢印を削除 */
.dropdown-select::-ms-expand {
  display: none;
}


.registration_caution_wrapper {
  font-size: 16px;
  text-indent: -1em;
  margin: auto auto auto 1em;
  text-align: left;
  padding: 20px 12px;
}

.registration_caution_wrapper li {
  margin-bottom: 12px;
  line-height: 1.6em;
}

.fa-angle-right {
  margin-left: 12px;
}


/* 賞品一覧 */
.contents_wrapper {
  width: 100%;
  margin: auto;
}

.contents_box_wrapper {
  width: 94%;
  border: 2px solid var(--primaryColor);
  max-width: 600px;
  background: #fff;
  margin: auto auto 16px;
  padding: 0;
  border-radius: 12px;
}

.contents_box_heading {
  background: var(--primaryColor);
  padding: 12px 4px;
  font-size: 18px;
  color: #fff;
  text-align: center;
}

.contents_box_contents {
  padding: 20px;
  background-color: #f7f6f2;
  border-radius: 12px;
}

.prize_name {
  color: #000;
  text-align: center;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.6em;
}

.prize_img_wrapper {
  width: 100%;
  margin: auto auto 8px;
}

.prize_img_wrapper img {
  width: 100%;
}

.prize_message {
  text-align: center;
}


/* 対象商品 */
.product_img_wrapper {
  margin: auto auto 20px;
}

.product_img_wrapper img {
  width: 100%;
}

.productList {
  margin: 12px auto;
}

.productItem {
  margin-bottom: 8px;
  text-align: center;
  font-weight: bold;
  font-size: 20px;
}

.product_add_message {
  margin-top: 20px;
}

.product_add_message a {
  text-decoration: underline;
}


/* アコーディオン */
.s_01 {
  width: 94%;
  margin: auto;
}
.s_01 .accordion_one {
  max-width: 1024px;
  margin: 0 auto 16px;
}
.s_01 .accordion_one .accordion_header {
  background: var(--primaryColor);
  color: #fff;
  font-size: 18px;
  padding: 12px;
  position: relative;
  z-index: +1;
  cursor: pointer;
  transition-duration: 0.2s;
  text-align: center;
  border-radius: 12px;
}
.s_01 .accordion_one .accordion_header.open {
  border-radius: 12px 12px 0 0;
}
.s_01 .accordion_one .accordion_header.history.open {
  border-radius: 12px;
}
.s_01 .accordion_one .accordion_header .i_box {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 50%;
  right: 5%;
  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;
}
.s_01 .accordion_one .accordion_header .i_box .one_i {
  display: block;
  width: 18px;
  height: 18px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transform-origin: center center;
  transition-duration: 0.2s;
  position: relative;
}
.s_01 .accordion_one .accordion_header.open .i_box {
  -webkit-transform: rotate(-360deg);
  transform: rotate(-360deg);
}
.s_01 .accordion_one .accordion_header .i_box .one_i:before, .s_01 .accordion_one .accordion_header .i_box .one_i:after {
  display: flex;
  content: '';
  background-color: #fff;
  border-radius: 10px;
  width: 18px;
  height: 4px;
  position: absolute;
  top: 7px;
  left: 0;
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  transform-origin: center center;
}
.s_01 .accordion_one .accordion_header .i_box .one_i:before {
  width: 4px;
  height: 18px;
  top: 0;
  left: 7px;
}
.s_01 .accordion_one .accordion_header.open .i_box .one_i:before {
  content: none;
}
.s_01 .accordion_one .accordion_header.open .i_box .one_i:after {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.s_01 .accordion_one .accordion_inner {
  display: none;
  padding: 20px;
  background: #fff;
  border-radius: 0 0 12px 12px;
}

/* @media screen and (max-width: 1024px) {
  .s_01 .accordion_one .accordion_header {
    font-size: 18px;
  }
  .s_01 .accordion_one .accordion_header .i_box {
    width: 30px;
    height: 30px;
    margin-top: -15px;
  }
}
@media screen and (max-width: 767px) {
  .s_01 .accordion_one .accordion_header {
    font-size: 16px;
    text-align: left;
    padding: 15px 60px 15px 15px;
  }
} */


/* 応募方法 */
.step_contents {
  display: flex;
  justify-content: space-between;
}

.step_text {
  margin-bottom: 12px;
}

.step_text.caution {
  text-indent: -1em;
  margin-left: 1em;
}

.step_img_wrapper {
  width: 100%;
}

.step_img_wrapper img {
  width: 100%;
}

.arrow_wrapper {
  text-align: center;
  margin: 12px;
}

.arrow_wrapper .fa-arrow-alt-circle-down {
  font-size: 2.8em;
  color: var(--stepColor);
}

.fas.fa-sort-down {
  text-align: center;
  display: block;
  font-size: 60px;
  color: var(--primaryColor);
}

.fa-sort-down:before {
  transform: translateY(-20px);
  display: block;
}


/* 撮影方法 */
.method_title {
  width: 100%;
  border-radius: 8px;
  text-align: center;
  padding: 6px;
  margin-bottom: 16px;
}

.method_title.good {
  color: var(--primaryColor);
  border: 2px solid var(--primaryColor);
}

.method_title.bad {
  color: var(--stepColor);
  border: 2px solid var(--stepColor);
}

.method_good_img_wrapper {
  width: 90%;
  margin: auto auto 12px;
}

.method_good_img_wrapper img {
  width: 100%;
}

.method_good_checkList {
  margin: 12px auto 40px;
}

.method_good_checkItem {
  margin-bottom: 8px;
  text-indent: -9px;
  margin-left: 19px;
}

.method_good_checkItem .fa-check-square {
  color: var(--primaryColor);
  font-size: 16px;
  margin-right: 4px;
}

.method_bad_imgList {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.method_bad_imgItem {
  width: 32%;
  margin-bottom: 2%;
  text-align: center;
  font-size: 13px;
}

.method_bad_imgItem img {
  width: 100%;
}

.method_bad_cautionList {
  margin-bottom: 0;
}

.method_bad_cautionItem {
  text-indent: -1em;
  margin-left: 1em;
  margin-bottom: 8px;
}

.method_bad_cautionItem:last-child {
  margin-bottom: 0;
}


/* 応募規約 */
.notes_wrapper {
  margin-bottom: 20px;
}

.note_heading {
  width: 100%;
  text-align: center;
  color: var(--primaryColor);
  border: 1px solid var(--primaryColor);
  padding: 4px;
  margin-bottom: 12px;
}

.notesList {
  width: 96%;
  margin: auto;
}

.notesItem {
  text-indent: -1em;
  margin-left: 1em;
  margin-bottom: 8px;
}

.notesItem.noindent {
  text-indent: 0;
  margin-left: 0;
}

.notesItem a {
  text-decoration: underline;
}


/* 事務局 */
.inquiry_wrapper {
  background: #a51627;
  padding: 16px;
}

.inquiry_wrapper .border_wrapper {
  border: 2px solid #fff;
}

.inquiry_heading {
  background: var(--primaryColor);
  color: #ffb240;
  text-align: center;
  padding: 16px 10px 0;
  font-size: 16px;
  font-weight: bold;
}

.inquiry_contents {
  font-size: 16px;
  padding: 12px 20px;
  background-color: var(--primaryColor);
  color: #fff;
}

.inquiry_name {
  text-align: center;
  margin-bottom: 16px;
}

.inquiry_contents dl {
  margin-bottom: 12px;
  text-align: center;
}

.inquiry_contents dt {
  margin-bottom: 4px;
  font-weight: normal;
}

.inquiry_caution {
  text-indent: -1em;
  margin-left: 1em;
  margin-bottom: 12px;
}

.footer {
  text-align: center;
}

.footer.low {
  padding-bottom: 16px;
}

.footer small {
  font-size: 10px;
  display: block;
  padding: 8px 0;
}


#pageTop {
  position: fixed;
  bottom: 48px;
  right: 12px;
  z-index: 88;
}

#pageTop .fa-arrow-alt-circle-up {
  display: inline-block;
  z-index: 999;
  font-size: 48px;
  background-color: var(--primaryColor);
  color: #fff;
  border-radius: 50%;
  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.7);
  border: 1px solid var(--primaryColor);
}



/* パスワード忘れページ */
.content.lowpage {
  margin-top: 20px;
}

.lowpage_contents_wrapper {
  width: 94%;
  max-width: 600px;
  background: #fff;
  margin: auto auto 24px;
  padding: 0;
}

.lowpage_contents_heading {
  background: var(--primaryColor);
  padding: 8px 4px;
  font-size: 18px;
  color: #fff;
  text-align: center;
}

.lowpage_contents {
  padding: 20px;
}

.lowpage_contents_topmessage {
  margin-bottom: 20px;
  text-align: center;
}

.lowpage_contents_topmessage.mb-0 {
  margin-bottom: 0;
}

.lowpage_input_label {
  text-align: left;
  color: #000;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 4px;
}

.form_error_message {
  color: var(--primaryColor);
  font-weight: bold;
}

.lowpage_contents .form-item{
  margin-bottom: 20px;
}

.lowpage_contents .form-item input {
  padding: 8px 4px;
  margin: 2px 0 10px 0;
  width: 100%;
  text-align: left;
  color: #000;
  background-color: #FFFEF1 !important;
  font-size: 16px;
  font-weight: 800;
  line-height: 26px;
  letter-spacing: 0.4px;
  border: solid 2px #0a0541;
  border-radius: 6px;
  vertical-align: middle;
}

.primary_btn {
  width: 90%;
  background: var(--primaryColor);
  color: #FFF100;
  padding: 14px;
  font-size: 18px;
  font-weight: bold;
  margin: auto;
  border-radius: 6px;
  display: block !important;
  text-align: center;
}

.primary_btn.history {
  background: #fce068;
  color: #000;
  margin-bottom: 16px;
  border: 2px solid #000;
}

.primary_btn.yellow {
  background: #fce068;
  color: #000;
  margin-bottom: 16px;
  border: 2px solid #000;
}

.primary_btn.mt {
  margin-top: 20px;
}

.primary_btn.mb {
  margin-bottom: 32px;
}

.top_btn {
  width: 90%;
  background: #000;
  color: #fff;
  padding: 12px;
  font-size: 18px;
  margin: auto auto 20px;
  border-radius: 6px;
  display: block;
  text-align: center;
  font-weight: bold;
}

.lowpage_bottom_caution {
  text-indent: -1em;
  margin-left: 1em;
}

.footer.lowpage {
  color: #fff;
  font-size: 14px;
  padding-bottom: 20px;
}

.lowpage_contents_topmessage {
  margin-bottom: 40px;
}

.save_pw_wrapper {
  text-align: center;
}

.save_pw_wrapper label {
  margin-top: 0;
}

.forget-pw_message {
  padding: 20px 0 6px;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 0.4px;
  text-decoration: underline;
  display: block;
}


/* 登録ページ */
.input_mail {
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: bold;
}

.input_mail_bottom_text {
  text-indent: -1em;
  margin-left: 1em;
  margin-bottom: 20px;
}

.lowpage_bottom_message {
  margin-bottom: 8px;
}

.lowpage_bottom_caution.mb {
  margin-bottom: 8px;
}


/* レシートアップロード */
.recipt_img_wrapper {
  width: 100%;
  margin-bottom: 12px;
}

.recipt_img_wrapper img {
  width: 100%;
}

.before_send_text {
  margin-bottom: 12px;
}

.check_item {
  text-indent: -0.6em;
  margin-left: 1.2em;
  margin-bottom: 8px;
}

.check_item .fa-check-square {
  color: var(--primaryColor);
}

.formUpload {
  width: 90%;
  background: #fff4de;
  display: block;
  margin: 24px auto auto;
  text-align: center;
  padding: 12px;
  border-radius: 8px;
  border: 2px solid #ab7200;
  font-size: 18px;
  font-weight: normal;
}

.Errorobi {
  text-align: center;
  margin-top: 8px;
  margin-bottom: 32px;
  color: var(--primaryColor);
  font-weight: bold;
}

.upload_filename {
  color: var(--stepColor);
  text-align: center;
}

.primary_btn.confirm {
  margin-top: 32px;
}

.formUploadPreviewBox {
  width: 80%;
  margin: 20px auto;
}

.formUploadPreviewBox img {
  width: 100%;
}

.entry_course {
  font-size: 20px;
  text-align: center;
  margin-top: 20px;
  line-height: 1.7em;
  font-weight: bold;
}

.primary_btn.confirm.fas {
  font-weight: 700;
}


/* レシート画像確認ページ */
.Reciptgazou {
  width: 90%;
  margin: auto auto 20px;
}

.Reciptgazou img {
  width: 100%;
}

.confirm_index {
  border: 2px solid #000;
  border-radius: 8px;
  padding: 8px;
  text-align: center;
  color: #000;
  margin-bottom: 12px;
}


/* レシート画像確認中ページ */
.now_confirm_message {
  text-align: center;
  margin: 20px auto;
  font-size: 18px;
  -webkit-animation:blink 1s ease-in-out infinite alternate;
  -moz-animation:blink 1s ease-in-out infinite alternate;
  animation:blink 1s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@-moz-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}


/* 抽選ページ */
.lottery_message {
  font-size: 18px;
  text-align: center;
}

.iw_photo {
  width: 100%;
  text-align: center;
}

.iw_photo img {
  width: 100%;
}


/* 抽選結果ページ */
.congraturation_message {
  text-align: center;
  line-height: 2em;
  margin-bottom: 20px;
  font-size: 20px;
  font-weight: bold;
}

.congraturation_message span.red {
  color: var(--primaryColor);
}

.congraturation_message span.blue {
  color: var(--stepColor);
}

.primary_btn.paypay {
  width: 100%;
  font-size: 18px;
}

.code_copy_wrapper {
  border: 1px solid var(--primaryColor);
  text-align: center;
  margin-bottom: 32px;
}

.code_copy_heading {
  background: var(--primaryColor);
  text-align: center;
  padding: 8px;
  color: #fff;
}

.code_copy_wrapper .js-copytext {
  font-size: 22px;
  text-align: center;
  font-weight: bold;
  margin: 20px 12px 16px;
  display: block;
}

.code_copy_wrapper .js-copybtn {
  font-size: 18px;
  background: var(--primaryColor);
  padding: 8px 20px;
  margin: 10px auto 16px;
  color: #fff;
}

.code_copy_caution {
  padding: 12px;
  text-align: left;
}

.paypay_notes_wrapper {
  margin-bottom: 36px;
}

.paypay_notes_heading {
  text-align: center;
  margin-bottom: 8px;
}

.paypay_notes_caution {
  text-indent: -1em;
  margin-left: 1em;
  margin-bottom: 8px;
}

.paypay_notes_caution.red {
  color: var(--primaryColor);
}

.paypay_notes_caution a {
  text-decoration: underline;
}

.disappointing_message {
  text-align: center;
  line-height: 2em;
  font-size: 20px;
}

.disappointing_caution {
  text-indent: -1em;
  margin-left: 1em;
  margin-bottom: 32px;
}


/* 履歴ページ */
.history_table {
  width: 100%;
  border: 1px solid #000;
}

.history_table th {
  border: 1px solid #000;
  padding: 8px;
  text-align: center;
  font-weight: normal;
}

.history_table td {
  border: 1px solid #000;
  padding: 8px;
  text-align: center;
}

.history_table td a {
  text-decoration: underline;
}

.status_message {
  text-indent: -1em;
  margin: 20px auto 32px 1em;
}

.s_01.history {
  width: 100%;
  margin-top: 20px;
}

.s_01 .accordion_one .accordion_inner.history {
  padding: 12px 0 32px;
}

.conts-body {
  position: relative;
  background: #eee;
  width: 400px;
  height: 600px;
  margin: 0 auto;
}

.hamburger {
  width: 40px;
  height: 32px;
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 100;
}

.hamburger_bar {
  display: block;
  width: 100%;
  height: 4px;
  position: absolute;
  left: 0;
  background: var(--primaryColor);
  transition: top 0.24s, transform 0.24s, opacity 0.24s;
}

.hamburger_bar:nth-child(1) {
  top: 0;
}

.hamburger_bar:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}

.hamburger_bar:nth-child(3) {
  top: 100%;
  transform: translateY(-100%);
}

.hamburger_bar.is_active:nth-child(1) {
  top: 50%;
  transform: translateY(-50%) rotate(135deg);
  background: #fff;
}

.hamburger_bar.is_active:nth-child(2) {
  transform: translate(50%, -50%);
  opacity: 0;
}

.hamburger_bar.is_active:nth-child(3) {
  top: 50%;
  transform: translateY(-50%) rotate(-135deg);
  background: #fff;
}

.nav {
  background-color: var(--primaryColor);
  color: #fff;
  position: fixed;
  top: 0;
  width: 100%;
  font-size: 14px;
  max-width: 640px;
  margin: auto;
  z-index: 888;
}

.nav-list {
  display: flex;
}

.nav-item {
  width: 20%;
  height: 40px;
}

.nav-item a {
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.nav-item a:hover {
  background-color: #f33b51;
}



/* リセットCSS */
button {
  border-color: transparent;
  background: transparent;
  cursor: pointer;
}

ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

a {
  text-decoration: none;
  color: inherit;
}





/* モーダル */
.modal {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  height: 100vh;
  width: 100vw;
  overflow: auto;
  background: rgba(0, 0, 0, 0.8);
  overscroll-behavior: contain;
  z-index: 999;
  animation-name: modalopen;
  animation-duration: 0.6s;
  animation-fill-mode: forwards;
}

.modal-content {
  background-color: #fff;
  margin: 10% auto;
  width: 90%;
  max-width: 600px;
  box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.2), 0 7px 20px 0 rgba(0, 0, 0, 0.17);
  border-radius: 12px;
  padding: 20px;
}

.modal-body {
  color: #000;
}

.login_modal_title {
  color: #00c300;
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 16px;
}

.login_modal_description {
  margin-bottom: 20px;
}

.sns_login_btn_wrapper_modal {
  margin: 20px auto;
}

.sns_login_btn_wrapper_modal a {
  display: block;
}

.modal-content img {
  width: 100%;
}

.login_modal_caution {
  margin-bottom: 8px;
}

.modal-footer button {
  display: block;
  background-color: #000;
  width: 100%;
  color: #fff;
  text-align: center;
  padding: 12px;
  border-radius: 6px;
  margin: 20px auto auto;
  font-size: 16px;
}

.nonScroll {
  height: calc(100vh + 1px);
  width: 1px;
  background-color: transparent;
}

@keyframes modalopen {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

.modal-header h1 {
  margin: 1rem 0;
}

.modal-header {
  /* background: lightblue; */
  position: relative;
  padding: 16px 12px;
  text-align: center;
}

.modal-header_course {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 8px;
}

.modal-header_text {
  font-size: 16px;
}

.modal_close_button {
  width: 28px;
  height: 28px;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
}

.modal_close_button img {
  width: 100%;
}

.modalClose:hover {
  cursor: pointer;
}



.point_list_modal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  border-left: 1px solid #000;
}

.point_list_modal:last-of-type {
  border-bottom: 1px solid #000;
}

.point_list_modal dt {
  width: 70%;
  padding: 4px;
  border-right: 1px solid #000;
  text-align: center;
}

.point_list_modal dd {
  padding: 4px 12px 4px 4px;
  text-align: center;
}





@media only screen and (min-width: 641px) {
  /* .main-wrapper .nav-sp {
    width: 50%;
  }

  .sp-menu {
    right: 25%;
  } */

    #pageTop {
      bottom: 160px;
      right: calc(50% - 300px);
    }

    .hamburger {
      right: calc(50% - 308px);
    }
}


.loader {
  text-align: center;
  padding-top: 40px;
}
.ball-clip-rotate > div {
  background-color: #fff;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  border: 8px solid var(--primaryColor);
  border-bottom-color: transparent;
  height: 80px;
  width: 80px;
  background: transparent !important;
  display: inline-block;
  -webkit-animation: rotate 0.75s 0s linear infinite;
          animation: rotate 0.75s 0s linear infinite; }

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg) scale(1);
            transform: rotate(0deg) scale(1); }
  50% {
    -webkit-transform: rotate(180deg) scale(0.6);
            transform: rotate(180deg) scale(0.6); }
  100% {
    -webkit-transform: rotate(360deg) scale(1);
            transform: rotate(360deg) scale(1); } }

@keyframes scale {
  30% {
    -webkit-transform: scale(0.3);
            transform: scale(0.3); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1); } }




.form-input {
  width: 100%;
  border: 1px solid #000000;
  border-radius: 4px;
  margin: 8px auto 0;
  height: 40px;
  padding: 8px;
  font-size: 16px;
}

.input-label {
  margin: 20px auto 0px;
}

.input-error {
  color: #DC0019;
  margin-top: 4px;
}

.input-label span {
  color: #f00;
}


.confirm-label {
  margin: auto auto 4px;
}

.confirm-result {
  margin: auto auto 16px;
}
