

/*----------------------------
    全体
----------------------------*/
html {
  overflow-x: clip;
}

.body-bg {
  color: #313131;
  background-color: #F7F7F7;
  font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
  font-weight: 400;
  letter-spacing: 0.05em;
  width: 100%;
  overflow-x: clip;
}

a {
  text-decoration: none;
}


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


::placeholder {
  color: #969696;
}


.pc_only {
  display: none;
}

.width_adjust {
  padding: 0 4%;
  margin: 0 auto;
}

.sp_only {
  display: block;
}

.pc_only {
  display: none !important;
}

.form_num {
  font-family: "Open Sans", sans-serif;
}

select {
  color: #313131;
  -webkit-appearance: none;
  appearance: none;
}

.select_wrap {
  position: relative;
}

.select_wrap::after {
  color: #969696;
  height: 20px;
  width: 20px;
  position: absolute;
  content: "\f107";
  top: 32%;
  right: 8px;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 15px;
  pointer-events: none;
}

.varitaion_line .select_wrap::after {
  top: 22%;
}

/* テーマ色について　*/
.theme_color {
  color: #3191F0;
}

.background_color {
  background: #3191F0;
}

.theme_color.border_line {
  border: #4B91E9 1px solid;
}

.border_line {
  border: #4B91E9 1px solid !important;
}

.payment_content .border_line .theme_color::before {
  background-color: #4B91E9;
}


/*----------------------------
  ヘッダー
----------------------------*/
.header {
  position: relative;
  padding: 0 4% 0;
  z-index: 9999;
}

.header_inner {
  position: relative;
}

/*　ハンバーガーボタン　*/
.header_menu {
  background: #fff;
  display : block;
  position: fixed;
  z-index : 9999;
  right : 0;
  top   : 0;
  width : 46px;
  height: 46px;
  cursor: pointer;
  text-align: center;
}

.header_menu span {
  display : block;
  position: absolute;
  width   : 16px;
  height  : 2px ;
  left    : 16px;
  background : #555;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition   : 0.3s ease-in-out;
  transition        : 0.3s ease-in-out;
}

.header_menu span:nth-child(1) {
  top: 15px;
}
.header_menu span:nth-child(2) {
  top: 20px;
}
.header_menu span:nth-child(3) {
  top: 25px;
}

/* ナビ開いてる時のボタン */
.header_menu.active {
  background: #00163E;
}

.header_menu.active span:nth-child(1) {
  top : 19px;
  left: 16px;
  background :#fff;
  -webkit-transform: rotate(-45deg);
  -moz-transform   : rotate(-45deg);
  transform        : rotate(-45deg);
}

.header_menu.active span:nth-child(2),
.header_menu.active span:nth-child(3) {
  top: 19px;
  background :#fff;
  -webkit-transform: rotate(45deg);
  -moz-transform   : rotate(45deg);
  transform        : rotate(45deg);
}

.nav_menu {
  position: fixed;
  z-index : 2;
  top  : 0;
  left : 0;
  color: #00163E;
  background: #fff;
  text-align: left;
  transform: translateY(-100%);
  transition: all 0.6s;
  width: 100%;
  height: 100vh;
  padding: 23px 4% 0;
}

.nav_menu_logo {
  margin-bottom: 103px;
  display: block;
}

.nav_menu ul {
  background: transparent;
  margin: 0 auto 50px;
  padding: 0;
  width: 100%;
}

.nav_menu ul li {
  color: #00163E;
  list-style-type: none;
  padding: 0;
  width: 100%;
  transition: .4s all;
  font-size: 27px;
  margin-bottom: 40px;
  border-bottom: 1px solid #fff;
}
.nav_menu ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.nav_menu ul li a {
  display: inline-block;
  color: #00163E;
  border-bottom: solid 2px #E0E7F3;
  background-color: transparent;
  padding-bottom: 12px;
  font-weight: 400;
}


.nav_menu.active {
  transform: translateY(0%);
  z-index : 20;
}

.price_cta_wrap a {
  background: #00163E;
  color: #fff;
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.075em;
  line-height: 1.5;
  display: block;
  text-align: center;
  padding: 15px 0;
  position: relative;
}

.price_cta span {
  font-size: 20px;
}


.price_cta_wrap a:after {
  content: "";
  position: absolute;
  background: url(/../img/arrow_white.svg) no-repeat;
  width: 8px;
  height: 26px;
  right: 24px;
  top: 26px;
}

.header_logo {
  margin-top: 22px;
}


/*----------------------------
    FV
----------------------------*/
.fv {
  margin-top: -120px;
  position: relative;
}

.fv_inner {
  position: relative;
}

.fv_img {
  position: relative;
}

.fv_img img {
  width: 100%;
}

.fv_text {
  position: absolute;
  top: 30.4%;
  width: 25px;
}

.fv_text_sp_inner {
  display: flex;
  gap: 56vw;
  width: 6.3vw;
  left: 16vw;
  position: absolute;
}

img.fv_copy_sp_right {
  height: 73%;
}

.fv_record.sp_only {
  position: absolute;
  bottom: 5%;
  left: 24%;
  width: 52%;
}

.fv_ballon {
  color: #2664D9;
  position: absolute;
  top: 15.5%;
  right: 20%;
  font-size: 27px;
  font-weight: 500;
  font-family: "Quicksand", sans-serif;
  width: 18%;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-align: center;
}

/*----------------------------
  キャッチコピー
----------------------------*/
.catch {
  padding: 72px 0 58px;
}
.catch_ttl {
  color: #00163E;
  font-family: 'Zen Old Mincho', serif;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.7;
  margin-bottom: 70px;
  text-align: center;
  position: relative;
}

.catch_ttl::before {
  content: "";
  background: url(/../img/btn_line_left.svg) no-repeat;
  top: -30px;
  width: 85px;
  height: 55px;
  position: absolute;
  left: 5%;
}

.catch_ttl::after {
  content: "";
  background: url(/../img/btn_line_right.svg) no-repeat;
  top: 40px;
  width: 85px;
  height: 55px;
  position: absolute;
  right: 5%;
}

.catch_tt {
  color: #8B7346;
  font-family: 'Zen Old Mincho', serif;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2.25;
  text-align: center;
  letter-spacing: 0.05em;
  font-weight: 500;
}

/*----------------------------
  Trouble
----------------------------*/
.trouble {
  position: relative;
  padding: 73px 0 45px;
  background: #fff;
}

.trouble_bg1 {
  position: absolute;
  width: 100%;
  height: 366px;
  background: linear-gradient(180deg, #DAEDFA 0%, rgba(255,255,255,1) 40%);
  top: 0;
  left: 0;
}

.trouble_bg2 {
  position: absolute;
  width: 100%;
  height: 400px;
  background: linear-gradient(0deg, rgba(218,237,250,1) 0%, rgba(255,255,255,1) 43%);
  bottom: 0;
  left: 0;
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 100% 83%, 50% 100%, 0 83%);
}

.trouble h2 {
  color: #00163E;
  font-family: 'Zen Old Mincho', serif;
  font-size: 22px;
  line-height: 1.4;
  text-align: center;
  letter-spacing: 0.05em;
  font-weight: 500;
}

.trouble h2 span {
  font-size: 27px;
  line-height: 1.8;
}

.trouble h2 .trobuble_is {
  font-size: 22px;
}

.trouble .width_adjust {
  z-index: 1;
  position: relative;
}

.trouble_img {
  text-align: center;
}

.trouble_list {
  margin-bottom: 70px;
}

.trouble_list li {
  border-radius: 4px;
  text-align: center;
  font-size: 16px;
  font-weight: 500;
  background:  radial-gradient(circle, rgba(212,214,217,1) 0%, rgba(244,243,243,1) 73%, rgba(212,214,217,1) 100%);
  padding: 20px 0;
  margin-bottom: 12px;
  letter-spacing: 0.05em;
}

.trouble_list li:last-of-type {
  margin-bottom: 0;
}

.trouble_list li span {
  font-size: 20px;
}

.trouble_help {
  color: #00163E;
  font-size: 22px;
  text-align: center;
  padding-bottom: 90px;
  letter-spacing: 0.05em;
  line-height: 1.8;
  font-family: 'Zen Old Mincho', serif;
  font-weight: 500;
}

.trouble_product {
  font-size: 27px;
}

.trouble_big {
  font-size: 24px;
}

.trouble_support {
  color: #2664D9;
  font-size: 27px;
  font-weight: 500;
}

/*----------------------------
  Reason
----------------------------*/
.reason {
  background: #fff;
}

.reason_circle_wrap {
  position: relative;
  margin-bottom: 80px;
  overflow-x: clip;
}

.reason_circle {
  border: dotted #97B0E3 3px;
  border-radius: 50%;
  height: auto;
  width: 79%;
  aspect-ratio: 1/1;
  padding: 16% 0 0  11%;
}

.reason_circle img {
  width: 60%;
}

.reason_ppl {
  position: absolute;
  right: -80px;
  top: 91px;
}

.reason_ttl_bg {
  color: #E4EAF5;
  font-size: 40px;
  font-family: "High Summit", sans-serif;
}

.reason h3  {
  color: #00163E;
  font-size: 22PX;
  letter-spacing: 0.05em;
  font-family: 'Zen Old Mincho', serif;
  line-height: 1.6;
  margin-top: -33px;
  margin-bottom: 21px;
}

.reason_detail {
  color: #313131;
  font-weight: 300;
  font-size: 14px;
  line-height: 2;
  margin-bottom: 44px;
}

.reason1_img_wrap {
  display: flex;
  align-items: center;
  margin-bottom: 35px;
}

.reason1_img {
  width: 46%;
}

.reason1_img_list_wrap {
  text-align: center;
  width: 54%;
}

.reason1_img_list {
  color: #969696;
  font-size: 11px;
  font-weight: 300;
  display: flex;
  flex-wrap: wrap;
  line-height: 2;
  gap: 10px 5px;
  justify-content: flex-start;
}

.reason1_img_list li {
  border: 0.5px #959595 solid;
  border-radius: 18px;
  padding: 0 10px;
}

.reason2_detail {
  margin-bottom: 62px;
}

.reason_productimg {
  position: relative;
  background: #E0E7EF;
  padding-bottom: 20px;
}

.reason_productimg::before {
  content: "";
  background: linear-gradient(to top, rgba(255,255,255,0), #fff 43%);
  position: absolute;
  width: 100%;
  height: 26%;
  top: 0;
}


.reason_productimg_tt {
  position: absolute;
  bottom: 15px;
  width: 67%;
  text-align: center;
  left: 17%;
}

.reason_productimg_img {
  width: 100%;
}

/*----------------------------
    PRICE
----------------------------*/
.price {
  background: #E0E7EF;
}

.price_box_ttl {
  background-color: #8B7346;
  color: #fff;
  font-family: 'Zen Old Mincho', serif;
  font-size: 22px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 17px 0;
  position: relative;
  font-weight: 400;
}

.price_box_ttl ruby {
  font-size: 28px;
}

.price_box_ttl::after {
  content: "";
  background:#8B7346 ;
  clip-path: polygon(70% 0, 31% 0, 50% 32%);
  bottom: -53px;
  width: 85px;
  height: 55px;
  position: absolute;
  left: 40%;
}

.price_box {
  background: #fff;
  margin-top: -11px;
  padding: 30px 15px 45px;
}

.price_box_subttl {
  font-size: 18px;
  color: #fff;
  background: #00163E;
  padding: 10px 0;
  text-align: center;
  letter-spacing: 0.125em;
  margin-bottom: 15px;
  line-height: 1.7;
}

.price_shipping {
  color: #969696;
  font-size: 14px;
  text-align: center;
  letter-spacing: 0.05em;
  margin-bottom: 15px;
  line-height: 1.7;
}

.price_compare {
  align-items: center;
  display: flex;
  justify-content: center;
  margin-bottom: 22px;
}

.price_normal {
  position: relative;
  margin-right: 10px;
  width: 34%;
}

.price_normal::before {
  content: "";
  position: absolute;
  background: url(/../img/cross_line.svg) no-repeat;
  width: 100%;
  height: 40px;
  top: 0;
}

.price_normal_ttl {
  font-size: 10px;
  color: #969696;
  line-height: 1;
  letter-spacing: 0.025em;
}

.price_normal_price {
  font-size: 15px;
}

.price_normal_yen {
  font-size: 14px;
}

.price_zei {
  color: #969696;
  font-size: 10px;
  letter-spacing: 0.025em;
}

.price_sale {
  align-items: center;
  display: flex;
  justify-content: center;
  width: 63%;
}

.price_sale_box {
  background: #D50000;
  padding: 9px 0;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  width: 55px;
  height: 55px;
  margin-right: 6px;
  text-align: center;
}

.price_sale_price {
  color: #D50000;
  font-size: 52px;
  font-family: "Lato",sans-serif;
  letter-spacing: 0.025em;
  line-height: 0.9;
  font-weight: 700;
}

.price_sale_yen {
  color: #D50000;
  font-size: 29px;
  font-family: "Lato",sans-serif;
  line-height: 1;
  font-weight: 700;
}

.price_sale_tt {
  text-align: center;
}

.price_sale_content {
  display: flex;
}

.price_box_content {
  align-items: center;
  display: flex;
  justify-content: center;
  margin-bottom: 40px;
}

.price_box_content_tt {
  width: 53%;
  margin-right: 40px;
}

.price_box_content_img {
  width: 29%;
}

.price_box_content_tt img {
  width: 172px;
  margin-bottom: 22px;
}

.price_box_content_tt_list li {
  font-size: 14px;
  color: #00163E;
  font-weight: 700;
  background: #E4EAF5;
  padding: 15px 0;
  margin-bottom: 15px;
  text-align: center;
  position: relative;
}

.price_box_content_tt_list li:nth-child(2)::after {
  content: "";
  position: absolute;
  background: url(/../img/price_box_content_list.svg) no-repeat;
  width: 50px;
  top: -18px;
  right: -15px;
  height: 50px;
  background-size: contain;
}

.price_box_content_tt_list li:last-of-type {
  margin-bottom: 0;
}

.price_more {
  color: #00163E;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.3;
  text-align: center;
  margin-top: 45px;
  margin-bottom: 35px;
  position: relative;
}

.price_more::before {
  content: "";
  background: url(/../img/left_line.svg) no-repeat;
  width: 40px;
  height: 55px;
  position: absolute;
  left: 17%;
  top: 0;
}

.price_more::after {
  content: "";
  background: url(/../img/right_line.svg) no-repeat;
  width: 40px;
  height: 55px;
  position: absolute;
  right: 17%;
  top: 0;
}

.price_more_subttl {
  background: #8B7346;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.125em;
  line-height: 1.7;
  text-align: center;
  padding: 17px 0;
  position: relative;
  margin-bottom: 45px;
}

.price_more_subttl::before {
  content: "";
  background: linear-gradient(90deg, rgba(139,115,70,1) 0%, rgba(224,231,239,1) 100%);
  width: 11%;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
}

.price_more_subttl::after {
  content: "";
  background: linear-gradient(270deg, rgba(139,115,70,1) 0%, rgba(224,231,239,1) 100%);
  width: 11%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.price_more_wrap {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  padding-bottom: 63px;
}

.price_mroe_img {
  position: relative;
  width: 45%;
}

.price_mroe_img img {
  z-index: 1;
  position: relative;
}

.price_mroe_img::after {
  background: #fff;
  border-radius: 50%;
  content: "";
  margin-right: 15px;
  max-width: 178px;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  position: absolute;
  left: -2%;
  z-index: 0;
  top: -6%;
}

.price_more_content {
  width: 49%;
}

.price_more_ttl {
  color: #313131;
  font-size: clamp(0.813rem, -0.089rem + 3.85vw, 0.875rem);
  letter-spacing: 0.05em;
  line-height: 2;
  font-family: 'Zen Old Mincho', serif;
  font-weight: 400;
}

.price_more_tt {
  text-align: center;
  color: #8B7346;
  font-size: 12px;
  letter-spacing: 0.05em;
  font-weight: 300;
  line-height: 1.75;
}

/*----------------------------
    入力フォーム
----------------------------*/
/* フォーム全体 */
.section_form {
  background: #F7F7F7;
  padding: 45px 0 55px;
}

.section_form input {
  border-radius: 4px;
  border: 1px solid #e1e1e1;
  font-size: 14px;
  line-height: 1.5;
  padding: 11px 8px;
  width: 100%;
}

.form_item {
  background: #FFF;
  padding: 25px 0;
  margin-bottom: 20px;
}

.form_title {
  border-bottom: #E3E3E3 1px solid;
  color: #00163E;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  text-align: center;
  padding: 0 3.8% 20px;
}

.form_main {
  padding-top: 25px;
}

.form_checkbox input {
  opacity: 0;
}

.form_checkbox label {
  position: relative;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.form_checkbox label::before {
  font-family: "Font Awesome 5 Free";
  content: '\f00c';
  font-weight: 900;
}

.section_form select {
  background-color: #fff;
  border-radius: 4px;
  font-size: 14px;
  padding: 11px 8px;
  line-height: 1;
  border: #E0E0E0 1px solid;
  position: relative;
}

.form_btn {
  border: none;
  border-radius: 99999999px;
  color: #fff;
  padding: 15px 0;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.025em;
  line-height: 2;
  box-shadow: 0 1.15rem 1.75rem -0.4rem rgba(0,0,0,0.15);
  display: block;
  width: 350px;
  text-align: center;
  margin: 25px auto 0;
}

.confirm .form_btn.form_back {
  color: #313131;
  background: #fff;
  margin: 0 auto 30px;
}

.confirm .form_btn.form_back_without_margin {
  color: #313131;
  background: #fff;
}

.border_line.form_item {
  border-radius: 4px;
  margin: 0 3% 20px;
}

.checkbox_wrap {
  align-items: center;
  display: flex;
}

.checkbox_wrap input {
  width: 13%;
  position: relative;
}

.checkbox_wrap.checkbox_wrap_middle input {
  width: 25px;
}

.checkbox_wrap.checkbox_wrap_small input {
  width: 20px;
}

.checkbox_wrap input {
  display: none;
}

.checkbox label {
  position: relative;
}

.checkbox_wrap label::before {
  background-color: #EDEDED;
  border: none;
  border-radius: 50%;
  height: 40px;
  width: 40px;
  position: absolute;
  content: "";
  top: 3px;
  left: 12px;
}

.checkbox_wrap .checkbox_middle::before {
  height: 25px;
  width: 25px;
  top: 2px;
  left: -10px;
}

.checkbox_wrap .checkbox_small::before {
  height: 19px;
  width: 19px;
  top: 1px;
  left: 1px;
}



.checkbox_wrap label::after {
  color: #fff;
  border: none;
  border-radius: 50%;
  height: 20px;
  width: 20px;
  position: absolute;
  content: "\f00c";
  top: 9px;
  left: 22px;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 20px;
}


.checkbox_wrap .checkbox_middle::after {
  top: 7px;
  left: -5px;
  font-size: 15px;
}


.checkbox_wrap .checkbox_small::after {
  top: 6px;
  left: 6px;
  font-size: 10px;
}



.checkbox_wrap .checked::after {
  color: #4B91E9;
}

.checkbox_wrap .checkbox_tt {
  position: relative;
  padding-left: 15%;
  width: 95%;
}


.checkbox_wrap.checkbox_wrap_middle label {
  position: relative;
  padding-left: 6%;
  margin-left: 12px;
}


.input_row {
  margin-bottom: 9px;
  padding: 0 15px;
}

.form_content {
  padding: 0 3.8%;
  border-bottom: 1px #E3E3E3 solid;
}

.form_content > .form_content {
  border-bottom: none;
}

.form_content:last-of-type {
  border-bottom: none;
}

.form_content_input {
  color: #313131;
}

.form_content_input .input_row {
  padding: 0;
}

.form_error {
  color: #D50000;
  font-size: 10px;
  margin-bottom: 5px;
}

.form_content_ttl {
  color: #313131;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  margin-bottom: 6px;
}

.required_icon {
  color: #fff;
  background-color: #D50000;
  border-radius: 2px;
  line-height: 1.75;
  padding: 1px 4px;
  font-size: 12px;
  margin-left: 7px;
}

.input_flex .input_row {
  align-items: stretch;
  display: flex;
  column-gap: 10px;
}


.input_flex .input_row.no_flex {
  display: block;
}

.single_flex {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.form_main .form_content:not(:first-of-type) {
  padding-top: 15px;
}

/*　商品の選択　*/

.item_box {
  align-items: center;
  border-bottom: #E3E3E3 1px solid;
  display: flex;
  justify-content: space-between;
  padding: 25px 6%;
}
.hv_variation.item_box {
  border-bottom: none;
}

.varitaion_line {
  border-bottom: #E3E3E3 1px solid;
  padding-bottom: 15px;
}

.item_detail {
  width: 56%;
}

.item_detail h3 {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin-bottom: 5px;
}

.item_price {
  font-size: 12px;
  line-height: 1.8;
  margin-bottom: 10px;
}

.item_price span {
  font-size: 16px;
  margin: 0 5px;
  line-height: 1.5;
}

.item_delete {
  color: #969696;
  font-size: 12px;
  padding: 0;
  text-decoration: underline;
  letter-spacing: 0.05em;
  line-height: 1.75;
}

.item_quantity {
  width: 35%;
}

.item_quantity .input-group {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.item_total_quantity {
  font-size: 14px;
  margin-bottom: 15px;
}

.item_total {
  font-size: 16px;
}

.item_total_price span {
  letter-spacing: 0.025em;
  font-size: 20px;
  font-weight: 600;
  margin-right: 5px;
}

.item_choice .form_item_list:last-child .item_box {
  border-bottom: none;
}

/* WebKit ブラウザで、input type="number" のスピンボタンを非表示にする。 */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

/* Firefox で、input type="number" のスピンボタンを非表示にする。また、入力欄の値表示を中央寄せにし、高さをボタンのサイズに合わせる。 */
input[type="number"] {
  -moz-appearance: textfield;
  text-align: center;
  height: 44px;
}

.btn-number {
  width: 40px;
  height: 40px;
  background: #EDEDED;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  padding: 0;
  font-size: 30px;
}

.btn-number i {
  font-size: 15px;
}

.btn.disabled, .btn:disabled {
  opacity: 0;
}

.section_form select.item_num {
  color: #313131;
  border: none;
  font-family: "Open Sans", sans-serif;
  font-size: 20px;
  font-weight: 600;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  text-align: -webkit-center;
}

/*　バリエーション　*/
.form_variation_wrap {
  background: #F7F7F7;
  padding: 16px;
  width: 95%;
  margin: 0 auto 15px;
}

.variation_ttl {
  color: #313131;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 8px;
}

.form_variation_wrap select {
  color: #313131;
  font-weight: 500;
  width: 100%;
  margin-bottom: 15px;
  height: 40px;
}

/*　ギフト　*/
.gift_wrap.checkbox_wrap {
  padding: 25px 3.8%;
  justify-content: space-between;
}

.gift_wrap .select_wrap {
  width: 180px;
}

.gift_wrap .select_wrap select {
  width: 100%;
}

.checkbox_wrap .checkbox_tt.gift_type_ttl {
  padding: 0;
  width: 50%;
}

.gift .checkbox_wrap label::before {
  top: -10px;
  left: 13px;
}

.gift .checkbox_wrap label::after {
  top: -2px;
  left: 23px;
}

.gift .form_main {
  border-top: 1px solid #E3E3E3;
}

.gift .form_content {
  border-bottom: none;
}

.gift_ttl {
  font-size: 14px;
  line-height: 1.5;
  margin-bottom: 10px;
}

.gift_choice select {
  height: 40px;
  width: 100%;
}

.gift textarea {
  width: 100%;
  height: 75px;
  padding: 15px 8px;
  font-size: 14px;
  border: #E0E0E0 1px solid;
  border-radius: 4px;
  font-family: "Noto Sans JP", sans-serif;

  font-weight: 400;
  margin-top: 10px;
}


/*　ログイン部分　*/
.checkbox_tt {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.checkbox_tt span {
  color: #D50000;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
}

.checkbox_tt .guset_grey {
  color: #969696;
}

/*　AmazonPayアカウント　*/
.form_item.amazon_form {
  padding: 40px 3.8%;
}

.amazon_form .form_wrap {
  align-items: center;
  flex-direction: column;
  display: flex;
  row-gap: 20px;
}

.amazon_explain {
  font-size: 14px;
}

/*　会員情報の入力　*/
.user_info input {
  background-color: #fff;
  -webkit-appearance: auto;
  padding: 11px 8px;
}

.zip_explain {
  display: flex;
  align-items: center;
  font-size: 12px;
  line-height: 1;
  color: #969696;
}


.zip_explain i {
  margin-right: 5px;
  font-size: 12px;
}

.input_row.input_flex {
  align-items: center;
  display: flex;
}

.zip_number {
  margin-right: 10px;
  width: 58%;
}

.zip_search a {
  display: flex;
  align-items: center;
  color: #3191F0;
  font-size: clamp(0.688rem, -0.964rem + 7.14vw, 0.875rem);
  letter-spacing: 0.025em;
  line-height: 1.6;
  text-decoration: none;
}

.region {
  width: 49%;
}

.region .form_content_ttl {
  margin-bottom: 7px;
}

.section_form select.p-region {
  color: #969696;
  font-size: 14px;
  padding: 11px 8px;
  border-radius: 4px;
  line-height: 1.5;
  height: 45px;
  width: 100%;
}

.locality {
  width: 60%;
}

.input_flex .input_row.zip_wrap {
  align-items: baseline;
}

.zip_search i {
  font-size: 12px;
  margin-left: 5px;
}

.radio_wrap {
  display: flex;
}

.user_info .radio_wrap input {
  z-index: 0;
  width: 22px;
  height: 22px;
  accent-color: #3191F0;
  position: relative;
  border: #EDEDED;
  background-color: #EDEDED;
  color: #969696;
}

.checkbox_wrap.checkbox_wrap_small label {
  position: relative;
  font-size: 14px;
  padding-left: 9%;
}

/*　新しいお届け先　*/
.address_new .checkbox_wrap {
  padding: 25px 3% 0;
}

.address_new_form {
  margin-top: 16px;
  padding: 0 0 25px;
}

/*　配送方法の指定　*/
.shipping_method select {
  width: 100%;
}

/*　2回目以降のお届け日設定*/
.form_future_box {
  margin-bottom: 16px;
}

.form_main .form_content.future_input {
  padding-top: 0;
}

.future_input .form_content_input {
  align-items: center;
  column-gap: 8px;
  display: flex;
  margin-bottom: 8px;
  padding-left: 8px;
}

.future_shipping h3 input {
  opacity: 0;
}

.future_shipping .payment_content label {
  width: 100%;
  position: relative;
}

.future_shipping .payment_content label::before {
  background-color: #EDEDED;
  border: none;
  border-radius: 50%;
  height: 26px;
  width: 26px;
  position: absolute;
  content: "";
  top: -4px;
  right: -30px;
}


.future_shipping .payment_content input {
  width: 20px;
  height: 20px;
}


.future_shipping .payment_content label::after {
  color: #fff;
  border: none;
  border-radius: 50%;
  height: 11px;
  width: 11px;
  position: absolute;
  content: "\f00c";
  top: 1px;
  right: -22px;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 11px;
}

.future_shipping select {
  height: 40px;
  min-width: 116px;
  padding: 10px 12px;
}

.future_shipping .payment_content .checked.theme_color {
  color: #313131;
}


.future_shipping.form_item {
  padding: 25px 0 10px;
}

.card_select_wrapper {
  color: #313131;
  margin-top: 10px;
}

.card_welect_wrapper:first-child {
  display: block;
}

.card_select_wrapper .checkbox_wrap.checkbox_wrap_small label {
  font-size: 13px;
  padding-left: 10px;
}

.card_select_wrapper .checkbox_wrap.checkbox_wrap_small label::before {
  top: 0;
  left: -23px;
}

.card_select_wrapper .checkbox_wrap.checkbox_wrap_small label::after {
  top: 3px;
  left: -18px;
}

.card_select_wrapper input {
  opacity: 0;
}

.input_row.checkbox_wrap.checkbox_wrap_small.checkbox_wrap_left {
  margin-bottom: 10px;
}

.card_select_current {
  margin-bottom: 15px;
}

.card_current_num {
  font-size: 13px;
  padding: 0 15px 0 52px;
}


/*　お届け日の指定　*/
.shipping_day select {
  width: 100%;
}

.shipping_day .form_content {
  border: none;
}

/*　ポイントの使用　*/
.point_use .input_flex .input_row {
  justify-content: space-between;
}
.form_content_ttl {
  font-size: 14px;
    letter-spacing: 0.05em;
    line-height: 1.5;
}

.point_current {
  font-size: 12px;
}

.point_current span {
  color: #3191F0;
  font-size: 14px;
  font-weight: 700;
  font-family: "Open Sans", sans-serif;
  margin-right: 5px;
}

.use_point {
  width: 180px;
}


/*　お支払い方法　*/
.payment_content .checkbox {
  opacity: 0;
  width: 24px;
}

.payment_content .checked.theme_color {
  color: #313131;
}

.payment_content input {
  text-align: left;
}

.payment_content label {
  position: relative;
  width: 100%;
}

.payment_content label::before {
  background-color: #EDEDED;
  border: none;
  border-radius: 50%;
  height: 40px;
  width: 40px;
  position: absolute;
  content: "";
  top: -8px;
  right: -35px;
}

.payment_content label::after {
  color: #fff;
  border: none;
  border-radius: 50%;
  height: 20px;
  width: 20px;
  position: absolute;
  content: "\f00c";
  top: -2px;
  right: -25px;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 20px;
}

.payment_content .input_year {
  width: 44%;
}

.payment_content .input_month {
  width: 35%;
}


.form_content_ttl.payment_ttl {
  align-items: center;
  display: flex;
  justify-content: space-between;
  border: #E0E0E0 1px solid;
  border-radius: 4px;
  padding: 18px 15px;
  margin-bottom: 15px;
}


.card_brand {
  display: flex;
  gap: 10px;
  margin: 30px 0;
  flex-wrap: wrap;
}

.card_brand img {
  width: auto;
  height: 30px;
}

.payment_content.form_content {
  border: none;
  margin-bottom: 15px;
}

.securitycode {
  margin-bottom: 40px;
}

.payment_method input {
  display: block;
}

.payment_method .input_year .select_wrap {
  width: 89%;
}

.payment_method .input_year select {
  width: 100%;
}

.payment_method .form_content.description {
  padding: 0;
  color: #313131;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

/*　備考　*/
.form_other textarea {
  width: 100%;
  height: 75px;
  padding: 15px 20px;
  font-size: 14px;
  border: #E0E0E0 1px solid;
  border-radius: 4px;
  font-family: "Noto Sans JP", sans-serif;
}

/* プライバシーポリシー */
.policy_wrap {
  padding: 0 3.8%;
  font-size: 14px;
}
.policy_wrap a {
  color: #5c77fc;
  text-decoration: none;
  cursor: pointer;
}

.policy_ok {
  justify-content: center;
}

.layer {
  background: rgba(0, 0, 0, .2);
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s linear, visibility 1s linear, z-index 1s linear;
}

.layer.is-open {
  z-index: 999;
  opacity: 1;
  visibility: visible;
}

.layer.is-open .modal{
  opacity: 1;
  visibility: visible;
}

.modal__button-wrap {
  position: absolute;
  right: -20px;
  top: -20px;
  display: inline-flex;
}


.close-button {
  position: relative;
  width: 39px;
  height: 39px;
  background: #EDEDED;
  border-radius: 50%;
  padding: 0;
  border: transparent;
  cursor: pointer;
}

.close-button span {
  width: 25px;
  height: 4px;
  background: #fff;
  display: inline-block;
  position: absolute;
  left: calc(50% - 12px);
  top: 49%;
  border-radius: 20px;
}

.close-button span:nth-child(1) {
  transform: rotate(45deg) translate(-1px, -1px);
}

.close-button span:nth-child(2) {
  transform: rotate(-45deg) translate(1px, -1px);
}

.modal {
  position: relative;
  margin-right: auto;
  margin-left: auto;
  width: 80%;
  opacity: 0;
  visibility: hidden;
  transition:  visibility .7s linear, opacity .7s linear;
}

.modal__inner {
  margin-top: 125px;
  margin-bottom: 125px;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  box-shadow: 3px 4px 4px rgba(0, 0, 0, 0.25);
  display: block;
  padding: 25px;
  height: auto;
}

.modal__button-area {
  max-width: 843px;
  margin-right: auto;
  margin-left: auto;
  margin-top: 17px;
  padding-top: 15px;
}

.modal__contents {
  color: #313131;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.policy_content_wrap {
  padding: 15px 0;
  width: 100%;
  margin: 0 auto;
}

.policy_content {
  padding: 0 26px;
  margin: 0 auto;
}

.policy_content_hidden {
  display: none;
}






/*--------------------------
  確認画面
----------------------------*/

.confirm .user_info {
  padding: 25px 0 0;
}

.confirm .form_content_ttl {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.3;
  color: #313131;
}

.form_content_confirm {
  color: #5F5F5F;
}

.confirm .form_content {
  padding-bottom: 25px;
}

.item_confirm_quantity {
  font-size: 12px;
  line-height: 1.76;
  color: #969696;
}

.item_confirm_price_wrap {
  text-align: right;
}

.item_confirm_price_wrap p {
  font-size: 12px;
  line-height: 1.75;
  letter-spacing: 0.025em;
  color: #313131;
}


.item_confirm_price_wrap .item_confirm_price {
  font-size: 12px;
}

.item_confirm_price span {
  font-family: "Open Sans", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.3;
}

.item_confirm_box {
  padding: 10px 4% 0;
}

.item_confirm_box_list {
  color: #5F5F5F;
  justify-content: space-between;
  font-size: 14px;
  display: flex;
}

.item_total_quantity_all {
  color: #313131;
  font-size: 16px;
}

.item_total_confirm {
  color: #3191F0;
  font-size: 20px;
  letter-spacing: 0.025em;
  font-family: "Open Sans", sans-serif;
  font-weight: 600;
}

.confirm .form_btn {
  margin: 40px auto 20px;
}

.form_main .form_btn {
  width: 90%;
  max-width: 350px;
}

/*----------------------------
  フッター
----------------------------*/
.footer {
  background: #00163E;
  padding: 45px 4% 140px;
}

.footer-logo {
  text-align: center;
  margin-bottom: 35px;
}

.footer_info {
  color: #fff;
  font-size: 14px;
  font-weight: 300;
  letter-spacing: 0.05em;
  line-height: 2;
  width: 70%;
  margin: 0 auto 45px;
}

.footer_info p a {
  color: #fff;
}

.footer_sns {
  text-align: center;
  margin-bottom: 55px;
}

.footer_sns a {
  margin-right: 25px;
}

.footer_sns a:last-of-type {
  margin-right: 0;
  margin-bottom: 55px;
}

.footer_link {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-bottom: 40px;
}

.footer_link li a {
  color: #fff;
  font-size: 14px;
  font-weight: 300;
  letter-spacing: 0.05em;
}

.footer_copyright {
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1;
  text-align: center;
}


/*----------------------------
   フローティング
----------------------------*/

.floating_btn {
  bottom: 20px;
  position: fixed;
  width: 95%;
  margin: 0 auto;
  left: 2%;
  z-index: 10;
}

/*ボタン*/
.cta_move {
  animation: move1 infinite 1s ease-in;
}
@keyframes move1 {
  0% {
      transform: scale(1);
  }

  50% {
    transform: scale(0.96);
  }

  100% {
    transform: scale(1);
  }
}

.form_left {
  color: #fff;
  font-size: 16px;
  background: #BABABA;
  width: 100%;
  text-align: center;
  display: block;
  z-index: 1;
  position: fixed;
  bottom: 0;
  left: 0;
}

.form_left.float {
  position: fixed;
  bottom: 0;

}

.form_left_num {
  color: #FFFF00;
  font-family: "Open Sans", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.025em;
}

.form_left_must.required-icon {
  background-color: #D50000;
  border-radius: 2px;
  line-height: 1.75;
  padding: 1px 4px;
  font-size: 12px;
}

.input_year {
  justify-content: flex-start;
  width: 33%;
}


.input_year p, .input_month p, .input_day p {
  margin-left: 8px;
}

.input_year .form_num {
  width: 78%;
}

.input_year .form_num select {
  width: 100%;
}

.input_month, .input_day {
  width: 28%;
}


.input_month .select_wrap,
.input_day .select_wrap {
  align-items: center;
  display: flex;
  justify-content: flex-start;
  width: 100%;
}

.input_month select,
.input_day select {
  width: 69%;
}


.input_month .select_wrap::after,
.input_day .select_wrap::after  {
  right: 34%;
}

.input_day {
  justify-content: flex-start;
  width: 28%;
}

.input_day select {
  width: 69%;
}
/*----------------------------
   確認画面
----------------------------*/
#order_thanks {
  width: 100%;
  margin-bottom: 40px;
}

.layout_confirm #order_thanks .title-cart-color {
  color: #00163E;
  text-align: center;
  border-top: none;
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  padding: 20px 4%  0;
}

.layout_confirm .card {
  padding: 0;
  margin-bottom: 0;
}

.form-group.order_info {
  padding: 15px 4%;
  border-bottom: 1px solid #E3E3E3;
}

.form-group.order_info:last-of-type {
  border-bottom: none;
}

.form-group.order_info dt {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #313131;
  margin-bottom: 7px;
}

.form-group.order_info dt {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.3;
  color: #5F5F5F;
}

.form-group.order_info :last-of-type,
.form-group.order_info dd:last-of-type,
.form-group.order_info dt:last-of-type {
  margin-bottom: 0;
}

.confirm_item {
  display: flex;
  justify-content: space-between;
  padding: 15px 4%;
}

.item_name h6 {
  font-size: 14px;
  line-height: 1.5;
  color: #313131;
}

.item_name p {
  font-size: 12px;
  line-height: 1.76;
  color: #969696;
}

.item_price {
  font-size: 12px;
  line-height: 1.75;
  letter-spacing: 0.025em;
  color: #313131;
}

.item_price_num {
  font-family: "Open Sans", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.3;
}

.item_price_num span {
  font-size: 12px;
}

.table-responsive.confirm_table {
  background-color: #fff;
  padding: 10px 4% 25px;
}

.table-responsive.confirm_table th,
.table-responsive.confirm_table td {
  border-top: none;
  padding: 7px 0 0;
}
.table-responsive.confirm_table td {
  color: #5F5F5F;
}

.table-responsive.confirm_table .total {
  color: #313131;
  font-size: 16px;
}
.table-responsive.confirm_table .total_price_confirm {
  color: #3191F0;
  font-size: 20px;
  letter-spacing: 0.025em;
  font-family: "Open Sans", sans-serif;
  font-weight: 600;
}

.thanks_btn a {
  color: #fff;
  background: #3191F0;
  border: none;
  border-radius: 99999999px;
  width: 350px;
  padding: 15px 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.025em;
  margin: 40px auto;
}

.variation_confirm {
  background: #F7F7F7;
  margin-top: 5px;
  padding: 8px 16px;
}

@media screen and (min-width: 545px) and (max-width: 768px) {

  .shipping_explain, .zip_search {
    word-break: keep-all;
  }

}

@media screen and (min-width: 425px) and (max-width: 768px) {

  .price_compare {
    padding: 0 15px;
  }
}



@media screen and (min-width: 513px) and (max-width: 768px) {

  .price_normal {
    padding-left: 7%;
  }
}



/* ★★★★★★★★★★

2023年10月の追加部分

★★★★★★★★★★★ */
/*--- 全体　---*/
html.js-fixed {
  overflow: hidden;
}
/*--- 同梱メッセージ　---*/
/*モーダルを開くボタン*/
.including_wrap {
  background-color: #E0EFFD;
  margin-top: -4px;
  margin-bottom: 16px;
  padding: 38px 0;
}

.including_msg {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.including_msg_img {
  display: flex;
  justify-content: center;
  width: 29px;
}

.including_msg_img img {
  width: 5px;
  height: 26px;
}

.including_tt {
  font-size: 14px;
  font-weight: 400;
  font-size: 14px;
  color: #313131;
  letter-spacing: 0.05em;
  line-height: 1.5;
  width: 88%;
}

.modal-open{
	cursor: pointer;
  font-weight: 700;
  color: #D50000;
  text-decoration: underline;
}


/*--- 同梱モーダル　---*/

.modal-container{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	text-align: center;
	background: rgba(0,0,0,50%);
	overflow: auto;
	opacity: 0;
	visibility: hidden;
	transition: .3s;
    box-sizing: border-box;
}
.modal-container:before{
	content: "";
	display: inline-block;
	vertical-align: middle;
	height: 100%;
}
.modal-container.active{
	opacity: 1;
	visibility: visible;
  z-index: 99900;
}
.modal-body{
  position: fixed;
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  width: 100%;
  top: 70px;
  left: 0;
  overflow-y: scroll;
  height: 100%;
}

.modal-close{
	position: fixed;
	display: flex;
  align-items: center;
  justify-content: center;
  top: 33px;
  right: 3.8%;
	width: 22px;
	height: 22px;
	color: #fff;
	cursor: pointer;
  z-index: 999999;
}

.modal-close img {
  z-index: 999999;
}
.modal-content{
	background: #F7F7F7;
	text-align: left;
	padding: 0 0 100px;
}

.js-detail-hidden {
  display: none;
}

/*--- モーダルのタイトル---*/
.including_ttl {
  text-align: center;
  padding-top: 22px;
  padding-bottom: 22px;
  background-color: #fff;
}

.including_ttl h2 {
  font-weight: 500;
  font-size: 18px;
  color: #313131;
  letter-spacing: 0.05em;
  line-height: 1.16;
  margin-bottom: 2px;
}

.including_num {
  font-weight: 400;
  font-size: 14px;
  color: #313131;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.including_available_num {
  font-weight: 700;
}

/*--- モーダルの本文---*/
.including_main {
  background-color: #F7F7F7;
  padding-top: 16px;
}

.main_msg {
  font-weight: 400;
  font-size: 14px;
  color: #313131;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin-bottom: 16px;
}

.main_msg_num {
  font-weight: 700;
  color: #D50000;
}


/*---　モーダル内の商品選択　---*/
.including_list {
  background-color: #fff;
  padding: 0;
}

.including_box {
  border: #FFF 1px solid;
  border-bottom: #E3E3E3 1px solid;
  padding: 22px 6.5%;
}

.including_box:last-of-type {
  border-bottom: none;
}

.including_box_ttl {
  align-items: center;
  display: flex;
  justify-content: flex-start;
  column-gap: 16px;
  margin-bottom: 22px;
}

.including_box_ttl input {
  width: 30px;
  height: 30px;
  opacity: 0;
}

.including_box_ttl label {
  display: flex;
  position: relative;
  column-gap: 16px;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.5;

}

.including_box_ttl label::before {
  background-color: #EDEDED;
  border: none;
  border-radius: 50%;
  height: 30px;
  width: 30px;
  position: absolute;
  content: "";
  top: 10px;
  left: -48px;
}

.including_box_ttl label::after {
  color: #fff;
  border: none;
  border-radius: 50%;
  height: 11px;
  width: 11px;
  position: absolute;
  content: "\f00c";
  top: 15px;
  left: -40px;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 14px;
}

.including_box_ttl label.checked::after {
  color: #4B91E9
}

.including_box_img {
  width: 50px;
  height: 50px;
}

.including_box_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.including_box .check_middle span {
  font-weight: 500;
  font-size: 14px;
  color: #313131;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.detail_box {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.detail_box_ttl {
  font-weight: 400;
  font-size: 12px;
  color: #313131;
  letter-spacing: 0.05em;
  line-height: 1.75;
  width: 100%;
}

.detail_box_tt {
  font-weight: 400;
  font-size: 12px;
  color: #969696;
  letter-spacing: 0.05em;
  line-height: 1.75;
  width: 100%;
}

.js-detail-hidden_btn {
  font-weight: 400;
  font-size: 12px;
  color: #313131;
  letter-spacing: 0.05em;
  line-height: 1.75;
  text-align: center;
  position: relative;
  display: flex;
  column-gap: 8px;
  justify-content: center;
  margin: 12px 0;
}

.js-detail-hidden_btn:hover {
  cursor: pointer;
}

.js-detail-hidden_btn::after {
  color: #313131;
  display: inline-block;
  height: 100%;
  position: relative;
  content: "\f107";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 15px;
  width: 9px;
  transition: transform .3s ease-in-out, top .3s ease-in-out;
}

.js-detail-hidden_btn.open::after {
  transform: rotate(-180deg);
  top: -2px;
}

/*--- ポイント　---*/
.main_right .form_error {
  margin-bottom: 0;
}

.main_right_box {
  background-color: #fff;
  margin-top: 12px;
  padding: 0 0 0 0;
}

.main_box_upper {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 0 6.5% 12px;
  border-bottom: #E3E3E3 1px solid;
  font-size: 14px;
}

.main_box_upper::after {
  color: #969696;
  height: 20px;
  width: 20px;
  position: relative;
  content: "\f107";
  top: 4px;
  right: 8px;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 15px;
  pointer-events: none;
}

.point_current {
  font-weight: 500;
  font-size: 14px;
  color: #313131;
  letter-spacing: 0.025em;
  line-height: 1.5;
}

.point_current span {
  font-weight: 500;
  font-size: 20px;
  color: #3191f0;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.main_box_lower {
  padding: 12px 6.5%;
}

.main_explain {
  font-weight: 400;
  font-size: 14px;
  color: #00163e;
  letter-spacing: 0.05em;
  line-height: 2.2;
  margin-bottom: 12px;
}

.main_lower {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.main_lower_left {
  align-items: center;
  display: flex;
  width: 70%;
}

.main_box_lower .modal_input {
  text-align: right;
  padding: 10px 16px;
  width: 68%;
}

.modal_input + p {
  font-weight: 400;
  font-size: 14px;
  color: #313131;
  letter-spacing: 0.025em;
  line-height: 1.5;
  margin-left: 8px;
}

.point_btn {
  background-color: #3191F0;
  border: #3191F0 1px solid;
  color: #fff;
  border-radius: 4px;
  height: 45px;
  width: 56px;
  font-weight: 400;
  font-size: 14px;
  color: #ffffff;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-family: 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
}

.point_btn.point_available {
  background-color: #F7FDEC;
  border: #B2E94B 1px solid;
  position: relative;
}

.point_btn.point_available::after {
  color: #B2E94B;
  border: none;
  height: 11px;
  width: 16px;
  position: absolute;
  content: "\f00c";
  top: 8px;
  right: 20px;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 19px;
}

.point_btn.point_unavailable {
  background-color: #FBE5E5;
  border: #D50000 1px solid;
  position: relative;
}

.point_btn.point_unavailable::after {
  color: #D50000;
  border: none;
  height: 11px;
  width: 16px;
  position: absolute;
  content: "\f00d";
  top: 8px;
  right: 18px;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  font-size: 19px;
}


/*--- クーポン　---*/
.main_cupon_wrap input[type="radio"] {
  display: none;
}

.main_cupon_wrap input+label.modal_input {
  background-color: #fff;
  border: #E0E0E0 1px solid;
  display: block;
  text-align: left;
  width: fit-content;
  font-weight: 400;
  font-size: 12px;
  color: #969696;
  letter-spacing: 0.05em;
  line-height: 1.75;
  margin-bottom: 8px;
  border-radius: 4px;
}

.main_cupon_wrap input+label.modal_input:last-of-type {
  margin-bottom: 12px;
}

.main_cupon_wrap input:checked+label {
  border: #3191F0 1px solid;
  background: #E0EFFD;
}

.main_cupon_wrap.main_cupon_input {
  column-gap: 16px;
  display: flex;
}

.main_cupon_wrap.main_cupon_input input {
  width: 77%;
  max-width: 246px;
}

/*--- 同梱物が選択されていない時　---*/
.main_error {
  font-size: 14px;
  text-align: center;
  font-weight: 700;
  position: absolute;
  top: 21px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  width: 100%;
}

/*--- 決定＆キャンセルボタン　---*/
.main_right_btn {
  position: relative;
}

@media (width <= 767px) {
  .main_right_btn .form_btn.background_color {
    margin-top: 0;
  }

  .main_right_btn {
    margin-top: 25px;
    height: 149px;
  }
}

.background_color-white {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  background-color: #fff;
  color: #313131;
}

/*---　ブラウザごとの調整　---*/
  /*スマホのみ*/

.mobile .js-detail-hidden_btn::after {
  top: -2px;
}

/*iphoneのみ*/
.iphone .point_btn {
  font-size: 13px;
}

/* 同意ボタン視認性改善 */

.checkbox_wrap.checkbox_wrap_small label {
  font-size: 16px;
  font-weight: 500;
  position: relative;
  padding-left: 35px;
  margin-top: 30px;
}

.checkbox_wrap .checkbox_small::before {
  height: 20px;
  width: 20px;
  top: 2px;
  left: 1px;
  border-radius: 3px;
  border: 1px solid #000;
  background-color: #fff;
}

.layout_confirm .checkbox_wrap .checked::after {
  color: #5fd0f3;
  font-size: 25px;
  top: 0;
  left: 4px;
}

/* スクロールバー表示 */
/* 0702.htmlでプラグイン読み込み（19～22行目） */
/* .policy_content_hiddenにdata属性を追加（1071行目） */
.policy_content_hidden {
  -ms-overflow-style: none;
}

.policy_content_hidden::-webkit-scrollbar {
  display: none;
}

.simplebar-content-wrapper {
  direction: inherit;
  box-sizing: border-box !important;
  position: relative;
  display: block;
  height: 100%;
  width: auto;
  max-width: 100%;
  max-height: 100%;
  overflow: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  word-break: break-all;
}

/* 入力欄拡大させない */
.section_form input {
  border-radius: 4px;
  border: 1px solid #e1e1e1;
  font-size: 16px;
  line-height: 1.5;
  padding: 11px 8px;
  width: 100%;
}

.section_form select {
  background-color: #fff;
  border-radius: 4px;
  font-size: 16px;
  padding: 11px 8px;
  line-height: 1.5;
  border: #E0E0E0 1px solid;
  position: relative;
}

.section_form select.p-region {
  color: #969696;
  font-size: 16px;
  padding: 11px 8px;
  border-radius: 4px;
  line-height: 1.5;
  height: 48px;
  width: 100%;
  top: -1px;
}

#start_from .future_shipping select {
  height: 48px;
  min-width: 130px;
  padding: 10px 12px;
}

.section_form input#create_card_service_security_code {
  font-size: 16px !important;
}

.section_form input#create_card_service_security_code::placeholder {
  font-size: 0.8em;
}

.form_other textarea {
  width: 100%;
  height: 75px;
  padding: 15px 20px;
  font-size: 16px;
  border: #E0E0E0 1px solid;
  border-radius: 4px;
  font-family: "Noto Sans JP", sans-serif;
}

.orderDetails .variation_choice select {
  margin-bottom: 0;
  padding: 10px 16px;
  height: 48px;
}
