@charset "UTF-8";
/* ========================================
  @media screen and (min-width: 768px),print
======================================== */
@media screen and (min-width: 768px), print {
#set .seo_bread_list {
  margin-bottom: -67px;
  position: relative;
  z-index: 2;
  color: #141414;
}
#set .seo_bread_list span {
  color: #141414;
}

/* fv
-------------------------------------*/
.fv {
  max-width: 1920px;
  margin-inline: auto;
  width: 100%;
  position: relative;
}
.fv .ttl-box {
  background: #FFFFFF;
  width: min(95%, 1200px);
  margin-inline: auto;
  position: relative;
  margin-top: -8.35rem;
  padding: 0 0 3.8rem;
  margin-bottom: -18.7rem;
  z-index: 2;
}
.fv .ttl-box h2 {
  font-size: 50px;
  line-height: 1;
  letter-spacing: 0em;
  font-weight: 700;
  background-color: #FFFFFF;
  color: #2B6FAC;
  text-align: center;
  padding: 2.55rem 0;
  border-top: 15px solid #2B6FAC;
  position: relative;
  width: min(95%, 650px);
  margin-inline: auto;
  top: -3.8rem;
  margin-bottom: -5.7rem;
}
.fv .ttl-box::before {
  content: "";
  position: absolute;
  top: -10.3rem;
  left: 50%;
  transform: translateX(-50%);
  width: 241px;
  height: 241px;
  background: url(../images/set/set-icon.svg) no-repeat;
  background-size: contain;
}
.fv .price-frame {
  display: flex;
  align-items: baseline;
  gap: 50px;
  justify-content: center;
}
.fv .price-frame .include {
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  border: 1px solid #1C1C1C;
  padding: 0.45rem 0.4rem;
  width: 103px;
  position: relative;
  top: -2px;
}
.fv .price {
  display: inline-flex;
  gap: 8px;
  font-size: 96px;
  line-height: 1.197916;
  letter-spacing: 0em;
  font-weight: 700;
  color: #D7000F;
  position: relative;
  z-index: 2;
  padding: 0.25rem 0 0;
  margin: 0 0 15px 0;
}
.fv .price::after {
  content: "";
  position: absolute;
  bottom: 8px;
  right: 0;
  width: 103%;
  height: 15px;
  background: #FFDF4D;
  z-index: -1;
}
.fv .price .yen-mark {
  font-size: 43px;
  font-weight: 700;
  line-height: 2.62790;
  margin: 23px 0 0 -21px;
  color: #1C1C1C;
}
.fv .price .yen {
  font-size: 43px;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #1C1C1C;
  margin: 3.2rem 0 0;
}
.fv .price .small {
  font-size: 60px;
  letter-spacing: 0;
  font-weight: 700;
  color: #D7000F;
  margin: 2.25rem -6px 0 -8px;
}
.fv .txt {
  font-size: 24px;
  line-height: 1.5833333333;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
  margin-bottom: 2.5rem;
}
.fv .icon {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
  width: min(95%, 980px);
  margin-inline: auto;
}

/* worries
-------------------------------------*/
.worries {
  background: #F4F4F4;
  position: relative;
  max-width: 1920px;
  width: 100%;
  margin-inline: auto;
}
.worries::after {
  content: "";
  position: absolute;
  bottom: -3.65rem;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 200px;
  background: url(../images/page-common/worries-arrow.svg) no-repeat;
  background-size: contain;
  z-index:2;
}
.worries .inner {
  width: min(95%, 1280px);
  margin-inline: auto;
  padding: 23.5rem 0 12rem;
  text-align: center;
}
.worries h2 {
  font-weight: 700;
  font-size: 32px;
  letter-spacing: 0.1em;
  color: #1c1c1c;
  display: inline-block;
  text-align: center;
  position: relative;
  /* margin-right: 1.7rem; */
  margin-bottom: 1rem;
}
.worries h2::after {
  content: "";
  position: absolute;
  top: -3px;
  right: -49px;
  width: 47px;
  height: 52px;
  background: url(../images/page-common/worries-ttl-deco.svg) no-repeat;
  background-size: contain;
}
.worries .subt {
  font-size: 26px;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 500;
  margin-bottom: 3.05rem;
}
.worries .subt span {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #D7000F;
}

.worries .worries-box {
  width: min(95%, 1040px);
  background: #FFFFFF;
  border: 10px solid #EFEFEF;
  padding: 2.75rem 0 1.95rem;
  position: relative;
  margin-inline: auto;
}
.worries .worries-box::before {
  content: "";
  position: absolute;
  top: -3.2rem;
  right: -8.2rem;
  width: 307px;
  height: 253px;
  background: url(../images/set/worries-photo01.png) no-repeat;
  background-size: contain;
}
.worries .worries-box::after {
  content: "";
  position: absolute;
  bottom: -1.95rem;
  left: -8.2rem;
  width: 276px;
  height: 212px;
  background: url(../images/page-common/worries-deco.png) no-repeat;
  background-size: contain;
}
.worries .worries-box .list {
  width: min(95%, 900px);
  margin-inline: auto;
  display: grid;
  gap: 1.5rem;
  margin-bottom: 0.6rem;
}
.worries .worries-box .list li {
  color: #141414;
  font-size: 20px;
  line-height: 2;
  letter-spacing: 0.1em;
  font-weight: 500;
  text-align: left;
  padding: 0 0 0.85rem 7.85rem;
  border-bottom: 1px dashed #8F8F8F;
  position: relative;
}
.worries .worries-box .list li::before {
  content: "";
  position: absolute;
  top: 0.7rem;
  left: 5.6rem;
  width: 26px;
  height: 20px;
  background: url(../images/page-common/check-icon.svg) no-repeat;
  background-size: contain;
}
.worries .worries-box .list li span {
  color: #2B6FAC;
}
.worries .worries-box .txt {
  text-align: center;
  font-size: 20px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
}
.worries .worries-box .deco {
  position: absolute;
  right: -5.6rem;
  top: 13.5rem;
}

/* leave
-------------------------------------*/
.leave {
  background: #FCCF00;
  position: relative;
  padding: 0 0 5.55rem;
  margin-top: -0.2rem;
  max-width: 1920px;
  width: 100%;
  margin-inline: auto;
}
.leave::before {
  content: "";
  position: absolute;
  top: -8.6rem;
  left: 0;
  width: 100%;
  height: 140px;
  background: url(../images/page-common/leave-bg.svg) no-repeat;
  background-size: cover;
}
.leave .inner {
  width: min(95%, 1600px);
  margin-inline: auto;
  text-align: center;
  padding: 8.5rem 0 0;
  position: relative;
}
.leave .inner::before {
  content: "";
  position: absolute;
  top: 0.25rem;
  left: 9.75rem;
  width: 447px;
  height: 210px;
  background: url(../images/page-common/leave-en.svg) no-repeat;
  background-size: contain;
  z-index: 1;
}
.leave h2 {
  text-align: center;
  display: inline-block;
  position: relative;
  margin-bottom: 3.05rem;
  z-index: 2;
}

.leave .photo {
  text-align: center;
  position: relative;
  z-index: 2;
}
.leave .photo::before {
  content: "";
  position: absolute;
  top: -117px;
  right: 14.3rem;
  width: 140px;
  height: 184px;
  background: url(../images/page-common/leave-box-deco.png) no-repeat;
  background-size: contain;
  z-index: -1;
}



/* merit
-------------------------------------*/
.merit {

}
.merit .inner {
  width: min(95%, 1600px);
  margin-inline: auto;
  position: relative;
  padding: 11.05rem 0 5.55rem;
  margin-bottom: 19.4rem;
}
.merit .inner::after {
  background: #D7000F;
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 573px;
  z-index: 1;
  pointer-events: none;
}
.merit h2 {
  font-size: 40px;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #141414;
  text-align: center;
  margin-bottom: 4.9375rem;
  position: relative;
  z-index: 3;
}
.merit h2 span {
  font-size: 32px;
  line-height: 1.25;
  letter-spacing: 0.1em;
  font-weight: 700;
}
.merit .enttl {
  position: absolute;
  top: 5.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}
.merit .list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem;
  position: relative;
  z-index: 2;
  width: min(95%, 1400px);
  margin-inline: auto;
}
.merit .txt-box {
  background: #FFFFFF;
  margin-top: -2rem;
  position: relative;
  z-index: 3;
  width: min(95%, 380px);
  margin-inline: auto;
  height: 406px;
}
.merit .txt-box .num {
  background: #1C1C1C;
  border: 1px solid #FFFFFF;
  font-size: 24px;
  line-height: 1.6666666667;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #FFFFFF;
  text-align: center;
  padding: 0.55rem 0;
  margin-bottom: 1.6rem;
}
.merit .txt-box .num span {
  color: #FDF202;
}
.merit .txt-box h3 {
  font-size: 22px;
  line-height: 1.8181818182;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
  margin-bottom: 1.5rem;
}
.merit .txt-box .txt {
  font-size: 16px;
  line-height: 1.875;
  letter-spacing: 0.1em;
  font-weight: 500;
  padding: 0 2.5rem 2.4rem;
}
.merit .txt-box .txt span {
  font-size: 14px;
  font-weight: 500;
  line-height: 2.1428;
  letter-spacing: 0.1em;
  display: block;
}
.merit .photo {
  text-align: center;
}
/* list02 */
.merit .list02 .txt-box .txt {
  letter-spacing: 0.04em;
}

 /* reform
 -------------------------------------*/
 .reform {
  background: url(../images/index/reform-bg.png) no-repeat center center/cover;
}
.reform .inner {
  width: min(95%, 1200px);
  margin-inline: auto;
  padding: 0 0 7rem;
}
.reform .ttl-box {
  background: #FFFFFF;
  position: relative;
  top: -8.7rem;
  width: min(95%, 940px);
  margin-inline: auto;
  padding: 0 0 4.25rem;
  margin-bottom: -1.8rem;
}
.reform .ttl-box::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -2.55rem;
  width: 117px;
  height: 45px;
  background: url(../images/index/ttl-box-arrow.svg) no-repeat center center/contain;
}
.reform .en-ttl {
  font-size: 36px;
  line-height: 1;
  letter-spacing: 0em;
  font-weight: 400;
  text-align: center;
  position: relative;
  margin-bottom: 4.1rem;
  color: #0096DF;
}
.reform .en-ttl::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -1.35rem;
  width: 5.9375rem;
  height: 2px;
  background-color: #0096DF;
}
.reform h2 {
  text-align: center;
}

.reform .list {
  margin-bottom: 4.375rem;
}
.reform .list li h3 {
  font-size: 32px;
  line-height: 1;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #FFFFFF;
  display: flex;
  gap: 0.9375rem;
  margin-bottom: 1.75rem;
  justify-content: center;
  align-items: center;
}
.reform .list li h3 .num {
  font-size: 28px;
  line-height: 1;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #0488E5;
  background: #FFFFFF;
  width: 3.125rem;
  height: 3.125rem;
  border-radius: 50%;
  display: grid;
  place-content: center;
}
.reform .list li .content {
  background: #FFFFFF;
  padding: 5.125rem 3.125rem 2.925rem;
}
.reform .list li .content .item {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
.reform .list li .content .item li {
  position: relative;
}
.reform .list li .content .item li h4 {
  position: absolute;
  top: -1.875rem;
  left: 50%;
  transform: translateX(-50%);
}
.reform .list li .content .item li .photo {
  margin-bottom: 0.375rem;
}
.reform  .item li .company {
  border: 1px solid #1C1C1C;
  font-size: 16px;
  line-height: 1.875;
  letter-spacing: 0em;
  font-weight: 700;
  margin-bottom: 0.5rem;
  position: relative;
  width: fit-content;
  margin-right: auto;
  display: flex;
}
.reform .item li .company .en {
  font-size: 16px;
  line-height: 1.875;
  letter-spacing: 0em;
  font-weight: 500;
  color: #FFFFFF;
  background: #1C1C1C;
  padding: 0rem 0.5rem;
}
.reform .item li .company .type {padding: 0rem 0.3rem;}

.reform .price-frame {
  display: flex;
  align-items: baseline;
  gap: 103px;
  margin: -7px 0 7px 360px;
  /* justify-content: center; */
}
/* before */
.reform .price-frame .before .normal {
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  border: 1px solid #1C1C1C;
  position: relative;
  top: -4px;
  padding: 2px 3px;
}
.reform .before .price {
  display: inline-flex;
  gap: 8px;
  font-size: 64px;
  line-height: 1.078125;
  letter-spacing: 0em;
  font-weight: 700;
  color: #141414;
  position: relative;
  z-index: 2;
  padding: 0.25rem 0 0;
  margin: 0;
  align-items: baseline;
}
.reform .before .price::after {
  content: "";
  position: absolute;
  bottom: 23px;
  right: -70px;
  width: 72px;
  height: 41px;
  background: url(../images/set/price-arrow.svg)no-repeat;
  background-size: contain;
}
.reform .before .price .small {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.725;
  margin: 0 0 0 -11px;
  color: #141414;
}
.reform .before .price .yen {
  font-size: 30px;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #141414;
  margin: 0 0 0 -7px;
}
.reform .before .price .include {
  font-size: 14px;
  letter-spacing: 0.1em;
  font-weight: 500;
  line-height: 1.21428;
  color: #141414;
  margin: 0 0 0 -12px;
}
/* after */
.reform .after .price {
  display: inline-flex;
  gap: 18px;
  font-size: 107px;
  line-height: 1.074766;
  letter-spacing: 0em;
  font-weight: 700;
  color: #D7000F;
  position: relative;
  z-index: 2;
  margin: 0;
  align-items: baseline;
}
.reform .after .price::after {
  content: "";
  position: absolute;
  bottom: 5px;
  left: -11px;
  width: 77%;
  height: 15px;
  background: #FFDF4D;
  z-index: -1;
}
.reform .after .price .small {
  font-size: 70px;
  font-weight: 700;
  line-height: 1.672857;
  margin: 23px 0 0 -21px;
  color: #D7000F;
}
.reform .after .price .yen {
  font-size: 50px;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #1C1C1C;
  margin: 0 0 0 -13px;
  position: relative;
  top: -7px;
}
.reform .after .price .include {
  font-size: 14px;
  letter-spacing: 0.05em;
  font-weight: 500;
  line-height: 2.142857;
  color: #1C1C1C;
  margin: 0 9px 0 -8px;
  position: relative;
  top: -16px;
  letter-spacing: 0.1em;
}
.reform .desc {
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 2.142857;
  text-align: center;
}
.reform  .maker {
  border: 1px solid #1C1C1C;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0em;
  font-weight: 700;
  margin-bottom: 0.5rem;
  position: relative;
  width: min(95%, 802px);
  display: flex;
  margin-inline: auto;
}
.reform .maker .en {
  color: #FFFFFF;
  background: #1C1C1C;
  padding: 0rem 1.1rem;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0.1em;
  font-weight: 700;
}
.reform .maker .type {padding: 0rem 1.2rem;background: #FFFFFF;font-size: 16px;font-weight: 700;line-height: 1.875;letter-spacing: 0.1em;}

/* flow
-------------------------------------*/
.flow {
  background: #EFEFEF;
  position: relative;
  margin: 17rem 0 0;
}
.flow::before {
  content: "";
  position: absolute;
  top: -9.5rem;
  left: 50%;
  transform: translateX(-50%);
  width: 646px;
  height: 646px;
  background: url(../images/reform-wall/flow-bg-deco.svg) no-repeat;
  background-size: contain;
}
.flow .inner {
  width: min(95%, 1100px);
  margin-inline: auto;
  text-align: center;
  padding: 0rem 0 8.5rem;
  margin-top: -0.2rem;
}
.flow .enttl {
  font-size: 36px;
  line-height: 1;
  letter-spacing: 0em;
  font-weight: 400;
  padding-bottom: 1.275rem;
  display: inline-block;
  text-align: center;
  border-bottom: 2px solid #1C1C1C;
  margin-bottom: 1.75rem;
  position: relative;
}
.flow h2 {
  font-size: 48px;
  line-height: 1.4583333333;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
  margin-bottom: 6.225rem;
  position: relative;
}
.flow .list {
  display: grid;
  gap: 3.75rem;
}
.flow .list li {
  background: #FFFFFF;
  position: relative;
}
.flow .list li:not(:last-child)::after {
  position: absolute;
  content: "";
  bottom: -2.5rem;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 20px;
  background: url(../images/reform-wall/flow-arrow.svg) no-repeat;
  background-size: contain;
}
.flow .list li .free {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4167;
  letter-spacing: 0.05em;
  display: grid;
  place-content: center;
  border-radius: 50%;
  width: 7.5rem;
  height: 7.5rem;
  position: absolute;
  top: -1rem;
  left: -1.25rem;
  background: #FDF202;
}
.flow .list li .inBox {
  padding: 3.2rem 3.7rem 3.15rem;
  display: grid;
  grid-template-columns: 34.85% 1fr;
  gap: 2.5rem;
}
.flow .list li .num {
  font-size: 28px;
  line-height: 1.0714285714;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #0488E5;
  position: relative;
  text-align: left;
  margin-bottom: 1.5rem;
}

.flow .list li .content {
  position: relative;
  padding: 1rem 0 0;
}
.flow .list li .content h3 {
  font-size: 28px;
  line-height: 1.0714285714;
  letter-spacing: 0.1em;
  font-weight: 700;
  display: flex;
  gap: 1.25rem;
  margin-bottom: 2.1rem;
  align-items: center;
}
.flow .list li .content h3 span {
  font-weight: bold;
  font-size: 22px;
  letter-spacing: 0.1em;
  line-height: 1.363636;
  margin: 0 0 0 -1.85rem;
}
.flow .list li .content .txt {
  font-size: 16px;
  line-height: 1.875;
  letter-spacing: 0.1em;
  font-weight: 500;
  text-align: left;
}

/* works
-------------------------------------*/
.works .inner{
  width: min(95%, 1190px);
  margin-inline: auto;
  padding: 6.9rem 0 0;
}
.works .enttl {
  font-weight: normal;
  font-size: 36px;
  line-height: 1;
  text-align: center;
  position: relative;
  margin-bottom: 2.5rem;
}
.works .enttl::after {
  content: "";
  position: absolute;
  bottom: -1.5rem;
  left: 50%;
  transform: translateX(-50%);
  width: 95px;
  height: 2px;
  background: #1C1C1C;
}
.works h2 {
  font-weight: bold;
  font-size: 32px;
  letter-spacing: 0.1em;
  line-height: 2.1875;
  text-align: center;
  color: #141414;
  margin-bottom: 4.4rem;
}



/* menu
-------------------------------------*/
.menu {
  background: #EFEFEF;
  max-width: 1920px;
  width: 100%;
  margin-inline: auto;
}
.menu .inner {
  width: min(95%, 1600px);
  margin-inline: auto;
  padding: 7.35rem 0 12.5rem;
}
.menu h2 {
  font-weight: bold;
  font-size: 40px;
  letter-spacing: 0.1em;
  line-height: 1.7;
  text-align: center;
  margin-bottom: 3.5rem;
}
.menu .menu-box {
  display: grid;
  gap: 2.5rem;
}
.menu .menu-box .upper {
  position: relative;
}
.menu .menu-box .upper::before {
  content: "";
  position: absolute;
  top: -11rem;
  left: 22.5rem;
  width: 147px;
  height: 176px;
  background: url(../images/page-common/menu-deco.png) no-repeat;
  background-size: contain;
}
.menu .menu-box .bottom {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.5rem;
}
.menu .menu-item {
  background: #FFFFFF;
}
.menu .menu-item.mizumawari .item {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.5rem;
  padding: 3.125rem 3.75rem;
}
.menu .menu-item.gaisou .item,
.menu .menu-item.other .item{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  padding: 3.125rem 2.5rem;
}
.menu .menu-box h3 {
  font-weight: bold;
  font-size: 32px;
  letter-spacing: 0.1em;
  line-height: 1;
  text-align: center;
  color: #fff;
  padding: 1.69rem 0;
}
.menu .menu-box .mizumawari h3 {
  background: #0488E5;
}
.menu .menu-box .gaisou h3 {
  background: #00A63C;
}
.menu .menu-box .other h3 {
  background: #9C6AA5;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1919px)
======================================== */
@media screen and (min-width:768px) and (max-width:1919px) {
  .fv .photo img {
    width: 100%;
    height: auto;
  }
  .fv .ttl-box {
    width: 62.533vw;
    margin-top: -6.962vw;
    padding: 0 0 3.168vw;
    margin-bottom: -16.833vw;
  }
  .fv .ttl-box h2 {
    font-size: 2.606vw;
    padding: 2.126vw 0;
    width: 33.872vw;
    top: -3.168vw;
    margin-bottom: -4.752vw;
  }
  .fv .ttl-box::before {
    top: -8.588vw;
    left: 50%;
    width: 12.559vw;
    height: 12.559vw;
  }
  .fv .price-frame {
    gap: 2.606vw;
  }
  .fv .price-frame .include {
    font-size: 0.834vw;
    padding: 0.375vw 0.334vw;
    width: fit-content;
    top: -0.104vw;
    font-size: clamp(0.625rem, 0.375rem + 0.52vw, 1rem);
  }
  .fv .price {
    gap: 0.417vw;
    font-size: 5.003vw;
    padding: 0.208vw 0 0;
  }
  .fv .price::after {
    bottom: 0.563vw;
    height: 0.782vw;
  }
  .fv .price .yen-mark {
    font-size: 2.241vw;
    margin: 1.199vw 0 0 -1.094vw;
  }
  .fv .price .yen {
    font-size: 2.241vw;
    margin: 2.668vw 0 0;
  }
  .fv .price .small {
    font-size: 3.127vw;
    margin: 1.876vw -0.313vw 0 -0.417vw;
  }
  .fv .txt {
    font-size: 1.251vw;
    margin-bottom: 2.084vw;
  }
  .fv .icon {
    gap: 1.042vw;
    width: 51.068vw;
  }
  .fv .icon img {
    width: 11.985vw;
  }
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1440px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1440px) {
/* worries
-------------------------------------*/
.worries::after {
  bottom: -4.056vw;
  width: 8.333vw;
  height: 13.889vw;
}
.worries .inner {
  width: 88.889vw;
  padding: 26.111vw 0 13.333vw;
}
.worries h2 {
  font-size: 2.222vw;
  margin-bottom: 1.111vw;
}
.worries h2::after {
  top: -0.208vw;
  right: -3.403vw;
  width: 3.264vw;
  height: 3.611vw;
}
.worries .subt {
  font-size: 1.806vw;
  margin-bottom: 3.389vw;
}
.worries .subt span {
  font-size: 2.222vw;
}

.worries .worries-box {
  width: 72.222vw;
  padding: 3.056vw 0 2.167vw;
}
.worries .worries-box::before {
  top: -3.556vw;
  right: -9.111vw;
  width: 21.319vw;
  height: 17.569vw;
}
.worries .worries-box::after {
  bottom: -2.167vw;
  left: -9.111vw;
  width: 19.167vw;
  height: 14.722vw;
}
.worries .worries-box .list {
  width: 62.5vw;
  gap: 1.667vw;
  margin-bottom: 0.667vw;
}
.worries .worries-box .list li {
  font-size: 1.389vw;
  padding: 0 0 0.944vw 8.722vw;
}
.worries .worries-box .list li::before {
  top: 0.778vw;
  left: 6.222vw;
  width: 1.806vw;
  height: 1.389vw;
}
.worries .worries-box .txt {
  font-size: 1.389vw;
}
.worries .worries-box .deco {
  right: -6.222vw;
  top: 15vw;
}
.worries .worries-box .deco img {
  width: 13.194vw;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1919px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1919px) {
  .leave {
    padding: 0 0 18.072vw;
    margin-top: -0.2vw;
  }
  .leave::before {
    top: -7.204vw;
    left: 0;
    width: 100%;
    height: 7.295vw;
    background: url(../images/page-common/leave-bg.svg) no-repeat;
    background-size: cover;
  }
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1680px)
======================================== */
@media screen and (min-width:768px) and (max-width:1680px) {
  .leave .inner {
    width: 95.238vw;
    padding: 8.095vw 0 0;
  }
  .leave .inner::before {
    top: 0.238vw;
    left: 9.286vw;
    width: 26.607vw;
    height: 12.5vw;
  }
  .leave h2 {
    margin-bottom: 2.905vw;
  }
  .leave h2 img{
    width: 50.119vw;
  }
  .leave .photo::before {
    top: -6.964vw;
    right: 13.619vw;
    width: 8.333vw;
    height: 10.952vw;
  }
  .leave .photo img {
    width: 100%;
    height: auto;
  }
}


/* ========================================
@media screen and (min-width:768px) and (max-width:1640px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1640px) {
/* merit
-------------------------------------*/
.merit .inner {
  width: 97.561vw;
  padding: 10.78vw 0 5.366vw;
  margin-bottom: 18.902vw;
}
.merit .inner::after {
  height: 34.939vw;
}
.merit h2 {
  font-size: 2.439vw;
  margin-bottom: 4.817vw;
}
.merit h2 span {
  font-size: 1.951vw;
}
.merit .enttl {
  top: 5.366vw;
}
.merit .enttl img {
  width: 16.951vw;
}
.merit .list {
  gap: 2.439vw;
  width: 85.366vw;
}
.merit .list li {
  display: flex;
  flex-direction: column; 
}
.merit .txt-box {
  margin-top: -1.951vw;
  width: 23.171vw;
  flex: 1; 
  display: flex;
  flex-direction: column;
  justify-content: flex-start; 
}
.merit .txt-box .num {
  font-size: 1.463vw;
  padding: 0.537vw 0;
  margin-bottom: 1.561vw;
}
.merit .txt-box h3 {
  font-size: 1.341vw;
  margin-bottom: 1.463vw;
}
.merit .txt-box .txt {
  font-size: clamp(0.625rem, 0.295rem + 0.69vw, 1rem);
  padding: 0 2.439vw 2.341vw;
}
.merit .txt-box .txt span {
  font-size: clamp(0.563rem, 0.287rem + 0.57vw, 0.875rem);
}
.merit .photo img {
  width: 100%;
  height: auto;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1280px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1280px) {
/* reform
 -------------------------------------*/
.reform .inner {
  width: 93.75vw;
  padding: 0 0 8.75vw;
}
.reform h2 img {
  width: 57.344vw;
}
.reform .ttl-box {
  top: -10.875vw;
  width: 73.438vw;
  padding: 0 0 5.313vw;
  margin-bottom: -2.25vw;
}
.reform .ttl-box::after {
  bottom: -3.187vw;
  width: 9.141vw;
  height: 3.516vw;
}
.reform .en-ttl {
  font-size: 2.813vw;
  margin-bottom: 5.125vw;
}
.reform .en-ttl::after {
  bottom: -1.687vw;
  width: 7.422vw;
  height: 0.156vw;
}
.reform .list {
  margin-bottom: 5.469vw;
}
.reform .list li h3 {
  font-size: 2.5vw;
  gap: 1.172vw;
  margin-bottom: 2.188vw;
}
.reform .list li h3 .num {
  font-size: 2.188vw;
  width: 3.906vw;
  height: 3.906vw;
}
.reform .list li .content {
  padding: 6.406vw 3.906vw 3.656vw;
}
.reform .list li .content .item {
  gap: 1.563vw;
}
.reform .list li .content .item li h4 {
  top: -2.344vw;
}
.reform .list li .content .item li h4 img {
  width: 17.969vw;
}
.reform .list li .content .item li .photo {
  margin-bottom: 0.469vw;
}
.reform .list li .content .item li .photo img {
  width: 100%;
  height: auto;
}
.reform  .item li .company {
  font-size: 1.25vw;
  margin-bottom: 0.625vw;
}
.reform .item li .company .en {
  font-size: 1.25vw;
  padding: 0px 0.625vw;
}
.reform .item li .company .type {padding: 0px 0.375vw;}

.reform .price-frame {
  gap: 8.047vw;
  margin: -0.547vw 0 0.547vw 26.422vw;
}
/* before */
.reform .price-frame .before .normal {
  font-size: 0.859vw;
  top: -0.312vw;
  padding: 0.156vw 0.234vw;
}
.reform .before .price {
  gap: 0.625vw;
  font-size: 5vw;
  padding: 0.313vw 0 0;
}
.reform .before .price::after {
  bottom: 1.797vw;
  right: -5.469vw;
  width: 5.625vw;
  height: 3.203vw;
}
.reform .before .price .small {
  font-size: 3.125vw;
  margin: 0 0 0 -0.859vw;
}
.reform .before .price .yen {
  font-size: 2.344vw;
  margin: 0 0 0 -0.547vw;
}
.reform .before .price .include {
  font-size: 1.094vw;
  margin: 0 0 0 -0.937vw;
}
/* after */
.reform .after .price {
  gap: 1.406vw;
  font-size: 8.359vw;
}
.reform .after .price::after {
  /* bottom: 1.641vw; */
  left: -0.859vw;
  height: 1.172vw;
}
.reform .after .price .small {
  font-size: 5.469vw;
  margin: 1.797vw 0 0 -1.641vw;
}
.reform .after .price .yen {
  font-size: 3.906vw;
  margin: 0 0 0 -1.016vw;
  top: -0.547vw;
}
.reform .after .price .include {
  font-size: 1.094vw;
  margin: 0 0.703vw 0 -0.625vw;
  top: -1.25vw;
}
.reform .desc {
  font-size: clamp(0.75rem, 0.64rem + 0.23vw, 0.875rem);
}
.reform  .maker {
  font-size: 1.563vw;
  margin-bottom: 0.625vw;
  width: 62.656vw;
}
.reform .maker .en {
  padding: 0px 1.375vw;
  font-size: 1.563vw;
}
.reform .maker .type {padding: 0px 1.5vw;background: #FFFFFF;font-size: 1.25vw;font-weight: 700;line-height: 1.875;letter-spacing: 0.1em;}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1180px)
======================================== */
@media screen and (min-width:768px) and (max-width:1180px) {
 /* flow
-------------------------------------*/
.flow {
  margin: 23.051vw 0 0;
}
.flow::before {
  top: -12.881vw;
  width: 54.746vw;
  height: 54.746vw;
}
.flow .inner {
  width: 93.22vw;
  padding: 0px 0 11.525vw;
  margin-top: -0.271vw;
}
.flow .enttl {
  font-size: 3.051vw;
  padding-bottom: 1.729vw;
  margin-bottom: 2.373vw;
}
.flow h2 {
  font-size: 4.068vw;
  margin-bottom: 8.441vw;
}
.flow .list {
  gap: 5.085vw;
}
.flow .list li:not(:last-child)::after {
  bottom: -3.39vw;
  width: 3.39vw;
  height: 1.695vw;
}
.flow .list li .free {
  font-size: 2.034vw;
  width: 10.169vw;
  height: 10.169vw;
  top: -1.356vw;
  left: -1.695vw;
}
.flow .list li .inBox {
  padding: 4.339vw 5.017vw 4.271vw;
  gap: 3.39vw;
}
.flow .list li .num {
  font-size: 2.373vw;
  margin-bottom: 2.034vw;
}

.flow .list li .content {
  padding: 1.356vw 0 0;
}
.flow .list li .content h3 {
  font-size: 2.373vw;
  gap: 1.695vw;
  margin-bottom: 2.847vw;
}
.flow .list li .content h3 span {
  font-size: 1.864vw;
  margin: 0 0 0 -2.508vw;
}
.flow .list li .content .txt {
  font-size: 1.356vw;
}
.flow .list li .photo img {
  width: 100%;
  height: auto;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1680px)
======================================== */
@media screen and (min-width:768px) and (max-width:1680px) {
  .menu h2 {
    font-size: 2.381vw;
    margin-bottom: 3.333vw;
  }
  .menu .menu-box h3 {
    font-size: 1.905vw;
    padding: 1.61vw 0;
  }
  .menu .menu-box .upper::before {
    top: -10.476vw;
    left: 21.429vw;
    width: 8.75vw;
    height: 10.476vw;
  }
  .menu .menu-item img {
    width: 100%;
    height: auto;
  }
  .menu .menu-item.mizumawari .item {
    gap: 2.381vw;
    padding: 2.976vw 3.571vw;
  }
  .menu .menu-item.gaisou .item, .menu .menu-item.other .item {
    gap: 1.19vw;
    padding: 2.976vw 2.381vw;
  }
}


/* ========================================
@media screen and (max-width: 767px) 
======================================== */
@media screen and (max-width: 767px) {
.main-title {
  margin-bottom: 0;
}
  /* fv
-------------------------------------*/
.fv {
  max-width: 100vw;
  margin-inline: auto;
  width: 100%;
  position: relative;
  background: #F4F4F4;
}
.fv .ttl-box {
  background: #FFFFFF;
  width: 91.79vw;
  margin-inline: auto;
  position: relative;
  margin-top: -7vw;
  padding: 0 0 7vw;
  margin-bottom: -7vw;
  z-index: 2;
}
.fv .ttl-box h2 {
  font-size:7.729vw;
  line-height: 1;
  letter-spacing: 0em;
  font-weight: 700;
  background-color: #FFFFFF;
  color: #0488E5;
  text-align: center;
  padding: 9.2vw 0 3.2vw;
  border-top: 3vw solid #2B6FAC;
  position: relative;
  top: -3vw;
  margin-bottom: -3vw;
}
.fv .ttl-box::before {
  content: "";
  position: absolute;
  top: -22vw;
  left: 50%;
  transform: translateX(-50%);
  width: 58.215vw;
  height: 58.215vw;
  background: url(../images/set/set-icon_sp.svg) no-repeat;
  background-size: contain;
}
.fv .price-frame {
  display: flex;
  align-items: baseline;
  gap: 2.9vw;
  margin: 0 0 4vw 10vw;
  /* width: 86.5vw; */
  position: relative;
  background: #FFFFFF;
}
.fv .price-frame .include {
  font-size:3.865vw;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  border: 0.2vw solid #1C1C1C;
  padding: 1.5vw 1.4vw;
  /* width: 27vw; */
  position: relative;
  top: -0.2vw;
}
.fv .price {
  display: inline-flex;
  gap: 1.7vw;
  font-size: 13.526vw;
  line-height: 1.197916;
  letter-spacing: 0em;
  font-weight: 700;
  color: #D7000F;
  position: relative;
  z-index: 2;
  padding: 0;
  align-items: baseline;
}
.fv .price::after {
  content: "";
  position: absolute;
  bottom: 1vw;
  right: 0;
  width: 102%;
  height: 2.45vw;
  background: #FFDF4D;
  z-index: -1;
}
.fv .price .yen-mark {
  font-size:6.763vw;
  font-weight: 700;
  line-height: 2.62790;
  margin: 0 -1.5vw 0 0vw;
  color: #1C1C1C;
}
.fv .price .yen {
  font-size:6.763vw;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #1C1C1C;
  margin: 0 0 0 -2vw;
}
.fv .price .small {
  font-size:9.662vw;
  letter-spacing: 0;
  font-weight: 700;
  color: #D7000F;
  margin: 0 0 0 -1.8vw;
}
.fv .txt {
  font-size:4.348vw;
  line-height: 1.7777;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
  position: relative;
  background: #FFFFFF;
  width: 87vw;
  margin-inline: auto;
  margin-bottom: 6.1vw;
}
.fv .icon {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.2vw;
  width: 87vw;
  margin-inline: auto;
}
.fv .icon img {
  width: 42.274vw;
}

/* worries
-------------------------------------*/
.worries {
  background: #F4F4F4;
  position: relative;
  max-width: 100vw;
  width: 100%;
  margin-inline: auto;
}
.worries::after {
  content: "";
  position: absolute;
  bottom: -8vw;
  left: 50%;
  transform: translateX(-50%);
  width: 17.395vw;
  height: 28.989vw;
  background: url(../images/page-common/worries-arrow.svg) no-repeat;
  background-size: contain;
  z-index:2;
}
.worries .inner {
  width: 94.205vw;
  margin-inline: auto;
  padding: 22vw 0 28vw;
  text-align: center;
}
.worries h2 {
  font-weight: 700;
  font-size:4.831vw;
  letter-spacing: 0.1em;
  color: #1c1c1c;
  margin: 0 0 2.5vw;
  text-align: center;
  position: relative;
}
.worries h2::after {
  content: "";
  position: absolute;
  bottom: 0.5vw;
  right: 2vw;
  width: 7.16vw;
  height: 7.94vw;
  background: url(../images/page-common/worries-ttl-deco.svg) no-repeat;
  background-size: contain;
}
.worries .subt {
  font-size:4.831vw;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  margin-bottom: 41vw;
}
.worries .subt span {
  font-size:5.797vw;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #D7000F;
  display: block;
  margin: 0 0 2.5vw;
}


.worries .worries-box {
  background: #FFFFFF;
  border: 1.45vw solid #EFEFEF;
  padding: 5.5vw 0 2.8vw;
  position: relative;
  margin-inline: auto;
}
.worries .worries-box::before {
  content: "";
  position: absolute;
  top: -39.2vw;
  left: 50%;
  width: 66.185vw;
  height: 43vw;
  background: url(../images/set/worries-photo_sp.png) no-repeat;
  background-size: contain;
  transform: translateX(-50%);
}
.worries .worries-box::after {
  content: "";
  position: absolute;
  bottom: -14.6vw;
  left: -4vw;
  width: 36.94vw;
  height: 28.42vw;
  background: url(../images/page-common/worries-deco.png) no-repeat;
  background-size: contain;
}
.worries .worries-box .list {
  width: 79.712vw;
  margin-inline: auto;
  display: grid;
  gap: 4vw;
  margin-bottom: 1vw;
}
.worries .worries-box .list li {
  color: #141414;
  font-size:3.865vw;
  line-height: 1.75;
  letter-spacing: 0.1em;
  font-weight: 500;
  padding: 0 0 3vw 5.2vw;
  border-bottom: 0.2vw dashed #8F8F8F;
  position: relative;
  text-align: left;
}
.worries .worries-box .list li::before {
  content: "";
  position: absolute;
  top: 2.1vw;
  left: 0vw;
  width: 4.35vw;
  height: 3.385vw;
  background: url(../images/page-common/check-icon.svg) no-repeat;
  background-size: contain;
}
.worries .worries-box .list li span {
  color: #2B6FAC;
}
.worries .worries-box .txt {
  font-size:3.865vw;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.1em;
  text-align: right;
  margin: 0 5.4vw 0 0;
}
.worries .worries-box .deco {
  position: absolute;
  right: -5vw;
  top: 13vw;
}


/* leave
-------------------------------------*/
.leave {
  background: #FCCF00;
  position: relative;
  padding: 0 0 16.5vw;
  margin-top: -0.5vw;
  max-width: 100vw;
  width: 100%;
  margin-inline: auto;
}
.leave::before {
  content: "";
  position: absolute;
  top: -14vw;
  left: 0;
  width: 100%;
  height: 14.5vw;
  background: url(../images/page-common/leave-bg_sp.svg) no-repeat;
  background-size: cover;
}
.leave .inner {
  margin-inline: auto;
  text-align: center;
  padding: 16.9vw 0 0;
  position: relative;
}
.leave h2 {
  text-align: center;
  display: inline-block;
  position: relative;
  margin-bottom: 6.7vw;
  z-index: 3;
  padding: 0 2vw 0 0;
}
.leave h2 img {
  width: 65.71vw;
}
.leave .photo {
  text-align: center;
  position: relative;
  z-index: 2;
}
.leave .photo::before {
  content: "";
  position: absolute;
  top: -22.2vw;
  right: 4.2vw;
  width: 16.91vw;
  height: 22.225vw;
  background: url(../images/page-common/leave-box-deco.png) no-repeat;
  background-size: contain;
  z-index: -1;
}


/* point
-------------------------------------*/
.point {
  background: url(../images/page-common/merit-bg_sp.png) repeat;
  max-width: 100vw;
  width: 100%;
  margin-inline: auto;
}
.point .inner {
  position: relative;
  display: grid;
  gap: 9.8vw;
  margin-top: -95.5vw;
  padding: 0 0 19.2vw;
}
.point .sec {
  width: 94.205vw;
  margin-inline: auto;
  border: 1vw solid #1C1C1C;
  background: #FFFFFF;
}
.point .sec h2 {
  background: #E2E2E2;
  padding: 7.2vw 0 7vw;
  text-align: center;
  font-size:5.797vw;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-weight: 700;
}
.point .sec .content {
  padding: 4.8vw 3.86vw 3.5vw;
  display: grid;
}
.point .sec .txt-box {
  order: 2;
}
.point .sec .txt-box .list {
  background: #EFEFEF;
  padding: 4.5vw 5vw 4.2vw;
  display: grid;
  gap: 2vw;
  margin:  0 0 4.5vw;
}
.point .sec .txt-box .list li {
  font-size:3.865vw;
  line-height: 1.625;
  letter-spacing: 0.1em;
  font-weight: 500;
  position: relative;
  padding: 0 0 0 6vw;
}
.point .sec .txt-box .list li::before {
  content: "";
  position: absolute;
  top: 0.9vw;
  left: -1.5vw;
  width: 4.834vw;
  height: 4.834vw;
  background: url(../images/page-common/check-icon03.svg) no-repeat;
  background-size: contain;
}
.point .sec .txt-box .txt {
  font-size:3.382vw;
  line-height: 1.85714;
  letter-spacing: 0.1em;
  font-weight: 500;
  margin-bottom: 2vw;
}
.point .sec .photo {
  order: 1;
  margin-bottom: 4.9vw;
}

/* point02 */
.point .point02 h2 {
  padding: 7.2vw 0 6.8vw;
}
.point .point02 .content {

}
.point .point02 .txt-box .link  {
  display: grid;
  gap: 6.8vw;
  margin: 0 0 0 9.8vw;
  padding: 3.2vw 0 2vw;
}
.point .point02 .txt-box .link li a {
  font-weight: 500;
  font-size:3.865vw;
  letter-spacing: 0.1em;
  line-height: 1.875;
  text-align: left;
  color: #2b6fac;
  position: relative;
  display: inline-block;
  border-bottom: 0.2vw solid #2B6FAC;
  padding: 0 0 0.5vw;
  text-decoration: none;
}
.point .point02 .txt-box .link li a::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: -10vw;
  width: 6.04vw;
  height: 6.04vw;
  background: url(../images/set/link-icon.svg) no-repeat;
  background-size: contain;
}


/* merit
-------------------------------------*/
.merit .inner::after {
  background: #D7000F;
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100vw;
  height: 390.5vw;
  z-index: 1;
  pointer-events: none;
  transform: translateX(-50%);
}
.merit .inner {
  width: 91.79vw;
  margin-inline: auto;
  position: relative;
  padding: 36.8vw 0 14.5vw;
  margin-bottom: 41.5vw;
}
.merit h2 {
  font-size:7.729vw;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #141414;
  text-align: center;
  margin-bottom: 11.5vw;
  position: relative;
  z-index: 3;
}
.merit h2 span {
  font-size:5.797vw;
  line-height: 1.75;
  letter-spacing: 0.1em;
  font-weight: 700;
}
.merit .enttl {
  position: absolute;
  top: 17vw;
  left: 49%;
  transform: translateX(-50%);
  z-index: 2;
  width: 56.8vw;
}
.merit .list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9.5vw;
  position: relative;
  z-index: 2;
}
.merit .txt-box {
  background: #FFFFFF;
  margin-top: -9.5vw;
  position: relative;
  z-index: 3;
  width: 82.126vw;
  margin-inline: auto;
  padding: 0 0 6.4vw;
}
.merit .txt-box .num {
  background: #1C1C1C;
  border: 0.2vw solid #FFFFFF;
  font-size:4.831vw;
  line-height: 2;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #FFFFFF;
  text-align: center;
  padding: 1vw 0;
  margin-bottom: 5.8vw;
}
.merit .txt-box .num span {
  color: #FDF202;
}
.merit .txt-box h3 {
  font-size:5.314vw;
  line-height: 1.545454;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
  margin-bottom: 3.65vw;
}
.merit .txt-box .txt {
  font-size:3.382vw;
  line-height: 1.87571428;
  letter-spacing: 0.1em;
  font-weight: 500;
  padding: 0 6.1vw;
}
.merit .txt-box .txt span {
  font-size:3.382vw;
  line-height: 1.87571428;
  letter-spacing: 0.1em;
  font-weight: 500;
  display: block;
  padding: 0 2vw 0 0;
}
.merit .photo {
  text-align: center;
}

/* reform
 -------------------------------------*/
 .reform {
  background: url(../images/index/reform-bg_sp.png) no-repeat center center/cover;
}
.reform .inner {
  width: 91.79vw;
  margin-inline: auto;
  padding: 0 0 18vw;
}
.reform .ttl-box {
  background: #FFFFFF;
  position: relative;
  top: -22vw;
  padding: 0 0 8.5vw;
  margin-bottom: -7.5vw;
}
.reform .ttl-box::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -4.8vw;
  width: 10.15vw;
  height: 5vw;
  background: url(../images/index/ttl-box-arrow_sp.svg) no-repeat center center/contain;
}
.reform .en-ttl {
  font-size:4.348vw;
  line-height: 1;
  letter-spacing: 0em;
  font-weight: 400;
  text-align: center;
  position: relative;
  margin-bottom: 10.2vw;
  color: #0096DF;
}
.reform .en-ttl::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -3.2vw;
  width: 8.5vw;
  height: 0.2vw;
  background-color: #0096DF;
}
.reform h2 {
  text-align: center;
}

.reform .list {
  margin-bottom: 10vw;
}
.reform .list li h3 {
  font-size:6.763vw;
  line-height: 1;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #FFFFFF;
  display: flex;
  gap: 4vw;
  margin-bottom: 5vw;
  justify-content: center;
  align-items: center;
}
.reform .list li h3 .num {
  font-size:6.039vw;
  line-height: 1;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #0488E5;
  background: #FFFFFF;
  width: 10.9vw;
  height: 10.9vw;
  border-radius: 50%;
  display: grid;
  place-content: center;
}
.reform .list li .content {
  background: #FFFFFF;
  padding: 13vw 4.83vw 6.5vw;
}
.reform .list li .content .item {
  display: grid;
  grid-template-columns:1fr;
  gap: 13.7vw;
}
.reform .list li .content .item li {
  position: relative;
}
.reform .list li .content .item li h4 {
  position: absolute;
  top: -6vw;
  left: 50%;
  transform: translateX(-50%);
  width: 46.5vw;
}
.reform .list li .content .item li h4 img {
  width: 100%;
  height: auto;
}
.reform .list li .content .item li .photo {
  margin-bottom: 2vw;
}
.reform  .item li .company {
  border: 0.2vw solid #1C1C1C;
  font-size:3.865vw;
  line-height: 1.875;
  letter-spacing: 0em;
  font-weight: 700;
  margin-bottom: 0vw;
  position: relative;
  width: fit-content;
  margin-right: auto;
  display: flex;
}
.reform .item li .company .en {
  font-size:3.865vw;
  line-height: 1.875;
  letter-spacing: 0em;
  font-weight: 500;
  color: #FFFFFF;
  background: #1C1C1C;
  padding: 0rem 2.2vw;
}
.reform .item li .company .type {padding: 0rem 1.85vw;}

.reform .price-frame {
  display: grid;
  gap: 8vw;
}
/* before */
.reform .price-frame .before {
  display: flex;
  align-items: baseline;
  margin: 0 0 0 3.4vw;
  gap: 1.2vw;
}
.reform .price-frame .before .normal {
  font-size:2.657vw;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  border: 0.2vw solid #1C1C1C;
  position: relative;
  padding: 1.1vw 1vw;
  /* width: 14vw; */
  position: relative;
  top: -1vw;
}
.reform .before .price {
  display: inline-flex;
  gap: 1vw;
  font-size:15.452vw;
  line-height: 1.078125;
  letter-spacing: 0em;
  font-weight: 700;
  color: #141414;
  position: relative;
  z-index: 2;
  padding: 5.9vw 0 0;
  margin: 0;
  align-items: baseline;
}
.reform .before .price::after {
  content: "";
  position: absolute;
  bottom: -8.5vw;
  left: 43%;
  transform: translateX(-50%);
  width: 10vw;
  height: 7.5vw;
  background: url(../images/set/price-arrow_sp.svg)no-repeat;
  background-size: contain;
}
.reform .before .price .small {
  font-size:9.662vw;
  font-weight: 700;
  line-height: 1.725;
  margin: 0 0 0 -1vw;
  color: #141414;
}
.reform .before .price .yen {
  font-size:7.246vw;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #141414;
  position: relative;
  top: -1vw;
}
.reform .before .price .include {
  font-size:2.898vw;
  letter-spacing: 0.1em;
  font-weight: 500;
  line-height: 1.416666;
  color: #141414;
  position: absolute;
  right: -7.8vw;
  top: 8.2vw;
}
/* after */
.reform .after {
  margin: 0 0 1.5vw 8vw;
}
.reform .after .price {
  display: inline-flex;
  gap: 2vw;
  font-size:23.065vw;
  line-height: 1.0721649;
  letter-spacing: 0em;
  font-weight: 700;
  color: #D7000F;
  position: relative;
  z-index: 2;
  margin: 0;
  align-items: baseline;
}
.reform .after .price::after {
  content: "";
  position: absolute;
  bottom: 1vw;
  right: -1vw;
  width: 105%;
  height: 3.5vw;
  background: #FFDF4D;
  z-index: -1;
}
.reform .after .price .small {
  font-size:14.493vw;
  font-weight: 700;
  line-height: 1.73333;
  margin: 0vw 0 0 -3vw;
  color: #D7000F;
}
.reform .after .price .yen {
  font-size:7.729vw;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #1C1C1C;
  margin: 0 0 0 -1vw;
  position: relative;
  top: -1vw;
}
.reform .after .price .include {
  font-size:2.898vw;
  font-weight: 500;
  line-height: 2.5;
  color: #1C1C1C;
  letter-spacing: 0.1em;
  position: absolute;
  right: 0.9vw;
  top: 7.9vw;
}
.reform .desc {
  font-weight: 500;
  font-size:3.382vw;
  letter-spacing: 0.1em;
  line-height: 1.7142857;
}
.reform  .maker {
  border: 0.2vw solid #1C1C1C;
  font-size:3.865vw;
  line-height: 1.875;
  letter-spacing: 0.1em;
  font-weight: 700;
  margin-bottom: 1vw;
  position: relative;
  width: 91.79vw;
  display: grid;
  margin-inline: auto;
}
.reform .maker .en {
  color: #FFFFFF;
  background: #1C1C1C;
  padding: 0.2vw 1vw;
  font-size: 3.865vw;
  line-height: 1.8571428;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
}
.reform .maker .type {padding: 2vw 3.2vw 1.5vw;background: #FFFFFF;font-size: 3.382vw;font-weight: 500;line-height: 1.85714;letter-spacing: 0.1em;}

/* works
-------------------------------------*/
.works .inner{
  width: 91.79vw;
  margin-inline: auto;
  padding: 24.6vw 0 0;
}
.works .enttl {
  font-weight: 400;
  font-size:4.348vw;
  line-height: 1;
  text-align: center;
  position: relative;
  margin-bottom: 7.2vw;
}
.works .enttl::after {
  content: "";
  position: absolute;
  bottom: -3vw;
  left: 50%;
  transform: translateX(-50%);
  width: 8.5vw;
  height: 0.2vw;
  background: #1C1C1C;
}
.works h2 {
  font-weight: bold;
  font-size:4.831vw;
  letter-spacing: 0.1em;
  line-height: 1.7;
  text-align: center;
  color: #141414;
  margin-bottom: 9vw;
}

/* flow
-------------------------------------*/
.flow {
  background: #EFEFEF;
  position: relative;
  margin: 28vw 0 0;
}
.flow::before {
  content: "";
  position: absolute;
  top: -13.5vw;
  left: 50%;
  transform: translateX(-50%);
  width: 65vw;
  height: 65vw;
  background: url(../images/reform-wall/flow-bg-deco_sp.svg) no-repeat;
  background-size: contain;
}
.flow .inner {
  width: 91.79vw;
  margin-inline: auto;
  text-align: center;
  position: relative;
  top: -3vw;
  padding: 0 0 12vw;
}
.flow .enttl {
  font-size:4.348vw;
  line-height: 1;
  letter-spacing: 0em;
  font-weight: 400;
  padding-bottom: 2.8vw;
  display: inline-block;
  text-align: center;
  margin-bottom: 5.5vw;
  position: relative;
}
.flow .enttl::after {
  position: absolute;
  content: "";
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 8.5vw;
  height: 0.2vw;
  background: #1C1C1C;
}
.flow h2 {
  font-size: 5.797vw;
  line-height: 1.555555;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
  margin-bottom: 9vw;
  position: relative;
}
.flow .list {
  display: grid;
  gap: 12.2vw;
}
.flow .list li {
  background: #FFFFFF;
  position: relative;
}
.flow .list li:not(:last-child)::after {
  position: absolute;
  content: "";
  bottom: -9vw;
  left: 50%;
  transform: translateX(-50%);
  width: 9.7vw;
  height: 4.9vw;
  background: url(../images/reform-wall/flow-arrow.svg) no-repeat;
  background-size: contain;
}
.flow .list li .free {
  font-size: 4.831vw;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.05em;
  display: grid;
  place-content: center;
  border-radius: 50%;
  width: 19.4vw;
  height: 19.4vw;
  position: absolute;
  top: -1vw;
  left: -1vw;
  background: #FDF202;
}
.flow .list li .inBox {
  padding: 4vw 3.6vw 6vw;
  display: grid;
  gap: 1vw;
}
.flow .list li .num {
  font-size: 4.831vw;
  line-height: 1.5;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #0488E5;
  position: relative;
  text-align: center;
  margin-bottom: 3vw;
}

.flow .list li .content {
  position: relative;
  padding: 2.5vw 0 0;
}
.flow .list li .content h3 {
  font-size: 4.348vw;
  line-height: 1.6666;
  letter-spacing: 0.1em;
  font-weight: 700;
  margin-bottom: 2.6vw;
  align-items: center;
}
.flow .list li .content h3 span {
  font-weight: bold;
  font-size: 3.865vw;
  letter-spacing: 0.1em;
  line-height: 1.875;
  display: block;
}
.flow .list li .content .txt {
  font-size: 3.382vw;
  line-height: 1.85714;
  letter-spacing: 0.1em;
  font-weight: 500;
  text-align: left;
  padding: 0 1.3vw;
}


/* menu
-------------------------------------*/
.menu {
  background: #EFEFEF;
  max-width: 100vw;
  width: 100%;
  margin-inline: auto;
}
.menu .inner {
  width: 91.79vw;
  margin-inline: auto;
  padding: 9.2vw 0 24.2vw;
}
.menu h2 {
  font-weight: bold;
  font-size:4.831vw;
  letter-spacing: 0.1em;
  line-height: 1.7;
  text-align: center;
  margin-bottom: 6.5vw;
}
.menu .menu-box {
  display: grid;
  gap: 7.5vw;
}
.menu .menu-box .bottom {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7.5vw;
}
.menu .menu-item {
  background: #FFFFFF;
}
.menu .menu-item li {
  text-align: center;
}
.menu .menu-item.mizumawari .item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4.8vw;
  padding: 7.2vw 4.8vw;
}
.menu .menu-item.gaisou .item,
.menu .menu-item.other .item{
  display: grid;
  grid-template-columns: 1fr;
  gap: 4.8vw;
  padding: 7.2vw 4.8vw;
}
.menu .menu-box h3 {
  font-weight: bold;
  font-size:4.348vw;
  letter-spacing: 0.1em;
  line-height: 1;
  text-align: center;
  color: #fff;
  padding: 5.8vw 0;
}
.menu .menu-box .mizumawari h3 {
  background: #0488E5;
}
.menu .menu-box .gaisou h3 {
  background: #00A63C;
}
.menu .menu-box .other h3 {
  background: #9C6AA5;
}

}