main {
  padding-top: 88px;
}

/* Page */

.footer__outer {
  background: var(--colorSub2);
}

/* MV */

.mv {
  position: relative;
}

.mvSwiper {
  margin: 22px auto 0;
  max-width: 1320px;
  position: relative;
}

.mvVisual {
  bottom: 0;
  left: 50%;
  max-width: 746px;
  position: absolute;
  transform: translateX(-50%);
  width: 56%;
  z-index: 2;
}

.mvSwiper .swiper-slide {
  border-radius: 40px;
  overflow: hidden;
}

.mvSwiper img {
  aspect-ratio: 264 / 170;
  transform: scale(1.1);
}

.mvSwiper .swiper-slide-active img {
  transform: scale(1);
  transition: 3s cubic-bezier(0.39, 0.575, 0.565, 1);
}

.mvSwiper .swiper-slide-prev img {
  transform: scale(1);
}

@media screen and (max-width: 550px) {
  .mvVisual {
    left: 0;
    position: relative;
    transform: none;
	margin-top: 24px;
    display: block;
    width: 100%;
    height: auto;
  }
}

@media screen and (max-width: 500px) {
  .mvSwiper .swiper-slide {
    height: 300px;
  }
  .mvSwiper img {
    aspect-ratio: unset;
    height: 100%;
    object-fit: cover;
  }
}

/* About */

.about__list {
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr;
  margin-top: 40px;
}

.about__item {
  display: grid;
  gap: 8px 40px;
  grid-template-columns: minmax(280px, 320px) auto;
  grid-template-rows: 1fr auto;
}

.about__item:nth-child(even) {
  grid-template-columns: auto minmax(280px, 320px);
}

.about__itemImg {
  align-self: center;
  border-radius: 16px;
  grid-column: 1;
  grid-row: span 2;
  max-width: 320px;
}

.about__item:nth-child(even) .about__itemImg {
  grid-column: 2;
}

.about__itemHeader {
  align-items: center;
  display: grid;
  gap: 16px;
  grid-column: 2;
  grid-row: 1;
  grid-template-columns: 85px auto;
}

.about__itemText {
  grid-column: 2;
  grid-row: 2;
}

.about__item:nth-child(even) .about__itemHeader,
.about__item:nth-child(even) .about__itemText {
  grid-column: 1;
}

.about__pointContainer {
  align-items: center;
  background: var(--colorMain);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  height: 72px;
  justify-content: center;
  position: relative;
  width: 72px;
  z-index: 1;
}

.about__pointContainer::before {
  background: var(--colorMain);
  border-radius: 50%;
  content: "";
  height: calc(100% + 12px);
  left: 50%;
  opacity: 0.2;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% + 12px);
  z-index: -1;
}

.about__pointLabel,
.about__pointNumber {
  color: #fff;
  font-family: var(--familyEn);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}

.about__pointLabel {
  font-size: 15px;
  line-height: 1.4;
}

.about__itemTitle {
  font-size: var(--fontMax18Min16);
  font-weight: 700;
}

.about__itemText .orange {
  color: #ff6624;
  font-size: var(--fontMax18Min16);
  font-weight: 700;
}

.about__itemTitle .light {
  font-size: var(--fontMax16Min14);
  font-weight: 400;
}

.figures {
  margin-top: clamp(60px, 6vw, 80px);
  padding: clamp(100px, 10vw, 134px) 0;
  position: relative;
  z-index: 1;
}

.figures__titleGroup {
  text-align: center;
}

.figures__lead {
  font-family: var(--familyEn);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.4;
}

.figures__title {
  font-size: var(--fontMax32Min26);
  font-weight: 700;
}

.figures::after {
  aspect-ratio: 1 / 1;
  background: var(--colorBase);
  border-radius: 50%;
  content: "";
  height: 100%;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  z-index: -1;
}

.figuresSwiper {
  margin-top: 24px;
  overflow: visible;
}

.figuresSwiper .swiper-scrollbar {
  background: #e9e8e5;
  bottom: -42px;
  padding: 2px;
}

.figuresSwiper .swiper-scrollbar-drag {
  background: #a8a399;
}

.figuresCard {
  align-items: center;
  background: var(--colorMain);
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.25);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  height: 300px;
  justify-content: center;
  max-width: 300px;
  text-align: center;
}

.figuresText,
.figuresDetails,
.figuresDisclaimer {
  color: #fff;
  font-size: 16px;
  font-weight: 700;
}

.figuresDetails {
  align-items: center;
  display: flex;
  gap: 6px;
}

.figuresDetails .number {
  font-family: var(--familyEn);
  font-size: var(--fontMax48Min36);
  font-weight: 400;
  letter-spacing: 0.001em;
  line-height: 1.4;
}

.figuresDisclaimer {
  font-size: 14px;
}

.figuresIcon {
  height: auto;
  max-width: 220px;
}

@media screen and (max-width: 767px) {
  .about__item,
  .about__item:nth-child(even) {
    grid-template-columns: 1fr;
    margin: 0 auto;
    max-width: 600px;
  }
  .about__itemHeader,
  .about__item:nth-child(even) .about__itemHeader {
    grid-column: 1;
    grid-row: 1;
  }
  .about__itemImg,
  .about__item:nth-child(even) .about__itemImg {
    grid-column: 1;
    grid-row: 2;
    margin: 8px auto 16px;
  }
  .about__itemText,
  .about__item:nth-child(even) .about__itemText {
    grid-column: 1;
    grid-row: 3;
  }
  .figuresCard {
    height: 280px;
    max-width: 100%;
  }
}

/* Work */

.work,
.work .upperCurve {
  background: var(--colorSub2);
}

.workSubtitle {
  padding-bottom: clamp(18px, 1.7vw, 24px);
  position: relative;
  width: fit-content;
}

.workSubtitle::after {
  background: var(--colorMain);
  bottom: 0;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  width: 100%;
}

.workSubtitle a {
  display: flex;
  font-size: var(--fontMax24Min18);
}

.workSubtitle__arrow {
  margin-left: clamp(12px, 1.3vw, 16px);
  max-width: 24px;
}

.recruiterMessage {
  display: grid;
  gap: clamp(18px, 1.7vw, 24px) clamp(24px, 3vw, 36px);
  grid-template-columns: auto minmax(200px, 250px);
  grid-template-rows: auto 1fr;
  margin-top: 40px;
}

.recruiterMessage .workSubtitle {
  grid-column: 1;
  grid-row: 1;
}

.recruiterMessage__content {
  grid-column: 1;
  grid-row: 2;
}

.recruiterMessage__image {
  align-self: center;
  display: grid;
  gap: 16px;
  grid-column: 2;
  grid-row: 1 / span 2;
  height: fit-content;
}

.recruiterMessage__image img {
  border-radius: 16px;
}

.recruiterMessage__image figcaption {
  font-size: var(--fontMax14Min12);
}

.workBlock__container {
  display: grid;
  gap: clamp(24px, 3vw, 40px);
  grid-template-columns: 1fr 1fr;
  margin-top: 40px;
}

.workBlock {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.workDescription__gallery img {
  border-radius: 16px;
}

.workConsultancyImage {
  align-self: center;
  max-width: 420px;
}


@media screen and (max-width: 767px) {
  .recruiterMessage {
    grid-template-columns: 1fr;
  }
  .recruiterMessage__content {
    grid-row: 3;
  }
  .recruiterMessage__image {
    grid-column: 1;
    grid-row: 2;
  }
  .recruiterMessage__image {
    margin: 0 auto;
    max-width: 450px;
  }
  .workBlock__container {
    grid-template-columns: 1fr;
  }
}

/* Environment */

.environment,
.environment .upperCurve {
  background: var(--colorSub2);
}

.environment__pattern {
  background: url(../../images/common/pattern-dot.png) repeat;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}

.environment__nav {
  display: grid;
  gap: clamp(24px, 3vw, 40px);
  grid-template-columns: 1fr 1fr;
  margin-top: 40px;
}

.enironment__card {
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.25);
  cursor: pointer;
  display: grid;
  grid-template-columns: 40% 60%;
  position: relative;
}

.environment__img img {
  border-radius: 10px 0 0 10px;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.environment__textArea {
  background: var(--colorMain);
  border-radius: 0 10px 10px 0;
  box-sizing: border-box;
  padding: clamp(18px, 2.2vw, 30px);
}

.environment__title {
  font-size: var(--fontMax18Min16);
  font-weight: 700;
}

.environment__list {
  margin-top: 8px;
  padding-left: 12px;
}

.environment__arrow {
  bottom: 20px;
  height: auto;
  max-width: 32px;
  position: absolute;
  right: 20px;
}

@media screen and (max-width: 767px) {
  .environment__nav {
    grid-template-columns: 1fr;
  }
  .enironment__card {
    justify-self: center;
    max-width: 500px;
  }
}

/* Recruitment */

.recruitment,
.recruitment .upperCurve {
  background: #fff;
}


.faqBanner {
  background: var(--colorBase);
  border-radius: 20px;
  box-sizing: border-box;
  display: grid;
  gap: clamp(24px, 3vw, 40px);
  grid-template-columns: 1fr 1fr;
  margin-top: clamp(60px, 6vw, 80px);
  padding: clamp(24px, 3vw, 40px);
  position: relative;
}

.faqBanner__lead,
.access__lead {
  font-family: var(--familyEn);
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: center;
}

.faqBanner__title,
.access__title {
  font-size: var(--fontMax32Min26);
  font-weight: 700;
  text-align: center;
}

.faqBanner .cta {
  margin: 24px auto 0;
  max-width: 260px;
}

.faqBanner__list {
  align-content: center;
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}

.faqBanner__item {
  align-items: center;
  display: flex;
  gap: 8px;
  height: fit-content;
}

.faqBanner__item span {
  background: var(--colorMain);
  border-radius: 50%;
  display: block;
  height: 4px;
  width: 4px;
}

.faqBanner__item {
  font-size: var(--fontMax18Min16);
}

.faqBanner__image {
  bottom: 0;
  max-width: 221px;
  position: absolute;
  right: 0;
  width: 21%;
}

.access {
  margin-top: clamp(60px, 6vw, 80px);
}

.access__contents {
  display: grid;
  gap: clamp(24px, 3vw, 40px);
  grid-template-columns: 1fr 1fr;
  margin-top: 40px;
}

.access__map {
  min-height: 346px;
}

.access__map iframe {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.access__textArea {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.access__logo {
  max-width: 232px;
}

.access__line {
  background: #d2d2d2;
  border: none;
  height: 1px;
  margin: 0;
  width: 100%;
}

.access__heading {
  font-size: var(--fontMax18Min16);
  font-weight: 700;
}

.access__freedial {
  font-weight: 700;
  margin-top: 16px;
}

.access__freedialNumber {
  font-size: var(--fontMax24Min18);
  font-weight: 700;
}

.access__contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 16px;
}

.access__number,
.access__number a {
  font-weight: 700;
}

.access__number a .large {
  font-size: var(--fontMax24Min18);
}

@media screen and (max-width: 767px) {
  .faqBanner {
    grid-template-columns: 1fr;
    justify-items: center;
    margin: 60px auto;
    max-width: 500px;
  }
  .faqBanner__image {
    max-width: 130px;
    width: 100%;
  }
  .access__contents {
    grid-template-columns: 1fr;
    margin: 60px auto;
    max-width: 500px;
  }
}

@media screen and (max-width: 500px) {
  .faqBanner {
    padding-bottom: 90px;
  }
  .faqBanner__image {
    right: 50%;
    transform: translateX(50%);
  }
}

/* Entry */

.entry,
.entry .upperCurve {
  background: var(--colorSub2);
}

.entry__leftImage {
  max-width: 104px;
}

.entry__rightImage {
  max-width: 110px;
}

.entry__titleContainer {
  align-items: center;
  display: flex;
  gap: 80px;
  margin: 0 auto;
  width: fit-content;
}

.entry__titleGroup {
  text-align: center;
}

.entry__lead {
  font-family: var(--familyEn);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.4;
}

.entry__title {
  font-size: var(--fontMax32Min26);
  font-weight: 700;
}

.entry__message {
  font-weight: 700;
  margin-top: 40px;
  text-align: center;
}

.entry__container {
  background: #fff;
  border-radius: 20px;
  box-sizing: border-box;
  margin-top: 40px;
  padding: clamp(24px, 3vw, 40px);
}

.entry__headingGroup {
  text-align: center;
}

.entry__phoneIcon,
.entry__mailIcon {
  max-width: 60px;
}

.entry__heading {
  font-weight: 700;
  margin-top: 8px;
}

.entry__freedial {
  align-items: center;
  display: flex;
  justify-content: center;
  margin-top: 20px;
}

.entry__freedial,
.entry__freedial .number {
  font-family: var(--familyEn);
  font-size: var(--fontMax18Min16);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.4;
}

.entry__freedial .number {
  font-size: var(--fontMax32Min26);
  margin-left: 10px;
}

.entry__contactTimeContainer {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 8px;
}

.entry__contactLabel,
.entry__contactTime {
  font-size: var(--fontMax14Min12);
  font-weight: 700;
}

.entry__contactLabel {
  border: 1px solid var(--colorBlack);
  padding: 0 10px;
}

.entry__notice {
  border: 1px solid #d2d2d2;
  box-sizing: border-box;
  margin-top: 40px;
  padding: 24px;
  text-align: center;
}

.entry__noticeHeading {
  font-size: var(--fontMax18Min16);
  font-weight: 700;
}

.entry__noticeText {
  font-size: var(--fontMax14Min12);
  margin-top: 10px;
}

.entry__noticeText strong {
  color: #f01414;
  font-size: var(--fontMax16Min14);
}


@media screen and (max-width: 767px) {
  .entry__titleContainer {
    gap: 50px;
  }
  .entry__leftImage {
    max-width: 75px;
  }
  .entry__rightImage {
    max-width: 70px;
  }
}

@media screen and (max-width: 500px) {
  .entry__titleContainer {
    gap: 20px;
  }
  .entry__leftImage {
    max-width: 45px;
  }
  .entry__rightImage {
    max-width: 40px;
  }
  .entry__phoneIcon {
    max-width: 50px;
  }
  .entry__freedial .number {
    font-size: 20px;
    position: relative;
    top: -2px;
  }
  .entry__freedial {
    font-size: 14px;
  }
}

/* Form */

.form__row {
  border-bottom: 1px solid #c5c2bb;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(180px, 240px) auto;
  padding: clamp(26px, 3vw, 40px) 0;
}

.form__row.special {
  opacity: 0;
  position: fixed;
  transform: translateY(-1000000px);
}

.form__label {
  font-weight: 700;
}

.form__label .required {
  background: var(--colorImportant);
  border-radius: 100px;
  color: #fff;
  display: inline-block;
  font-size: 10px;
  height: 18px;
  margin-left: 8px;
  padding: 0 8px;
  position: relative;
  top: -2px;
  width: fit-content;
}

.wpcf7-list-item-label {
  color: var(--colorBlack);
  font-family: var(--familyJp);
  font-size: var(--fontMax16Min14);
  font-weight: 500;
  letter-spacing: 0.125em;
  line-height: 1.8;
}

.form__radio .wpcf7-form-control:has(input[type="radio"]) {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.form__radio.column .wpcf7-form-control:has(input[type="radio"]) {
  flex-direction: column;
}

.wpcf7-list-item:has(input[type="radio"]),
.wpcf7-list-item:has(input[type="checkbox"]) {
  position: relative;
}

.wpcf7-list-item:has(input[type="radio"]) label,
.wpcf7-list-item:has(input[type="radio"]) input,
.wpcf7-list-item:has(input[type="checkbox"]) input,
.wpcf7-list-item:has(input[type="checkbox"]) label {
  cursor: pointer;
}

.wpcf7-list-item:has(input[type="radio"])::before,
.wpcf7-list-item:has(input[type="checkbox"])::before {
  border: 1px solid #d2d2d2;
  border-radius: 50%;
  content: "";
  height: 20px;
  left: -1px;
  pointer-events: none;
  position: absolute;
  top: 2px;
  width: 20px;
}

.wpcf7-list-item:has(input[type="checkbox"])::before {
  border-radius: 3px;
}

.wpcf7-list-item:has(input[type="checkbox"])::after {
  background: url(../../images/common/icon-check.svg) no-repeat;
  content: "";
  height: 16px;
  left: 3px;
  pointer-events: none;
  position: absolute;
  top: 5px;
  width: 14px;
}

.wpcf7-list-item:has(input[type="radio"]:focus)::before,
.wpcf7-list-item:has(input[type="checkbox"]:focus)::before {
  border-color: #585757;
}

.wpcf7-list-item:has(input[type="radio"])::after {
  background: var(--colorMain);
  border: 1px solid var(--colorMain);
  border-radius: 50%;
  content: "";
  height: 10px;
  left: 4px;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 7px;
  transition: opacity 0.3s ease-out;
  width: 10px;
}

.wpcf7-list-item:has(input[type="checkbox"]:checked)::before {
  background: var(--colorMain);
}

.wpcf7-list-item:has(input[type="radio"]:checked)::after {
  opacity: 1;
}

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

.wpcf7-list-item:has(input[type="radio"]) label,
.wpcf7-list-item:has(input[type="checkbox"]) label {
  display: flex;
  gap: 12px;
}

.wpcf7-list-item input[type="radio"],
.wpcf7-list-item input[type="checkbox"] {
  height: 20px;
  margin: 0;
  opacity: 0;
  position: relative;
  top: 4px;
  width: 20px;
}

.form__row input[type="text"],
.form__row input[type="tel"],
.form__row input[type="email"],
.form__row textarea {
  background: #f7f7f6;
  border: none;
  border-radius: 8px;
  box-sizing: border-box;
  padding: 16px 10px 16px 16px;
  width: 100%;
}

.form__row input[type="text"]::placeholder,
.form__row input[type="tel"]::placeholder,
.form__row input[type="email"]::placeholder,
.form__row textarea::placeholder {
  color: #c5c2bb;
}

.form__row textarea {
  resize: vertical;
}

.privacyAgreement {
  font-size: var(--fontMax18Min16);
  font-weight: 700;
  margin-top: 40px;
  text-align: center;
}

.privacyAgreeement__textArea {
  background: #f7f7f6;
  border-radius: 10px;
  box-sizing: border-box;
  margin-top: 24px;
  padding: 40px 20px 40px 40px;
}

.privacyAgreeement__textAreaInner {
  max-height: 400px;
  overflow-y: scroll;
  padding-right: 20px;
}

.privacyAgreeement__textAreaInner address {
  text-align: start;
}

.privacyAgreement__text {
  font-size: var(--fontMax14Min12);
  text-align: start;
}

.privacyAgreement__list {
  margin-top: 20px;
}

.privacyAgreement__item {
  border-bottom: 1px solid #d9d7d2;
  border-top: 1px solid #d9d7d2;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 20px 0;
}

.privacyAgreement__heading {
  text-align: start;
}

.form__confirm {
  margin: 40px auto 0;
  width: fit-content;
}

.form__submit {
  margin: 40px auto 0;
  max-width: 260px;
  position: relative;
}

.wpcf7-submit {
  align-items: center;
  background: var(--colorAccent);
  border: 1px solid var(--colorAccent);
  border-radius: 100px;
  color: #fff;
  display: flex;
  font-weight: 700;
  height: 50px;
  justify-content: center;
  max-width: 260px;
  position: relative;
  transition: 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  width: 100%;
}

.wpcf7-submit:not(:disabled) {
  cursor: pointer;
}

.wpcf7-submit:not(:disabled):hover {
  background: #fff;
  color: var(--colorAccent);
}

.wpcf7-spinner {
  position: absolute;
}

.acceptArrow {
  background: url(../../images/common/icon-white_arrow.svg) no-repeat center / contain;
  display: block;
  height: 18px;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  width: 18px;
}

.form__submit:has(.wpcf7-submit:not(:disabled):hover) .acceptArrow {
  background: url(../../images/common/icon-yellow_arrow.svg) no-repeat center / contain;
}


/* width */
.privacyAgreeement__textAreaInner::-webkit-scrollbar {
  width: 3px;
}

/* Track */
.privacyAgreeement__textAreaInner::-webkit-scrollbar-track {
  background: #d9d7d2;
}

/* Handle */
.privacyAgreeement__textAreaInner::-webkit-scrollbar-thumb {
  background: #555148;
}

/* Handle on hover */
.privacyAgreeement__textAreaInner::-webkit-scrollbar-thumb:hover {
  background: #383630;
}

.spamMessage {
	margin-bottom: 8px;
}

@media screen and (max-width: 767px) {
  .form__row {
    grid-template-columns: 160px auto;
  }
}

@media screen and (max-width: 500px) {
  .form__row {
    grid-template-columns: 1fr;
  }
  .form__radio .wpcf7-form-control:has(input[type="radio"]) {
    flex-direction: column;
  }
  .privacyAgreeement__textArea {
    padding: 30px 10px 20px 20px;
  }
}
