@charset "UTF-8";
* {
  font-family: "noto-sans-cjk-jp", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  -webkit-font-feature-settings: "palt" on;
          font-feature-settings: "palt" on;
  color: #000;
  line-height: 1;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.header-fv {
  background: url("../img/bg-fv.webp") no-repeat center center/cover;
  position: relative;
}

.header-fv__inner {
  position: relative;
  z-index: 0;
  padding-bottom: clamp(1.875rem, 8vw, 3.75rem);
}
@media screen and (min-width: 751px) {
  .header-fv__inner {
    width: 750px;
    margin: 0 auto;
  }
}

.header-fv__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: clamp(0.625rem, 2.67vw, 1.25rem);
  padding: clamp(0.938rem, 4vw, 1.875rem);
}

.header-fv__title-text {
  font-size: clamp(0.813rem, 3.47vw, 1.625rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.header-fv__title-oval {
  color: #000;
  font-size: clamp(0.75rem, 3.2vw, 1.5rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  padding: 0 clamp(0.438rem, 1.87vw, 0.875rem);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-radius: clamp(1.875rem, 8vw, 3.75rem);
  border: 1px solid #000;
}

.header-fv__subtitle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0;
  padding-top: clamp(0.469rem, 2vw, 0.938rem);
  position: relative;
  z-index: 1;
}

.header-fv__subtitle-text {
  font-size: clamp(1.25rem, 5.33vw, 2.5rem);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.05em;
}

.header-fv__copy {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: end;
  gap: clamp(0.156rem, 0.67vw, 0.313rem);
  margin-top: clamp(-0.563rem, -1.2vw, -0.281rem);
}

.header-fv__copy-fukidashi {
  width: clamp(2.031rem, 8.67vw, 4.063rem);
  margin-bottom: clamp(0.313rem, 1.33vw, 0.625rem);
}

.header-fv__copy-text {
  color: #C30015;
  font-size: clamp(3.625rem, 15.47vw, 7.25rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.05em;
  margin-top: clamp(-0.563rem, -1.2vw, -0.281rem);
}
.header-fv__copy-text > .text-small {
  color: #C30015;
  font-size: clamp(3.125rem, 13.33vw, 6.25rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.header-fv__subtitle-job {
  font-size: clamp(2.063rem, 8.8vw, 4.125rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.05em;
  margin-top: clamp(-0.313rem, -1.33vw, -0.625rem);
}

.header-fv__subtitle-job-text {
  font-size: clamp(1.375rem, 5.87vw, 2.75rem);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.05em;
  -webkit-text-stroke: 1px #FFEAEB;
}
.header-fv__subtitle-job-text > .text-no {
  font-size: clamp(1.25rem, 5.33vw, 2.5rem);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.05em;
}
.header-fv__subtitle-job-text > .text-as {
  font-size: clamp(1.063rem, 4.53vw, 2.125rem);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.05em;
}

.header-fv__pr {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.313rem, 1.33vw, 0.625rem);
  position: relative;
  z-index: 1;
  margin-top: clamp(0.938rem, 4vw, 1.875rem);
  margin-left: clamp(1.938rem, 8.27vw, 3.875rem);
}

.header-fv__pr-item {
  background: url("../img/bg-modal.webp") no-repeat center center/cover;
  width: clamp(10rem, 42.67vw, 20rem);
  height: clamp(4.313rem, 18.4vw, 8.625rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.header-fv__pr-item-text {
  text-shadow: clamp(0.063rem, 0.27vw, 0.125rem) clamp(0.063rem, 0.27vw, 0.125rem) 0 #6b000c;
}
.header-fv__pr-item-text > .size-36 {
  color: #fff;
  text-align: center;
  font-size: clamp(1.125rem, 4.8vw, 2.25rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: 0.04em;
}
.header-fv__pr-item-text > .size-26 {
  color: #fff;
  font-size: clamp(0.813rem, 3.47vw, 1.625rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
}
.header-fv__pr-item-text > .size-32 {
  color: #fff;
  font-size: clamp(1rem, 4.27vw, 2rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: 0.04em;
}
.header-fv__pr-item-text > .size-27 {
  color: #fff;
  font-size: clamp(0.844rem, 3.6vw, 1.688rem);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: 0.04em;
}
.header-fv__pr-item-text > .size-30 {
  color: #fff;
  font-size: clamp(0.938rem, 4vw, 1.875rem);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: 0.04em;
}

.header-fv__image {
  width: clamp(16.563rem, 70.67vw, 33.125rem);
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 0;
}
.header-fv__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  overflow: hidden;
}

.cta {
  position: relative;
}

.cta__contents--slash {
  background: url("../img/bg-cta3.svg") no-repeat center top/cover;
  padding-top: clamp(3.125rem, 13.33vw, 6.25rem);
  padding-bottom: clamp(1.875rem, 8vw, 3.75rem);
  position: absolute;
  top: clamp(9.875rem, 42.13vw, 19.75rem);
  left: 0;
  width: 100%;
  gap: clamp(1.188rem, 5.07vw, 2.375rem) !important;
}

.cta--primary {
  background: #171717;
  padding-top: clamp(1.813rem, 7.73vw, 3.625rem);
  padding-bottom: clamp(2.188rem, 9.33vw, 4.375rem);
}

.cta__contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.938rem, 4vw, 1.875rem);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.cta__copy {
  color: #fff;
  text-align: center;
  font-size: clamp(1.188rem, 5.07vw, 2.375rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
}
.cta__copy span {
  font-size: clamp(1.438rem, 6.13vw, 2.875rem);
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
}

.cta__button {
  color: #fff;
  font-size: clamp(1.25rem, 5.33vw, 2.5rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  width: clamp(20.625rem, 88vw, 41.25rem);
  height: clamp(3.75rem, 16vw, 7.5rem);
  padding-top: clamp(1.188rem, 5.07vw, 2.375rem);
  padding-bottom: clamp(1.313rem, 5.6vw, 2.625rem);
  -ms-flex-negative: 0;
      flex-shrink: 0;
  border-radius: clamp(2.188rem, 9.33vw, 4.375rem);
  background: #C30015;
  -webkit-box-shadow: 0 clamp(0.313rem, 1.33vw, 0.625rem) 0 0 #72000C;
          box-shadow: 0 clamp(0.313rem, 1.33vw, 0.625rem) 0 0 #72000C;
  position: relative;
  overflow: hidden;
}
.cta__button::before {
  position: absolute;
  content: "";
  display: inline-block;
  top: 70px;
  left: 0;
  width: 600px;
  height: 100%;
  background-color: #fff;
}
.cta__button::after {
  content: "";
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  right: clamp(2.031rem, 8.67vw, 4.063rem);
  width: clamp(0.75rem, 3.2vw, 1.5rem);
  height: clamp(1.25rem, 5.33vw, 2.5rem);
  background-image: url("../img/icon-cta.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 1;
}

/* ボタンがキラっと光るアニメーション */
.animation:before {
  -webkit-animation: kiran 3s ease-in-out infinite;
          animation: kiran 3s ease-in-out infinite;
}

@-webkit-keyframes kiran {
  0% {
    -webkit-transform: scale(0) rotate(45deg);
            transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    -webkit-transform: scale(0) rotate(45deg);
            transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    -webkit-transform: scale(2) rotate(45deg);
            transform: scale(2) rotate(45deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(8) rotate(45deg);
            transform: scale(8) rotate(45deg);
    opacity: 0;
  }
}

@keyframes kiran {
  0% {
    -webkit-transform: scale(0) rotate(45deg);
            transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    -webkit-transform: scale(0) rotate(45deg);
            transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    -webkit-transform: scale(2) rotate(45deg);
            transform: scale(2) rotate(45deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(8) rotate(45deg);
            transform: scale(8) rotate(45deg);
    opacity: 0;
  }
}
.cta__image {
  display: block;
  margin: 0 auto;
}

.model {
  background: url("../img/bg-model.webp") no-repeat center top/contain, #FFEEF0;
  padding-top: clamp(2.5rem, 10.67vw, 5rem);
  position: relative;
}

@media screen and (min-width: 751px) {
  .model__inner {
    width: 750px;
    margin: 0 auto;
  }
}

.model__title {
  font-size: clamp(1.5rem, 6.4vw, 3rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.02em;
  padding-left: clamp(2.625rem, 11.2vw, 5.25rem);
  background: radial-gradient(20.73% 67.03% at 38.17% 32.53%, #ffd5de 0%, #fff 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-filter: drop-shadow(clamp(0.063rem, 0.27vw, 0.125rem) clamp(0.063rem, 0.27vw, 0.125rem) 0 #6b000c);
          filter: drop-shadow(clamp(0.063rem, 0.27vw, 0.125rem) clamp(0.063rem, 0.27vw, 0.125rem) 0 #6b000c);
}
.model__title > .text-na {
  background: radial-gradient(20.73% 67.03% at 38.17% 32.53%, #ffd5de 0%, #fff 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: clamp(1.5rem, 6.4vw, 3rem);
  font-weight: 900;
  letter-spacing: 0.15em;
}
.model__title > .text-jounetsu {
  background: radial-gradient(20.73% 67.03% at 38.17% 32.53%, #ffd5de 0%, #fff 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "source-han-serif-jp-subset", "Noto Serif JP", serif;
  font-size: clamp(2.125rem, 9.07vw, 4.25rem);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.02em;
}

.model__contents {
  width: clamp(18.125rem, 77.33vw, 36.25rem);
  margin: clamp(1.875rem, 8vw, 3.75rem) auto 0;
  padding: clamp(1.625rem, 6.93vw, 3.25rem) clamp(1.875rem, 8vw, 3.75rem);
  background: #fff;
  position: relative;
  z-index: 2;
}

.model__contents-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.531rem, 2.27vw, 1.063rem);
}

.model__contents-list-item {
  color: #000;
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.02em;
  position: relative;
  padding-left: clamp(1.563rem, 6.67vw, 3.125rem);
}
.model__contents-list-item::before {
  content: "";
  position: absolute;
  background-image: url("../img/icon-checkbox.svg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  left: 0;
  top: 33%;
  width: clamp(0.938rem, 4vw, 1.875rem);
  height: clamp(0.938rem, 4vw, 1.875rem);
}
.model__contents-list-item > .text-red {
  color: #C30015;
  font-weight: 900;
}

.model__contents-check1 {
  font-size: clamp(1.125rem, 4.8vw, 2.25rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.125em;
  text-align: center;
  margin-top: clamp(1rem, 4.27vw, 2rem);
  position: relative;
  z-index: 2;
}
.model__contents-check1 > .text-number {
  color: #C30015;
  text-align: center;
  font-size: clamp(2.125rem, 9.07vw, 4.25rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.model__contents-check1 > .text-red {
  color: #C30015;
  font-size: clamp(1.125rem, 4.8vw, 2.25rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.model__contents-check2 {
  font-size: clamp(1.625rem, 6.93vw, 3.25rem);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.096em;
  text-align: center;
  margin-top: clamp(1.063rem, 4.53vw, 2.125rem);
  margin-bottom: clamp(1.438rem, 6.13vw, 2.875rem);
  position: relative;
  z-index: 2;
}
.model__contents-check2 > .text-number {
  color: #C30015;
  font-size: clamp(2.125rem, 9.07vw, 4.25rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.model__contents-check2 > .underline {
  text-align: stretch;
  color: #C30015;
  font-size: clamp(1.938rem, 8.27vw, 3.875rem);
  font-weight: 900;
  line-height: 1.6;
  letter-spacing: 0.12em;
  text-decoration: underline;
  text-underline-offset: clamp(0.75rem, 3.2vw, 1.5rem);
  text-decoration-thickness: clamp(0.125rem, 0.53vw, 0.25rem);
}

.triangle {
  width: 100%;
  height: clamp(2.5rem, 10.67vw, 5rem);
  background: url("../img/bg-triangle.svg") no-repeat center top/contain, #fff;
  bottom: 0;
  left: 0;
}

.deco-circle,
.deco-square-left,
.deco-square-right,
.deco-dots {
  position: absolute;
  z-index: 0;
}
.deco-circle img,
.deco-square-left img,
.deco-square-right img,
.deco-dots img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  overflow: hidden;
}

.deco-circle {
  top: clamp(19.063rem, 81.33vw, 38.125rem);
  right: 0;
  width: clamp(4.688rem, 20vw, 9.375rem);
  height: clamp(7.219rem, 30.8vw, 14.438rem);
}

.deco-square-left {
  top: clamp(31.938rem, 136.27vw, 63.875rem);
  left: 0;
  width: clamp(6.938rem, 29.6vw, 13.875rem);
}

.deco-square-right {
  top: clamp(21.938rem, 93.6vw, 43.875rem);
  right: clamp(0.094rem, 0.4vw, 0.188rem);
  width: clamp(6.938rem, 29.6vw, 13.875rem);
}

.deco-dots {
  top: clamp(44.844rem, 191.33vw, 89.688rem);
  right: 0;
  width: clamp(10.375rem, 44.27vw, 20.75rem);
}

.merit {
  padding: clamp(1.938rem, 8.27vw, 3.875rem) clamp(1.719rem, 7.33vw, 3.438rem) clamp(2.313rem, 9.87vw, 4.625rem);
}

.merit__title {
  text-align: center;
  font-size: clamp(1.75rem, 7.47vw, 3.5rem);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.045em;
  position: relative;
  margin-bottom: clamp(1.563rem, 6.67vw, 3.125rem);
}
.merit__title > .small {
  font-size: clamp(1.5rem, 6.4vw, 3rem);
  font-weight: 900;
}
.merit__title > .highlight {
  color: #C30015;
  font-size: clamp(2.625rem, 11.2vw, 5.25rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
.merit__title > .red {
  color: #C30015;
  font-size: clamp(1.719rem, 7.33vw, 3.438rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.15em;
}

.merit__subtitle {
  color: #FFEEF0;
  text-align: center;
  font-family: "din-2014", sans-serif;
  font-size: clamp(3.813rem, 16.27vw, 7.625rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.02em;
  position: absolute;
  bottom: clamp(-3.125rem, -6.67vw, -1.563rem);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: -1;
}

.merit__contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(2.25rem, 9.6vw, 4.5rem);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 751px) {
  .merit__contents {
    width: 750px;
    margin: 0 auto;
  }
}

.merit__item {
  width: clamp(19.688rem, 84vw, 39.375rem);
}

.merit__item-img img {
  width: 100%;
  overflow: hidden;
}

.merit__item-header-title {
  margin-top: clamp(1.063rem, 4.53vw, 2.125rem);
  margin-bottom: clamp(0.75rem, 3.2vw, 1.5rem);
}

.merit__item-header-title-number {
  color: #C30015;
  font-family: "din-2014", sans-serif;
  font-size: clamp(2rem, 8.53vw, 4rem);
  font-weight: 800;
  line-height: 0.88;
  letter-spacing: -0.02em;
}

.merit__item-header-title-text {
  color: #fff;
  font-size: clamp(1.188rem, 5.07vw, 2.375rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  padding: 0 clamp(0.25rem, 1.07vw, 0.5rem) clamp(0.063rem, 0.27vw, 0.125rem) clamp(0.25rem, 1.07vw, 0.5rem);
  background: #C30015;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.merit__item-textbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.5rem, 2.13vw, 1rem);
}

.merit__item-textbox-text {
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.merit__item-textbox-text > .red {
  color: #C30015;
  font-weight: 700;
}
.merit__item-textbox-text > .bold {
  color: #C30015;
  font-weight: 900;
}

.number {
  background: url("../img/bg-number-top.webp") no-repeat center top, url("../img/bg-number-bottom.webp") no-repeat center bottom, #C30015;
  background-size: contain, contain, auto;
  padding: clamp(2.5rem, 10.67vw, 5rem) clamp(1.875rem, 8vw, 3.75rem);
}
@media screen and (min-width: 751px) {
  .number {
    background-size: cover, contain, auto;
  }
}

.number__title {
  color: #fff;
  text-align: center;
  font-size: clamp(1.75rem, 7.47vw, 3.5rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.02em;
  margin-bottom: clamp(1.563rem, 6.67vw, 3.125rem);
}

.number__contents {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(0.625rem, 2.67vw, 1.25rem);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 751px) {
  .number__contents {
    width: calc(750px - clamp(1.875rem, 8vw, 3.75rem) * 2);
    margin: 0 auto;
  }
}

.number__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: clamp(9.531rem, 40.67vw, 19.063rem);
  height: clamp(10.125rem, 43.2vw, 20.25rem);
  border: clamp(0.125rem, 0.53vw, 0.25rem) solid #000;
  background: #fff;
  padding: clamp(0.781rem, 3.33vw, 1.563rem);
}
.number__item:nth-child(3) {
  padding-top: clamp(0.625rem, 2.67vw, 1.25rem);
}
.number__item:nth-child(3) .number__item-text {
  line-height: 1;
  letter-spacing: 0.1em;
}

.number__item-text {
  font-size: clamp(1rem, 4.27vw, 2rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.02em; /* 0.$size-64 ÷ $size-32 = 0.02em */
  text-align: center;
}
.number__item-text .highlight {
  color: #C30015;
  font-size: clamp(2.375rem, 10.13vw, 4.75rem);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.number__item-text .bold {
  color: #C30015;
  font-size: clamp(1.75rem, 7.47vw, 3.5rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.number__item-text .red {
  color: #C30015;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.047em;
}

.number__item-icon--age {
  width: clamp(3.813rem, 16.27vw, 7.625rem);
  margin-top: clamp(0.25rem, 1.07vw, 0.5rem);
}
.number__item-icon--vacation {
  width: clamp(3.531rem, 15.07vw, 7.063rem);
  margin-top: clamp(0.5rem, 2.13vw, 1rem);
}
.number__item-icon--money {
  width: clamp(2.906rem, 12.4vw, 5.813rem);
  margin-top: clamp(1.063rem, 4.53vw, 2.125rem);
}
.number__item-icon--clock {
  width: clamp(3rem, 12.8vw, 6rem);
  margin-top: clamp(0.625rem, 2.67vw, 1.25rem);
}
.number__item-icon--train {
  width: clamp(3.281rem, 14vw, 6.563rem);
  margin-top: clamp(0.406rem, 1.73vw, 0.813rem);
}
.number__item-icon--salary {
  width: clamp(4.688rem, 20vw, 9.375rem);
  margin-top: clamp(-0.156rem, -0.67vw, -0.313rem);
  margin-right: clamp(0.625rem, 2.67vw, 1.25rem);
}

.number__item-icon-img {
  width: 100%;
}

.separator {
  width: 100%;
  height: clamp(0.5rem, 2.13vw, 1rem);
  background: #C30015;
  position: relative;
}
.separator::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: clamp(7.813rem, 33.33vw, 15.625rem);
  height: clamp(0.5rem, 2.13vw, 1rem);
  background: #C30015;
  mix-blend-mode: multiply;
}

.message {
  position: relative;
  background-image: url("../img/bg-message.svg");
  background-position: center bottom;
  background-size: contain;
  background-repeat: no-repeat;
}
@media screen and (min-width: 751px) {
  .message {
    background-position: center -300px;
    background-size: cover;
  }
}
.message::before {
  content: url("../img/bg-message-top.svg");
  position: absolute;
  top: 0;
  left: 0;
  width: clamp(5.75rem, 24.53vw, 11.5rem);
  height: clamp(5.75rem, 24.53vw, 11.5rem);
  z-index: -1;
}

.message__inner {
  position: relative;
  padding-top: clamp(2.625rem, 11.2vw, 5.25rem);
}
@media screen and (min-width: 751px) {
  .message__inner {
    width: 750px;
    margin: 0 auto;
  }
}

.message__contents-title {
  font-size: clamp(0.813rem, 3.47vw, 1.625rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.02em;
  padding-left: clamp(1.813rem, 7.73vw, 3.625rem);
}

.message__header {
  position: absolute;
  top: clamp(1.25rem, 5.33vw, 2.5rem);
  left: clamp(0.938rem, 4vw, 1.875rem);
}

.message__title--en {
  color: #c30015;
  font-family: "din-2014", sans-serif;
  font-size: clamp(2.5rem, 10.67vw, 5rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.message__title--ja {
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  margin-top: clamp(-0.188rem, -0.8vw, -0.375rem);
}

.message__image {
  display: block;
  width: clamp(18.125rem, 77.33vw, 36.25rem);
  margin-left: auto;
  margin-right: 0;
}

.message__catch {
  position: absolute;
  top: clamp(8.844rem, 37.73vw, 17.688rem);
  left: clamp(1.25rem, 5.33vw, 2.5rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.406rem, 1.73vw, 0.813rem);
}

.message__catch-text {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  color: #fff;
  font-size: clamp(1.531rem, 6.53vw, 3.063rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  background: #C30015;
  padding: clamp(0.188rem, 0.8vw, 0.375rem) clamp(0.281rem, 1.2vw, 0.563rem) clamp(0.25rem, 1.07vw, 0.5rem);
}
.message__catch-text:nth-child(2) {
  letter-spacing: 0.07em;
  padding-right: 0;
}
.message__catch-text:nth-child(3) {
  letter-spacing: 0.055em;
  padding-right: clamp(0.75rem, 3.2vw, 1.5rem);
}

.message__contents {
  margin-top: clamp(1.25rem, 5.33vw, 2.5rem);
}

.message__contents-name {
  font-family: "source-han-serif-jp-subset", "Noto Serif JP", serif;
  font-size: clamp(1.5rem, 6.4vw, 3rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
  margin-top: clamp(0.938rem, 4vw, 1.875rem);
  margin-right: clamp(1.875rem, 8vw, 3.75rem);
  padding-left: clamp(1.813rem, 7.73vw, 3.625rem);
  padding-bottom: clamp(0.375rem, 1.6vw, 0.75rem);
  border-bottom: clamp(0.25rem, 1.07vw, 0.5rem) solid #c30015;
}
.message__contents-name > span {
  color: #C30015;
  font-family: "source-han-serif-jp-subset", "Noto Serif JP", serif;
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.01em;
  margin-left: clamp(0.656rem, 2.8vw, 1.313rem);
}

.message__contents-text {
  padding: clamp(0.625rem, 2.67vw, 1.25rem) clamp(1.875rem, 8vw, 3.75rem) clamp(2.5rem, 10.67vw, 5rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.938rem, 4vw, 1.875rem);
}
.message__contents-text > p {
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.message__contents-text > p > span {
  color: #C30015;
  font-weight: 700;
}

.message__contents-text-footer {
  font-size: clamp(1.313rem, 5.6vw, 2.625rem);
  font-weight: 900;
  line-height: 1.6;
  letter-spacing: 0.06em;
  text-decoration: underline;
  text-decoration-thickness: clamp(0.063rem, 0.27vw, 0.125rem);
  text-underline-position: under;
  text-underline-offset: clamp(0.156rem, 0.67vw, 0.313rem);
}
.message__contents-text-footer > span {
  color: #C30015;
  font-size: clamp(1.875rem, 8vw, 3.75rem);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.08em;
}

.work {
  background: #fff;
}

.work__title {
  color: #fff;
  text-shadow: 0 clamp(0.125rem, 0.53vw, 0.25rem) clamp(0.125rem, 0.53vw, 0.25rem) rgba(0, 0, 0, 0.25);
  font-size: clamp(1.75rem, 7.47vw, 3.5rem);
  font-weight: 900;
  line-height: 1.55;
  letter-spacing: 0.04em;
  width: 100%;
  height: clamp(5rem, 21.33vw, 10rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: url("../img/bg-work.webp") no-repeat center center/cover;
}

.work__lead {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(0.875rem, 3.73vw, 1.75rem);
  padding-top: clamp(0.875rem, 3.73vw, 1.75rem);
  padding-bottom: clamp(1.25rem, 5.33vw, 2.5rem);
}

.work__flow {
  background: #eaeaea;
  padding-top: clamp(0.563rem, 2.4vw, 1.125rem);
  padding-bottom: clamp(0.938rem, 4vw, 1.875rem);
  padding-left: clamp(1.25rem, 5.33vw, 2.5rem);
}

.work__info {
  padding: clamp(1.25rem, 5.33vw, 2.5rem) clamp(0.938rem, 4vw, 1.875rem) clamp(2.5rem, 10.67vw, 5rem);
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.938rem, 4vw, 1.875rem);
}

.work__lead-text {
  width: clamp(19.688rem, 84vw, 39.375rem);
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.02em;
}
.work__lead-text > span {
  color: #C30015;
  font-weight: 700;
}

.work__flow-title {
  font-size: clamp(1.188rem, 5.07vw, 2.375rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-align: center;
  margin-bottom: clamp(0.75rem, 3.2vw, 1.5rem);
  margin-right: clamp(1.094rem, 4.67vw, 2.188rem);
}

.work__flow-list {
  display: grid;
  grid-template-columns: clamp(6.188rem, 26.4vw, 12.375rem) 1fr;
  row-gap: clamp(0.313rem, 1.33vw, 0.625rem);
  -webkit-column-gap: clamp(0.75rem, 3.2vw, 1.5rem);
     -moz-column-gap: clamp(0.75rem, 3.2vw, 1.5rem);
          column-gap: clamp(0.75rem, 3.2vw, 1.5rem);
}
@media screen and (min-width: 751px) {
  .work__flow-list {
    width: 670px;
    margin: 0 auto;
  }
}

.work__flow-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(0.313rem, 1.33vw, 0.625rem);
  background: #fff;
  padding-top: clamp(0.188rem, 0.8vw, 0.375rem);
  padding-bottom: clamp(0.25rem, 1.07vw, 0.5rem);
  padding-left: clamp(0.313rem, 1.33vw, 0.625rem);
  position: relative;
}
.work__flow-header:not(:last-of-type)::after {
  content: "";
  position: absolute;
  bottom: clamp(-0.75rem, -1.6vw, -0.375rem);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: clamp(0.25rem, 1.07vw, 0.5rem);
  height: clamp(0.375rem, 1.6vw, 0.75rem);
  background: #fff;
  z-index: 0;
}

.work__flow-num {
  color: #C30015;
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.work__flow-text {
  font-size: clamp(0.938rem, 4vw, 1.875rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.work__flow-item {
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
  padding-top: clamp(0.188rem, 0.8vw, 0.375rem);
}
.work__flow-item > span {
  font-size: clamp(0.625rem, 2.67vw, 1.25rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

@media screen and (min-width: 751px) {
  .work__info-contents {
    width: 670px;
    margin: 0 auto;
  }
}

.work__info-title {
  border-left: clamp(0.313rem, 1.33vw, 0.625rem) solid #C30015;
  background: #eaeaea;
  padding-top: clamp(0.156rem, 0.67vw, 0.313rem);
  padding-bottom: clamp(0.25rem, 1.07vw, 0.5rem);
  padding-left: clamp(1.25rem, 5.33vw, 2.5rem);
  font-size: clamp(0.938rem, 4vw, 1.875rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.work__info-salary {
  padding-left: clamp(1.563rem, 6.67vw, 3.125rem);
  padding-top: clamp(0.625rem, 2.67vw, 1.25rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.313rem, 1.33vw, 0.625rem);
}

.work__info-salary--normal {
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.work__info-salary--normal .highlight {
  color: #C30015;
  font-weight: 700;
  font-size: clamp(1.125rem, 4.8vw, 2.25rem);
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.work__info-salary--normal .bold {
  font-weight: 700;
}

.work__info-salary--small {
  font-size: clamp(0.625rem, 2.67vw, 1.25rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.work__info-salary--medium {
  font-size: clamp(0.813rem, 3.47vw, 1.625rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.work__info-salary--title {
  display: block;
  border-radius: clamp(0.063rem, 0.27vw, 0.125rem);
  border: clamp(0.063rem, 0.27vw, 0.125rem) solid #000;
  width: clamp(6.125rem, 26.13vw, 12.25rem);
  height: clamp(1.313rem, 5.6vw, 2.625rem);
  text-align: center;
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin-top: clamp(0.313rem, 1.33vw, 0.625rem);
}

.work__info-benefits {
  padding-left: clamp(1.563rem, 6.67vw, 3.125rem);
  padding-top: clamp(0.625rem, 2.67vw, 1.25rem);
}

.work__info-benefits-item {
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.01em;
  padding-left: clamp(0.875rem, 3.73vw, 1.75rem);
  position: relative;
}
.work__info-benefits-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: clamp(0.406rem, 1.73vw, 0.813rem);
  height: clamp(0.406rem, 1.73vw, 0.813rem);
  background: #C30015;
  border-radius: 50%;
}
.work__info-benefits-item:nth-of-type(3), .work__info-benefits-item:nth-of-type(5) {
  margin-bottom: clamp(0.594rem, 2.53vw, 1.188rem);
}

.work__info-time {
  padding-left: clamp(1.563rem, 6.67vw, 3.125rem);
  padding-top: clamp(0.688rem, 2.93vw, 1.375rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.313rem, 1.33vw, 0.625rem);
}

.work__info-time--normal {
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.work__info-time--normal .bold {
  font-weight: 700;
}

.work__info-time--small {
  font-size: clamp(0.625rem, 2.67vw, 1.25rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.work__info-text {
  padding-left: clamp(1.563rem, 6.67vw, 3.125rem);
  padding-top: clamp(0.656rem, 2.8vw, 1.313rem);
}

.work__info-text--normal {
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: 0.02em;
}

.work__info-text--small {
  font-size: clamp(0.625rem, 2.67vw, 1.25rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.work__info-list {
  padding-left: clamp(1.563rem, 6.67vw, 3.125rem);
  padding-top: clamp(0.625rem, 2.67vw, 1.25rem);
  display: grid;
  grid-template-columns: clamp(3.594rem, 15.33vw, 7.188rem) 1fr;
  row-gap: clamp(0.063rem, 0.27vw, 0.125rem);
  -webkit-column-gap: clamp(0.625rem, 2.67vw, 1.25rem);
     -moz-column-gap: clamp(0.625rem, 2.67vw, 1.25rem);
          column-gap: clamp(0.625rem, 2.67vw, 1.25rem);
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  letter-spacing: 0.02em;
}

.work__info-list-title {
  font-weight: 700;
  line-height: 1.4;
}

.work__info-list-text {
  font-weight: 500;
  line-height: 1.4;
}

.qa {
  background: #eaeaea;
  padding: clamp(2.5rem, 10.67vw, 5rem) clamp(0.938rem, 4vw, 1.875rem) clamp(2.5rem, 10.67vw, 5rem);
}

.qa__title {
  text-align: center;
  font-size: clamp(1.75rem, 7.47vw, 3.5rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.08em;
  margin-bottom: clamp(2.125rem, 9.07vw, 4.25rem);
}
.qa__title > span {
  color: #C30015;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.qa__contents {
  width: clamp(21.563rem, 92vw, 43.125rem);
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(1.031rem, 4.4vw, 2.063rem);
}

.qa__item {
  background: #fff;
  padding: clamp(1.188rem, 5.07vw, 2.375rem) clamp(0.906rem, 3.87vw, 1.813rem) clamp(1.219rem, 5.2vw, 2.438rem);
  -webkit-box-shadow: 0 0 clamp(0.313rem, 1.33vw, 0.625rem) rgba(0, 0, 0, 0.05);
          box-shadow: 0 0 clamp(0.313rem, 1.33vw, 0.625rem) rgba(0, 0, 0, 0.05);
}

summary {
  display: block;
}
summary::-webkit-details-marker {
  display: none;
}

.qa__question,
.qa__answer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
  gap: clamp(0.594rem, 2.53vw, 1.188rem);
}

.qa__answer {
  margin-top: clamp(0.781rem, 3.33vw, 1.563rem);
}

.qa__icon--question,
.qa__icon--answer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: clamp(1.344rem, 5.73vw, 2.688rem);
  height: clamp(1.344rem, 5.73vw, 2.688rem);
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-family: "din-2014", sans-serif;
  font-size: clamp(0.938rem, 4vw, 1.875rem);
  line-height: 1;
  font-weight: 700;
}

.qa__icon--question {
  color: #fff;
  background: #C30015;
}

.qa__icon--answer {
  margin-top: clamp(0.938rem, 4vw, 1.875rem);
  color: #000;
  border: 1px solid #000;
}

.qa__question-text {
  font-size: clamp(0.813rem, 3.47vw, 1.625rem);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.09em;
  width: 100%;
}

.qa__answer-text {
  font-size: clamp(0.813rem, 3.47vw, 1.625rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.02em;
  border-top: 1px solid #000;
  padding-top: clamp(0.781rem, 3.33vw, 1.563rem);
}

.qa__icon {
  position: relative;
  display: block;
  width: clamp(1.188rem, 5.07vw, 2.375rem);
  height: clamp(1.188rem, 5.07vw, 2.375rem);
  background: #C30015;
  border-radius: 50%;
  aspect-ratio: 1;
}
.qa__icon::before, .qa__icon::after {
  content: "";
  position: absolute;
  background: #fff;
}
.qa__icon::before {
  width: clamp(0.625rem, 2.67vw, 1.25rem);
  height: clamp(0.094rem, 0.4vw, 0.188rem);
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.qa__icon::after {
  width: clamp(0.094rem, 0.4vw, 0.188rem);
  height: clamp(0.625rem, 2.67vw, 1.25rem);
  top: calc(50% - clamp(0.313rem, 1.33vw, 0.625rem));
  left: calc(50% - 1px);
  -webkit-transform-origin: center center;
          transform-origin: center center;
  -webkit-transition: rotate 0.3s ease;
  transition: rotate 0.3s ease;
}

details[open] .qa__icon::after {
  rotate: 90deg;
}

.form {
  background: #fff;
}

.form__title {
  color: #fff;
  text-shadow: 0 clamp(0.125rem, 0.53vw, 0.25rem) clamp(0.125rem, 0.53vw, 0.25rem) rgba(0, 0, 0, 0.25);
  font-size: clamp(1.813rem, 7.73vw, 3.625rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.02em;
  width: 100%;
  height: clamp(6.563rem, 28vw, 13.125rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: url("../img/bg-form.webp") no-repeat center center/cover;
}

.form__contents {
  width: clamp(20.625rem, 88vw, 41.25rem);
  margin: 0 auto;
  padding: clamp(1.563rem, 6.67vw, 3.125rem) 0;
}

.form__contents-text {
  text-align: center;
  font-size: clamp(1.188rem, 5.07vw, 2.375rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.contact__form {
  margin-top: clamp(1.563rem, 6.67vw, 3.125rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(1.25rem, 5.33vw, 2.5rem);
}

.contact__row {
  padding: 0 clamp(0.469rem, 2vw, 0.938rem);
}

.contact__head {
  text-align: justify;
  font-size: clamp(0.938rem, 4vw, 1.875rem);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
  margin-bottom: clamp(0.5rem, 2.13vw, 1rem);
}
.contact__head > span {
  margin-left: clamp(0.469rem, 2vw, 0.938rem);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  padding: clamp(0.25rem, 1.07vw, 0.5rem) clamp(0.625rem, 2.67vw, 1.25rem) clamp(0.188rem, 0.8vw, 0.375rem);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(0.313rem, 1.33vw, 0.625rem);
  border-radius: clamp(1.875rem, 8vw, 3.75rem);
  background: #b40000;
  color: #fff;
  text-align: justify;
  font-size: clamp(0.813rem, 3.47vw, 1.625rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
}

.contact__data--birth {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: end;
  gap: clamp(0.5rem, 2.13vw, 1rem);
}
.contact__data--birth > span {
  font-size: clamp(0.938rem, 4vw, 1.875rem);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.02em;
  padding-right: clamp(0.156rem, 0.67vw, 0.313rem);
  padding-bottom: clamp(0.438rem, 1.87vw, 0.875rem);
}

img {
  overflow: hidden;
}

input[type=text],
input[type=email],
input[type=tel],
select,
textarea {
  border-radius: 0;
  width: 100%;
  border-radius: clamp(0.125rem, 0.53vw, 0.25rem);
  background: #efefef;
  border: none;
  height: clamp(2.375rem, 10.13vw, 4.75rem);
  padding-left: 30px;
  font-size: clamp(0.938rem, 4vw, 1.875rem);
}
input[type=text]:focus,
input[type=email]:focus,
input[type=tel]:focus,
select:focus,
textarea:focus {
  outline: none;
  border: clamp(0.063rem, 0.27vw, 0.125rem) solid #000;
}
input[type=text].touched:invalid,
input[type=email].touched:invalid,
input[type=tel].touched:invalid,
select.touched:invalid,
textarea.touched:invalid {
  border: clamp(0.063rem, 0.27vw, 0.125rem) solid #C30015;
}

select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  padding-left: clamp(1.25rem, 5.33vw, 2.5rem);
  font-size: clamp(0.938rem, 4vw, 1.875rem);
}
select:focus {
  outline: none;
  border: clamp(0.063rem, 0.27vw, 0.125rem) solid #000;
}

.contact__select-wrap {
  position: relative;
}
.contact__select-wrap::after {
  content: "";
  position: absolute;
  background: url("../img/icon-select.svg") no-repeat center center/contain;
  width: clamp(0.844rem, 3.6vw, 1.688rem);
  height: clamp(0.406rem, 1.73vw, 0.813rem);
  top: clamp(1.25rem, 5.33vw, 2.5rem);
  right: clamp(1.25rem, 5.33vw, 2.5rem);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}

.contact__select-wrap--birth-y,
.contact__select-wrap--birth-m,
.contact__select-wrap--birth-d {
  position: relative;
}
.contact__select-wrap--birth-y::after,
.contact__select-wrap--birth-m::after,
.contact__select-wrap--birth-d::after {
  content: "";
  background: url("../img/icon-select.svg") no-repeat center center/contain;
  position: absolute;
  width: clamp(0.844rem, 3.6vw, 1.688rem);
  height: clamp(0.406rem, 1.73vw, 0.813rem);
  top: clamp(1.063rem, 4.53vw, 2.125rem);
  right: clamp(0.625rem, 2.67vw, 1.25rem);
  pointer-events: none;
}
.contact__select-wrap--birth-y > select,
.contact__select-wrap--birth-m > select,
.contact__select-wrap--birth-d > select {
  padding-left: clamp(0.625rem, 2.67vw, 1.25rem);
}

.contact__select-wrap--birth-y {
  width: clamp(5.313rem, 22.67vw, 10.625rem);
}

.contact__select-wrap--birth-m,
.contact__select-wrap--birth-d {
  width: clamp(3.188rem, 13.6vw, 6.375rem);
}

input[type=radio] {
  width: 1px;
  height: 1px;
  position: absolute;
  clip: rect(0, 0, 0, 0);
}

input[type=radio]:checked + span::after {
  opacity: 1;
}

.contact__data-radio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  gap: clamp(0.625rem, 2.67vw, 1.25rem);
}
.contact__data-radio span {
  font-size: clamp(0.938rem, 4vw, 1.875rem);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.02em;
  padding-left: clamp(0.75rem, 3.2vw, 1.5rem);
  display: inline-block;
  position: relative;
}
.contact__data-radio span::before {
  content: "";
  position: absolute;
  width: clamp(0.5rem, 2.13vw, 1rem);
  height: clamp(0.5rem, 2.13vw, 1rem);
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  border-radius: 50%;
  border: clamp(0.063rem, 0.27vw, 0.125rem) solid #000;
}
.contact__data-radio span::after {
  content: "";
  position: absolute;
  width: clamp(0.313rem, 1.33vw, 0.625rem);
  height: clamp(0.313rem, 1.33vw, 0.625rem);
  left: clamp(0.094rem, 0.4vw, 0.188rem);
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  border-radius: 50%;
  background: #C30015;
  opacity: 0;
}

input[type=submit],
input[type=button] {
  border-radius: 0px;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
  border: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  cursor: pointer;
  background: transparent;
}

input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
  display: none;
}

.row.jc-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.contact__submit {
  padding-top: clamp(0.625rem, 2.67vw, 1.25rem);
  padding-bottom: clamp(0.938rem, 4vw, 1.875rem);
  text-align: center;
}

.contact__submit-button {
  color: #fff;
  font-size: clamp(1.25rem, 5.33vw, 2.5rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  width: clamp(20.625rem, 88vw, 41.25rem);
  height: clamp(3.75rem, 16vw, 7.5rem);
  padding-top: clamp(1.188rem, 5.07vw, 2.375rem);
  padding-bottom: clamp(1.313rem, 5.6vw, 2.625rem);
  -ms-flex-negative: 0;
      flex-shrink: 0;
  border-radius: clamp(2.188rem, 9.33vw, 4.375rem);
  background: #0f2a95;
  -webkit-box-shadow: 0 clamp(0.313rem, 1.33vw, 0.625rem) 0 0 #06007a;
          box-shadow: 0 clamp(0.313rem, 1.33vw, 0.625rem) 0 0 #06007a;
  position: relative;
}
.contact__submit-button::after {
  content: "";
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  right: clamp(2.031rem, 8.67vw, 4.063rem);
  width: clamp(0.75rem, 3.2vw, 1.5rem);
  height: clamp(1.25rem, 5.33vw, 2.5rem);
  background-image: url("../img/icon-cta.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 1;
}

.cta__button {
  color: #fff;
  font-size: clamp(1.25rem, 5.33vw, 2.5rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  width: clamp(20.625rem, 88vw, 41.25rem);
  height: clamp(3.75rem, 16vw, 7.5rem);
  padding-top: clamp(1.188rem, 5.07vw, 2.375rem);
  padding-bottom: clamp(1.313rem, 5.6vw, 2.625rem);
  -ms-flex-negative: 0;
      flex-shrink: 0;
  border-radius: clamp(2.188rem, 9.33vw, 4.375rem);
  background: #C30015;
  -webkit-box-shadow: 0 clamp(0.313rem, 1.33vw, 0.625rem) 0 0 #72000C;
          box-shadow: 0 clamp(0.313rem, 1.33vw, 0.625rem) 0 0 #72000C;
  position: relative;
}
.cta__button::after {
  content: "";
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  right: clamp(2.031rem, 8.67vw, 4.063rem);
  width: clamp(0.75rem, 3.2vw, 1.5rem);
  height: clamp(1.25rem, 5.33vw, 2.5rem);
  background-image: url("../img/icon-cta.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 1;
}

.footer {
  background: #fff;
}

.footer__inner {
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.938rem, 4vw, 1.875rem);
  padding-top: clamp(1.125rem, 4.8vw, 2.25rem);
  padding-bottom: clamp(0.938rem, 4vw, 1.875rem);
}

.footer__company {
  font-size: clamp(0.625rem, 2.67vw, 1.25rem);
  font-weight: 500;
  letter-spacing: 0.02em;
}

.footer__copy {
  font-size: clamp(0.563rem, 2.4vw, 1.125rem);
  font-weight: 400;
  letter-spacing: 0.02em;
}

.thanks {
  background: #fff;
}

.thanks__title {
  color: #fff;
  text-shadow: 0 clamp(0.125rem, 0.53vw, 0.25rem) clamp(0.125rem, 0.53vw, 0.25rem) rgba(0, 0, 0, 0.25);
  font-size: clamp(1.813rem, 7.73vw, 3.625rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.02em;
  width: 100%;
  height: clamp(6.563rem, 28vw, 13.125rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: url("../img/bg-form.webp") no-repeat center center/cover;
}

.thanks__contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(0.313rem, 1.33vw, 0.625rem);
  padding-top: clamp(0.844rem, 3.6vw, 1.688rem);
  padding-bottom: clamp(1.25rem, 5.33vw, 2.5rem);
}

.thanks__contents-text {
  width: clamp(19.688rem, 84vw, 39.375rem);
  font-size: clamp(0.875rem, 3.73vw, 1.75rem);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.02em;
}
.thanks__contents-text > span {
  color: #C30015;
  font-weight: 700;
}

.animated__fadeIn,
.animated__fadeInDelay {
  opacity: 0;
  translate: 0 40px;
  -webkit-transition: opacity 0.4s ease, translate 0.4s ease;
  transition: opacity 0.4s ease, translate 0.4s ease;
}
.animated__fadeIn.js-show,
.animated__fadeInDelay.js-show {
  opacity: 1;
  translate: 0 0;
}

.animated__colorBox {
  position: relative;
  white-space: nowrap;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-clip-path: inset(0 100% 0 0);
          clip-path: inset(0 100% 0 0);
}
.animated__colorBox::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #C30015;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  pointer-events: none;
}
.animated__colorBox.js-show {
  -webkit-animation: 0.7s forwards ease-in-out textView;
          animation: 0.7s forwards ease-in-out textView;
}
.animated__colorBox.js-show::after {
  -webkit-animation: 0.7s forwards ease-in-out colorBox;
          animation: 0.7s forwards ease-in-out colorBox;
}

@-webkit-keyframes textView {
  from {
    -webkit-clip-path: inset(0 100% 0 0);
            clip-path: inset(0 100% 0 0);
  }
  to {
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
}

@keyframes textView {
  from {
    -webkit-clip-path: inset(0 100% 0 0);
            clip-path: inset(0 100% 0 0);
  }
  to {
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
}
@-webkit-keyframes colorBox {
  0%, 50% {
    -webkit-transform-origin: 0 50%;
            transform-origin: 0 50%;
  }
  60%, 100% {
    -webkit-transform-origin: 100% 50%;
            transform-origin: 100% 50%;
  }
  60% {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
  100% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
}
@keyframes colorBox {
  0%, 50% {
    -webkit-transform-origin: 0 50%;
            transform-origin: 0 50%;
  }
  60%, 100% {
    -webkit-transform-origin: 100% 50%;
            transform-origin: 100% 50%;
  }
  60% {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
  100% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
}