@font-face {
  font-family: "Noto Sans JP Regular";
  src: url("/assets/common/font/NotoSansJP-Regular.otf") format("opentype");
}
@font-face {
  font-family: "Noto Sans JP Medium";
  src: url("/assets/common/font/NotoSansJP-Medium.otf") format("opentype");
}
@font-face {
  font-family: "Noto Sans JP Bold";
  src: url("/assets/common/font/NotoSansJP-Bold.otf") format("opentype");
}
@font-face {
  font-family: "Noto Sans JP Black";
  src: url("/assets/common/font/NotoSansJP-Black.otf") format("opentype");
}
body {
  color: #231815;
  font-family: kozuka-gothic-pr6n, sans-serif;
}

.l-header {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  padding-top: clamp(12.5px, 1.3vw, 25px);
  z-index: 1;
}
.l-header .c-inner {
  padding-left: clamp(22.5px, 2.34vw, 45px);
}

.l-header_logo {
  width: clamp(167px, 17.72vw, 334px);
}

.p-mv {
  position: relative;
  background-image: url(../img/bg_es_mv.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  padding-top: clamp(140px, 28vw, 280px);
  padding-bottom: clamp(72.5px, 14.5vw, 145px);
}

.p-mv_box {
  position: relative;
  width: clamp(161.5px, 17.34vw, 333px);
  aspect-ratio: 1/1;
  margin-right: auto;
  margin-left: auto;
}
.p-mv_box::before {
  content: "";
  position: absolute;
  display: block;
  background-color: rgba(255, 255, 255, 0.55);
  width: calc(100% + clamp(33.5px, 3.49vw, 67px));
  aspect-ratio: 1/1;
  top: clamp(-33.5px, -3.49vw, -16.75px);
  left: clamp(-33.5px, -3.49vw, -16.75px);
  border-radius: clamp(7.5px, 0.78vw, 15px);
  box-shadow: 0 0 clamp(35px, 3.65vw, 70px) #ffffff;
}

.p-mv_box_inner {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  background-color: #e60012;
  font-weight: 900;
  line-height: 1;
  text-align: center;
  height: 100%;
  border-radius: clamp(7.5px, 0.78vw, 15px);
}

.p-mv_campaign {
  color: #ffffff;
  font-size: clamp(2.05rem, 2.14vw, 4.1rem);
  margin-bottom: clamp(5px, 0.52vw, 10px);
}
.p-mv_campaign span {
  display: block;
  letter-spacing: 0.2em;
}

.p-mv_unit {
  font-size: clamp(2.25rem, 2.34vw, 4.5rem);
}

.p-mv_price {
  font-size: clamp(3.2rem, 3.33vw, 6.4rem);
  margin-bottom: clamp(2.5px, 0.26vw, 5px);
}
.p-mv_price span {
  display: block;
  font-size: clamp(1rem, 1.04vw, 2rem);
}

.p-mv_acc {
  font-size: clamp(2.05rem, 2.14vw, 4.1rem);
}

.p-mv_notes {
  position: absolute;
  color: #ffffff;
  font-size: clamp(1rem, 0.57vw, 1.1rem);
  bottom: clamp(6px, 0.57vw, 12px);
  right: clamp(5px, 0.52vw, 10px);
}

.p-intro {
  padding-top: clamp(15px, 3vw, 30px);
}
.p-intro .c-inner {
  width: min(100%, 1220px);
  padding: 0 clamp(25px, 4.3402777778vw, 50px);
  margin: 0 auto;
  max-width: 1200px;
  padding: 0;
}

.p-intro_logo {
  position: relative;
  width: 65.417%;
  margin-right: auto;
  margin-left: auto;
}
.p-intro_logo::before {
  content: "";
  position: absolute;
  display: block;
  background-image: url(../img/icon_es_new.svg);
  background-repeat: no-repeat;
  background-size: 100%;
  width: 17.835%;
  aspect-ratio: 1/1;
  top: 50%;
  left: -18.6%;
  margin-top: -8.9175%;
}

.p-intro_message {
  font-family: toppan-bunkyu-midashi-go-std, sans-serif;
  font-size: clamp(1.8rem, 3.6vw, 3.6rem);
  font-weight: 900;
  text-align: center;
  margin-bottom: clamp(12.5px, 2.5vw, 25px);
}

.p-intro_list {
  display: flex;
  margin-bottom: clamp(2.5px, 0.5vw, 5px);
}

.p-intro_catch {
  font-family: toppan-bunkyu-midashi-go-std, sans-serif;
  font-size: clamp(1.75rem, 3.5vw, 3.5rem);
  font-weight: 900;
  text-align: center;
}

.p-use {
  padding-top: clamp(20px, 4vw, 40px);
  overflow-x: hidden;
}
.p-use .c-inner {
  width: min(100%, 1220px);
  padding: 0 clamp(25px, 4.3402777778vw, 50px);
  margin: 0 auto;
  width: min(100%, 1200px);
  padding: 0;
}

.p-use_content {
  text-align: center;
}

.p-use_catch {
  color: #C30D23;
  font-family: toppan-bunkyu-midashi-go-std, sans-serif;
  font-size: clamp(4.2rem, 13vw, 15.6rem);
  line-height: 0.9;
  letter-spacing: -0.015em;
  margin-right: clamp(-50px, -0.5vw, -25px);
  margin-bottom: clamp(17.5px, 3.5vw, 35px);
  margin-left: clamp(-50px, -0.5vw, -25px);
}

.p-use_spec {
  font-size: clamp(1.85rem, 3.7vw, 3.7rem);
  font-weight: 900;
  line-height: clamp(2.55rem, 5.1vw, 5.1rem);
  margin-bottom: clamp(22.5px, 4.5vw, 45px);
}

.p-use_features {
  display: inline-block;
  font-size: clamp(1.85rem, 3.7vw, 3.7rem);
  font-weight: 900;
  line-height: clamp(2.55rem, 5.1vw, 5.1rem);
  text-align: center;
  border-bottom: 4px solid #C30D23;
  margin-bottom: clamp(2.5px, 0.5vw, 5px);
}

.p-use_list {
  margin-bottom: clamp(7.5px, 1.5vw, 15px);
}

.p-use_item {
  font-size: clamp(1.85rem, 3.7vw, 3.7rem);
  font-weight: 900;
  line-height: clamp(2.35rem, 4.7vw, 4.7rem);
}

.p-use_price {
  font-size: clamp(1.15rem, 2.3vw, 2.3rem);
  font-weight: 900;
}
.p-use_price span {
  font-size: clamp(1.2rem, 1.4vw, 1.4rem);
  vertical-align: middle;
}

.p-point {
  padding-top: clamp(37.5px, 7.5vw, 75px);
}
.p-point .c-inner {
  width: min(100%, 1220px);
  padding: 0 clamp(25px, 4.3402777778vw, 50px);
  margin: 0 auto;
  max-width: 1100px;
}

.p-point_heading {
  color: #C30D23;
  font-family: toppan-bunkyu-midashi-go-std, sans-serif;
  font-size: clamp(2.3rem, 4.6vw, 4.6rem);
  line-height: clamp(2.6rem, 5.8vw, 5.8rem);
  text-align: center;
  margin-bottom: clamp(17.5px, 3.5vw, 35px);
}

.p-point_list {
  display: flex;
  gap: clamp(40px, 8vw, 80px);
}
@media (max-width: 767px) {
  .p-point_list {
    flex-direction: column;
  }
}

.p-point_item {
  flex: 1 1 280px;
  display: flex;
  flex-direction: column;
  gap: 7.5px;
}

.p-point_text {
  font-size: clamp(1.4rem, 1.6vw, 1.6rem);
  line-height: clamp(2.6rem, 2.8vw, 2.8rem);
}

.p-spec {
  padding-top: clamp(30px, 6vw, 60px);
}
.p-spec .c-inner {
  width: min(100%, 1220px);
  padding: 0 clamp(25px, 4.3402777778vw, 50px);
  margin: 0 auto;
  max-width: 1100px;
}

.p-spec_catch {
  color: #C30D23;
  font-family: toppan-bunkyu-midashi-go-std, sans-serif;
  font-size: clamp(2.3rem, 4.6vw, 4.6rem);
  line-height: clamp(2.6rem, 5.8vw, 5.8rem);
  text-align: center;
  margin-bottom: clamp(10px, 2vw, 20px);
}

.p-spec_visual {
  width: min(91.6%, 916px);
  margin-right: auto;
  margin-bottom: clamp(32.5px, 6.5vw, 65px);
  margin-left: auto;
}

.p-spec_body {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: clamp(23.5px, 4.7vw, 47px);
  margin-bottom: clamp(10px, 2vw, 20px);
}
@media (max-width: 1219px) {
  .p-spec_body {
    flex-direction: column;
  }
}

@media (max-width: 1219px) {
  .p-spec_tables-box {
    width: 100%;
  }
}
@media (min-width: 1220px) {
  .p-spec_tables-box {
    flex: 1 1 620px;
  }
}

.p-spec_tables {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: clamp(13px, 2.6vw, 26px);
  margin-bottom: clamp(2.5px, 0.5vw, 5px);
}
@media (max-width: 767px) {
  .p-spec_tables {
    flex-direction: column;
  }
}

@media (max-width: 767px) {
  .p-spec_tables-left,
.p-spec_tables-right {
    width: 100%;
  }
}
@media (min-width: 768px) {
  .p-spec_tables-left,
.p-spec_tables-right {
    flex: 1 1 297px;
  }
}

.p-spec_table {
  font-size: 0.72rem;
  line-height: 2.1rem;
  width: 100%;
  border-collapse: collapse;
}
.p-spec_table:nth-last-of-type(n+2) {
  margin-bottom: clamp(10px, 2vw, 20px);
}

.p-spec_table_row th,
.p-spec_table_row td {
  border-top: 1px solid #231815;
  border-bottom: 1px solid #231815;
  padding-left: clamp(5px, 1vw, 10px);
}

.p-spec_table_category {
  background-color: #dcdbda;
  font-weight: 700;
  width: 25.59%;
  border: none !important;
}

.p-spec_table_label {
  width: 33.67%;
}

.p-spec_table_value {
  width: 40.74%;
  text-indent: -0.5em;
  padding-left: calc(clamp(5px, 1vw, 10px) + 0.5em);
}

.p-spec_table_row-system .p-spec_table_value {
  border-left: 1px dotted #231815;
  text-indent: -1em;
  padding-left: calc(clamp(5px, 1vw, 10px) + 0.5em);
}

.p-spec_note_windows {
  font-size: 0.72rem;
  line-height: 2.1rem;
  text-align: right;
}

@media (max-width: 1219px) {
  .p-spec_images {
    width: 100%;
  }
}
@media (min-width: 1220px) {
  .p-spec_images {
    flex: 1 1 333px;
  }
}

.p-spec_images_stand {
  width: 89.49%;
  margin-right: auto;
  margin-bottom: clamp(10px, 2vw, 20px);
  margin-left: auto;
}

.p-spec_note {
  font-size: clamp(1.4rem, 1.6vw, 1.6rem);
  font-weight: 700;
}

.l-footer {
  padding-top: clamp(22.5px, 4.5vw, 45px);
  padding-bottom: clamp(17.5px, 3.5vw, 35px);
}
.l-footer .c-inner {
  width: min(100%, 1220px);
  padding: 0 clamp(25px, 4.3402777778vw, 50px);
  margin: 0 auto;
  max-width: 1100px;
}

.l-footer_logo {
  width: 33.4%;
  margin-right: auto;
  margin-bottom: clamp(17.5px, 3.5vw, 35px);
  margin-left: auto;
}

.l-footer_info {
  font-size: clamp(1.1rem, 2vw, 2rem);
  font-weight: 700;
  text-align: center;
}
.l-footer_info a {
  display: inline;
}