/* -----------------------------------------------------
    base
----------------------------------------------------- */
html {
  font-size: calc(100vw / 136.6);
  overflow-x: hidden;
  scroll-behavior: smooth;
}
body {
  color: var(--colorBlack);
  font-family: var(--fontNotoSans);
  overflow-x: hidden;
}

img {
  width: 100%;
}

a {
  transition: 0.3s;
}

p, h5, h4, h3, h2, h1, a, dd, dt, li, figcaption, button, label, input, address {
  color: var(--colorBlack);
  font-family: var(--fontNotoSans);
  font-size: 1rem;
  font-weight: 400;
}

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.for-pc {
  display: block;
}

.for-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  html {
    font-size: calc(100vw / 37.5);
  }

  .for-pc {
    display: none;
  }

  .for-sp {
    display: block;
  }
}

/* -----------------------------------------------------
    contents
----------------------------------------------------- */
.container990 {
  margin: 0 auto;
  max-width: 103rem;
  padding-inline: 2rem;
}

/* -----------------------------------------------------
    common
----------------------------------------------------- */
.commonLink {
  align-items: center;
  background: var(--colorMain);
  border: 1px solid var(--colorMain);
  border-radius: 6rem;
  color: var(--colorWhite);
  display: flex;
  font-size: 1.8rem;
  font-weight: 700;
  height: 5.9rem;
  justify-content: space-between;
  max-width: 22.7rem;
  padding-inline: 2.5rem 1.15rem;
  position: relative;
  transition: 0.3s;
  width: 100%;
}

.commonLink::after {
  background-image: url(../images/icon-link-arrow.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  height: 3rem;
  transition: 0.3s;
  width: 3rem;
}

@media (hover: hover) {
  .commonLink:hover {
    background: #fff;
    color: var(--colorMain);
  }

  .commonLink:hover::after {
    background-image: url(../images/icon-link-arrow-hover.svg);
  }
}

.secTitle {
  position: relative;
}

.secTitle__en.is-vertical {
  left: -18.8rem;
  position: absolute;
  top: -7.3rem;
  width: 15.6rem;
}

.secTitle__en.is-horizontal {
  left: -18rem;
  position: absolute;
  top: -14rem;
  width: 37.4rem;
}

.secTitle__ja {
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 2.045;
}

@media screen and (max-width: 767px) {
  .secTitle__en.is-vertical {
    left: unset;
    right: -2rem;
    top: -4.5rem;
    width: 6.3rem;
  }

  .secTitle__en.is-horizontal {
    left: -2rem;
    position: relative;
    top: 0;
    width: 15.3rem;
  }

  .secTitle__ja {
    font-size: 1.5rem;
    margin-top: 0.8rem;
  }

  .secTitle__ja.first {
    font-size: 1.8rem;
  }
}

/* -----------------------------------------------------
    mv
----------------------------------------------------- */
.mv {
  height: 100svh;
  min-height: 60rem;
  overflow: hidden;
  position: relative;
}

.mv__video {
  height: 100%;
  left: 0;
  object-fit: cover;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 0;
}

.mv__title, .mv__scroll {
  z-index: 1;
}

.mv__title {
  bottom: 0.2rem;
  left: 0;
  position: absolute;
  width: 73rem;
}

.mv__scroll {
  display: none;
}

.sp_head_img {
  display: none;
}

@media screen and (max-width: 767px) {
  .mv {
    height: unset;
    min-height: calc(69.06666666666666vw + 103.46666666666667vw);
  }

  .mv__title {
    bottom: unset;
    left: 0;
    top: 6rem;
    width: 37.5rem;
  }

  .mv__scroll {
    bottom: 0;
    display: block;
    position: absolute;
    right: 2rem;
  }

  .mv__scrollText {
    color: var(--colorWhite);
    font-family: var(--fontMontserrat);
    font-size: 1.2rem;
    font-weight: 700;
    height: 12.2rem;
    position: relative;
    writing-mode: vertical-rl;
  }

  .mv__scrollText::after {
    background: linear-gradient(to bottom, var(--colorWhite) 0%, var(--colorWhite) 28%, var(--colorMain) 28%, var(--colorMain) 100%);
    content: "";
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 2px;
  }

  .sp_head_img {
    display: block;
  }
  .sp_head_img {
    height: auto;
    width: 100%;
  }

  .mv__video {
    height: 103.46666666666667vw;
    top: 69.06666666666666vw;
  }
}

/* -----------------------------------------------------
    about
----------------------------------------------------- */
.about__inner {
  padding-block: 13.3rem 23rem;
}

.about__column {
  display: flex;
  justify-content: space-between;
  margin-top: 5.5rem;
}

.about__title {
  align-content: start;
  display: grid;
  gap: 1.4rem;
}

.about__title span {
  background: var(--colorMain);
  color: var(--colorWhite);
  display: block;
  font-size: 4rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.35;
  padding-inline: 1rem;
  width: fit-content;
}

.about__title span:nth-of-type(1) {
  background: linear-gradient(to right, var(--colorMain) 0%, var(--colorMain) 93.5%, var(--colorWhite) 93.5%, var(--colorWhite) 100%);
}

.about__title span:nth-of-type(3) {
  background: linear-gradient(to right, var(--colorMain) 0%, var(--colorMain) 87%, var(--colorWhite) 87%, var(--colorWhite) 100%);
}

.about__text {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  padding-top: 6.2rem;
  width: 42rem;
}

.aboutSwiper .swiper-wrapper {
  /* height: 71.4rem; */
  /* height: 100vh; */
}

.aboutSwiper .swiper-slide {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.aboutSwiper .aboutSwiper-1 {
  background-image: url(../images/bg-about-swiper_01.webp);
}

.aboutSwiper .aboutSwiper-2 {
  background-image: url(../images/bg-about-swiper_02.webp);
}

.aboutSwiper .aboutSwiper-3 {
  background-image: url(../images/bg-about-swiper_03.webp);
}

.aboutSwiperPin {
  position: relative;
}

.aboutSwiper {
  height: 100vh;
  left: 0;
  overflow: hidden !important;
  position: relative;
  width: 100%;
}

.aboutSwiper.is-fixed {
  left: 0;
  position: fixed !important;
  top: 0;
  width: 100%;
  z-index: 100;
}

.aboutSwiper.is-bottom {
  bottom: 0;
  left: 0;
  position: absolute !important;
  top: auto;
  width: 100%;
}

.aboutSwiper__textarea {
  padding-top: 12.5rem;
  position: relative;
  width: 50rem;
}

.aboutSwiper__num {
  display: block;
  height: 15.6rem;
  left: -14.5rem;
  pointer-events: none;
  position: absolute;
  top: 2rem;
  width: auto;
  z-index: 0;
}

.aboutSwiper__title {
  color: var(--colorWhite);
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.21;
  position: relative;
  z-index: 1;
}

.aboutSwiper__text {
  color: var(--colorWhite);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  margin-top: 3rem;
  position: relative;
  z-index: 1;
}

.aboutSwiper__controls {
  align-items: center;
  bottom: 4rem;
  display: flex;
  gap: 3rem;
  left: 4.5rem;
  pointer-events: none;
  position: absolute;
  right: 0;
  z-index: 10;
}

.aboutSwiper__fraction {
  align-items: center;
  color: var(--colorWhite);
  display: flex;
}

.aboutSwiper__fraction-current, .aboutSwiper__fraction-total {
  font-family: var(--fontMontserrat);
  font-size: 1.4rem;
  font-weight: 700;
}

.aboutSwiper__fraction-slash {
  background-color: var(--colorWhite);
  height: 0.1rem;
  margin: 0 0.5rem;
  transform: rotate(300deg);
  width: 2rem;
}

.aboutSwiper .swiper-pagination {
  align-items: center;
  display: flex;
  gap: 1rem;
  pointer-events: auto;
  position: static;
  width: auto;
}

.aboutSwiper .swiper-pagination-bullet {
  background: rgba(255, 255, 255, 0.4);
  border-radius: 0;
  height: 0.3rem;
  margin: 0 !important;
  opacity: 1;
  width: 6rem;
}

.aboutSwiper .swiper-pagination-bullet-active {
  background: var(--colorMain);
}

.about__marquee {
  margin-top: 1.5rem;
  overflow: hidden;
  width: 100%;
}

.about__marquee-inner {
  animation: marqueeLeftToRight 90s linear infinite;
  display: flex;
  width: fit-content;
}

.about__marquee-inner p {
  color: rgba(200, 0, 80, 0.13);
  font-family: var(--fontMontserrat);
  font-size: 2rem;
  padding-right: 1.3rem;
  white-space: nowrap;
}

@keyframes marqueeLeftToRight {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

@media screen and (max-width: 767px) {
  .about__inner {
    padding-block: 8rem 8.6rem;
  }

  .about__column {
    flex-direction: column;
    margin-top: 0;
  }

  .about__title {
    gap: 1rem;
    margin-top: 2.3rem;
  }

  .about__title span {
    font-size: 2.6rem;
  }

  .about__title span {
    padding-inline: 0.5rem;
  }

  .about__text {
    font-weight: 600;
    line-height: 1.875;
    margin-top: 3rem;
    padding-top: 0;
    width: 100%;
  }

  .aboutSwiper__num {
    display: flex;
    height: 9.175rem;
    left: -1.5rem;
    top: 0;
  }

  .aboutSwiper__textarea {
    margin-top: 7rem;
    padding-top: 7.4rem;
    width: 100%;
  }

  .aboutSwiper__title {
    font-size: 2.4rem;
  }

  .aboutSwiper__text {
    font-size: 1.4rem;
    line-height: 1.57;
  }

  .aboutSwiper .swiper-pagination {
    gap: 0.5rem;
  }

  .aboutSwiper .swiper-pagination-bullet {
    width: 3.3rem;
  }

  .aboutSwiper__controls {
    bottom: 2rem;
    left: 2rem;
  }

  .about__marquee-inner p {
    font-size: 1.3rem;
  }
}
/* -----------------------------------------------------
    data
----------------------------------------------------- */
.data {
  padding-block: 18.5rem 5rem;
}

.dataBox {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-top: 2rem;
}

.dataBox__item {
  background-color: #f5ecec;
  padding: 1.3rem 1.4rem;
  position: relative;
}

.dataBox__item--full {
  padding-bottom: 5.2rem;
}

.dataBox__row {
  display: flex;
  gap: 2rem;
}

.dataBox__item--halfLeft {
  flex: 1;
  padding-bottom: 7rem;
}

.dataBox__item--halfRight {
  flex: 0 0 25.2rem;
}

.dataBox__label {
  background-color: var(--colorWhite);
  color: var(--colorMain);
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  padding: 0.8rem 1.1rem;
}

.dataBox__list {
  display: flex;
  gap: 3rem;
  margin-left: 5.5rem;
  margin-top: 2rem;
}

.dataBox__stat:nth-of-type(3) {
  margin-left: 3rem;
}

.dataBox__title {
  color: var(--colorMain);
  display: block;
  font-size: 1.7rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.dataBox__value {
  color: var(--colorMain);
  font-size: 10rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
}

.dataBox__unit {
  font-size: 1.7rem;
  font-weight: 700;
  margin-left: 0.4rem;
}

.dataBox__flex {
  display: flex;
  gap: 8rem;
}

.dataBox__block {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
}

.dataBox__block .dataBox__value {
  margin-left: 5.5rem;
  margin-top: 3rem;
}

.dataBox__item:nth-last-of-type(1) .dataBox__block .dataBox__value {
  margin-left: 2rem;
}

.dataBox__icon {
  bottom: 1rem;
  position: absolute;
  right: 2rem;
}

.dataBox__icon--truck {
  max-width: 12.2rem;
}

.dataBox__icon--building {
  max-width: 9.1rem;
}

.dataBox__icon--people {
  max-width: 10.3rem;
}

@media screen and (max-width: 767px) {
  .data {
    padding-block: 4.8rem 5.3rem;
  }

  .data .secTitle__en.is-vertical {
    left: -2rem;
    position: relative;
    top: 0;
    width: 19.3rem;
  }

  .dataBox {
    margin-top: 0.7rem;
  }

  .dataBox__row {
    display: grid;
    gap: 1.6rem;
    grid-template-columns: 1fr;
  }

  .dataBox__item--full {
    padding: 2rem 1.6rem;
  }

  .dataBox__list {
    display: grid;
    gap: 1.4rem;
    grid-template-columns: repeat(2, 1fr);
    margin-left: 1.5rem;
    margin-top: 3.5rem;
  }

  .dataBox__title {
    font-size: 1.4rem;
    margin-bottom: 0;
    padding-right: 1.5rem;
    text-align: center;
  }

  .dataBox__value {
    text-align: center;
  }

  .dataBox__stat:nth-of-type(3) {
    margin-left: 0;
  }

  .dataBox__icon--truck {
    right: 1.6rem;
    top: 1.9rem;
    width: 7.1rem;
  }

  .dataBox__item--halfLeft {
    padding: 1.9rem 1.6rem 1.8rem 1.6rem;
  }

  .dataBox__item--halfRight:nth-last-of-type(1) {
    padding-block: 1.9rem 2.7rem;
  }

  .dataBox__block {
    display: flex;
    flex-direction: unset;
  }

  .dataBox__value {
    font-size: 7rem;
    letter-spacing: -0.03em;
  }

  .dataBox__block .dataBox__value {
    margin: 0.5rem 0 0 3rem;
  }

  .dataBox__item--halfRight:nth-last-of-type(1) .dataBox__value {
    margin-top: 2rem;
  }

  .dataBox__flex {
    flex-direction: column;
    gap: 1rem;
  }

  .dataBox__label {
    font-size: 1.5rem;
    line-height: 1.53;
    padding-block: 0;
    padding-inline: 0.4rem;
  }

  .dataBox__unit {
    font-size: 1.5rem;
    margin-left: 0.7rem;
  }

  .dataBox__icon--building {
    bottom: 1.8rem;
    right: 1.6rem;
    width: 6.3rem;
  }

  .dataBox__icon--people {
    bottom: 2.7rem;
    right: 1.6rem;
    width: 6.3rem;
  }
}

/* -----------------------------------------------------
    job
----------------------------------------------------- */
.job {
  padding-block: 20rem 0;
  position: relative;
}

.job::before {
  background: #e5f0f8;
  content: "";
  height: 71.5%;
  left: 0;
  position: absolute;
  top: 14rem;
  width: 100%;
  z-index: -1;
}

.job__lead {
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.6;
  margin-top: 2.5rem;
  text-align: center;
}

.job__map {
  left: 15rem;
  margin-top: -2.5rem;
  position: relative;
  width: 132.2rem;
}

.jobTooltip {
  align-items: center;
  background-color: var(--colorMain);
  border: 1px solid var(--colorMain);
  border-radius: 4rem;
  color: var(--colorWhite);
  display: flex;
  justify-content: space-between;
  padding: 1.1rem 1rem 1.1rem 2.5rem;
  position: absolute;
  transform: translate(-50%, -50%);
  transition: 0.3s;
  width: 22.7rem;
}

@media (hover: hover) {
  .jobTooltip:hover {
    color: var(--colorWhite);
    cursor: pointer;
    opacity: 0.8;
  }
}

.jobTooltip__name {
  color: var(--colorWhite);
  font-size: 1.8rem;
  font-weight: 700;
}

.jobTooltip__icon {
  align-items: center;
  background-color: var(--colorWhite);
  border-radius: 50%;
  display: flex;
  height: 3.6rem;
  justify-content: center;
  position: relative;
  width: 3.6rem;
}

.jobTooltip__icon::before, .jobTooltip__icon::after {
  background-color: var(--colorMain);
  content: "";
  position: absolute;
}

.jobTooltip__icon::before {
  height: 0.2rem;
  width: 1.4rem;
}

.jobTooltip__icon::after {
  height: 1.4rem;
  width: 0.2rem;
}

.jobTooltip__line {
  background: var(--colorMain);
  position: absolute;
  width: 0.2rem;
}

.jobTooltip__line::after {
  background: var(--colorMain);
  border-radius: 50%;
  bottom: 0rem;
  content: "";
  content: "";
  display: inline-block;
  height: 1rem;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 1rem;
}

.jobTooltip--mechanic {
  left: 56%;
  top: 17%;
}

.jobTooltip--mechanic .jobTooltip__line {
  height: 7rem;
  left: 12rem;
  top: 5.8rem;
}

.jobTooltip--driver {
  left: 35.8%;
  top: 34.5%;
}

.jobTooltip--driver .jobTooltip__line {
  height: 8rem;
  left: 25.7rem;
  top: -1rem;
  transform: rotate(-90deg);
}

.jobTooltip--warehouse {
  left: 14.2%;
  top: 51%;
}

.jobTooltip--warehouse .jobTooltip__line {
  height: 23rem;
  left: 33.5rem;
  top: -8.5rem;
  transform: rotate(-90deg);
}

.jobTooltip--dispatch {
  left: 69.2%;
  top: 45%;
}

.jobTooltip--dispatch .jobTooltip__line {
  height: 8rem;
  left: 11.3rem;
  top: -8rem;
  transform: rotate(180deg);
}

.jobTooltip--customs {
  bottom: 25.4%;
  right: 25%;
}

.jobTooltip--customs .jobTooltip__line {
  height: 6rem;
  left: -2.3rem;
  top: 0rem;
  transform: rotate(90deg);
}

@media screen and (max-width: 767px) {
  .job {
    padding-block: 2rem 0;
  }

  .job::before {
    height: 73%;
    top: 5.4rem;
  }

  .job__lead {
    font-size: 1.8rem;
    line-height: 1.55;
    margin-inline: auto;
    margin-top: 2rem;
    text-align: start;
    width: fit-content;
  }

  .job__map {
    left: 0.5rem;
    margin-top: 3.5rem;
    width: 49.6rem;
  }

  .jobTooltip {
    padding: 0.55rem 1rem;
    width: 12.6rem;
  }

  .jobTooltip__name {
    font-size: 1.3rem;
  }

  .jobTooltip__icon {
    height: 1.9rem;
    width: 1.9rem;
  }

  .jobTooltip__icon::before {
    height: 1px;
    width: 0.9rem;
  }

  .jobTooltip__icon::after {
    height: 0.9rem;
    width: 1px;
  }

  .jobTooltip__line::after {
    height: 0.8rem;
    width: 0.8rem;
  }

  .jobTooltip--warehouse {
    left: 13%;
    top: 49%;
  }

  .jobTooltip--warehouse .jobTooltip__line {
    height: 7rem;
    left: 15.5rem;
    top: -2rem;
  }

  .jobTooltip--customs {
    bottom: 10%;
    right: 17%;
  }

  .jobTooltip--customs .jobTooltip__line {
    height: 1.2rem;
    left: -0.5rem;
    top: 1rem;
  }

  .jobTooltip--customs .jobTooltip__line::before {
    background: var(--colorMain);
    bottom: 0;
    content: "";
    height: 0.2rem;
    left: -3rem;
    position: absolute;
    width: 3rem;
  }

  .jobTooltip--customs .jobTooltip__line::after {
    bottom: -0.25rem;
    left: unset;
    right: 2.2rem;
  }

  .jobTooltip--driver {
    left: unset;
    right: 18%;
    top: 58.5%;
  }

  .jobTooltip--driver .jobTooltip__line {
    height: 7rem;
    left: 4rem;
    top: -6rem;
    transform: unset;
  }

  .jobTooltip--driver .jobTooltip__line::after {
    bottom: unset;
    top: 0;
  }

  .jobTooltip--mechanic {
    left: 42%;
    top: 11%;
  }

  .jobTooltip--mechanic .jobTooltip__line {
    height: 5rem;
    left: 14rem;
    top: 1.5rem;
  }

  .jobTooltip--mechanic .jobTooltip__line::before {
    background: var(--colorMain);
    content: "";
    height: 0.2rem;
    position: absolute;
    right: 0;
    top: 0;
    width: 2rem;
  }

  .jobTooltip--dispatch {
    left: 59%;
    top: 0;
  }

  .jobTooltip--dispatch .jobTooltip__line {
    height: 8.8rem;
    left: 10.5rem;
    top: 2.8rem;
  }

  .jobTooltip--dispatch .jobTooltip__line::after {
    top: 0;
  }
}

/* -----------------------------------------------------
    job modal
----------------------------------------------------- */
.jobModal__overlay {
  align-items: center;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  height: 100%;
  inset: 0;
  justify-content: center;
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  transition: opacity 0.3s ease;
  width: 100%;
  z-index: 1000;
}

.jobModal__overlay.is-active {
  opacity: 1;
  pointer-events: auto;
}

.jobModal__wrap {
  background: #fff;
  max-height: 90vh;
  max-width: 90rem;
  overflow: hidden;
  position: relative;
  transform: scale(0.9) translateY(2rem);
  transition: transform 0.3s ease;
  width: 90%;
}

.jobModal__overlay.is-active .jobModal__wrap {
  transform: scale(1) translateY(0);
}

.jobModal__close {
  align-items: center;
  background: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  height: 3.6rem;
  justify-content: center;
  position: absolute;
  right: 1rem;
  top: 1rem;
  width: 3.6rem;
  z-index: 10;
}

.jobModal__close span {
  background: var(--colorMain);
  display: block;
  height: 0.2rem;
  position: absolute;
  width: 1.8rem;
}

.jobModal__close span:first-child {
  transform: rotate(45deg);
}

.jobModal__close span:last-child {
  transform: rotate(-45deg);
}

.jobModal__content {
  display: none;
}

.jobModal__content.is-active {
  display: flex;
}

.jobModal__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 12.6rem 6.6rem 6rem 8rem;
}

.jobModal__company {
  align-items: center;
  background: var(--colorMain);
  border-radius: 1.4rem;
  color: #fff;
  display: flex;
  font-size: 1.4rem;
  font-weight: 700;
  height: 2.7rem;
  justify-content: center;
  left: 2.4rem;
  letter-spacing: 0.05em;
  margin-bottom: 2.5rem;
  position: absolute;
  top: 2.4rem;
  width: 11.2rem;
}

.jobModal__title {
  color: var(--colorMain);
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 6.1rem;
  padding-bottom: 1.6rem;
  position: relative;
}

.jobModal__title::after {
  background: linear-gradient(to right, var(--colorMain) 0%, var(--colorMain) 16.7%, #c6c6c6 16.7%, #c6c6c6 100%);
  bottom: 0;
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  width: 100%;
}

.jobModal__text {
  font-size: 1.6rem;
  line-height: 1.875;
}

.jobModal__img {
  flex: 0 0 50%;
  overflow: hidden;
}

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

@media screen and (max-width: 767px) {
  .jobModal__wrap {
    height: 100%;
    max-height: 53rem;
  }

  .jobModal__content.is-active {
    flex-direction: column-reverse;
  }

  .jobModal__body {
    padding: 3.3rem 2.8rem 0;
  }

  .jobModal__img {
    flex: unset;
    height: 22.7rem;
  }

  .jobModal__company {
    font-size: 1.2rem;
    left: 0.9rem;
    top: 1rem;
  }

  .jobModal__title {
    font-size: 2.4rem;
    margin-bottom: 2.8rem;
    padding-bottom: 1.4rem;
  }

  .jobModal__title::after {
    background: linear-gradient(to right, var(--colorMain) 0%, var(--colorMain) 18.5%, #c6c6c6 18.5%, #c6c6c6 100%);
  }

  .jobModal__text {
    font-size: 1.5rem;
  }
  .jobModal__close {
    height: 2.7rem;
    width: 2.7rem;
  }
}

/* -----------------------------------------------------
    voice
----------------------------------------------------- */
.voice {
  padding-block: 22.5rem 12.5rem;
}

.voice .secTitle__en {
  left: -15.5rem;
  top: -14.2rem;
  width: 53.7rem;
}

.voiceArea {
  margin-top: 20rem;
  position: relative;
}

.voiceTextContainer {
  left: 0;
  position: absolute;
  top: -6.8rem;
  width: 47rem;
  z-index: 10;
}

.voiceTextItem {
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  transition: opacity 0.5s;
  width: 100%;
}

.voiceTextItem.is-active {
  opacity: 1;
  pointer-events: auto;
}

.voiceText {
  display: flex;
  flex-direction: column;
}

.voiceText__role {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2;
  padding-left: 2.4rem;
  position: relative;
}

.voiceText__role::before {
  background-color: var(--colorMain);
  content: "";
  display: block;
  height: 3rem;
  left: 1rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) skewX(328deg);
  width: 0.3rem;
}

.voiceText__title {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-top: 2.8rem;
}

.voiceText__title span {
  background-color: var(--colorMain);
  color: var(--colorWhite);
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.4;
  padding: 0 1rem;
}

.voiceText__profile {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 3rem;
  padding-top: 1.8rem;
  position: relative;
}

.voiceText__profile::before {
  background: var(--colorMain);
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  top: 0;
  width: 3.2rem;
}

.voiceText__company {
  font-size: 1.4rem;
  letter-spacing: 0.06em;
  line-height: 1.57;
}

.voiceText__name {
  font-size: 2rem;
  font-weight: 700;
}

.voiceImgArea {
  left: 1rem;
  position: relative;
}

.swiper.voiceImgSwiper {
  overflow: visible;
}

.voiceImg__box {
  aspect-ratio: 3 / 4;
  display: block;
  overflow: hidden;
  position: relative;
}

.voiceImg__box img {
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
  width: 100%;
}

.voiceImg__box {
  cursor: pointer;
}

@media (hover: hover) {
  .swiper-slide-active .voiceImg__box:hover img {
    transform: scale(1.05);
  }
}

.voiceImgSwiper .swiper-slide {
  opacity: 0;
  pointer-events: auto;
  position: relative;
  transition: all 0.5s;
  visibility: visible;
}

.voiceImgSwiper .swiper-slide-active, .voiceImgSwiper .swiper-slide-active ~ .swiper-slide {
  opacity: 0.4;
}

.voiceImgSwiper .swiper-slide-active {
  margin-right: calc((39.8rem - 26.5rem) / 2 + 70px) !important;
  opacity: 1;
  position: relative;
}

.voiceImgSwiper .voiceImg__box {
  padding: 0;
  transform-origin: bottom center;
  transition: all 0.5s;
}

.voiceImgSwiper .swiper-slide-active .voiceImg__box {
  position: relative;
  transform: scale(1.5);
}

.voiceImgSwiper .swiper-slide-prev {
  opacity: 0;
}

.voiceImg__controls {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  left: -2rem;
  margin-top: 4.3rem;
  position: relative;
  z-index: 20;
}

.voiceImg__controlsText .small {
  font-size: 1.1rem;
}

.voiceImg__controlsRight {
  align-items: center;
  display: flex;
  gap: 3rem;
}

.voiceImg__nav {
  display: flex;
  gap: 1.5rem;
}

.voiceImg__prev, .voiceImg__next {
  align-items: center;
  background-color: var(--colorMain);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  height: 4rem;
  justify-content: center;
  position: relative;
  width: 4rem;
}

.voiceImg__prev::before, .voiceImg__next::before {
  background-image: url(../images/icon-arrow-white.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  height: 1.2rem;
  width: 1.4rem;
}

.voiceImg__next::before {
  transform: rotate(180deg);
}

.voiceImg__fraction {
  align-items: center;
  display: flex;
  font-family: var(--fontMontserrat);
  font-weight: 700;
}

.voiceImg__fraction-current {
  font-size: 1.9rem;
  margin-bottom: 1rem;
}

.voiceImg__fraction-slash {
  background-color: var(--colorMain);
  height: 0.1rem;
  margin: 0 -1.2rem;
  transform: rotate(-50deg);
  width: 4rem;
}

.voiceImg__fraction-total {
  font-size: 1.9rem;
  margin-top: 1rem;
}

.voice .about__marquee {
  margin-top: 6.8rem;
}

@media screen and (max-width: 767px) {
  .voice {
    padding-block: 7.2rem 8rem;
  }

  .voice .secTitle__en {
    left: -0.5rem;
    top: 0;
    width: 21.9rem;
  }

  .voiceArea {
    display: flex;
    flex-direction: column-reverse;
    margin-top: 16.7rem;
  }

  .voiceTextContainer {
    top: 21rem;
  }

  .voiceText__role {
    font-size: 1.4rem;
    padding-left: 1.6rem;
  }

  .voiceText__role::before {
    height: 2rem;
    left: 0.5rem;
  }

  .voiceImgArea {
    left: 0;
    width: 100%;
  }

  .voiceImgSwiper .swiper-slide-active {
    margin-right: calc((31.1rem - 18.2rem) / 2 + 20px) !important;
    top: 0;
  }

  .voiceImgSwiper .swiper-slide-active .voiceImg__box {
    position: relative;
    transform: scale(1.7);
  }

  .voiceTextSwiper {
    position: unset;
  }

  .voiceTextContainer {
    width: 100%;
  }

  .voiceText {
    margin-inline: 5rem 0;
    max-width: 29rem;
  }

  .voiceText__profile {
    gap: 0.4rem;
    margin-top: 2.2rem;
    padding-top: 1.6rem;
  }

  .voiceText__title {
    gap: 0.6rem;
    margin-top: 1.8rem;
  }

  .voiceText__title span {
    font-size: 1.9rem;
    padding-inline: 0.5rem;
  }

  .voiceText__company {
    font-size: 1.2rem;
    letter-spacing: 0.06em;
  }

  .voiceText__name {
    font-size: 1.6rem;
  }

  .voiceImg__controls {
    margin-right: -1.1rem;
    margin-top: 2.8rem;
    position: relative;
    z-index: 20;
  }

  .voiceImg__prev, .voiceImg__next {
    height: 2.7rem;
    width: 2.7rem;
  }

  .voiceImg__prev::before, .voiceImg__next::before {
    height: 0.8rem;
    width: 0.9rem;
  }

  .voiceImg__nav {
    gap: 0.6rem;
    position: relative;
  }

  .voiceImg__fraction {
    font-weight: 600;
    position: absolute;
    right: 3rem;
    top: -35rem;
    z-index: 10;
  }

  .voiceImg__fraction-current, .voiceImg__fraction-total {
    font-size: 1.3rem;
  }

  .voiceImg__fraction-current {
    margin-bottom: 2rem;
  }

  .voiceImg__fraction-total {
    margin-top: 2rem;
  }

  .voiceImg__fraction-slash {
    transform: rotate(-45deg);
  }

  .voice .about__marquee {
    margin-top: 23rem;
  }
}

/* voiceDetail */
.voiceDetail {
  background: #fff;
  height: 100vh;
  overflow-y: auto;
  position: fixed;
  right: 0;
  top: 0;
  transform: translateX(100%);
  transition: transform 0.4s ease;
  width: 90.9rem;
  z-index: 1000;
}

.voiceDetail.is-active {
  transform: translateX(0);
}

.voiceDetail__close {
  align-items: center;
  background: transparent;
  border: 1px solid var(--colorMain);
  border-radius: 50%;
  color: var(--colorMain);
  cursor: pointer;
  display: flex;
  font-size: 2.5rem;
  height: 4rem;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: 1rem;
  top: 1rem;
  width: 4rem;
}

.voiceDetail__header {
  left: 3rem;
  position: absolute;
  top: 3.4rem;
  width: 48.7rem;
}

.voiceDetail__container {
  padding: 12rem 12.6% 0;
}

.voiceDetailOverlay {
  background: rgba(0, 0, 0, 0.5);
  inset: 0;
  opacity: 0;
  position: fixed;
  transition: 0.4s;
  visibility: hidden;
  z-index: 999;
}

.voiceDetailOverlay.is-active {
  opacity: 1;
  visibility: visible;
}

.voiceDetail__title {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  margin-top: 5.2rem;
}

.voiceDetail__detail {
  align-items: center;
  display: flex;
  gap: 1.6rem;
  margin-top: 5.4rem;
}

.voiceDetail__role {
  align-items: center;
  background: var(--colorMain);
  border-radius: 2rem;
  color: var(--colorWhite);
  display: flex;
  font-size: 1.6rem;
  font-weight: 700;
  height: 3.9rem;
  justify-content: center;
  width: 15.3rem;
}

.voiceDetail__name {
  align-items: center;
  display: flex;
  gap: 1.4rem;
}

.voiceDetail__nameJa {
  font-size: 1.6rem;
  font-weight: 700;
}

.voiceDetail__nameEn {
  color: var(--colorMain);
  font-size: 1.1rem;
}

.voiceDetail__company {
  font-size: 1.4rem;
}

.voiceDetail__section {
  margin-top: 6rem;
}

.voiceDetail__secTitle {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  padding: 2rem 0 2rem 4.4rem;
  position: relative;
}

.voiceDetail__secTitle::before {
  color: var(--colorMain);
  content: "“";
  font-family: var(--fontMontserrat);
  font-size: 7.3rem;
  font-weight: 700;
  left: -0.5rem;
  position: absolute;
  top: -2rem;
}

.voiceDetail__secText {
  font-size: 1.6rem;
  line-height: 2;
  margin-left: 4.4rem;
  margin-top: 3.8rem;
}

.voiceDetail__secText span {
  background: #ffeaea;
}

.voiceDetail__secImg {
  margin-left: 4.2rem;
  margin-top: 6rem;
}

.voiceDetail__btnWrap {
  display: flex;
  justify-content: space-between;
  padding: 9.4rem 5.2rem 5.6rem;
}

.voiceDetail__btn {
  align-items: flex-end;
  display: grid;
  gap: 1.4rem;
  grid-template-columns: 7.7rem auto;
  padding: 0 7rem 0 0;
  position: relative;
  transition: 0.3s;
}

@media (hover: hover) {
  .voiceDetail__btn:hover {
    cursor: pointer;
    opacity: 0.7;
  }
}

.voiceDetail__btnContent::after {
  background-image: url(../images/icon-link-arrow-red.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  height: 3rem;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
}

.voiceDetail__btnCompany {
  display: flex;
  text-align: start;
}

.voiceDetail__btnLabel {
  color: var(--colorMain);
  font-family: var(--fontMontserrat);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: start;
}

.voiceDetail__btnRole {
  align-items: center;
  background: var(--colorMain);
  border-radius: 1.4rem;
  color: var(--colorWhite);
  display: flex;
  font-size: 1.4rem;
  font-weight: 700;
  height: 2.7rem;
  justify-content: center;
  width: 13.8rem;
}

.voiceDetail__btnCompany {
  font-size: 1.3rem;
  margin-top: 0.8rem;
}

@media screen and (max-width: 767px) {
  .voiceDetail {
    width: 87.2vw;
  }

  .voiceDetail__container {
    padding: 6.2rem 2.3rem 0 2.4rem;
  }

  .voiceDetail__header {
    left: 1.3rem;
    top: 1.7rem;
    width: 20.4rem;
  }

  .voiceDetail__title {
    font-size: 2rem;
    margin-top: 3.2rem;
  }

  .voiceDetail__detail {
    align-items: flex-start;
    flex-direction: column;
    margin-top: 2.8rem;
  }

  .voiceDetail__role {
    font-size: 1.2rem;
    height: 2.5rem;
    width: 10.2rem;
  }

  .voiceDetail__company {
    margin-top: 0.5rem;
  }

  .voiceDetail__section {
    margin-top: 2.12rem;
  }

  .voiceDetail__secTitle {
    font-size: 1.7rem;
    padding: 2.9rem 0 0 1.2rem;
  }

  .voiceDetail__secTitle::before {
    font-size: 3.9rem;
    top: 0;
  }

  .voiceDetail__secText {
    font-size: 1.4rem;
    margin: 3rem 0 0 1.2rem;
  }

  .voiceDetail__secImg {
    margin: 2rem 0 0 1.2rem;
  }

  .voiceDetail__section:nth-of-type(2) {
    margin-top: 3.9rem;
  }

	.voiceDetail__btnWrap {
		flex-direction: column-reverse;
		gap: 3.3rem;
		padding: 6.6rem 2.3rem 4.5rem 3.6rem;
	}

  .voiceDetail__btn {
    align-items: center;
    grid-template-columns: 8.4rem auto;
    padding: 0;
    width: 100%;
  }

  .voiceDetail__btnLabel {
    font-size: 2rem;
  }

  .voiceDetail__btnRole {
    font-size: 1.2rem;
    width: 9.6rem;
  }

  .voiceDetail__btnCompany {
    font-size: 1.2rem;
  }
  .voiceDetail__name {
    margin-top: -0.8rem;
  }
  .voiceDetail__close {
    height: 2.7rem;
    width: 2.7rem;
  }
}

/* -----------------------------------------------------
    support
----------------------------------------------------- */
.support {
  padding-block: 20rem 20.4rem;
}

.support .secTitle__en {
  left: -19rem;
  top: -13rem;
  width: 82.2rem;
}

.supportList {
  display: grid;
  gap: 7.4rem 2.6rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 5rem;
}

.supportList__title {
  color: var(--colorMain);
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.25;
  margin-top: 1rem;
}

.supportList__text {
  font-size: 1.4rem;
  line-height: 1.71;
  margin-top: 0.8rem;
}

.supportSlider {
  display: flex;
  gap: 5rem;
  height: 37.8rem;
  margin-top: 20rem;
  overflow: hidden;
  width: 100%;
}

.supportSlider__track {
  animation: marquee 45s linear infinite;
  display: flex;
  flex-shrink: 0;
  gap: 5rem;
  width: max-content;
}

.supportSlider__slider {
  flex-shrink: 0;
}

.supportSlider__slider:nth-of-type(7n + 1) {
  width: 40.4rem;
}

.supportSlider__slider:nth-of-type(7n + 2) {
  margin-top: 13.8rem;
  width: 23.5rem;
}

.supportSlider__slider:nth-of-type(7n + 3) {
  margin-top: 4.7rem;
  width: 21rem;
}

.supportSlider__slider:nth-of-type(7n + 4) {
  margin-top: auto;
  width: 44.6rem;
}

.supportSlider__slider:nth-of-type(7n + 5) {
  margin-bottom: auto;
  width: 18.4rem;
}

.supportSlider__slider:nth-of-type(7n + 6) {
  margin-top: 14rem;
  width: 21.8rem;
}

.supportSlider__slider:nth-of-type(7n) {
  width: 60.2rem;
}

.supportSlider__slider:nth-of-type(8n) {
	width: 36.6rem;
}

.supportSlider__slider img {
  display: block;
  height: auto;
  max-width: 100%;
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-100% - 5rem));
  }
}

@media screen and (max-width: 767px) {
  .support {
    padding-block: 2rem;
  }

  .support .secTitle__en {
    left: -2rem;
    top: 0;
    width: 35.5rem;
  }

  .supportList {
    gap: 3.8rem;
    grid-template-columns: 1fr;
    margin-top: 4rem;
  }

  .supportList__item {
    display: grid;
    gap: 0 2.1rem;
    grid-template-columns: 13rem auto;
  }

  .supportList__img {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
  }

  .supportList__title {
    font-size: 1.6rem;
    grid-column: 2 / 3;
    grid-row: 1 / 2;
    line-height: 1;
    margin-top: 0;
  }

  .supportList__text {
    font-size: 1.4rem;
    grid-column: 2 / 3;
    grid-row: 2 / 3;
    margin-top: 1.3rem;
  }

  .supportSlider {
    gap: 1rem;
    height: 23.2rem;
    margin-top: 9.8rem;
  }

  .supportSlider__track {
    gap: 1rem;
  }

  .supportSlider__slider:nth-of-type(7n + 1) {
    width: 20.5rem;
  }

  .supportSlider__slider:nth-of-type(7n + 2) {
    margin-top: auto;
    width: 21rem;
  }

  .supportSlider__slider:nth-of-type(7n + 3) {
    margin-top: 0;
    width: 25.4rem;
  }

  .supportSlider__slider:nth-of-type(7n + 4) {
    margin-bottom: 1.5rem;
    margin-top: auto;
    width: 8.87rem;
  }

  .supportSlider__slider:nth-of-type(7n + 5) {
    margin-top: 2rem;
    width: 14rem;
  }

  .supportSlider__slider:nth-of-type(7n + 6) {
    margin-top: 0.9rem;
    width: 27.1rem;
  }

  .supportSlider__slider:nth-of-type(7n) {
		margin-top: 3.4rem;
    width: calc(15.9rem + 4.6rem * 2);
		padding-inline: 4.6rem;
  }

	.supportSlider__slider:nth-of-type(8n) {
    display: none;
  }
}

/* -----------------------------------------------------
    recruit & entry
----------------------------------------------------- */
.entry {
  padding-block: 15rem 8rem;
  position: relative;
}

.entry::before {
  background: #e5f0f8;
  bottom: 0;
  content: "";
  height: calc(100% - 8rem);
  left: 0;
  position: absolute;
  width: 100%;
  z-index: -1;
}

.entry .secTitle__en {
  left: -18.5rem;
  width: 60.8rem;
}

.entryBlock {
  margin-top: 5rem;
}

.entryBlock__title {
  color: var(--colorMain);
  font-size: 2.8rem;
  font-weight: 700;
  margin-bottom: 2rem;
  margin-top: 5.15rem;
  text-align: center;
}

.entryBlock__text {
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 2.35;
  text-align: center;
}

.entryFormArea {
  margin-top: 7.2rem;
}

.entryBlock__formTitle {
  border-bottom: 1px solid var(--colorMain);
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 6.2rem;
  padding-bottom: 1.7rem;
  text-align: center;
}

.entryBlock--college {
  margin-top: 10.9rem;
}

.entryBlock--collegeWrap {
  background: var(--colorWhite);
  padding: 7.6rem 11.5rem;
}

@media screen and (max-width: 767px) {
  .entry {
    padding-block: 5rem 5.84rem;
  }

  .entry .secTitle__en {
    left: -2rem;
    top: 0;
    width: 24.8rem;
  }

  .entryBlock--collegeWrap {
    padding: 4.8rem 2.8rem 5.3rem;
  }

  .entryBlock--college {
    margin-top: 6rem;
  }

  .entryBlock__title {
    font-size: 2.2rem;
    margin-bottom: 0;
  }

  .entryBlock__title:nth-of-type(1) {
    margin-top: 3.7rem;
  }

  .entryBlock__title:nth-of-type(2) {
    margin-top: 6.1rem;
  }

  .entryBlock__text {
    font-size: 1.4rem;
    line-height: 1.57;
    margin-top: 1rem;
  }

  .entryBlock__formTitle {
    font-size: 1.8rem;
    margin-bottom: 2.7rem;
    padding-bottom: 0.9rem;
  }

  .entryBlock--collegeWrap {
    margin-top: 1.6rem;
  }
}

/* Tabs */
.recruitTabs {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(3, 1fr);
  margin-inline: auto;
  max-width: 55.6rem;
}

.recruitTabs__btn {
  background: var(--colorWhite);
  border: 1px solid var(--colorMain);
  color: var(--colorMain);
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 700;
  height: 4.6rem;
  transition: 0.3s;
}

@media (hover: hover) {
  .recruitTabs__btn:hover {
    background: var(--colorMain);
    color: var(--colorWhite);
  }
}

.recruitTabs__btn.is-active {
  background: var(--colorMain);
  color: var(--colorWhite);
}

.recruitContent {
  display: none;
  margin-top: 8.1rem;
}

.recruitContent.is-active {
  animation: fadeIn 0.5s ease;
  display: block;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.recruitContent__title {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 1.7rem;
  text-align: center;
}

.recruitTable {
  border-collapse: collapse;
  border-top: 1px solid var(--colorMain);
  width: 100%;
}

.recruitTable th, .recruitTable td {
  border-bottom: 1px solid #bcbcbc;
  font-size: 1.4rem;
  line-height: 1.57;
  padding: 2.4rem 0;
}

.recruitTable th {
  align-content: start;
  color: var(--colorMain);
  font-family: var(--fontNotoSansJP);
  font-weight: 700;
  text-align: start;
  width: 19.4%;
}

@media screen and (max-width: 767px) {
  .recruitTabs {
    gap: 1rem;
    grid-template-columns: 1fr 1fr;
    max-width: 24.8rem;
  }

  .recruitTabs__btn {
    font-size: 1.3rem;
    height: 3.2rem;
  }

  .recruitContent {
    margin-top: 4rem;
  }

  .recruitContent__title {
    font-size: 1.8rem;
  }

  .recruitTable th {
    border-bottom: none;
    padding-block: 1.4rem 0;
    width: 100%;
  }

  .recruitTable td {
    padding-block: 0.4rem 1.2rem;
  }

  .recruitTable tr {
    display: grid;
  }
}

/* Form overrides */
.entryForm {
  margin-top: 0;
}

.wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
}

.wpcf7-list-item {
  margin-left: 0;
}

.wpcf7-list-item label {
  align-items: center;
  display: flex;
  font-size: 1.6rem;
  gap: 1rem;
}

.wpcf7-list-item input {
  margin: 0;
}

.entryForm__row {
  display: grid;
  gap: 1.2rem;
  margin-bottom: 4rem;
}

.entryForm__radioGroup {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 2.5rem;
  padding-top: 0.3rem;
}

.entryForm__radioLabel {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-size: 1.6rem;
}

.entryForm__radioLabel input {
  margin-right: 0.5rem;
}

.entryForm__label {
  align-items: center;
  display: flex;
  flex: 0 0 25rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.024em;
}

.entryForm__required {
  background-color: var(--colorMain);
  border-radius: 0.4rem;
  color: var(--colorWhite);
  font-size: 1.2rem;
  margin-left: 1.6rem;
  padding: 0.4rem 1.2rem;
}

.entryForm__field {
  flex: 1;
}

.entryForm__field--flex {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}

.entryForm__field--flex span {
  font-family: var(--fontNotoSansJP);
  font-size: 1.2rem;
  letter-spacing: 0.024em;
}

.entryForm__input, .entryForm__textarea {
  border: 1px solid #e0e0e0;
  border-radius: 0.4rem;
  font-size: 1.2rem;
  padding: 1.5rem;
  width: 100%;
}

.entryForm__textarea {
  height: 24rem;
}

.entryForm__input::placeholder, .entryForm__textarea::placeholder {
  color: #939393;
}

span:has(.entryForm__input--half) {
  flex: 1;
}

span:has(.entryForm__input--full) {
  width: 100%;
}

.entryForm__input--long {
  width: 18.5rem;
}

.entryForm__input--short {
  width: 7.1rem;
}

.entryForm__input--zip {
  width: 18.5rem;
}

.entryForm__addressRow {
  align-items: center;
  display: flex;
  gap: 1rem;
  margin-bottom: 1.2rem;
}
.entryForm__addressRow:last-child {
  margin-bottom: 0;
}
.entryForm__addressRow span {
  font-size: 1.6rem;
}

.entryForm__input::placeholder, .entryForm__textarea::placeholder {
  color: #aaa;
}

.entryForm__privacy {
  margin-top: 5.6rem;
  text-align: center;
}

.entryForm__checkboxLabel {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  gap: 1rem;
}

.entryForm__checkboxLabel input[type="checkbox"] {
  border: 1px solid #e0e0e0 !important;
  border-radius: 0.4rem;
  height: 2rem;
  width: 2rem;
}

.entryForm__checkboxText {
  font-size: 1.4rem;
  font-weight: 700;
}

.entryForm__checkboxText a {
  font-size: 1.4rem;
  font-weight: 700;
  text-decoration: underline;
}

.entryForm__btnWrap {
  height: 6rem;
  margin: 2.4rem auto 0;
  position: relative;
  transition: 0.3s;
  width: 22.7rem;
}

.entryForm__btn {
  align-items: center;
  background: var(--colorMain);
  border: 1px solid var(--colorMain);
  border-radius: 6rem;
  color: var(--colorWhite);
  cursor: pointer;
  display: flex;
  font-size: 1.8rem;
  font-weight: 700;
  height: 6rem;
  justify-content: flex-end;
  padding-left: 2.5rem;
  text-align: start;
  transition: 0.3s;
  width: 22.7rem;
}

.entryForm__btnWrap::after {
  background-image: url(../images/icon-link-arrow.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  cursor: pointer;
  height: 3rem;
  position: absolute;
  right: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  transition: 0.3s;
  width: 3rem;
}

.wpcf7 .entryForm__btnWrap:has(.wpcf7-submit:disabled):hover::after {
  cursor: not-allowed;
}

@media (hover: hover) {
  .entryForm__btnWrap:hover .entryForm__btn {
    background: var(--colorWhite);
    color: var(--colorMain);
  }

  .entryForm__btnWrap:hover::after {
    background-image: url(../images/icon-link-arrow-hover.svg);
  }
}

.wpcf7-form-control-wrap {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

input[type="radio"] {
  accent-color: var(--colorMain);
}

/* input[type="checkbox"] {
  accent-color: var(--colorMain);
  appearance: none;
  border: 1px solid #e0e0e0;
  border-radius: 0.4rem;
  height: 2rem;
  width: 2rem;
}

input[type="checkbox"]:checked {
  appearance: auto;
}*/

input[type="checkbox"] {
  accent-color: var(--colorMain);
  appearance: none;
  background-color: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 0.4rem;
  cursor: pointer;
  flex-shrink: 0;
  height: 2rem;
  position: relative;
  width: 2rem;
}

/* input[type="checkbox"]:checked {
  background-color: var(--colorMain);
  border-color: var(--colorMain);
} */

input[type="checkbox"]:checked::after {
  background: url(../images/img_check.png) center center no-repeat;
  background-size: cover;
  color: #fff;
  content: "";
  font-size: 1.75rem;
  font-weight: bold;
  height: 2rem;
  left: 50%;
  line-height: 1;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 2rem;
}

.wpcf7-acceptance .wpcf7-list-item-label, .wpcf7-acceptance a {
  font-family: var(--fontNotoSansJP);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.024em;
}

.wpcf7-acceptance a {
  text-decoration: underline;
  transition: 0.3s;
}

@media (hover: hover) {
  .wpcf7-acceptance a:hover {
    opacity: 0.7;
  }
}

.wpcf7-not-valid-tip {
  color: red;
  font-size: 1.2rem;
  font-weight: bold;
  margin: 0.5rem auto 0 0;
}

.wpcf7 form .wpcf7-response-output {
  font-size: 1.6rem;
  line-height: 1.5;
}

@media screen and (max-width: 767px) {
  .entryForm__row {
    margin-bottom: 2rem;
  }

  .entryForm__addressRow:has(input[name="your-post"]) {
    display: grid;
    grid-template-columns: 8rem auto;
  }

  .entryForm__privacy {
    margin-top: 4rem;
  }

  .entryForm__btnWrap {
    margin-top: 4rem;
  }

  .wpcf7-not-valid-tip {
    font-size: 1.2rem !important;
  }

  .wpcf7 form .wpcf7-response-output {
    font-size: 1.4rem;
  }

  .wpcf7-acceptance .wpcf7-list-item-label, .wpcf7-acceptance a {
    letter-spacing: 0;
  }
}

/* -----------------------------------------------------
    confirm & thanks
----------------------------------------------------- */
.confirmPage, .thanksPage {
  padding-block: 15rem 10rem;
}

.confirmPage__heading, .thanksPage__heading {
  color: var(--colorMain);
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 3rem;
  text-align: center;
}

.confirmPage__lead, .thanksPage__lead {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 5rem;
  text-align: center;
}

.confirmTable {
  border-top: 1px solid #ccc;
  margin-bottom: 5rem;
}

.confirmTable__row {
  border-bottom: 1px solid #ccc;
  display: flex;
}

.confirmTable__label {
  background-color: #f5ecec;
  flex: 0 0 30%;
  font-size: 1.6rem;
  font-weight: 700;
  padding: 2rem;
}

.confirmTable__value {
  flex: 1;
  font-size: 1.6rem;
  line-height: 1.6;
  padding: 2rem;
}

.confirmPage__btns, .thanksPage__btns {
  display: flex;
  gap: 2rem;
  justify-content: center;
}

.confirmPage__backBtn {
  background-color: #666;
  border: none;
  border-radius: 3rem;
  color: var(--colorWhite);
  cursor: pointer;
  font-size: 1.8rem;
  font-weight: 700;
  padding: 2rem 6rem;
  transition: 0.3s;
}

.confirmPage__backBtn:hover {
  background-color: #444;
}
