@charset "UTF-8";
/* Scss Document */
/*** contact page ***/
/* contact page mainview */
.contact_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.contact_mainview_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(600px, 37.5vw, 720px);
}

.contact_mainview_text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 83.3333%;
  max-width: 1600px;
  padding-top: clamp(240px, 15.4167vw, 296px);
  margin-right: auto;
  margin-left: auto;
}

.contact_mainview_subtitle {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 14px;
  color: #3c3c3c;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.12px;
  white-space: nowrap;
}

.contact_mainview_subtitle::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #ff668e;
}

.contact_mainview_title {
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(80px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.contact_mainview_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.contact_mainview_bg_image {
  position: absolute;
  inset: 0;
}

.contact_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/* contact page contents */
.contact_body {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: 96px;
  padding-bottom: 96px;
  background-color: #fff;
}

.contact_body_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.contact_body_bg_top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

.contact_body_bg_top img {
  width: 100%;
  height: auto;
}

.contact_body_wrapper {
  position: relative;
  z-index: 1;
  width: 83.3333%;
  max-width: 1280px;
  margin-right: auto;
  margin-left: auto;
}

.contact_information {
  width: 100%;
  padding-right: 4px;
  padding-left: 4px;
}

.contact_information_content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
  width: 100%;
  max-width: 505px;
}

.contact_information_title {
  width: 100%;
  color: #34599a;
  font-size: clamp(26px, 1.6667vw, 32px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

.contact_information_body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  width: 100%;
}

.contact_information_text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  width: 100%;
}

.contact_information_intro,
.contact_information_company,
.contact_information_hours {
  width: 100%;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
  white-space: nowrap;
}

.contact_information_list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

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

.contact_information_label {
  color: #34599a;
  font-family: "Roboto", sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.contact_information_value {
  color: #1e2430;
  font-size: 22px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

/* contact page form */
.contact_form {
  position: relative;
  z-index: 1;
  width: 83.3333%;
  max-width: 1280px;
  margin-top: 95px;
  margin-right: auto;
  margin-left: auto;
}

.contact_form_wrapper {
  width: 100%;
}

.contact_form_head {
  display: flex;
  justify-content: center;
  width: 100%;
}

.contact_form_head_wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.contact_form_title {
  color: #24509a;
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
  white-space: nowrap;
}

.contact_form_subtitle {
  color: #1e2430;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
  white-space: nowrap;
}

.contact_form_body {
  width: 100%;
  padding: 48px 40px 41px;
  margin-top: 40px;
  overflow: hidden;
  border: 1px solid #d9e0ea;
  border-radius: 6px;
  background-color: #fff;
}

.contact_form_body_wrapper {
  width: 100%;
}

.contact_form_form,
.contact_form_form > .wpcf7 > form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  width: 100%;
}

.contact_form_form > .wpcf7 {
  width: 100%;
}

.contact_form0 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
  width: 100%;
}

.contact_mailform_listitem {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
}

.contact_mailform_listitem_type {
  margin-bottom: 10px;
}

.contact_mailform_listitem_title {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  color: #34599a;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

.contact_mailform_listitem_reqiredtag,
.contact_mailform_listitem_optionaltag {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-height: 19px;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  line-height: 17px;
  letter-spacing: 0;
}

.contact_mailform_listitem_reqiredtag {
  color: #c72e2e;
  background-color: #ffebeb;
}

.contact_mailform_listitem_optionaltag {
  color: #596678;
  background-color: #f1f4f8;
}

.contact_mailform_listitem_inputs {
  width: 100%;
  line-height: 0;
}

.contact_mailform_listitem_inputs .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  line-height: 0;
}

.contact_mailform_listitem_inputs .size {
  width: 100%;
  height: 54px;
  padding: 0 16px;
  border: 1px solid #d9e0ea;
  border-radius: 6px;
  color: #3c3c3c;
  background-color: #fbfbfb;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
}

.contact_mailform_listitem_inputs .size::placeholder,
.contact_mailform_listitem_inputs .area::placeholder {
  color: rgba(107, 120, 140, 0.62);
  opacity: 1;
}

.contact_mailform_listitem_inputs .area {
  display: block;
  width: 100%;
  height: 180px;
  min-height: 180px;
  padding: 16px;
  border: 1px solid #d9e0ea;
  border-radius: 6px;
  color: #3c3c3c;
  background-color: #fbfbfb;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  resize: vertical;
}

.contact_form .radiocheck_large .wpcf7-radio {
  display: flex;
  align-items: center;
  gap: 28px;
}

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

.contact_radio_label,
.contact_form .radiocheck_large .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #3c3c3c;
  font-size: 16px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
}

.contact_radio,
.contact_form .radiocheck_large input[type=radio] {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1.5px solid #34599a;
  border-radius: 50%;
  background-color: #fff;
  appearance: none;
  cursor: pointer;
}

.contact_radio:checked,
.contact_form .radiocheck_large input[type=radio]:checked {
  background-image: radial-gradient(circle, #34599a 0 4px, transparent 5px);
}

.contact_radio:focus-visible,
.contact_form .radiocheck_large input[type=radio]:focus-visible {
  outline: 2px solid #5c96cc;
  outline-offset: 2px;
}

.contact_mailform_submit {
  width: 240px;
}

.contact_mailform_submitbutton {
  width: 100%;
  height: 58px;
  padding: 16px 32px;
  border: 0;
  border-radius: 6px;
  color: #fff;
  background-color: #1c4591;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
  transition: opacity var(--trans_300ms);
}

.contact_mailform_submitbutton:hover {
  opacity: 0.75;
}

.contact_mailform_submitbutton:focus-visible {
  outline: 2px solid #5c96cc;
  outline-offset: 3px;
}

@media only screen and (max-width: 1024px) {
  /*** contact page ***/
  /* contact page mainview */
  .contact_mainview_wrapper {
    height: 620px;
  }
  .contact_mainview_text {
    width: 90%;
    padding-top: 220px;
  }
  .contact_mainview_subtitle {
    font-size: 26px;
  }
  .contact_mainview_title {
    font-size: clamp(68px, 9.7656vw, 100px);
  }
  .contact_mainview_bg_image img {
    object-position: 40% bottom;
  }
  /* contact page contents */
  .contact_body {
    padding-top: 72px;
    padding-bottom: 96px;
  }
  .contact_body_wrapper,
  .contact_form {
    width: 90%;
  }
  /* contact page form */
  .contact_form {
    margin-top: 80px;
  }
  .contact_form_body {
    padding: 40px 32px 34px;
  }
}
@media only screen and (max-width: 768px) {
  /*** contact page ***/
  /* contact page mainview */
  .contact_mainview_wrapper {
    height: 540px;
  }
  .contact_mainview_text {
    padding-top: 180px;
  }
  .contact_mainview_subtitle {
    gap: 14px;
    padding-left: 0;
    font-size: 22px;
    letter-spacing: 0.88px;
  }
  .contact_mainview_subtitle::before {
    width: 12px;
    height: 12px;
  }
  .contact_mainview_title {
    font-size: clamp(44px, 12.5vw, 64px);
    letter-spacing: 3.84px;
  }
  /* contact page contents */
  .contact_body {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .contact_information {
    padding-right: 0;
    padding-left: 0;
  }
  .contact_information_content {
    gap: 28px;
    max-width: none;
  }
  .contact_information_title {
    font-size: clamp(24px, 6.1538vw, 28px);
    line-height: 1.35;
  }
  .contact_information_intro,
  .contact_information_company,
  .contact_information_hours {
    font-size: 15px;
    white-space: normal;
  }
  .contact_body_bg_top {
    left: -30%;
    width: 160%;
    opacity: 0.7;
  }
  /* contact page form */
  .contact_form {
    margin-top: 64px;
  }
  .contact_form_title {
    font-size: clamp(36px, 10.2564vw, 54px);
    letter-spacing: 0.54px;
  }
  .contact_form_subtitle {
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  .contact_form_body {
    padding: 32px 20px 28px;
    margin-top: 36px;
  }
  .contact_form_form {
    gap: 32px;
  }
  .contact_mailform_listitem_title {
    font-size: 15px;
  }
  .contact_form .radiocheck_large .wpcf7-radio {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .contact_radio_label,
  .contact_form .radiocheck_large .wpcf7-list-item label {
    font-size: 15px;
    white-space: normal;
  }
  .contact_mailform_listitem_inputs .size,
  .contact_mailform_listitem_inputs .area {
    font-size: 15px;
  }
  .contact_mailform_submit {
    width: min(100%, 240px);
  }
}

/* thanks pages */
.thanks_content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  padding: 64px 48px;
  border: 1px solid #d9e0ea;
  border-radius: 6px;
  background-color: #fff;
  text-align: center;
}

.thanks_title {
  color: #24509a;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 700;
}

.thanks_text_group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.thanks_text {
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
}

.thanks_note {
  width: 100%;
  color: #596678;
  font-size: 14px;
  font-weight: 400;
}

.thanks_button {
  margin-top: 8px;
}

@media only screen and (max-width: 768px) {
  .thanks_content {
    gap: 24px;
    padding: 40px 20px;
	  text-align: left;
  }
	.thanks_title {
		text-align: center;
	}
  .thanks_text {
    font-size: 15px;
  }

  .thanks_note {
    font-size: 13px;
  }
}

/************************/
/*** support page ***/
/* support page common */
.support_mainview {
  z-index: 1;
}

.support_programs {
  position: relative;
  overflow-x: clip;
  background-color: #fff;
}

.mainview_bg_image.support_mainview_bg_image img {
  object-position: right bottom;
}

.support_programs::after {
  content: "";
  position: absolute;
  top: 80px;
  right: -2%;
  z-index: 0;
  width: min(24.5313%, 471px);
  height: 100%;
  background-image: url("../images/support_bg_line.webp");
  background-repeat: no-repeat;
  background-position: right top;
  background-size: 100% auto;
  pointer-events: none;
}

.support_heading {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.support_ringtitle {
  position: absolute;
  top: -59px;
  left: -74px;
  z-index: -1;
  width: 227px;
  height: 227px;
  pointer-events: none;
}

.support_ringtitle img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.support_title {
  padding-bottom: 0.12em;
  margin-bottom: -0.12em;
  color: #c3c8d0;
  background-image: linear-gradient(180deg, #dbe1eb 0%, #c1c7cd 35.577%, #c6d5e0 65.865%, #c3c8d0 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(88px, 6.6667vw, 128px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.28px;
  white-space: nowrap;
}

.support_label {
  padding: 12px 24px;
  color: #fff;
  background-color: #34599a;
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 2.4px;
  white-space: nowrap;
}

.support_more {
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 24px;
  color: var(--blue1C4591);
}

a.support_more,
a.support_more:focus,
a.support_more:visited,
a.support_more:focus-visible {
  color: var(--blue1C4591);
}

a.support_more:hover,
a.support_more:active {
  color: var(--blue5c96cc);
}

.support_more_text {
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 1.8px;
  white-space: nowrap;
}

.support_more_arrow {
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
  width: 160px;
  height: 160px;
  border-radius: 50%;
}

.support_more_arrow img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.support_more_arrow::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-color: #fff;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.support_more:hover .support_more_arrow::after,
.support_more:focus-visible .support_more_arrow::after {
  opacity: 0.35;
}

/* support page youth support */
.support01 {
  position: relative;
  z-index: 2;
  overflow-x: clip;
  padding-bottom: 119px;
}

.support01::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  height: 330px;
  background-image: linear-gradient(180deg, rgba(244, 252, 255, 0) 0%, #f4fcff 50%, rgba(244, 252, 255, 0) 100%);
}

.support01_wrapper {
  position: relative;
  container-type: inline-size;
  display: flex;
  align-items: center;
  gap: 7.5%;
  width: 83.3333%;
  max-width: 1600px;
  min-height: 693px;
  margin-right: auto;
  margin-left: auto;
}

.support01_image {
  flex-shrink: 0;
  width: 32.1875%;
  max-width: 515px;
}

.support01_image img {
  width: 100%;
  height: auto;
}

.support01_content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
  padding-top: 48px;
}

.support01_list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-left: 8px;
  margin-top: 40px;
}

.support01_item {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #3c3c3c;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.6px;
}

.support01_item::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #cf897d;
}

.support01_photos {
  display: flex;
  align-items: flex-start;
  gap: 72px;
  padding-top: 24px;
  padding-left: 80px;
  margin-top: 12px;
}

.support01_photo {
  position: relative;
  flex-shrink: 0;
  width: 240px;
  height: 240px;
}

.support01_photo:nth-child(2) {
  width: 243px;
  height: 243px;
}

.support01_photo img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.support01_photo_title {
  position: absolute;
  top: 13px;
  left: 50%;
  z-index: 1;
  padding: 2px 16px;
  border: 1px solid #c6dcde;
  border-radius: 50px;
  color: #000;
  background-color: #fff;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.88;
  letter-spacing: 0.45px;
  white-space: nowrap;
  transform: translateX(-50%);
}

.support01_more {
  position: relative;
  align-self: flex-start;
  margin-left: calc(min(76.7292cqw, 1228px) - min(32.1875cqw, 515px) - 7.5cqw);
  margin-top: 30px;
}

/* support page parenting support */
.support02 {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding-top: 80px;
  padding-bottom: 136px;
}

.support02::after {
  content: "";
  position: absolute;
  top: 413px;
  right: 0;
  left: 0;
  z-index: -1;
  height: 400px;
  background-image: linear-gradient(180deg, rgba(244, 252, 255, 0) 0%, #f4fcff 50%, rgba(244, 252, 255, 0) 100%);
}

.support02_wrapper {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1228fr) minmax(0, 372fr);
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.support02_heading {
  grid-column: 1/-1;
}

.support02_grid {
  position: relative;
  display: grid;
  grid-column: 1;
  grid-row: 2;
  grid-template-columns: 32573fr 97720fr 323566fr 26060fr 71660fr 27135fr 322491fr 98795fr;
  row-gap: 24px;
  width: 100%;
  margin-top: 56px;
}

.support02_image {
  --support02-title-margin-top: 0;
  --support02-title-margin-bottom: 0;
  position: relative;
  display: grid;
  align-items: flex-start;
  min-height: 260px;
  overflow: hidden;
  border-radius: 80px;
}

.support02_image:nth-child(4n+1) {
  --support02-title-margin-top: 44px;
  grid-column: 2/4;
}

.support02_image:nth-child(4n+2) {
  --support02-title-margin-bottom: 56px;
  grid-column: 5/8;
  align-items: flex-end;
}

.support02_image:nth-child(4n+3) {
  --support02-title-margin-top: 24px;
  grid-column: 3/6;
}

.support02_image:nth-child(4n) {
  --support02-title-margin-top: 20px;
  grid-column: 7/9;
}

.support02_image img {
  grid-area: 1/1;
  align-self: stretch;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.support02_image_title {
  position: relative;
  z-index: 1;
  grid-area: 1/1;
  justify-self: flex-start;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 8px 20px 8px 16px;
  margin-top: var(--support02-title-margin-top);
  margin-bottom: var(--support02-title-margin-bottom);
  border-radius: 0 40px 40px 0;
  color: #1e2430;
  background: rgba(255, 255, 255, 0.8);
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

.support02_image:nth-child(2n) .support02_image_title {
  border-radius: 0 16px 16px 0;
}

.support02_more {
  grid-column: 2;
  grid-row: 2;
  align-self: flex-start;
  justify-self: flex-start;
  margin-top: 203px;
}

/* support page qualification support */
.support03 {
  position: relative;
  overflow: hidden;
  padding-top: 120px;
  padding-bottom: 144px;
  background-image: linear-gradient(131.76deg, #fff 15.101%, #f4fcff 96.134%);
}

.support03::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 841px;
  background-image: linear-gradient(116.62deg, #0c254a 0%, #34599a 100%);
}

.support03_wrapper {
  position: relative;
  z-index: 1;
  isolation: isolate;
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.support03_heading {
  gap: 40px;
  min-height: 368px;
}

.support03_ringtitle {
  top: -51px;
  left: -68px;
}

.support03_title {
  display: flex;
  flex-direction: column;
  color: #dbe1eb;
}

.support03_label {
  color: #34599a;
  background-color: #fff;
}

.support03_circle {
  position: absolute;
  top: -26px;
  right: -13.1875%;
  z-index: 0;
  width: 43.875%;
  max-width: 702px;
  pointer-events: none;
}

.support03_circle img {
  width: 100%;
  height: auto;
}

.support03_content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 96px;
  margin-top: 80px;
}

.support03_cost {
  position: relative;
  width: 100%;
  min-height: 472px;
  overflow: hidden;
  padding: 48px 5.625% 56px;
  border-radius: 20px;
  background-image: linear-gradient(90deg, rgba(61, 139, 217, 0.6), rgba(52, 89, 154, 0.6)), url("../images/engineering_benefit_base.webp");
  background-repeat: no-repeat;
  background-position: center 47%;
  background-size: cover;
}

.support03_cost_title {
  color: #fff;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
}

.support03_cost_grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 64px;
  padding-right: 16px;
  padding-left: 16px;
  margin-top: 48px;
}

.support03_cost_card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  min-width: 0;
  min-height: 264px;
  padding: 24px;
  border: 1px solid rgba(217, 236, 245, 0.9);
  border-radius: 30px;
  background-color: rgba(255, 255, 255, 0.97);
  box-shadow: 0 16px 15px rgba(5, 23, 46, 0.14);
}

.support03_cost_num {
  position: absolute;
  top: -22px;
  left: -18px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 104px;
  height: 104px;
  border: 2px solid #91a4c5;
  border-radius: 50%;
  color: #68799b;
  background-color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 48px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.48px;
}

.support03_cost_icon {
  width: 200px;
  height: 140px;
}

.support03_cost_icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

.support03_cost_text {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: #17243a;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.4px;
}

.support03_cost_text::before {
  content: "";
  flex-shrink: 0;
  width: 7px;
  height: 7px;
  margin-top: 10px;
  border-radius: 50%;
  background-color: #f03b65;
}

.support03_recommend {
  position: relative;
  align-self: center;
  width: 88.75%;
  min-height: 494px;
}

.support03_recommend_body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  width: 56.5493%;
  padding-top: 48px;
  padding-bottom: 48px;
}

.support03_recommend_title {
  padding: 4px 16px;
  color: #fff;
  background-color: #34599a;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.support03_recommend_list {
  width: 100%;
}

.support03_recommend_item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-height: 62px;
  padding: 16px 8px;
  border-bottom: 1px solid #91a4c5;
  color: #3c3c3c;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.44px;
}

.support03_recommend_item::before {
  content: "";
  flex-shrink: 0;
  width: 7px;
  height: 7px;
  margin-top: 10px;
  border-radius: 50%;
  background-color: #f03b65;
}

.support03_manual {
  position: absolute;
  top: 52px;
  left: 62.1127%;
  width: 47.0423%;
  max-width: 668px;
}

.support03_manual img {
  width: 100%;
  height: auto;
}

.support03_training {
  display: flex;
  width: 100%;
  min-height: 340px;
  overflow: hidden;
  border-radius: 36px;
  background-image: linear-gradient(90deg, #244f88 0%, #173f78 100%);
  box-shadow: 0 18px 42px rgba(16, 50, 96, 0.13);
}

.support03_training_body {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
  min-width: 0;
  padding: 48px 5.625%;
}

.support03_training_title {
  color: #fff;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
}

.support03_training_text {
  color: #eaf3ff;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.88;
  letter-spacing: 0.45px;
}

.support03_training_image {
  flex-shrink: 0;
  width: 31.25%;
}

.support03_training_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right bottom;
}

@media only screen and (max-width: 1024px) {
  /*** support page ***/
  /* support page common */
  .mainview_bg_image.support_mainview_bg_image img {
    object-position: calc(100% + 100px) bottom;
  }
  .support_programs::after {
    right: -6%;
    width: 32%;
  }
  .support_title {
    font-size: clamp(64px, 7.8125vw, 80px);
  }
  .support_label {
    padding: 10px 20px;
    font-size: 36px;
    letter-spacing: 1.8px;
  }
  .support_ringtitle {
    top: -45px;
    left: -48px;
    width: 180px;
    height: 180px;
  }
  .support_more {
    gap: 16px;
  }
  .support_more_text {
    font-size: 16px;
    letter-spacing: 1.6px;
  }
  .support_more_arrow {
    width: 120px;
    height: 120px;
  }
  /* support page youth support */
  .support01 {
    padding-bottom: 96px;
  }
  .support01_wrapper {
    gap: 6%;
    width: 90%;
    min-height: 600px;
  }
  .support01_image {
    width: 34%;
  }
  .support01_content {
    padding-top: 60px;
  }
  .support01_list {
    margin-top: 32px;
  }
  .support01_item {
    gap: 10px;
    font-size: 18px;
  }
  .support01_photos {
    gap: 24px;
    padding-top: 20px;
    padding-left: 8%;
  }
  .support01_photo,
  .support01_photo:nth-child(2) {
    width: calc((100% - 24px) / 2);
    height: auto;
    aspect-ratio: 1;
  }
  .support01_photo_title {
    top: 10px;
    padding-right: 10px;
    padding-left: 10px;
    font-size: clamp(11px, 1.5625vw, 16px);
  }
  .support01_more .support_more_arrow,
  .support02_more .support_more_arrow {
    width: 96px;
    height: 96px;
  }
  .support01_more {
    align-self: flex-end;
    margin-left: 0;
    margin-top: 28px;
  }
  /* support page parenting support */
  .support02 {
    padding-top: 72px;
    padding-bottom: 100px;
  }
  .support02_wrapper {
    grid-template-columns: minmax(0, 1fr);
    width: 90%;
  }
  .support02_grid {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    row-gap: calc(2vw - 2px);
    align-content: normal;
    margin-top: 48px;
  }
  .support02_image {
    min-height: 0;
    height: auto;
    aspect-ratio: 518/260;
  }
  .support02_image_title {
    padding: 7px 16px;
    font-size: clamp(16px, 2.2461vw, 23px);
  }
  .support02_image:nth-child(4n+1) {
    --support02-title-margin-top: 36px;
  }
  .support02_image:nth-child(4n+2) {
    --support02-title-margin-bottom: 44px;
  }
  .support02_image:nth-child(4n+3),
  .support02_image:nth-child(4n) {
    --support02-title-margin-top: 18px;
  }
  .support02_more {
    grid-column: 1;
    grid-row: auto;
    justify-content: flex-end;
    justify-self: stretch;
    width: 100%;
    margin-top: 28px;
  }
  /* support page qualification support */
  .support03 {
    padding-top: 96px;
    padding-bottom: 104px;
  }
  .support03::before {
    height: 640px;
  }
  .support03_wrapper {
    width: 90%;
  }
  .support03_heading {
    gap: 32px;
    min-height: 240px;
  }
  .support03_ringtitle {
    top: -40px;
    left: -40px;
  }
  .support03_circle {
    right: -18%;
    width: 50%;
  }
  .support03_content {
    gap: 72px;
    margin-top: 56px;
  }
  .support03_cost {
    min-height: 400px;
    padding: 40px 4% 44px;
  }
  .support03_cost_title {
    font-size: 32px;
  }
  .support03_cost_grid {
    gap: 24px;
    padding-right: 12px;
    padding-left: 12px;
    margin-top: 40px;
  }
  .support03_cost_card {
    gap: 12px;
    min-height: 236px;
    padding: 20px 16px;
    border-radius: 24px;
  }
  .support03_cost_num {
    top: -18px;
    left: -14px;
    width: 76px;
    height: 76px;
    font-size: 36px;
  }
  .support03_cost_icon {
    width: 140px;
    height: 110px;
  }
  .support03_cost_text {
    font-size: 15px;
  }
  .support03_recommend {
    width: 100%;
    min-height: 410px;
  }
  .support03_recommend_body {
    width: 56%;
    padding-top: 32px;
    padding-bottom: 32px;
  }
  .support03_recommend_title {
    font-size: 28px;
  }
  .support03_recommend_item {
    min-height: 52px;
    padding: 12px 8px;
    font-size: 17px;
  }
  .support03_manual {
    top: 52px;
    left: 59%;
    width: 45%;
  }
  .support03_training {
    min-height: 300px;
    border-radius: 28px;
  }
  .support03_training_body {
    padding: 40px 5%;
  }
  .support03_training_title {
    font-size: 32px;
  }
  .support03_training_text {
    font-size: 16px;
    line-height: 1.75;
  }
  .support03_training_image {
    width: 36%;
  }
}
@media only screen and (max-width: 768px) {
  /*** support page ***/
  /* support page common */
  .mainview_bg_image.support_mainview_bg_image img {
    object-position: calc(100% + 200px) bottom;
  }
  .support_programs::after {
    right: -12%;
    width: 46%;
    opacity: 0.65;
  }
  .support_heading {
    gap: 20px;
  }
  .support_title {
    font-size: clamp(50px, 12.5vw, 64px);
    letter-spacing: 0.64px;
    white-space: normal;
  }
  .support_label {
    padding: 9px 14px;
    font-size: 24px;
    line-height: 1.25;
    letter-spacing: 1.2px;
    white-space: normal;
  }
  .support_ringtitle {
    top: -28px;
    left: -30px;
    width: 130px;
    height: 130px;
  }
  .support_more_arrow {
    width: 96px;
    height: 96px;
  }
  /* support page youth support */
  .support01 {
    padding-top: 64px;
    padding-bottom: 0px;
  }
  .support01_wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    width: 90%;
    min-height: 0;
  }
  .support01_content {
    display: contents;
  }
  .support01_heading {
    grid-row: 1;
  }
  .support01_image {
    grid-row: 2;
    width: 72%;
    margin-right: auto;
    margin-left: auto;
  }
  .support01_list {
    grid-row: 3;
    gap: 8px;
    padding-left: 0;
    margin-top: 0;
  }
  .support01_item {
    align-items: flex-start;
    font-size: 17px;
    line-height: 1.6;
  }
  .support01_item::before {
    margin-top: 10px;
  }
  .support01_photos {
    grid-row: 4;
    gap: 24px;
    padding-top: 0;
    padding-left: 0;
  }
  .support01_photo_title {
    top: 8px;
    width: max-content;
    padding: 2px 8px;
    font-size: clamp(10px, 2.5vw, 13px);
    line-height: 1.5;
    text-align: center;
    white-space: nowrap;
  }
  .support01_more {
    position: relative;
    top: -4px;
    grid-row: 5;
    justify-self: end;
    margin-top: 0;
  }
  /* support page parenting support */
  .support02 {
    padding-top: 64px;
    padding-bottom: 64px;
  }
  .support02_grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
    gap: 16px;
    height: auto;
    aspect-ratio: auto;
    align-content: normal;
    margin-top: 36px;
  }
  .support02_image:nth-child(n) {
    --support02-title-margin-top: 28px;
    --support02-title-margin-bottom: 0;
    grid-column: auto;
    grid-row: auto;
    align-items: flex-start;
    width: 100%;
    border-radius: 48px;
  }
  .support02_image_title {
    max-width: 92%;
    padding: 7px 14px;
    font-size: clamp(18px, 4.5833vw, 22px);
    white-space: normal;
  }
  .support02_more {
    margin-top: 28px;
  }
  /* support page qualification support */
  .support03 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .support03::before {
    height: 820px;
  }
  .support03_heading {
    gap: 24px;
    min-height: 240px;
  }
  .support03_ringtitle {
    top: -24px;
    left: -24px;
  }
  .support03_title {
    font-size: clamp(52px, 13.3333vw, 64px);
  }
  .support03_circle {
    top: 32px;
    right: -25%;
    width: 72%;
    opacity: 0.8;
  }
  .support03_content {
    gap: 64px;
    margin-top: 28px;
  }
  .support03_cost {
    min-height: 0;
    padding: 32px 24px 40px;
    border-radius: 16px;
  }
  .support03_cost_title {
    font-size: 26px;
  }
  .support03_cost_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    padding-right: 12px;
    padding-left: 12px;
    margin-top: 36px;
  }
  .support03_cost_card {
    min-height: 220px;
    padding: 20px 24px;
  }
  .support03_cost_num {
    top: -12px;
    left: -12px;
    width: 68px;
    height: 68px;
    font-size: 32px;
  }
  .support03_cost_icon {
    width: 150px;
    height: 100px;
  }
  .support03_cost_text {
    font-size: 17px;
  }
  .support03_recommend {
    display: flex;
    flex-direction: column;
    gap: 32px;
    min-height: 0;
  }
  .support03_recommend_body {
    width: 100%;
    padding-top: 0;
    padding-bottom: 0;
  }
  .support03_recommend_title {
    font-size: 24px;
    white-space: normal;
  }
  .support03_recommend_item {
    font-size: 16px;
    line-height: 1.5;
  }
  .support03_manual {
    position: static;
    align-self: center;
    width: 88%;
  }
  .support03_training {
    flex-direction: column;
    min-height: 0;
    border-radius: 24px;
  }
  .support03_training_body {
    padding: 36px 28px;
  }
  .support03_training_title {
    font-size: 28px;
  }
  .support03_training_text {
    font-size: 16px;
  }
  .support03_training_image {
    width: 100%;
    aspect-ratio: 500/340;
  }
}
/************************/
/*** information page ***/
/* information page mainview */
.information {
  background-color: #fff;
}

.information_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.information_mainview_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(600px, 37.5vw, 720px);
}

.information_mainview_text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 83.3333%;
  max-width: 1600px;
  padding-top: clamp(240px, 15.4167vw, 296px);
  margin-right: auto;
  margin-left: auto;
}

.information_mainview_subtitle {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 14px;
  color: var(--basecolor);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.12px;
  white-space: nowrap;
}

.information_mainview_subtitle::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #e94360;
}

.information_mainview_title {
  display: inline-block;
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(100px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.information_mainview_bg,
.information_mainview_bg_image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.information_mainview_bg {
  z-index: 1;
  pointer-events: none;
}

.information_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/* information page news list */
.information01 {
  padding-top: 80px;
  padding-bottom: 120px;
  background-color: #fff;
}

.information01_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.information01_heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.information01_title {
  color: var(--blue34599A);
  font-family: "Roboto", sans-serif;
  font-size: clamp(60px, 3.75vw, 72px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.72px;
  white-space: nowrap;
}

.information01_label {
  color: var(--basecolor);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.information01_content {
  margin-top: 72px;
}

.information01_filter {
  margin-top: 0;
}

.information01_grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 1.6667%;
  row-gap: 48px;
  margin-top: 56px;
}

a.information01_card,
a.information01_card:focus,
a.information01_card:visited,
a.information01_card:focus-visible {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  min-width: 0;
  color: var(--basecolor);
}

a.information01_card:hover,
a.information01_card:active {
  color: var(--blue34599A);
}

.information01_image {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 380/230;
  transition: opacity var(--trans_300ms);
}

.information01_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--trans_300ms);
}

.information01_card:hover .information01_image img,
.information01_card:active .information01_image img {
  transform: scale(1.03);
}

.information01_card:hover .information01_image,
.information01_card:active .information01_image,
.information01_card:focus-visible .information01_image {
  opacity: 0.6;
}

.information01_meta {
  display: flex;
  align-items: center;
  gap: 12px;
}

.information01_date {
  color: var(--basecolor);
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.35px;
}

.information01_category {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
  height: 22px;
  padding-right: 12px;
  padding-left: 12px;
  border-radius: 5px;
  color: #fff;
  background-color: var(--blue34599A);
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.78px;
  white-space: nowrap;
}

.information01_card_title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.8px;
}

@media only screen and (max-width: 1024px) {
  /*** information page ***/
  /* information page mainview */
  .information_mainview_wrapper {
    height: 620px;
  }
  .information_mainview_text {
    width: 90%;
    padding-top: 220px;
  }
  .information_mainview_bg_image img {
    object-position: 15% bottom;
  }
  .information_mainview_subtitle {
    font-size: 26px;
  }
  .information_mainview_title {
    font-size: clamp(68px, 9vw, 92px);
    letter-spacing: 5.52px;
  }
  /* information page news list */
  .information01 {
    padding-top: 72px;
    padding-bottom: 96px;
  }
  .information01_wrapper {
    width: 90%;
  }
  .information01_title {
    font-size: clamp(52px, 7.0313vw, 72px);
  }
  .information01_label {
    font-size: 20px;
  }
  .information01_content {
    margin-top: 56px;
  }
  .information01_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 40px;
    margin-top: 48px;
  }
}
@media only screen and (max-width: 1200px) and (min-width: 1024px) {
  .information01_grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 24px;
  }
}
@media only screen and (max-width: 768px) {
  /*** information page ***/
  /* information page mainview */
  .information_mainview_wrapper {
    height: 540px;
  }
  .information_mainview_text {
    padding-top: 180px;
  }
  .information_mainview_subtitle {
    gap: 14px;
    padding-left: 6px;
    font-size: 22px;
  }
  .information_mainview_subtitle::before {
    width: 12px;
    height: 12px;
  }
  .information_mainview_title {
    font-size: clamp(36px, 10.8333vw, 52px);
    letter-spacing: 3.12px;
  }
  /* information page news list */
  .information01 {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .information01_title {
    font-size: clamp(44px, 11.25vw, 54px);
    letter-spacing: 0.54px;
  }
  .information01_label {
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  .information01_content {
    margin-top: 36px;
  }
  .information01_grid {
    grid-template-columns: minmax(0, 380px);
    justify-content: center;
    row-gap: 36px;
    margin-top: 36px;
  }
  .information01_pager .information01_pager_optional {
    display: none;
  }
}
/*** company page ***/
/* company page mainview */
.company_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 920px;
  background-color: #fff;
}

.mainviewmiddle_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 100%;
}

.mainviewmiddle_text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 83.3333%;
  max-width: 1600px;
  padding-top: 296px;
  margin-right: auto;
  margin-left: auto;
}

.mainviewmiddle_subtitle {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 14px;
  color: #1e2430;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.12px;
  white-space: nowrap;
}

.mainviewmiddle_subtitle::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #ff668e;
}

.mainviewmiddle_title {
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(80px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.mainviewmiddle_bg,
.mainviewmiddle_bg_image {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.mainviewmiddle_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

.mainviewmiddle_bg_line {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 448px;
  height: 735px;
}

.mainviewmiddle_bg_line img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left top;
}

/* company page index */
.company_indexlink {
  position: relative;
  z-index: 3;
  overflow: hidden;
  padding-top: 96px;
  padding-bottom: 9px;
  margin-top: -80px;
  border-radius: 80px 80px 0 0;
  background-color: #fff;
}

.company_indexlink_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.company_indexlink_title {
  color: #8b97ab;
  font-family: "Roboto", sans-serif;
  font-size: 48px;
  font-weight: 700;
  line-height: 1.1;
}

.company_indexlink_list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 32px;
}

.company_indexlink_listitem {
  position: relative;
  display: flex;
  flex: 1 1 calc((100% - 48px) / 3);
  align-items: center;
  min-width: 470px;
  min-height: 76px;
  padding: 0 40px 0 76px;
  border: 2px solid #d6e2f0;
  border-radius: 50px;
  color: #667085;
}

.company_indexlink_listitem::before {
  content: "";
  position: absolute;
  top: -2px;
  bottom: -2px;
  left: 48px;
  width: 4px;
  background-color: var(--blue1C4591);
}

.company_indexlink_listitem:hover,
.company_indexlink_listitem:active,
.company_indexlink_listitem:focus-visible {
  border-color: var(--blue5c96cc);
  color: var(--blue5c96cc);
}

.company_indexlink_listitem_head {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--blue1C4591);
  font-family: "Roboto", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.company_indexlink_listitem_number {
  color: var(--blue34599A);
  font-size: 36px;
}

.company_indexlink_listitem_title {
  min-width: 0;
  margin-left: auto;
  color: #667085;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.4;
  text-align: right;
  white-space: nowrap;
}

/* company page common heading */
.company_section_head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.company_section_head_center {
  align-items: center;
  text-align: center;
}

.company_section_title {
  color: var(--blue1C4591);
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
  white-space: nowrap;
}

.company_section_label {
  color: #1e2430;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
  white-space: nowrap;
}

/* company page message */
.company_message {
  padding-top: 96px;
  padding-bottom: 112px;
  background-color: #fff;
}

.company_message_wrapper {
  display: flex;
  align-items: stretch;
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.company_message_rail {
  flex: 0 0 37.5%;
  min-height: 867px;
  overflow: hidden;
  border-radius: 40px 0 0 40px;
  background-color: var(--blue1C4591);
  background-image: url("../images/company_message_bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.company_message_head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 56px 40px;
}

.company_message_title {
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
}

.company_message_label {
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.company_message_content {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 40px;
}

.company_message_intro,
.company_message_closing {
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.company_message_intro {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-left: 56px;
}

.company_message_bottom {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(0, 359px);
  align-items: end;
  gap: 56px;
  padding-left: 56px;
  margin-top: 40px;
}

.company_message_closing {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 300px;
}

.company_message_signature {
  margin-top: 10px;
  font-weight: 700;
  line-height: 1.8;
  width: fit-content;
  margin-left: auto;
  margin-right: 0;
  color: var(--blue1C4591);
}

.company_message_ceo {
  align-self: end;
  width: 100%;
  max-width: 359px;
  min-width: 0;
  overflow: hidden;
  border-radius: 0 0 40px 0;
}

.company_message_ceo img {
  width: 100%;
  height: auto;
}

/* company page philosophy */
.company_philosophy {
  padding-top: 96px;
  padding-bottom: 120px;
  background-color: #fff;
}

.company_philosophy_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.company_philosophy_primary,
.company_values {
  width: 100%;
}

.company_philosophy_primary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 72px;
  margin-top: 94px;
}

.company_philosophy_primary_item {
  min-width: 0;
}

.company_philosophy_primary_head,
.company_philosophy_subhead {
  display: flex;
  align-items: center;
  gap: 32px;
  min-width: 0;
  padding: 0 14px 12px;
  border-bottom: 1px solid #9eb4cb;
}

.company_philosophy_primary_label,
.company_philosophy_subhead_label {
  flex-shrink: 0;
  color: #24509a;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 2.8px;
  white-space: nowrap;
}

.company_philosophy_primary_en,
.company_philosophy_subhead_en,
.company_standard_title {
  min-width: 0;
  color: #d6dce3;
  font-family: "Roboto", sans-serif;
  font-size: clamp(72px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.8px;
  white-space: nowrap;
}

.company_philosophy_primary_body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 28px 14px 0;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.company_values {
  margin-top: 88px;
}

.company_values_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px 72px;
  padding: 42px 14px 0;
}

.company_values_item {
  min-width: 0;
  padding-bottom: 22px;
  border-bottom: 1px solid #b5c7d8;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.company_values_title,
.company_sdgs_card_title,
.company_actionplan_badge {
  display: inline-block;
  padding: 6px 14px;
  color: #fff;
  background-color: var(--blue34599A);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}

.company_values_title {
  margin-bottom: 12px;
}

.company_standard {
  display: grid;
  grid-template-columns: minmax(0, 50.6818%) minmax(0, 49.3182%);
  align-items: center;
  width: 100%;
  padding-left: max(8.3333%, (100% - 1600px) / 2);
}

.company_standard_text {
  position: relative;
  z-index: 1;
  padding-left: 14px;
}

.company_standard_title {
  padding: 0 0 12px;
  border-bottom: 1px solid #9eb4cb;
}

.company_standard_copy {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 30px 12px 0 24px;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.company_standard_lead {
  flex-shrink: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.75;
}

.company_standard_image {
  min-width: 0;
}

.company_standard_image img {
  width: 100%;
  height: auto;
}

/* company page profile */
.company_profile {
  padding-top: 96px;
  padding-bottom: 80px;
  background-color: #fff;
}

.company_profile_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.company_profile_content {
  display: grid;
  grid-template-columns: minmax(0, 780px) minmax(0, 596px);
  align-items: end;
  justify-content: space-between;
  gap: 80px;
  margin-top: 52px;
}

.company_profile_details {
  min-width: 0;
}

.company_profile_row {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 24px;
  padding: 16px 24px;
  border-bottom: 1px solid #d9e0ea;
}

.company_profile_term {
  color: var(--blue34599A);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.9px;
}

.company_profile_desc {
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.company_profile_map {
  width: 100%;
  max-width: 596px;
}

.company_profile_map img {
  width: 100%;
  height: auto;
}

/* company page office */
.company_office {
  padding-top: 40px;
  padding-bottom: 96px;
  background-image: linear-gradient(180deg, #fff 0%, #fff 34%, #e5e5e9 34%, #e5e5e9 100%);
}

.company_office_wrapper {
  width: calc(100% - 166px);
  max-width: 1754px;
  padding: 32px 24px;
  margin-right: auto;
  margin-left: auto;
  background-color: #687387;
}

.company_office_grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.company_office_item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 28px;
  min-width: 0;
  padding: 18px 32px;
}

.company_office_item {
  border-left: 1px solid rgba(255, 255, 255, 0.7);
}

.company_office_item_first {
  border-left: 0;
}

.company_office_title {
  width: 100%;
  padding-top: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.8);
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 1.2px;
}

.company_office_info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  color: #fff;
}

.company_office_info_group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
}

.company_office_info_contact {
  gap: 4px;
}

.company_office_info_label {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.32px;
}

.company_office_info_text {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.3px;
}

.company_office_map {
  width: 100%;
  max-width: 460px;
}

.company_office_map img {
  width: 100%;
  height: auto;
}

/* company page organization */
.company_organization {
  padding: 80px 60px;
  background-color: #e5e5e9;
}

.company_organization_wrapper {
  max-width: 1800px;
  padding: 56px 100px 64px;
  margin-right: auto;
  margin-left: auto;
  overflow: hidden;
  border-radius: 40px;
  background-color: #fff;
}

.company_organization_image {
  width: 100%;
  margin-top: 56px;
}

.company_organization_image img {
  width: 100%;
  height: auto;
}

.company_organization_supplement {
  display: none;
}

/* company page certified */
.company_certified {
  padding-top: 96px;
  padding-bottom: 120px;
  background-image: linear-gradient(180deg, #e5e5e9 0%, #e5e5e9 59%, #fff 59%, #fff 100%);
}

.company_certified_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.company_certified_policy {
  width: 65%;
  max-width: 1040px;
  margin: 60px auto 0;
}

.company_certified_policy_title {
  display: block;
  width: fit-content;
  padding: 8px 20px;
  margin-right: auto;
  margin-left: auto;
  color: #fff;
  background-color: var(--blue34599A);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.company_certified_policy_text {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 16px 0;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.company_certified_cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 56px 64px;
  width: 84%;
  max-width: 1344px;
  margin-top: 48px;
  margin-right: auto;
  margin-left: auto;
}

.company_certified_card {
  min-width: 0;
  padding: 40px 64px;
  border-radius: 10px;
  background-color: var(--blue34599A);
}

.company_certified_card_wide {
  grid-column: 1/-1;
  padding-right: 60px;
  padding-left: 60px;
}

.company_certified_card_title {
  color: #fff;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.52px;
  text-align: center;
}

.company_certified_docs {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  gap: 64px;
  margin-top: 40px;
}

.company_certified_docs_three {
  justify-content: center;
}

.company_certified_docs_awards {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 40px;
}

.company_certified_awards_row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px 64px;
  width: 100%;
}

.company_certified_awards_row_four {
  column-gap: max(24px, (100% - 960px) / 3);
}

.company_certified_docs_development {
  gap: 64px;
}

.company_certified_doc {
  min-width: 0;
  text-align: center;
}

.company_certified_doc_image {
  display: block;
  width: 240px;
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
  background-color: #fff;
  transition: opacity var(--trans_300ms);
}

a.company_certified_doc_image:hover,
a.company_certified_doc_image:active {
  opacity: 60%;
}

a.company_certified_doc_image:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.company_certified_doc_image_landscape {
  width: 340px;
}

.company_certified_doc_image img {
  width: 100%;
  height: auto;
}

.company_certified_caption {
  margin-top: 10px;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.42px;
}

/* company page SDGs */
.company_sdgs {
  padding-top: 96px;
  padding-bottom: 104px;
  background-color: #fff;
}

.company_sdgs_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.company_sdgs_head {
  display: flex;
  align-items: center;
  gap: 160px;
}

.company_sdgs_intro {
  display: flex;
  align-items: flex-end;
  gap: 40px;
  min-width: 0;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.company_sdgs_wheel {
  flex: 0 0 160px;
  width: 160px;
}

.company_sdgs_wheel img {
  width: 100%;
  height: auto;
}

.company_sdgs_intro_text {
  padding-bottom: 18px;
}

.company_sdgs_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 44px;
}

.company_sdgs_card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 32px 28px 36px;
  border: 1px solid #d6e2f0;
  background-color: #fff;
}

.company_sdgs_card_title {
  align-self: flex-start;
  padding-right: 20px;
  padding-left: 20px;
}

.company_sdgs_card_text {
  margin-top: 24px;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.company_sdgs_card_bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 24px;
  padding: 0 8px;
  margin-top: auto;
  padding-top: 40px;
}

.company_sdgs_actions {
  flex: 1 0 330px;
  min-width: 330px;
}

.company_sdgs_actions_title {
  color: var(--blue34599A);
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.6px;
}

.company_sdgs_actions_list {
  margin-top: 10px;
}

.company_sdgs_actions_list li {
  position: relative;
  padding-left: 18px;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.company_sdgs_actions_list li::before {
  content: "";
  position: absolute;
  top: 0.74em;
  left: 4px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #ff668e;
}

.company_sdgs_icons {
  display: grid;
  flex: 0 1 325px;
  grid-template-columns: repeat(3, 99px);
  gap: 14px;
  width: 325px;
  max-width: 100%;
}

.company_sdgs_icons img {
  width: 100%;
  height: auto;
}

/* company page action plan */
.company_actionplan {
  padding: 72px 96px 120px;
  background-color: #fff;
}

.company_actionplan_wrapper {
  width: 960px;
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.company_actionplan_head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.company_actionplan_title {
  color: #24509a;
  font-size: clamp(36px, 2.5vw, 48px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.48px;
}

.company_actionplan_period {
  display: flex;
  align-items: center;
  gap: 32px;
  color: #3c3c3c;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.88;
  letter-spacing: 0.45px;
}

.company_actionplan_period_label {
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.company_actionplan_intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
  padding: 16px 0;
  margin-top: 40px;
  color: #1e2430;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.88;
  letter-spacing: 0.45px;
}

.company_actionplan_badge {
  padding: 8px 24px;
  font-size: 26px;
  line-height: 1.4;
}

.company_actionplan_details {
  margin-top: 24px;
}

.company_actionplan_item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: 16px;
  border-bottom: 1px solid #d9e0ea;
  color: #1e2430;
}

.company_actionplan_item h3 {
  color: var(--blue34599A);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.company_actionplan_item p {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.88;
  letter-spacing: 0.45px;
}

.company_actionplan_reference {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
}

.company_actionplan_reference_box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  padding-right: 24px;
  padding-left: 24px;
  border: 1px solid var(--basecolor);
}

.company_actionplan_reference_text {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.45px;
  white-space: nowrap;
}

@media only screen and (max-width: 1024px) {
  /*** company page ***/
  /* company page mainview and index */
  .company_mainview {
    height: 650px;
  }
  .mainviewmiddle_text,
  .company_indexlink_wrapper,
  .company_message_wrapper,
  .company_philosophy_wrapper,
  .company_profile_wrapper,
  .company_certified_wrapper,
  .company_sdgs_wrapper {
    width: 90%;
  }
  .mainviewmiddle_text {
    padding-top: 230px;
  }
  .mainviewmiddle_title {
    font-size: clamp(68px, 9.7656vw, 100px);
  }
  .mainviewmiddle_bg_line {
    width: clamp(268px, 8.6614vw + 201.394px, 290px);
    height: auto;
  }
  .company_indexlink {
    padding-top: 72px;
    padding-bottom: 64px;
    margin-top: -64px;
    border-radius: 64px 64px 0 0;
  }
  .company_indexlink_listitem {
    padding-right: 28px;
  }
  /* company page message */
  .company_message {
    padding-top: 80px;
    padding-bottom: 88px;
  }
  .company_message_wrapper {
    flex-direction: column;
  }
  .company_message_rail {
    flex-basis: auto;
    width: 100%;
    min-height: 240px;
    border-radius: 32px 32px 0 0;
    background-position: center 32%;
  }
  .company_message_content {
    padding-top: 40px;
  }
  .company_message_intro,
  .company_message_bottom {
    padding-left: 0;
  }
  .company_message_bottom {
    grid-template-columns: minmax(300px, 1fr) minmax(0, 300px);
    gap: 40px;
  }
  .company_message_ceo {
    width: 100%;
    max-width: 300px;
    border-radius: 0 0 32px 0;
  }
  /* company page philosophy */
  .company_philosophy {
    padding-top: 80px;
    padding-bottom: 96px;
  }
  .company_philosophy_primary,
  .company_values {
    width: 100%;
  }
  .company_philosophy_primary {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
    margin-top: 72px;
  }
  .company_philosophy_primary_head,
  .company_philosophy_subhead {
    gap: 20px;
    padding-right: 8px;
    padding-left: 8px;
  }
  .company_philosophy_primary_label,
  .company_philosophy_subhead_label {
    font-size: 24px;
  }
  .company_values_grid {
    gap: 24px 40px;
    padding-right: 8px;
    padding-left: 8px;
  }
  .company_standard {
    grid-template-columns: minmax(0, 52%) minmax(0, 48%);
    padding-left: 5%;
    margin-top: 60px;
  }
  .company_standard_image {
    margin-top: 40px;
  }
  .company_standard_copy {
    flex-direction: column;
    gap: 20px;
  }
  /* company page profile and offices */
  .company_profile {
    padding-top: 80px;
    padding-bottom: 64px;
  }
  .company_profile_content {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
  }
  .company_profile_map {
    justify-self: center;
  }
  .company_office_wrapper {
    width: calc(100% - 40px);
    padding: 24px;
  }
  .company_office_grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .company_office_item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 46%;
    grid-template-rows: auto 1fr;
    gap: 0 32px;
    padding: 28px;
  }
  .company_office_item {
    border-top: 1px solid rgba(255, 255, 255, 0.7);
    border-left: 0;
  }
  .company_office_item_first {
    border-top: 0;
  }
  .company_office_title,
  .company_office_info {
    grid-column: 1;
  }
  .company_office_title {
    margin-bottom: 20px;
  }
  .company_office_map {
    grid-column: 2;
    grid-row: 1/3;
    align-self: center;
    margin-top: 0;
  }
  /* company page organization */
  .company_organization {
    padding: 64px 20px;
  }
  .company_organization_wrapper {
    padding: 48px 44px 56px;
    border-radius: 32px;
  }
  .company_organization_image {
    overflow-x: auto;
    padding-bottom: 12px;
  }
  .company_organization_image img {
    min-width: 900px;
  }
  .company_organization_supplement {
    display: block;
    color: var(--blue1C4591);
    margin-top: 20px;
    padding-left: 1em;
  }
  /* company page certified */
  .company_certified {
    padding-top: 80px;
    padding-bottom: 96px;
  }
  .company_certified_policy,
  .company_certified_cards {
    width: 86%;
  }
  .company_certified_awards_row_four {
    column-gap: 64px;
  }
  /* company page SDGs */
  .company_sdgs {
    padding-top: 80px;
    padding-bottom: 88px;
  }
  .company_sdgs_head {
    align-items: flex-start;
    justify-content: space-between;
    gap: 48px;
  }
  .company_sdgs_intro {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
  .company_sdgs_wheel {
    align-self: center;
  }
  .company_sdgs_wheel {
    flex-basis: auto;
    width: 120px;
  }
  .company_sdgs_grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .company_actionplan {
    padding: 64px 5% 96px;
  }
}
@media only screen and (max-width: 768px) {
  /*** company page ***/
  /* company page mainview and index */
  .company_mainview {
    height: 560px;
  }
  .mainviewmiddle_text {
    padding-top: 220px;
  }
  .mainviewmiddle_subtitle {
    padding-left: 0;
    font-size: 22px;
  }
  .mainviewmiddle_title {
    font-size: clamp(56px, 14vw, 76px);
    letter-spacing: 3px;
  }
  .mainviewmiddle_bg_image img {
    object-position: 58% bottom;
  }
  .mainviewmiddle_bg_line {
    width: clamp(232px, 12.5vw + 172px, 268px);
    height: auto;
  }
  .company_indexlink {
    padding-top: 60px;
    padding-bottom: 40px;
    margin-top: -48px;
    border-radius: 48px 48px 0 0;
  }
  .company_indexlink_title {
    font-size: 40px;
  }
  .company_indexlink_list {
    gap: 16px;
    margin-top: 28px;
  }
  .company_indexlink_listitem {
    flex-basis: 100%;
    min-width: 0;
    min-height: 68px;
    padding: 0 24px 0 58px;
  }
  .company_indexlink_listitem::before {
    left: 36px;
  }
  .company_indexlink_listitem_number {
    font-size: 30px;
  }
  .company_indexlink_listitem_title {
    font-size: 16px;
    white-space: normal;
  }
  /* company page common heading */
  .company_section_title {
    font-size: clamp(28px, 7vw, 54px);
    white-space: nowrap;
  }
  .company_message_title {
    font-size: clamp(42px, 10vw, 58px);
  }
  .company_section_label,
  .company_message_label {
    font-size: 18px;
    line-height: 1.4;
  }
  /* company page message */
  .company_message {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .company_message_rail {
    min-height: 190px;
    border-radius: 24px 24px 0 0;
  }
  .company_message_head {
    padding: 40px 28px;
  }
  .company_message_content {
    padding-top: 32px;
  }
  .company_message_intro,
  .company_message_closing {
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .company_message_closing {
    min-width: 300px;
  }
  .company_message_signature {
    margin-right: 20px;
  }
  .company_message_bottom {
    grid-template-columns: minmax(0, 1fr);
  }
  .company_message_ceo {
    justify-self: center;
    width: 64%;
    max-width: 300px;
    border-radius: 0 0 24px 0;
  }
  /* company page philosophy */
  .company_philosophy {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .company_philosophy_primary {
    grid-template-columns: minmax(0, 1fr);
    gap: 56px;
    margin-top: 56px;
  }
  .company_philosophy_primary_head,
  .company_philosophy_subhead {
    gap: 14px;
  }
  .company_philosophy_primary_label,
  .company_philosophy_subhead_label {
    font-size: 20px;
  }
  .company_philosophy_primary_en,
  .company_philosophy_subhead_en,
  .company_standard_title {
    font-size: clamp(42px, 11vw, 60px);
    white-space: normal;
  }
  .company_philosophy_primary_body {
    padding-top: 24px;
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .company_philosophy_primary_body br,
  .company_values_item br,
  .company_standard_copy br {
    display: none;
  }
  .company_values {
    margin-top: 64px;
  }
  .company_values_grid {
    grid-template-columns: minmax(0, 1fr);
    padding-top: 32px;
  }
  .company_values_item {
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .company_values_title {
    font-size: 18px;
  }
  .company_standard {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    margin-top: 56px;
  }
  .company_standard_copy {
    padding: 24px 8px 0 0;
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .company_standard_lead {
    font-size: 20px;
  }
  .company_standard_image {
    width: 100%;
    margin-top: 32px;
    margin-left: 0;
  }
  /* company page profile and offices */
  .company_profile {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .company_profile_content {
    margin-top: 40px;
  }
  .company_profile_row {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    padding: 14px 8px;
  }
  .company_profile_term {
    font-size: 17px;
  }
  .company_profile_desc {
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .company_profile_desc br {
    display: none;
  }
  .company_office {
    padding-top: 20px;
    padding-bottom: 40px;
  }
  .company_office_wrapper {
    width: calc(100% - 24px);
    padding: 14px;
  }
  .company_office_item {
    display: flex;
    gap: 20px;
    padding: 24px 14px;
  }
  .company_office_map {
    margin-top: 0;
  }
  .company_office_title {
    margin-bottom: 0;
  }
  /* company page organization */
  .company_organization {
    padding: 40px 12px;
  }
  .company_organization_wrapper {
    padding: 40px 24px 48px;
    border-radius: 24px;
  }
  .company_organization_image {
    margin-top: 40px;
  }
  /* company page certified */
  .company_certified {
    padding-top: 64px;
    padding-bottom: 80px;
    background-image: linear-gradient(180deg, #e5e5e9 0%, #e5e5e9 64%, #fff 64%, #fff 100%);
  }
  .company_certified_policy,
  .company_certified_cards {
    width: 100%;
  }
  .company_certified_policy {
    margin-top: 44px;
  }
  .company_certified_policy_title {
    font-size: 20px;
  }
  .company_certified_policy_text {
    padding-right: 0;
    padding-left: 0;
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .company_certified_cards {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 36px;
  }
  .company_certified_card,
  .company_certified_card_wide {
    grid-column: auto;
    padding: 24px 18px;
  }
  .company_certified_card_title {
    font-size: 21px;
  }
  .company_certified_docs,
  .company_certified_docs_three {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 14px;
  }
  .company_certified_docs_single {
    grid-template-columns: minmax(0, 200px);
  }
  .company_certified_docs_awards {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .company_certified_awards_row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 14px;
  }
  .company_certified_docs_development {
    grid-template-columns: minmax(0, 1fr);
  }
  .company_certified_doc_image {
    width: 100%;
    max-width: 200px;
  }
  .company_certified_doc_image_landscape {
    max-width: 340px;
  }
  /* company page SDGs */
  .company_sdgs {
    padding-top: 64px;
    padding-bottom: 72px;
  }
  .company_sdgs_head {
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
  }
  .company_sdgs_intro {
    width: 100%;
  }
  .company_sdgs_intro_text {
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .company_sdgs_intro br {
    display: none;
  }
  .company_sdgs_grid {
    margin-top: 36px;
  }
  .company_sdgs_card {
    padding: 24px 18px 28px;
  }
  .company_sdgs_card_title {
    font-size: 18px;
  }
  .company_sdgs_card_text,
  .company_sdgs_actions_list li {
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .company_sdgs_card_bottom {
    padding-right: 0;
    padding-left: 0;
    padding-top: 28px;
  }
  .company_sdgs_icons {
    grid-template-columns: repeat(3, minmax(0, 99px));
    width: 100%;
    max-width: 325px;
  }
  /* company page action plan */
  .company_actionplan {
    padding-top: 56px;
    padding-bottom: 80px;
  }
  .company_actionplan_title {
    font-size: clamp(30px, 7vw, 40px);
  }
  .company_actionplan_period {
    align-items: flex-start;
    gap: 18px;
    font-size: 16px;
  }
  .company_actionplan_period_label {
    flex-shrink: 0;
    font-size: 18px;
    line-height: 1.88;
  }
  .company_actionplan_intro {
    gap: 24px;
    margin-top: 32px;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.32px;
  }
  .company_actionplan_badge {
    font-size: 20px;
  }
  .company_actionplan_item h3 {
    font-size: 20px;
  }
  .company_actionplan_item p {
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.32px;
  }
  .company_actionplan_reference_text {
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0.32px;
    white-space: normal;
  }
}
/************************/
/*** benefits page ***/
/* benefits page mainview */
.benefits_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.benefits_mainview_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(600px, 37.5vw, 720px);
}

.benefits_mainview_text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 83.3333%;
  max-width: 1600px;
  padding-top: clamp(240px, 15.4167vw, 296px);
  margin-right: auto;
  margin-left: auto;
}

.benefits_mainview_subtitle {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 14px;
  color: #1e2430;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.12px;
  white-space: nowrap;
}

.benefits_mainview_subtitle::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #ff668e;
}

.benefits_mainview_title {
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(80px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.benefits_mainview_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.benefits_mainview_bg_image {
  position: absolute;
  inset: 0;
}

.benefits_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/* benefits page common heading */
.benefits_title {
  color: #24509a;
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
  white-space: nowrap;
}

/* benefits page childcare support */
.benefits01 {
  container-type: inline-size;
  overflow: hidden;
  padding-top: 88px;
  padding-bottom: 96px;
  background-color: #fff;
}

.benefits01_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.benefits01_heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.benefits01_label {
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--basecolor);
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.5px;
}

.benefits01_label::before {
  content: "";
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #f04f71;
}

.benefits01_content {
  display: flex;
  flex-direction: column;
  gap: 34px;
  margin-top: 56px;
}

.benefits01_feature_wrap {
  position: relative;
}

.benefits01_feature {
  position: relative;
  overflow: visible;
  min-height: 460px;
  padding: 48px 40px 56px;
  border-radius: 10px;
  background-color: #fff8f5;
}

.benefits01_feature_body {
  position: relative;
  z-index: 2;
  width: calc(100% - 388px);
  max-width: 1100px;
}

.benefits01_support_title {
  color: var(--blue1C4591);
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
}

.benefits01_amount {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  margin-top: 8px;
  color: var(--basecolor);
  white-space: nowrap;
}

.benefits01_amount_lead {
  font-size: 40px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.8px;
}

.benefits01_amount_num {
  color: var(--blue34599A);
  font-size: 96px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 1.92px;
}

.benefits01_amount_unit {
  color: var(--blue34599A);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.96px;
}

.benefits01_amount_text {
  font-size: 48px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.96px;
}

.benefits01_notes {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 24px;
}

.benefits01_note {
  color: var(--basecolor);
  font-size: 40px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 1.2px;
}

.benefits01_amount_lead > span:not(.benefits01_typography_char),
.benefits01_note > span:not(.benefits01_typography_char) {
  background-image: linear-gradient(transparent 64%, #76d0d5 64%, #76d0d5 88%, transparent 88%);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 100% 100%;
}

.benefits01_feature_image {
  position: absolute;
  top: -117px;
  right: calc((100cqw - 100%) / -2);
  z-index: 1;
  width: 36.625%;
  max-width: 586px;
  isolation: isolate;
}

.benefits01_feature_image::before,
.benefits01_feature_image::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.benefits01_feature_image::before {
  inset: 5% 1% 7% 7%;
  z-index: -2;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 244, 201, 0.92) 0%, rgba(255, 221, 198, 0.48) 48%, rgba(255, 255, 255, 0) 74%);
  filter: blur(14px);
}

.benefits01_feature_image::after {
  inset: 12% 8% 14% 14%;
  z-index: -1;
  border: 2px solid rgba(240, 79, 113, 0.2);
  border-radius: 50%;
}

.benefits01_feature_image_inner,
.benefits01_feature_image img {
  width: 100%;
}

.benefits01_feature_image img {
  display: block;
  height: auto;
}

.benefits01_feature_wrap.is-benefits01-animated .benefits01_typography_char {
  display: inline-block;
  opacity: 0;
  transform: translate3d(0, 0.68em, 0) rotate(3deg);
  transform-origin: 50% 100%;
  will-change: opacity, transform;
}

.benefits01_feature_wrap.is-benefits01-animated.is-reveal-visible .benefits01_typography_char {
  animation: benefits01-character-in 620ms cubic-bezier(0.16, 1, 0.3, 1) var(--benefits-character-delay) both;
}

.benefits01_feature_wrap.is-benefits01-animated [data-benefits-marker] {
  background-size: 0% 100%;
}

.benefits01_feature_wrap.is-benefits01-animated.is-reveal-visible [data-benefits-marker] {
  animation: benefits01-marker-in var(--benefits-marker-duration) cubic-bezier(0.16, 1, 0.3, 1) var(--benefits-marker-delay) both;
}

.benefits01_feature_wrap.is-benefits01-animated .benefits01_feature_image {
  opacity: 0;
  transform: translate3d(0, 22px, 0) scale(0.82);
  transform-origin: 56% 53%;
  will-change: opacity, transform;
}

.benefits01_feature_wrap.is-benefits01-animated .benefits01_feature_image_inner {
  clip-path: circle(0 at 56% 47%);
  will-change: clip-path;
}

.benefits01_feature_wrap.is-benefits01-animated .benefits01_feature_image::before,
.benefits01_feature_wrap.is-benefits01-animated .benefits01_feature_image::after {
  opacity: 0;
  transform: scale(0.3);
}

.benefits01_feature_wrap.is-benefits01-animated .benefits01_feature_image.is-benefits01-image-visible {
  animation: benefits01-baby-reveal 4800ms cubic-bezier(0.16, 1, 0.3, 1) 320ms both;
}

.benefits01_feature_wrap.is-benefits01-animated .benefits01_feature_image.is-benefits01-image-visible::before {
  animation: benefits01-baby-halo 5440ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;
}

.benefits01_feature_wrap.is-benefits01-animated .benefits01_feature_image.is-benefits01-image-visible::after {
  animation: benefits01-baby-ring 5120ms cubic-bezier(0.16, 1, 0.3, 1) 620ms both;
}

.benefits01_feature_wrap.is-benefits01-animated .benefits01_feature_image.is-benefits01-image-visible .benefits01_feature_image_inner {
  animation: benefits01-baby-clip 4800ms cubic-bezier(0.16, 1, 0.3, 1) 320ms both;
}

@keyframes benefits01-character-in {
  0% {
    opacity: 0;
    transform: translate3d(0, 0.68em, 0) rotate(3deg);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0);
  }
}
@keyframes benefits01-marker-in {
  0% {
    background-size: 0% 100%;
  }
  100% {
    background-size: 100% 100%;
  }
}
@keyframes benefits01-baby-reveal {
  0% {
    opacity: 0;
    transform: translate3d(0, 22px, 0) scale(0.82);
  }
  58% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes benefits01-baby-clip {
  0% {
    clip-path: circle(0 at 56% 47%);
  }
  100% {
    clip-path: circle(76% at 56% 47%);
  }
}
@keyframes benefits01-baby-halo {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  55% {
    opacity: 0.92;
  }
  100% {
    opacity: 0.68;
    transform: scale(1.08);
  }
}
@keyframes benefits01-baby-ring {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  52% {
    opacity: 0.68;
  }
  100% {
    opacity: 0;
    transform: scale(1.2);
  }
}
.benefits_support_badge {
  position: absolute;
  z-index: 2;
  width: 78px;
  height: 78px;
}

.benefits_support_badge img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.benefits01_badge {
  top: -20px;
  left: -19px;
}

.benefits01_support_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  min-height: 615px;
}

.benefits01_loan_wrap {
  position: relative;
  min-width: 0;
  min-height: 615px;
}

.benefits01_support_card {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding: 48px 40px;
  border-radius: 10px;
  background-color: #fff8f5;
}

.benefits01_loan {
  min-height: 314px;
}

.benefits01_loan_badge {
  top: -10px;
  left: -25px;
}

.benefits01_body_text {
  margin-top: 24px;
  color: var(--basecolor);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.benefits01_loan_image {
  position: absolute;
  top: 260px;
  left: -160px;
  z-index: 0;
  width: calc(100% + 33px);
  max-width: 813px;
}

.benefits01_loan_image img {
  width: 100%;
  height: auto;
}

.benefits01_childcare {
  z-index: 3;
  min-height: 615px;
  border-radius: 6px;
}

.benefits01_childcare_badge {
  top: -10px;
  left: -27px;
}

.benefits01_detail {
  margin-top: 24px;
}

.benefits01_detail_title {
  color: #24509a;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.4px;
}

.benefits01_payment {
  width: 304px;
  max-width: 100%;
}

.benefits01_payment_list {
  margin-top: 8px;
}

.benefits01_payment_row {
  display: grid;
  grid-template-columns: 184px 120px;
  padding-top: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid #a8a8a8;
  color: var(--basecolor);
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
}

.benefits01_payment_age {
  min-width: 0;
}

.benefits01_payment_amount {
  min-width: 0;
}

.benefits01_base_date {
  margin-top: 24px;
}

.benefits01_detail_value {
  margin-top: 14px;
  color: var(--basecolor);
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 1.8px;
}

.benefits01_supplement {
  margin-top: 24px;
}

.benefits01_supplement > .benefits01_body_text {
  margin-top: 10px;
}

/* benefits page retirement plan */
.benefits02 {
  padding-top: 96px;
  padding-bottom: 104px;
  color: #fff;
  background-color: #2b5389;
}

.benefits02_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.benefits02_heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid #fff;
}

.benefits02_title {
  color: #fff;
}

.benefits02_label {
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.benefits02_content {
  display: flex;
  flex-direction: column;
  gap: 48px;
  width: 100%;
  padding: 48px 40px;
  margin-top: 16px;
}

.benefits02_pillars {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

.benefits02_pillars_title {
  color: #fff;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.benefits02_pillar_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
}

.benefits02_pillar {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 105px;
  padding: 28px 34px;
  border: 4px solid;
  border-radius: 6px;
  color: #1e2430;
  background-color: #fff;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.benefits02_pillar_401k {
  border-color: #589bff;
}

.benefits02_pillar_mutual {
  border-color: #16a4a4;
}

.benefits02_pillar_company {
  border-color: #77aa25;
}

.benefits02_pillar_insurance {
  border-color: #e7a23a;
}

.benefits02_explanation {
  display: grid;
  grid-template-columns: 41.5132% 53.1579%;
  align-items: center;
  justify-content: space-between;
  min-height: 540px;
}

.benefits02_reading {
  padding-right: 24px;
  padding-left: 24px;
}

.benefits02_body_text {
  color: #fff;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.benefits02_body_text_second {
  margin-top: 16px;
}

.benefits02_body_text_last {
  margin-top: 16px;
}

.benefits02_figure {
  width: 100%;
}

.benefits02_figure img {
  width: 100%;
  height: auto;
}

.benefits02_schedule {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

.benefits02_schedule_title {
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.88;
  letter-spacing: 0.6px;
  text-align: center;
}

.benefits02_table_wrap {
  width: 81.5789%;
  max-width: 1240px;
}

.benefits02_table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  background-color: #fff;
}

.benefits02_th {
  height: 64px;
  padding: 16px 18px;
  border: 1px solid #2b5389;
  color: #020202;
  background-color: #fffeef;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.7;
  text-align: left;
  vertical-align: middle;
}

.benefits02_td {
  height: 64px;
  padding: 16px 18px;
  border: 1px solid #2b5389;
  color: var(--basecolor);
  background-color: #fff;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  text-align: left;
  vertical-align: middle;
}

.benefits02_tbody .benefits02_provider {
  font-size: 17px;
  font-weight: 700;
}

.benefits02_provider {
  width: 41.9355%;
}

.benefits02_note {
  color: #fff;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
  text-align: left;
}

/* benefits page other benefits */
.benefits03 {
  overflow: hidden;
  padding-top: 96px;
  padding-bottom: 104px;
  background-color: #fff;
}

.benefits03_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.benefits03_heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.benefits03_label {
  color: #1e2430;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.benefits03_content {
  position: relative;
  margin-top: 48px;
}

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

.benefits03_item {
  position: relative;
  display: flex;
  align-items: flex-start;
  min-height: 133px;
  padding: 16px 32px;
}

.benefits03_item::before {
  content: "・";
  flex-shrink: 0;
  margin-right: 10px;
  color: #cf897d;
  font-family: "Roboto", sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
}

.benefits03_item_trip {
  min-height: 101px;
}

.benefits03_item_body {
  flex: 1;
  min-width: 0;
}

.benefits03_item_title {
  color: var(--blue34599A);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 1px;
}

.benefits03_item_text {
  margin-top: 4px;
  color: #1e2430;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
}

.benefits03_cars {
  position: absolute;
  top: 100px;
  right: -66px;
  width: 40.8125%;
  max-width: 653px;
}

.benefits03_cars img {
  width: 100%;
  height: auto;
}

.benefits03_image_row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 24px;
}

.benefits03_image {
  min-width: 0;
  aspect-ratio: 4/3;
}

.benefits03_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/*** engineering page ***/
/* engineering/building/i-Construction/technology common mainview */
.engineering_mainview .mainviewlong_wrapper,
.building_mainview .mainviewlong_wrapper,
.iconst_mainview .mainviewlong_wrapper,
.technology_mainview .mainviewlong_wrapper {
  padding-bottom: 180px;
}

/* engineering page mainview */
.engineering_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.engineering_mainview .engineering_mainview_bg_image {
  position: absolute;
  top: 18.7037%;
  right: 0;
  bottom: auto;
  left: auto;
  width: 60.1563%;
  aspect-ratio: 1155/676;
}

.engineering_mainview .engineering_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.eng_hero_copy {
  width: 48%;
  max-width: 768px;
  padding-right: 8px;
  padding-left: 8px;
  margin-top: 62px;
  color: var(--basecolor);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.4px;
}

.eng_title_break_sp {
  display: none;
}

.eng_hero_overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}

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

/* engineering page common heading */
.eng_section_head {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.eng_section_title {
  color: var(--blue34599A);
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
  white-space: nowrap;
}

.eng_section_label {
  color: var(--basecolor);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
  white-space: nowrap;
}

/* engineering page field */
.eng_field {
  position: relative;
  overflow: hidden;
  width: calc(100% - 80px);
  padding-top: 80px;
  padding-bottom: 96px;
  margin-right: auto;
  margin-left: auto;
  border-radius: 40px;
  background-color: #f6f1e5;
}

.eng_field_wrapper {
  width: 86.9565%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.eng_field_grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 120px 20px;
  margin-top: 119px;
}

.eng_field_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
  height: 240px;
  padding: 20px;
  border-radius: 6px;
  background-color: #fff;
}

.eng_field_image {
  flex-shrink: 0;
  width: 100%;
  max-width: 320px;
  height: 275px;
}

.eng_field_image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

.eng_field_name {
  color: var(--basecolor);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.17px;
  text-align: center;
}

/* engineering page benefit */
.eng_benefit {
  position: relative;
  overflow: hidden;
  padding-top: 120px;
  padding-bottom: 128px;
  background-color: #fff;
}

.eng_benefit_wrapper {
  position: relative;
  z-index: 1;
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.eng_benefit_panel {
  position: relative;
  display: flex;
  align-items: flex-end;
  width: 75%;
  max-width: 1200px;
  min-height: 435px;
  margin-top: 40px;
}

.eng_benefit_base {
  flex-shrink: 0;
  width: 14%;
  max-width: 168px;
  height: 435px;
  border-radius: 20px;
  background-image: linear-gradient(90deg, rgba(61, 139, 217, 0.6), rgba(52, 89, 154, 0.6)), url("../images/engineering_benefit_base.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 109%;
}

.eng_benefit_list {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 0 1 auto;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  max-width: 1200px;
  min-width: 0;
  padding-bottom: 40px;
  margin-left: max(-117px, -14% + 20px);
}

.eng_benefit_item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 84px;
  padding: 10px 24px;
  border-radius: 6px;
  background-color: #fff;
  box-shadow: 0 0 8px rgba(27, 29, 32, 0.14);
}

.eng_benefit_num {
  flex-shrink: 0;
  width: 80px;
  color: #d1ddf1;
  font-family: "Roboto", sans-serif;
  font-size: 64px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -1.28px;
}

.eng_benefit_copy {
  color: var(--basecolor);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
}

.eng_benefit_decor {
  position: absolute;
  z-index: 0;
}

.eng_benefit_decor img {
  width: 100%;
  height: auto;
}

.eng_benefit_decor_large {
  right: 8.3229%;
  bottom: 2.8379%;
  width: 24.5932%;
  max-width: 472px;
}

.eng_benefit_decor_medium {
  right: 32.6042%;
  bottom: 58.4651%;
  width: 9.1667%;
  max-width: 176px;
}

.eng_benefit_decor_small {
  right: 48.75%;
  bottom: 77.6444%;
  width: 3.1771%;
  max-width: 61px;
}

/*** building page ***/
/* building page mainview */
.building_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.building_mainview .building_mainview_bg_image {
  position: absolute;
  top: 18.7037%;
  right: 0;
  bottom: auto;
  left: auto;
  width: 60.1563%;
  aspect-ratio: 1155/676;
}

.building_mainview .building_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* building page field */
.building_field {
  background-color: #e9f5f7;
}

.building_field_head {
  align-items: center;
  width: 100%;
  text-align: center;
}

.building_field_grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.building_field_card {
  width: calc((100% - 60px) / 4);
}

/*** i-Construction page ***/
/* i-Construction page mainview */
.iconst_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.iconst_mainview .iconst_mainview_bg_image {
  position: absolute;
  top: 18.7037%;
  right: 0;
  bottom: auto;
  left: auto;
  width: 60.1563%;
  aspect-ratio: 1155/676;
}

.iconst_mainview .iconst_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.iconst_mainview_title {
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(80px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.iconst_title_jp {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(62px, 5vw, 96px);
  letter-spacing: 5.76px;
}

.iconst_title_dx {
  font-family: "Roboto", sans-serif;
  font-size: clamp(75px, 6.0417vw, 116px);
  letter-spacing: 6.96px;
}

.iconst_hero_content {
  width: 48%;
  max-width: 768px;
  padding-right: 8px;
  padding-left: 8px;
  margin-top: 78px;
}

.iconst_hero_lead {
  color: var(--blue1C4591);
  font-size: 36px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 2.16px;
  white-space: nowrap;
}

.iconst_hero_copy {
  margin-top: 32px;
  color: var(--basecolor);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.4px;
}

/* i-Construction page technology flow */
.iconst_field {
  position: relative;
  overflow: hidden;
  width: calc(100% - 80px);
  padding-top: 80px;
  padding-bottom: 96px;
  margin-right: auto;
  margin-left: auto;
  border-radius: 40px;
  background-color: #edeff6;
}

.iconst_field_wrapper {
  width: 86.9565%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.iconst_field_grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 80px 24px;
  margin-top: 88px;
}

.iconst_field_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
  height: 200px;
  padding: 20px;
  border: 3px solid #f3f7f8;
  border-radius: 6px;
  background-color: #fff;
}

.iconst_field_image {
  flex-shrink: 0;
  width: 100%;
  max-width: 448px;
  height: 200px;
}

.iconst_field_image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

/*** technology page ***/
/* technology page mainview */
.technology_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.technology_mainview .technology_mainview_bg_image {
  position: absolute;
  top: 18.7037%;
  right: 0;
  bottom: auto;
  left: auto;
  width: 60.1563%;
  aspect-ratio: 1155/676;
}

.technology_mainview .technology_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* technology page intellectual property */
.tech_property {
  position: relative;
  overflow: hidden;
  width: calc(100% - 80px);
  padding-top: 80px;
  padding-bottom: 88px;
  margin-right: auto;
  margin-left: auto;
  border-radius: 40px;
  background-image: linear-gradient(90deg, rgba(61, 139, 217, 0.6), rgba(52, 89, 154, 0.6)), url("../images/technology_property_bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.tech_property_wrapper {
  width: 86.9565%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.tech_property_title {
  color: #fff;
}

.tech_property_label {
  color: #fff;
}

.tech_property_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 44px;
}

.tech_property_card {
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  row-gap: 24px;
  min-width: 0;
  min-height: 256px;
  padding: 32px;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background-color: #fff;
}

.tech_property_text {
  display: grid;
  grid-row: span 2;
  grid-template-rows: subgrid;
  align-items: flex-start;
  row-gap: 24px;
  width: 100%;
  min-width: 0;
}

.tech_property_text_sheet {
  max-width: none;
}

.tech_property_name {
  color: #24509a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.7;
}

.tech_property_detail {
  color: var(--basecolor);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

.tech_property_num {
  width: 100%;
}

.tech_property_desc {
  width: 100%;
}

.tech_property_docs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: flex-start;
  gap: 24px;
  width: 100%;
  margin-top: 26px;
}

.tech_property_docs_pair {
  gap: 32px;
}

.tech_property_doc {
  min-width: 0;
  width: 100%;
  margin: 0;
}

.tech_property_doc_image {
  width: 100%;
  aspect-ratio: 600/848;
  border: 1px solid #cad6e3;
}

.tech_property_doc_image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.tech_property_doc_link > a {
  display: block;
}

.tech_property_doc_link .tech_property_doc_image {
  position: relative;
}

.tech_property_doc_link .tech_property_doc_image::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #fff;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--trans_300ms);
}

.tech_property_doc_link > a:hover .tech_property_doc_image::after,
.tech_property_doc_link > a:focus-visible .tech_property_doc_image::after {
  opacity: 0.5;
}

.tech_property_caption {
  width: 100%;
  margin-top: 10px;
  color: #000;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.2px;
  text-align: center;
  white-space: normal;
  transition: color var(--trans_300ms);
}

.tech_property_doc_link > a:hover .tech_property_caption,
.tech_property_doc_link > a:focus-visible .tech_property_caption {
  color: var(--blue5c96cc);
}

.tech_property_caption_pair {
  font-size: 11px;
  letter-spacing: 0.1px;
}

/* technology page social value */
.tech_value {
  position: relative;
  overflow: hidden;
  padding-top: 112px;
  padding-bottom: 136px;
  background-color: #fff;
}

.tech_value_wrapper {
  position: relative;
  z-index: 1;
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.tech_value_copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  width: 52.5%;
  max-width: 840px;
  margin-top: 44px;
}

.tech_value_text {
  width: 100%;
  color: var(--basecolor);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.88;
  letter-spacing: 0.45px;
}

.tech_value_decor {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  background-image: url("../images/technology_property_bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  opacity: 0.12;
}

.tech_value_decor_large {
  right: 2.5458%;
  bottom: -28px;
  width: 18.7565%;
  max-width: 360px;
  aspect-ratio: 360/348;
}

.tech_value_decor_medium {
  right: 22.3839%;
  bottom: 320px;
  width: 6.9911%;
  max-width: 134px;
  aspect-ratio: 134/130;
}

.tech_value_decor_small {
  right: 33.8792%;
  bottom: 456px;
  width: 2.4231%;
  max-width: 47px;
  aspect-ratio: 47/45;
}

@media only screen and (max-width: 1024px) {
  .engineering_mainview .mainviewlong_wrapper,
  .building_mainview .mainviewlong_wrapper,
  .iconst_mainview .mainviewlong_wrapper,
  .technology_mainview .mainviewlong_wrapper {
    min-height: auto;
    padding-bottom: 80px;
  }
  /*** engineering page ***/
  /* engineering page mainview */
  .engineering_mainview .engineering_mainview_bg_image {
    top: 15%;
    width: 68%;
  }
  .engineering_mainview .mainviewlong_title {
    font-size: clamp(56px, 8vw, 82px);
    letter-spacing: clamp(2.4px, 0.45vw, 4.6px);
  }
  .eng_hero_copy {
    width: 64%;
    margin-top: 44px;
    font-size: 18px;
  }
  /* engineering page field */
  .eng_field {
    width: calc(100% - 40px);
    padding-top: 72px;
    padding-bottom: 88px;
    border-radius: 32px;
  }
  .eng_field_wrapper {
    width: 90%;
  }
  .eng_field_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 104px 20px;
    margin-top: 104px;
  }
  /* engineering page benefit */
  .eng_benefit {
    padding-top: 88px;
    padding-bottom: 96px;
  }
  .eng_benefit_wrapper {
    width: 90%;
  }
  .eng_benefit_panel {
    width: 100%;
  }
  /*** building page ***/
  /* building page mainview */
  .building_mainview .building_mainview_bg_image {
    top: 15%;
    width: 68%;
  }
  .building_mainview .mainviewlong_title {
    font-size: clamp(56px, 8vw, 82px);
    letter-spacing: clamp(2.4px, 0.45vw, 4.6px);
  }
  /* building page field */
  .building_field_card {
    width: calc((100% - 20px) / 2);
  }
  /*** i-Construction page ***/
  /* i-Construction page mainview */
  .iconst_mainview .iconst_mainview_bg_image {
    top: 15%;
    width: 68%;
  }
  .iconst_mainview_title {
    font-size: clamp(56px, 8vw, 82px);
    letter-spacing: clamp(2.4px, 0.45vw, 4.6px);
  }
  .iconst_title_jp {
    font-size: clamp(44px, 6.25vw, 64px);
    letter-spacing: 3.84px;
  }
  .iconst_title_dx {
    font-size: clamp(52px, 7.5195vw, 77px);
    letter-spacing: 4.62px;
  }
  .iconst_hero_content {
    width: 64%;
    margin-top: 44px;
  }
  .iconst_hero_lead {
    font-size: 28px;
    white-space: normal;
  }
  .iconst_hero_copy {
    margin-top: 24px;
    font-size: 18px;
  }
  /* i-Construction page technology flow */
  .iconst_field {
    width: calc(100% - 40px);
    padding-top: 72px;
    padding-bottom: 88px;
    border-radius: 32px;
  }
  .iconst_field_wrapper {
    width: 90%;
  }
  .iconst_field_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 80px 20px;
  }
  /*** technology page ***/
  /* technology page mainview */
  .technology_mainview .technology_mainview_bg_image {
    top: 15%;
    width: 68%;
  }
  .technology_mainview .mainviewlong_title {
    font-size: clamp(56px, 8vw, 82px);
    letter-spacing: clamp(2.4px, 0.45vw, 4.6px);
  }
  /* technology page intellectual property */
  .tech_property {
    width: calc(100% - 40px);
    padding-top: 72px;
    padding-bottom: 80px;
    border-radius: 32px;
  }
  .tech_property_wrapper {
    width: 92%;
  }
  .tech_property_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    margin-top: 40px;
  }
  .tech_property_card {
    min-height: 0;
  }
  .tech_property_docs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  /* technology page social value */
  .tech_value {
    padding-top: 88px;
    padding-bottom: 96px;
  }
  .tech_value_wrapper {
    width: 90%;
  }
  .tech_value_copy {
    width: 72%;
  }
  .tech_value_decor_large {
    right: -5%;
    width: 36%;
  }
}
@media only screen and (max-width: 768px) {
  .engineering_mainview .mainviewlong_wrapper,
  .building_mainview .mainviewlong_wrapper,
  .iconst_mainview .mainviewlong_wrapper,
  .technology_mainview .mainviewlong_wrapper {
    padding-bottom: 50px;
  }
  /*** engineering page ***/
  /* engineering page mainview */
  .engineering_mainview .engineering_mainview_bg_image {
    top: 74px;
    right: -30%;
    width: 112%;
    opacity: 0.72;
  }
  .engineering_mainview .mainviewlong_title {
    font-size: clamp(48px, 10.4167vw, 60px);
    letter-spacing: 2px;
  }
  .eng_title_space {
    display: none;
  }
  .eng_title_break_sp {
    display: block;
  }
  .eng_hero_copy {
    width: 100%;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
    margin-top: 32px;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.32px;
  }
  .eng_hero_overlay {
    width: 150%;
    left: -25%;
  }
  /* engineering page common heading */
  .eng_section_title {
    font-size: clamp(54px, 12.5vw, 60px);
    letter-spacing: 0.6px;
  }
  .eng_section_label {
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  /* engineering page field */
  .eng_field {
    width: calc(100% - 24px);
    padding-top: 64px;
    padding-bottom: 72px;
    border-radius: 24px;
  }
  .eng_field_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 88px;
    margin-top: 88px;
  }
  .eng_field_card {
    height: 220px;
    padding: 16px;
  }
  .eng_field_image {
    width: 80%;
    height: 240px;
  }
  .eng_field_name {
    font-size: 16px;
  }
  /* engineering page benefit */
  .eng_benefit {
    padding-top: 72px;
    padding-bottom: 80px;
  }
  .eng_benefit_panel {
    display: block;
    min-height: 0;
    margin-top: 36px;
  }
  .eng_benefit_base {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 78px;
    height: 100%;
    border-radius: 16px;
  }
  .eng_benefit_list {
    gap: 18px;
    width: auto;
    max-width: none;
    padding-right: 0;
    padding-bottom: 0;
    margin-left: 20px;
  }
  .eng_benefit_item {
    align-items: flex-start;
    gap: 8px;
    min-height: 96px;
    padding: 14px 16px;
  }
  .eng_benefit_num {
    width: 52px;
    font-size: 48px;
    letter-spacing: -0.96px;
  }
  .eng_benefit_copy {
    font-size: 15px;
    line-height: 1.7;
  }
  .eng_benefit_decor_large {
    right: -14%;
    bottom: 3%;
    width: 72%;
  }
  .eng_benefit_decor_medium,
  .eng_benefit_decor_small {
    display: none;
  }
  /*** building page ***/
  /* building page mainview */
  .building_mainview .building_mainview_bg_image {
    top: 74px;
    right: -30%;
    width: 112%;
    opacity: 0.72;
  }
  .building_mainview .mainviewlong_title {
    font-size: clamp(48px, 10.4167vw, 60px);
    letter-spacing: 2px;
  }
  /* building page field */
  .building_field_card {
    width: 100%;
  }
  /*** i-Construction page ***/
  /* i-Construction page mainview */
  .iconst_mainview .mainviewlong_subtitle {
    font-size: 18px;
    line-height: 1.5;
    white-space: normal;
  }
  .iconst_mainview .iconst_mainview_bg_image {
    top: 74px;
    right: -30%;
    width: 112%;
    opacity: 0.72;
  }
  .iconst_mainview_title {
    font-size: clamp(46px, 10.4167vw, 60px);
    letter-spacing: 2px;
  }
  .iconst_title_jp {
    font-size: clamp(38px, 8.3333vw, 48px);
    letter-spacing: 2px;
  }
  .iconst_title_dx {
    font-size: clamp(44px, 9.7222vw, 56px);
    letter-spacing: 2px;
  }
  .iconst_hero_content {
    width: 100%;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
    margin-top: 32px;
  }
  .iconst_hero_lead {
    font-size: 24px;
    line-height: 1.5;
    letter-spacing: 1.2px;
  }
  .iconst_hero_copy {
    margin-top: 24px;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.32px;
  }
  /* i-Construction page technology flow */
  .iconst_field {
    width: calc(100% - 24px);
    padding-top: 64px;
    padding-bottom: 72px;
    border-radius: 24px;
  }
  .iconst_field_title {
    font-size: clamp(36px, 9.5vw, 54px);
    line-height: 1.1;
    letter-spacing: 0.6px;
    white-space: normal;
  }
  .iconst_field_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 72px;
    margin-top: 72px;
  }
  .iconst_field_card {
    height: 200px;
    padding: 16px;
  }
  .iconst_field_image {
    width: 95%;
    height: 200px;
  }
  /*** technology page ***/
  /* technology page mainview */
  .technology_mainview .mainviewlong_subtitle {
    font-size: 18px;
    line-height: 1.5;
    white-space: normal;
  }
  .technology_mainview .technology_mainview_bg_image {
    top: 74px;
    right: -30%;
    width: 112%;
    opacity: 0.72;
  }
  .technology_mainview .mainviewlong_title {
    font-size: clamp(44px, 10.4167vw, 60px);
    letter-spacing: 2px;
  }
  /* technology page intellectual property */
  .tech_property {
    width: calc(100% - 24px);
    padding-top: 64px;
    padding-bottom: 72px;
    border-radius: 24px;
  }
  .tech_property_title {
    font-size: clamp(32px, 7.5vw, 44px);
    line-height: 1.1;
    letter-spacing: 0.6px;
    white-space: normal;
  }
  .tech_property_grid {
    gap: 18px;
    margin-top: 36px;
  }
  .tech_property_card {
    row-gap: 18px;
    padding: 20px 15px;
  }
  .tech_property_text {
    row-gap: 18px;
  }
  .tech_property_text_sheet {
    max-width: none;
  }
  .tech_property_name {
    font-size: 20px;
    line-height: 1.6;
  }
  .tech_property_detail {
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.3px;
  }
  .tech_property_docs {
    gap: 16px;
    margin-top: 22px;
  }
  .tech_property_docs_pair {
    gap: 28px;
  }
  .tech_property_caption {
    font-size: 13px;
    letter-spacing: 0.2px;
  }
  /* technology page social value */
  .tech_value {
    padding-top: 72px;
    padding-bottom: 80px;
  }
  .tech_value_copy {
    gap: 16px;
    width: 100%;
    margin-top: 36px;
  }
  .tech_value_text {
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.32px;
  }
  .tech_value_decor_large {
    right: -18%;
    width: 60%;
  }
  .tech_value_decor_medium {
    right: 20%;
    bottom: 300px;
    width: 22%;
  }
  .tech_value_decor_small {
    display: none;
  }
}
@media only screen and (max-width: 1024px) {
  /*** benefits page ***/
  /* benefits page mainview */
  .benefits_mainview_wrapper {
    height: 620px;
  }
  .benefits_mainview_text {
    width: 90%;
    padding-top: 220px;
  }
  .benefits_mainview_subtitle {
    font-size: 26px;
  }
  .benefits_mainview_title {
    font-size: clamp(68px, 9.7656vw, 100px);
  }
  .benefits_mainview_bg_image img {
    object-position: 58% bottom;
  }
  /* benefits page common heading */
  .benefits_title {
    font-size: clamp(54px, 7.8125vw, 80px);
  }
  /* benefits page childcare support */
  .benefits01 {
    padding-top: 80px;
    padding-bottom: 88px;
  }
  .benefits01_wrapper {
    width: 90%;
  }
  .benefits01_label {
    font-size: 26px;
  }
  .benefits01_feature {
    min-height: 420px;
    padding: 44px 32px 48px;
  }
  .benefits01_feature_body {
    width: 66%;
  }
  .benefits01_support_title {
    font-size: 28px;
  }
  .benefits01_amount_lead {
    width: 100%;
    font-size: 28px;
  }
  .benefits01_amount_num {
    font-size: 68px;
  }
  .benefits01_amount_unit {
    font-size: 36px;
  }
  .benefits01_amount_text {
    font-size: 36px;
  }
  .benefits01_note {
    font-size: 24px;
  }
  .benefits01_feature_image {
    top: -55px;
    width: 52%;
  }
  .benefits01_support_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 56px;
  }
  .benefits01_loan_wrap {
    min-height: 570px;
  }
  .benefits01_loan {
    min-height: 0;
  }
  .benefits01_loan_image {
    top: 255px;
    left: -5.5556%;
    width: 75%;
  }
  .benefits01_childcare {
    min-height: 0;
  }
  /* benefits page retirement plan */
  .benefits02 {
    padding-top: 80px;
    padding-bottom: 88px;
  }
  .benefits02_wrapper {
    width: 90%;
  }
  .benefits02_content {
    padding-right: 24px;
    padding-left: 24px;
  }
  .benefits02_pillars_title {
    font-size: 30px;
  }
  .benefits02_pillar {
    padding-right: 20px;
    padding-left: 20px;
    font-size: 20px;
  }
  .benefits02_explanation {
    display: flex;
    flex-direction: column;
    gap: 40px;
    min-height: 0;
  }
  .benefits02_reading {
    width: 100%;
    padding-right: 0;
    padding-left: 0;
  }
  .benefits02_figure {
    width: 78%;
    margin-right: auto;
    margin-left: auto;
  }
  .benefits02_table_wrap {
    width: 100%;
  }
  .benefits02_th {
    padding-right: 14px;
    padding-left: 14px;
    font-size: 15px;
  }
  .benefits02_td {
    padding-right: 14px;
    padding-left: 14px;
    font-size: 15px;
  }
  .benefits02_tbody .benefits02_provider {
    font-size: 15px;
  }
  /* benefits page other benefits */
  .benefits03 {
    padding-top: 80px;
    padding-bottom: 88px;
  }
  .benefits03_wrapper {
    width: 90%;
  }
  .benefits03_item {
    padding-right: 24px;
    padding-left: 24px;
  }
  .benefits03_item_body {
    max-width: 62%;
  }
  .benefits03_cars {
    top: 160px;
    right: 0;
    width: 40%;
  }
}
@media only screen and (max-width: 768px) {
  /*** benefits page ***/
  /* benefits page mainview */
  .benefits_mainview_wrapper {
    height: 540px;
  }
  .benefits_mainview_text {
    padding-top: 180px;
  }
  .benefits_mainview_subtitle {
    gap: 14px;
    padding-left: 0;
    font-size: 22px;
    letter-spacing: 0.88px;
  }
  .benefits_mainview_subtitle::before {
    width: 12px;
    height: 12px;
  }
  .benefits_mainview_title {
    font-size: clamp(54px, 12.5vw, 60px);
    letter-spacing: 3.6px;
  }
  .benefits_mainview_bg_image img {
    object-position: 52% bottom;
  }
  /* benefits page common heading */
  .benefits_title {
    font-size: clamp(42px, 11.25vw, 54px);
    letter-spacing: 0.54px;
    white-space: normal;
  }
  /* benefits page childcare support */
  .benefits01 {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .benefits01_heading {
    gap: 12px;
  }
  .benefits01_label {
    gap: 12px;
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  .benefits01_label::before {
    width: 10px;
    height: 10px;
  }
  .benefits01_content {
    gap: 44px;
    margin-top: 40px;
  }
  .benefits01_feature {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 44px 22px 0;
    background-color: transparent;
  }
  .benefits01_feature_wrap {
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    background-color: #fff8f5;
  }
  .benefits01_feature_body {
    width: 100%;
    max-width: none;
  }
  .benefits01_support_title {
    font-size: 24px;
    line-height: 1.3;
  }
  .benefits01_amount {
    margin-top: 20px;
    white-space: normal;
  }
  .benefits01_amount_lead {
    font-size: 22px;
    line-height: 1.6;
  }
  .benefits01_amount_num {
    font-size: 64px;
    line-height: 1.3;
  }
  .benefits01_amount_unit {
    font-size: 32px;
    line-height: 1.3;
  }
  .benefits01_amount_text {
    font-size: 32px;
    line-height: 1.3;
  }
  .benefits01_notes {
    gap: 8px;
    margin-top: 20px;
  }
  .benefits01_note {
    font-size: 18px;
    line-height: 1.7;
    letter-spacing: 0.54px;
  }
  .benefits01_feature_image {
    position: relative;
    top: auto;
    right: auto;
    align-self: flex-end;
    width: calc(52% - 44px);
    max-width: none;
    margin-top: 4px;
    margin-right: -24px;
  }
  .benefits_support_badge {
    width: 64px;
    height: 64px;
  }
  .benefits01_support_grid {
    gap: 44px;
    min-height: 0;
  }
  .benefits01_loan_wrap {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .benefits01_support_card {
    padding: 42px 24px;
  }
  .benefits01_loan_image {
    position: relative;
    top: auto;
    left: -5.5556%;
    width: 100%;
    margin-top: -10px;
  }
  .benefits01_body_text {
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.8;
  }
  .benefits01_payment {
    width: 100%;
  }
  .benefits01_payment_row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    font-size: 16px;
  }
  /* benefits page retirement plan */
  .benefits02 {
    padding-top: 70px;
    padding-bottom: 80px;
  }
  .benefits02_heading {
    gap: 16px;
    padding-bottom: 20px;
  }
  .benefits02_label {
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  .benefits02_content {
    gap: 44px;
    padding: 40px 0 0;
    margin-top: 12px;
  }
  .benefits02_pillars {
    gap: 24px;
  }
  .benefits02_pillars_title {
    font-size: 26px;
  }
  .benefits02_pillar_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .benefits02_pillar {
    min-height: 82px;
    padding: 20px 16px;
    font-size: 18px;
  }
  .benefits02_explanation {
    gap: 32px;
  }
  .benefits02_body_text {
    font-size: 15px;
    line-height: 1.8;
  }
  .benefits02_figure {
    width: 100%;
  }
  .benefits02_schedule {
    gap: 24px;
  }
  .benefits02_schedule_title {
    font-size: 20px;
    line-height: 1.6;
  }
  .benefits02_table_wrap {
    width: 100%;
  }
  .benefits02_th {
    height: auto;
    padding: 10px 8px;
    font-size: 13px;
    line-height: 1.5;
  }
  .benefits02_td {
    height: auto;
    padding: 10px 8px;
    font-size: 13px;
    line-height: 1.5;
    overflow-wrap: anywhere;
  }
  .benefits02_tbody .benefits02_provider {
    font-size: 13px;
  }
  .benefits02_provider {
    width: 46%;
  }
  .benefits02_note {
    font-size: 14px;
    line-height: 1.8;
  }
  /* benefits page other benefits */
  .benefits03 {
    padding-top: 70px;
    padding-bottom: 80px;
  }
  .benefits03_label {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: 0.9px;
  }
  .benefits03_content {
    margin-top: 36px;
  }
  .benefits03_item {
    min-height: 0;
    padding: 14px 0;
  }
  .benefits03_item::before {
    margin-right: 6px;
    font-size: 28px;
  }
  .benefits03_item_body {
    max-width: none;
  }
  .benefits03_item_title {
    font-size: 19px;
    line-height: 1.5;
    letter-spacing: 0.76px;
  }
  .benefits03_item_text {
    font-size: 15px;
    line-height: 1.8;
  }
  .benefits03_cars {
    position: relative;
    top: auto;
    right: auto;
    width: 68%;
    max-width: none;
    margin-top: 20px;
    margin-left: auto;
    margin-right: auto;
  }
  .benefits03_image_row {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin-top: 28px;
  }
}
.flex_30 {
  width: 30%;
}

.flex_31 {
  width: 31%;
}

.flex_32 {
  width: 32%;
}

.flex_33 {
  width: 33%;
}

.flex_34 {
  width: 34%;
}

.flex_35 {
  width: 35%;
}

.flex_36 {
  width: 36%;
}

.flex_37 {
  width: 37%;
}

.flex_38 {
  width: 38%;
}

.flex_39 {
  width: 39%;
}

.flex_40 {
  width: 40%;
}

.flex_41 {
  width: 41%;
}

.flex_42 {
  width: 42%;
}

.flex_43 {
  width: 43%;
}

.flex_44 {
  width: 44%;
}

.flex_45 {
  width: 45%;
}

.flex_46 {
  width: 46%;
}

.flex_47 {
  width: 47%;
}

.flex_48 {
  width: 48%;
}

.flex_49 {
  width: 49%;
}

.flex_50 {
  width: 50%;
}

.flex_51 {
  width: 51%;
}

.flex_52 {
  width: 52%;
}

.flex_53 {
  width: 53%;
}

.flex_54 {
  width: 54%;
}

.flex_55 {
  width: 55%;
}

.flex_56 {
  width: 56%;
}

.flex_57 {
  width: 57%;
}

.flex_58 {
  width: 58%;
}

.flex_59 {
  width: 59%;
}

.flex_60 {
  width: 60%;
}

.flex_61 {
  width: 61%;
}

.flex_62 {
  width: 62%;
}

.flex_63 {
  width: 63%;
}

.flex_64 {
  width: 64%;
}

.flex_65 {
  width: 65%;
}

.flex_66 {
  width: 66%;
}

.flex_67 {
  width: 67%;
}

.flex_68 {
  width: 68%;
}

.flex_69 {
  width: 69%;
}

.flex_70 {
  width: 70%;
}

:root {
  --min-size: 100px;
  --clamp-vw: 18vw;
}

@media (max-width: 1024px) {
  :root {
    --min-size: 60px;
    --clamp-vw: 10vw;
  }
}
.padding100 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 100px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 100px);
}

.padding110 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 110px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 110px);
}

.padding120 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 120px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 120px);
}

.padding130 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 130px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 130px);
}

.padding140 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 140px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 140px);
}

.padding150 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 150px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 150px);
}

.padding160 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 160px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 160px);
}

.padding170 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 170px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 170px);
}

.padding180 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 180px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 180px);
}

.padding190 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 190px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 190px);
}

.padding200 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 200px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 200px);
}

.padding210 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 210px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 210px);
}

.padding220 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 220px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 220px);
}

.padding230 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 230px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 230px);
}

.padding240 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 240px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 240px);
}

.padding250 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 250px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 250px);
}

.padding260 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 260px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 260px);
}

.padding270 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 270px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 270px);
}

.padding280 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 280px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 280px);
}

.padding290 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 290px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 290px);
}

.padding300 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 300px);
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 300px);
}

.margin100 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 100px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 100px);
}

.margin110 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 110px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 110px);
}

.margin120 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 120px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 120px);
}

.margin130 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 130px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 130px);
}

.margin140 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 140px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 140px);
}

.margin150 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 150px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 150px);
}

.margin160 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 160px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 160px);
}

.margin170 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 170px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 170px);
}

.margin180 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 180px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 180px);
}

.margin190 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 190px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 190px);
}

.margin200 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 200px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 200px);
}

.margin210 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 210px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 210px);
}

.margin220 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 220px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 220px);
}

.margin230 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 230px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 230px);
}

.margin240 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 240px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 240px);
}

.margin250 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 250px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 250px);
}

.margin260 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 260px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 260px);
}

.margin270 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 270px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 270px);
}

.margin280 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 280px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 280px);
}

.margin290 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 290px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 290px);
}

.margin300 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 300px);
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 300px);
}

.pt-100 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 100px);
}

.pt-110 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 110px);
}

.pt-120 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 120px);
}

.pt-130 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 130px);
}

.pt-140 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 140px);
}

.pt-150 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 150px);
}

.pt-160 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 160px);
}

.pt-170 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 170px);
}

.pt-180 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 180px);
}

.pt-190 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 190px);
}

.pt-200 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 200px);
}

.pt-210 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 210px);
}

.pt-220 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 220px);
}

.pt-230 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 230px);
}

.pt-240 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 240px);
}

.pt-250 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 250px);
}

.pt-260 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 260px);
}

.pt-270 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 270px);
}

.pt-280 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 280px);
}

.pt-290 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 290px);
}

.pt-300 {
  padding-top: clamp(var(--min-size), var(--clamp-vw), 300px);
}

.pb-100 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 100px);
}

.pb-110 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 110px);
}

.pb-120 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 120px);
}

.pb-130 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 130px);
}

.pb-140 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 140px);
}

.pb-150 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 150px);
}

.pb-160 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 160px);
}

.pb-170 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 170px);
}

.pb-180 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 180px);
}

.pb-190 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 190px);
}

.pb-200 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 200px);
}

.pb-210 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 210px);
}

.pb-220 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 220px);
}

.pb-230 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 230px);
}

.pb-240 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 240px);
}

.pb-250 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 250px);
}

.pb-260 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 260px);
}

.pb-270 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 270px);
}

.pb-280 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 280px);
}

.pb-290 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 290px);
}

.pb-300 {
  padding-bottom: clamp(var(--min-size), var(--clamp-vw), 300px);
}

.mt-100 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 100px);
}

.mt-110 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 110px);
}

.mt-120 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 120px);
}

.mt-130 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 130px);
}

.mt-140 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 140px);
}

.mt-150 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 150px);
}

.mt-160 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 160px);
}

.mt-170 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 170px);
}

.mt-180 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 180px);
}

.mt-190 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 190px);
}

.mt-200 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 200px);
}

.mt-210 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 210px);
}

.mt-220 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 220px);
}

.mt-230 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 230px);
}

.mt-240 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 240px);
}

.mt-250 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 250px);
}

.mt-260 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 260px);
}

.mt-270 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 270px);
}

.mt-280 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 280px);
}

.mt-290 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 290px);
}

.mt-300 {
  margin-top: clamp(var(--min-size), var(--clamp-vw), 300px);
}

.mb-100 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 100px);
}

.mb-110 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 110px);
}

.mb-120 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 120px);
}

.mb-130 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 130px);
}

.mb-140 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 140px);
}

.mb-150 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 150px);
}

.mb-160 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 160px);
}

.mb-170 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 170px);
}

.mb-180 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 180px);
}

.mb-190 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 190px);
}

.mb-200 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 200px);
}

.mb-210 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 210px);
}

.mb-220 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 220px);
}

.mb-230 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 230px);
}

.mb-240 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 240px);
}

.mb-250 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 250px);
}

.mb-260 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 260px);
}

.mb-270 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 270px);
}

.mb-280 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 280px);
}

.mb-290 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 290px);
}

.mb-300 {
  margin-bottom: clamp(var(--min-size), var(--clamp-vw), 300px);
}

:root {
  --basecolor: #3c3c3c;
  --black000000: #000000;
  --black2F3440: #2F3440;
  --blue34599A: #34599A;
  --blue1C4591: #1C4591;
  --blue5c96cc: #5c96cc;
  --trans_300ms: 300ms ease;
}

a {
  transition: var(--trans_300ms);
  text-decoration: none;
  color: var(--basecolor);
}

a:focus,
a:visited,
a:focus-visible {
  text-decoration: none;
  color: var(--basecolor);
}

a:hover,
a:active {
  text-decoration: none;
  color: var(--blue5c96cc);
}

/************************/
/*** common ***/
html {
  scroll-padding-top: 140px;
}

/* header */
.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  height: 120px;
  background-color: transparent;
}

.header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: rgba(255, 255, 255, 0.4);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  pointer-events: none;
}

.header_wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  width: 100%;
  height: 100%;
}

#logo {
  flex-shrink: 0;
  width: 195px;
  margin-top: 17px;
  margin-left: 15px;
  margin-bottom: 15px;
}

.logo_link {
  display: block;
  width: 100%;
}

.headermenu {
  display: flex;
  align-items: flex-start;
  gap: 34px;
  height: 100%;
  margin-left: auto;
}

.header_nav {
  margin-top: 49px;
}

.header_nav_list {
  display: flex;
  align-items: flex-start;
  gap: clamp(40px, 7.94px + 3.13vw, 68px);
}

.header_nav_listitem {
  position: relative;
  flex-shrink: 0;
}

.header_nav_link {
  position: relative;
  display: flex;
  align-items: center;
  color: #231815;
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 3.6px;
  white-space: nowrap;
}

.header_nav_link:focus,
.header_nav_link:visited,
.header_nav_link:focus-visible {
  color: #231815;
}

.header_nav_link:hover,
.header_nav_link:active {
  color: var(--blue5c96cc);
}

.header_nav_link.is-current::after {
  content: "";
  position: absolute;
  top: 30px;
  left: 50%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background-color: var(--blue1C4591);
  transform: translateX(-50%);
}

.header_nav_plus {
  margin-left: 8px;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0;
}

.header_entry {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  gap: 12px;
  width: 160px;
  height: 100%;
  border-radius: 0 0 0 40px;
  color: #fff;
  background-color: var(--blue1C4591);
  font-family: "Roboto", sans-serif;
  font-size: 21px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 1.575px;
  transition: box-shadow var(--trans_300ms);
}

.header_entry::after {
  content: "";
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
}

.header_entry:focus,
.header_entry:visited,
.header_entry:focus-visible {
  color: #fff;
}

.header_entry:hover,
.header_entry:active,
.header_entry:focus-visible {
  color: #fff;
  box-shadow: inset 0 0 0 1000px rgba(255, 255, 255, 0.3);
}

.hoverlist_parent {
  position: relative;
}

.hoverlist_wrapper {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 10;
  display: none;
  width: max-content;
  padding-top: 18px;
  transform: translateX(-50%);
}

.hoverlist {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: max-content;
  min-width: 260px;
  padding: 15px;
  border-radius: 20px;
  background-color: #fff;
  box-shadow: 0 0 14px -6px rgb(201, 192, 192);
}

.hoverlist_header {
  display: flex;
  align-items: center;
}

.hoverlist_item {
  display: none;
}

.hoverlist_link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 10px;
  color: #231815;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.36px;
  text-align: center;
  white-space: nowrap;
}

.hoverlist_link:focus,
.hoverlist_link:visited,
.hoverlist_link:focus-visible {
  color: #231815;
}

.hoverlist_link:hover,
.hoverlist_link:active {
  color: var(--blue5c96cc);
}

.hoverlist_parent:hover .hoverlist_wrapper,
.hoverlist_parent:hover .hoverlist_item,
.hoverlist_parent:focus-within .hoverlist_wrapper,
.hoverlist_parent:focus-within .hoverlist_item {
  display: block;
}

/************************/
/*** toppage ***/
/* toppage mainview */
.toppage_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding-top: max(0px, 100px - 5.2083vw);
  background-color: #fff;
}

.toppage_mainview.has-fixed-banner {
  overflow: visible;
  z-index: 10;
}

.toppage_mainview_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  aspect-ratio: 1920/1082;
}

.toppage_mainview_wrapper::before {
  content: "";
  position: absolute;
  top: 8.6876%;
  left: 20.2083%;
  z-index: 0;
  width: 79.7917%;
  aspect-ratio: 1532/988;
  background-image: url("../images/toppage_mainview_circle.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
}

.toppage_mainview_wrapper::after {
  content: "";
  position: absolute;
  top: 70.8872%;
  left: 0;
  z-index: 0;
  width: 100%;
  aspect-ratio: 1920/315;
  background-image: url("../images/toppage_mainview_line_01.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
}

.toppage_mainview_text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
}

.toppage_mainview_text::before {
  content: "";
  position: absolute;
  top: 12.5%;
  left: 31%;
  z-index: 1;
  width: 36%;
  height: 19%;
/*
  background: radial-gradient(ellipse at center, #fff 0%, #fff 58%, rgba(255, 255, 255, 0.98) 72%, rgba(255, 255, 255, 0) 100%);
*/
  pointer-events: none;
}
.toppage_mainview_text_01 {
  position: absolute;
  top: 29.2052%;
  left: 8.3854%;
  z-index: 2;
  width: 78.9583%;
}

.toppage_mainview_text_02 {
  position: absolute;
  top: 58.3179%;
  left: 12.3438%;
  z-index: 2;
  width: 79.3229%;
}

.toppage_mainview_text_03 {
  position: absolute;
  top: 15.4344%;
  left: 34.8438%;
  z-index: 2;
  width: 30.9375%;
}

.toppage_mainview_text_04 {
  position: absolute;
  top: 86.5578%;
  left: 8.0567%;
  z-index: 2;
  width: 21.9482%;
}
.toppage_mainview_human {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
}

.toppage_mainview_human::after {
  content: "";
  position: absolute;
  top: 35.0277%;
  left: 0;
  z-index: 0;
  width: 44.5833%;
  aspect-ratio: 856/315;
  background-image: url("../images/toppage_mainview_line_02.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.toppage_mainview_human_01 {
  position: absolute;
  top: 12.3845%;
  left: 10.3125%;
  z-index: 1;
  width: 4.6354%;
}

.toppage_mainview_human_02 {
  position: absolute;
  top: 16.8207%;
  left: 22.2917%;
  z-index: 1;
  width: 7.6042%;
}

.toppage_mainview_human_03 {
  position: absolute;
  top: 17.1904%;
  left: 64.4271%;
  z-index: 1;
  width: 8.5938%;
}

.toppage_mainview_human_04 {
  position: absolute;
  top: 10.3512%;
  left: 79.375%;
  z-index: 1;
  width: 10.4688%;
}

.toppage_mainview_human_05 {
  position: absolute;
  top: 54.4362%;
  left: 2.3958%;
  z-index: 1;
  width: 11.3021%;
}

.toppage_mainview_human_06 {
  position: absolute;
  top: 42.4214%;
  left: 85.7292%;
  z-index: 1;
  width: 9.7396%;
}

.toppage_mainview_banner {
  --toppage-banner-fixed-bottom: 15px;
  position: absolute;
  top: 78.1885%;
  left: 69.5313%;
  z-index: 3;
  width: 25%;
  min-width: 352px;
  min-height: 132px;
  aspect-ratio: 8/3;
  overflow: hidden;
  visibility: hidden;
  transition: none;
}

.toppage_mainview_banner_image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  aspect-ratio: 8/3;
}

.toppage_mainview.is-hero-animation-complete .toppage_mainview_banner.is-position-ready {
  visibility: visible;
}

.toppage_mainview_banner.is-fixed {
  position: fixed;
  top: auto;
  right: max(5.4687%, 92px);
  bottom: var(--toppage-banner-fixed-bottom);
  left: auto;
  z-index: 900;
}

@media only screen and (max-width: 768px) {
  .toppage_mainview_banner {
    --toppage-banner-fixed-bottom: 5px;
    min-width: 320px;
    min-height: 120px;
  }
  .toppage_mainview_banner.is-fixed {
    right: 60px;
    left: auto;
    transform: none;
  }
}
.toppage_mainview_banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(255, 255, 255, 0);
  pointer-events: none;
  transition: background-color var(--trans_300ms);
}

.toppage_mainview_banner:hover::after,
.toppage_mainview_banner:active::after,
.toppage_mainview_banner:focus-visible::after {
  background-color: rgba(255, 255, 255, 0.3);
}

/**************************************************
 * PAGE ANIMATION
 **************************************************/
/* section scroll reveal */
[data-reveal].is-reveal-ready {
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  transition: opacity 1000ms cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms), transform 1200ms cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms);
}

[data-reveal].is-reveal-ready.is-reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* support page guided reveal */
.support01_heading[data-reveal].is-reveal-ready,
.support01_list[data-reveal].is-reveal-ready,
.support01_photos[data-reveal].is-reveal-ready,
.support02_heading[data-reveal].is-reveal-ready {
  opacity: 1;
  transform: none;
  transition: none;
}

.support01_heading[data-reveal].is-reveal-ready .support_ringtitle,
.support02_heading[data-reveal].is-reveal-ready .support_ringtitle {
  opacity: 0;
  transform: scale(0.9);
  transform-origin: 50% 50%;
  transition: opacity 800ms cubic-bezier(0.22, 1, 0.36, 1), transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
}

.support01_heading[data-reveal].is-reveal-ready .support_title,
.support02_heading[data-reveal].is-reveal-ready .support_title {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1), transform 850ms cubic-bezier(0.22, 1, 0.36, 1);
}

.support01_heading[data-reveal].is-reveal-ready .support_label,
.support02_heading[data-reveal].is-reveal-ready .support_label {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1) 140ms, transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 140ms;
}

.support01_heading[data-reveal].is-reveal-ready.is-reveal-visible .support_ringtitle,
.support02_heading[data-reveal].is-reveal-ready.is-reveal-visible .support_ringtitle,
.support01_heading[data-reveal].is-reveal-ready.is-reveal-visible .support_title,
.support02_heading[data-reveal].is-reveal-ready.is-reveal-visible .support_title,
.support01_heading[data-reveal].is-reveal-ready.is-reveal-visible .support_label,
.support02_heading[data-reveal].is-reveal-ready.is-reveal-visible .support_label {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.support01_image[data-reveal].is-reveal-ready {
  --support01-image-delay: 250ms;
  opacity: 0;
  transform: translate3d(0, 18px, 0) scale(0.98);
  transition: opacity 850ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-image-delay), transform 1200ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-image-delay);
  will-change: opacity, transform;
}

.support01_image[data-reveal].is-reveal-ready img {
  transform: scale(1.06);
  transform-origin: 50% 50%;
  clip-path: inset(0 100% 0 0);
  transition: transform 1400ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-image-delay), clip-path 1100ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-image-delay);
}

.support01_image[data-reveal].is-reveal-ready.is-reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.support01_image[data-reveal].is-reveal-ready.is-reveal-visible img {
  transform: scale(1);
  clip-path: inset(0);
}

.support01_list[data-reveal].is-reveal-ready .support01_item {
  opacity: 0;
  transform: translate3d(16px, 0, 0);
  transition: opacity 500ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-list-delay), transform 650ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-list-delay);
}

.support01_list[data-reveal].is-reveal-ready .support01_item::before {
  transform: scale(0);
  transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-list-delay);
}

.support01_list[data-reveal].is-reveal-ready .support01_item:nth-child(1) {
  --support01-list-delay: 420ms;
}

.support01_list[data-reveal].is-reveal-ready .support01_item:nth-child(2) {
  --support01-list-delay: 560ms;
}

.support01_list[data-reveal].is-reveal-ready.is-reveal-visible .support01_item {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.support01_list[data-reveal].is-reveal-ready.is-reveal-visible .support01_item::before {
  transform: scale(1);
}

.support01_photos[data-reveal].is-reveal-ready .support01_photo:nth-child(1) {
  --support01-photo-delay: 700ms;
}

.support01_photos[data-reveal].is-reveal-ready .support01_photo:nth-child(2) {
  --support01-photo-delay: 860ms;
}

.support01_photos[data-reveal].is-reveal-ready .support01_photo img {
  opacity: 0;
  transform: scale(1.08);
  clip-path: circle(0 at 50% 50%);
  transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-photo-delay), transform 1300ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-photo-delay), clip-path 1200ms cubic-bezier(0.22, 1, 0.36, 1) var(--support01-photo-delay);
}

.support01_photos[data-reveal].is-reveal-ready .support01_photo_title {
  opacity: 0;
  transform: translate(-50%, -10px);
  transition: opacity 500ms cubic-bezier(0.22, 1, 0.36, 1) calc(var(--support01-photo-delay) + 180ms), transform 600ms cubic-bezier(0.22, 1, 0.36, 1) calc(var(--support01-photo-delay) + 180ms);
}

.support01_photos[data-reveal].is-reveal-ready.is-reveal-visible .support01_photo img {
  opacity: 1;
  transform: scale(1);
  clip-path: circle(75% at 50% 50%);
}

.support01_photos[data-reveal].is-reveal-ready.is-reveal-visible .support01_photo_title {
  opacity: 1;
  transform: translate(-50%, 0);
}

.support02_image[data-reveal].is-reveal-ready {
  opacity: 0;
  filter: blur(3px);
  transform: translate3d(0, 42px, 0) scale(0.97);
  transition: opacity 1600ms cubic-bezier(0.4, 0, 0.2, 1) var(--support02-card-delay), filter 1600ms cubic-bezier(0.4, 0, 0.2, 1) var(--support02-card-delay), transform 2000ms cubic-bezier(0.22, 0.61, 0.36, 1) var(--support02-card-delay);
  will-change: opacity, filter, transform;
}

.support02_image:nth-child(2n+1)[data-reveal].is-reveal-ready img {
  clip-path: inset(0 100% 0 0 round 80px);
}

.support02_image:nth-child(2n)[data-reveal].is-reveal-ready img {
  clip-path: inset(0 0 0 100% round 80px);
}

.support02_image:nth-child(4n+1)[data-reveal].is-reveal-ready {
  --support02-card-delay: 0ms;
}

.support02_image:nth-child(4n+2)[data-reveal].is-reveal-ready {
  --support02-card-delay: 220ms;
}

.support02_image:nth-child(4n+3)[data-reveal].is-reveal-ready {
  --support02-card-delay: 440ms;
}

.support02_image:nth-child(4n)[data-reveal].is-reveal-ready {
  --support02-card-delay: 660ms;
}

.support02_image[data-reveal].is-reveal-ready img {
  transform: scale(1.06);
  transform-origin: 50% 50%;
  transition: transform 1800ms cubic-bezier(0.33, 1, 0.68, 1) var(--support02-card-delay), clip-path 1600ms cubic-bezier(0.33, 1, 0.68, 1) var(--support02-card-delay);
}

.support02_image[data-reveal].is-reveal-ready .support02_image_title {
  opacity: 0;
  transform: translate3d(-16px, 0, 0);
  transition: opacity 1000ms cubic-bezier(0.22, 1, 0.36, 1) calc(var(--support02-card-delay) + 360ms), transform 1200ms cubic-bezier(0.22, 1, 0.36, 1) calc(var(--support02-card-delay) + 360ms);
}

.support02_image[data-reveal].is-reveal-ready.is-reveal-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
}

.support02_image[data-reveal].is-reveal-ready.is-reveal-visible img {
  transform: scale(1);
  clip-path: inset(0 round 80px);
}

.support02_image[data-reveal].is-reveal-ready.is-reveal-visible .support02_image_title {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.support01_more[data-reveal].is-reveal-ready,
.support02_more[data-reveal].is-reveal-ready {
  --support-more-delay: 150ms;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1) var(--support-more-delay), transform 750ms cubic-bezier(0.22, 1, 0.36, 1) var(--support-more-delay);
}

.support01_more[data-reveal].is-reveal-ready .support_more_arrow,
.support02_more[data-reveal].is-reveal-ready .support_more_arrow {
  transform: scale(0.9);
  transition: transform 750ms cubic-bezier(0.22, 1, 0.36, 1) calc(var(--support-more-delay) + 120ms);
}

.support01_more[data-reveal].is-reveal-ready.is-reveal-visible,
.support02_more[data-reveal].is-reveal-ready.is-reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.support01_more[data-reveal].is-reveal-ready.is-reveal-visible .support_more_arrow,
.support02_more[data-reveal].is-reveal-ready.is-reveal-visible .support_more_arrow {
  transform: scale(1);
}

@media only screen and (max-width: 768px) {
  .support01_image[data-reveal].is-reveal-ready {
    --support01-image-delay: 100ms;
  }
  .support01_image[data-reveal].is-reveal-ready img {
    clip-path: inset(100% 0 0 0);
  }
  .support01_list[data-reveal].is-reveal-ready .support01_item:nth-child(1) {
    --support01-list-delay: 100ms;
  }
  .support01_list[data-reveal].is-reveal-ready .support01_item:nth-child(2) {
    --support01-list-delay: 240ms;
  }
  .support01_photos[data-reveal].is-reveal-ready .support01_photo:nth-child(1) {
    --support01-photo-delay: 100ms;
  }
  .support01_photos[data-reveal].is-reveal-ready .support01_photo:nth-child(2) {
    --support01-photo-delay: 260ms;
  }
  .support02_image:nth-child(n)[data-reveal].is-reveal-ready {
    --support02-card-delay: 120ms;
  }
  .support02_image:nth-child(n)[data-reveal].is-reveal-ready img {
    clip-path: inset(100% 0 0 0 round 48px);
  }
  .support02_image[data-reveal].is-reveal-ready.is-reveal-visible img {
    clip-path: inset(0 round 48px);
  }
}
/* mainview animation */
@property --hero-line-progress {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}
.toppage_mainview_title_webgl {
  position: absolute;
  inset: 0;
  z-index: 4;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.toppage_mainview_title_canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_wrapper::before {
  opacity: 0;
  transform: translateZ(0) scale(0.985);
  transform-origin: 100% 50%;
  will-change: opacity, transform;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_wrapper::after {
  --hero-line-progress: 0;
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  transform: translate3d(-2%, 0, 0) scaleX(0.96) scaleY(0.58) skewY(-1.4deg);
  transform-origin: 50% 55%;
  will-change: opacity, clip-path, transform;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_human::after {
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  transform: translate3d(-3%, 0, 0);
  will-change: opacity, clip-path, transform;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_text_01,
.toppage_mainview.is-hero-webgl .toppage_mainview_text_02,
.toppage_mainview.is-hero-webgl .toppage_mainview_text_03,
.toppage_mainview.is-hero-webgl .toppage_mainview_text_04 {
  opacity: 0;
  transform-origin: 50% 50%;
  will-change: opacity, transform, filter;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_text_03,
.toppage_mainview.is-hero-webgl .toppage_mainview_text_04 {
  clip-path: inset(0 100% 0 0);
  will-change: opacity, transform, clip-path;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_human_01,
.toppage_mainview.is-hero-webgl .toppage_mainview_human_02,
.toppage_mainview.is-hero-webgl .toppage_mainview_human_03,
.toppage_mainview.is-hero-webgl .toppage_mainview_human_04,
.toppage_mainview.is-hero-webgl .toppage_mainview_human_05,
.toppage_mainview.is-hero-webgl .toppage_mainview_human_06 {
  opacity: 0;
  transform: translate3d(0, 18px, 0) scale(0.975);
  will-change: opacity, transform;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_human_01 {
  --hero-person-delay: 60ms;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_human_02 {
  --hero-person-delay: 210ms;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_human_03 {
  --hero-person-delay: 360ms;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_human_04 {
  --hero-person-delay: 510ms;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_human_05 {
  --hero-person-delay: 660ms;
}

.toppage_mainview.is-hero-webgl .toppage_mainview_human_06 {
  --hero-person-delay: 810ms;
}

.toppage_mainview.is-hero-webgl.is-hero-visible .toppage_mainview_wrapper::before {
  opacity: 1;
  transform: translateZ(0) scale(1);
  animation: toppage-mainview-circle-entrance 1600ms ease-out both;
}

.toppage_mainview.is-hero-webgl-ready.is-hero-visible .toppage_mainview_title_webgl {
  visibility: visible;
  opacity: 1;
  transition: opacity 80ms linear;
}

.toppage_mainview.is-hero-webgl.is-hero-title-settling .toppage_mainview_text_01,
.toppage_mainview.is-hero-webgl.is-hero-title-settling .toppage_mainview_text_02 {
  opacity: 0;
  animation: none;
}

.toppage_mainview.is-hero-webgl.is-hero-title-settling .toppage_mainview_text_03 {
  animation: toppage-mainview-title-wipe-in 620ms cubic-bezier(0.4, 0, 0.2, 1) both;
  animation-delay: 100ms;
}

.toppage_mainview.is-hero-webgl.is-hero-title-settled .toppage_mainview_title_webgl {
  visibility: hidden;
  opacity: 0;
  transition: none;
}

.toppage_mainview.is-hero-webgl.is-hero-title-settled .toppage_mainview_text_01,
.toppage_mainview.is-hero-webgl.is-hero-title-settled .toppage_mainview_text_02,
.toppage_mainview.is-hero-webgl.is-hero-title-settled .toppage_mainview_text_03 {
  opacity: 1;
  transform: none;
  filter: none;
  clip-path: inset(0);
}

.toppage_mainview.is-hero-webgl.is-hero-title-settled .toppage_mainview_text_04 {
  transform: none;
  filter: none;
}

.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_wrapper::after {
  animation: toppage-mainview-line-flow-in 1360ms cubic-bezier(0.4, 0, 0.2, 1) 100ms both;
}

.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_text_04 {
  clip-path: inset(0 var(--hero-text04-clip-right, 100%) 0 0);
  animation: none;
}

.toppage_mainview.is-hero-webgl.is-hero-content-visible.is-hero-text04-revealing .toppage_mainview_text_04 {
  opacity: 1;
}

.toppage_mainview.is-hero-webgl-fallback .toppage_mainview_wrapper::after,
.toppage_mainview.is-hero-webgl-fallback .toppage_mainview_text_04 {
  clip-path: inset(0);
}

.toppage_mainview.is-hero-webgl-fallback .toppage_mainview_text_04 {
  opacity: 1;
}

.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_human::after {
  opacity: 1;
  clip-path: inset(0);
  transform: translate3d(0, 0, 0);
  transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1) 120ms, clip-path 1450ms cubic-bezier(0.22, 1, 0.36, 1) 120ms, transform 1450ms cubic-bezier(0.22, 1, 0.36, 1) 120ms;
}

.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_human_01,
.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_human_02,
.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_human_03,
.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_human_04,
.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_human_05,
.toppage_mainview.is-hero-webgl.is-hero-content-visible .toppage_mainview_human_06 {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1) var(--hero-person-delay), transform 1150ms cubic-bezier(0.22, 1, 0.36, 1) var(--hero-person-delay);
}

@keyframes toppage-mainview-title-wipe-in {
  0% {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transform: translate3d(-8px, 0, 0);
  }
  12% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    clip-path: inset(0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes toppage-mainview-line-flow-in {
  0% {
    --hero-line-progress: 0;
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transform: translate3d(0, 2%, 0) scaleY(0.88);
  }
  100% {
    --hero-line-progress: 1;
    opacity: 1;
    clip-path: inset(0);
    transform: translate3d(0, 0, 0) scaleY(1);
  }
}
@keyframes toppage-mainview-circle-entrance {
  0% {
    opacity: 0;
    transform: translateZ(0) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translateZ(0) scale(1);
  }
}
/**************************************************
 * PAGE ANIMATION END
 **************************************************/
/* common button */
.more_btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 250px;
  height: 50px;
  padding-right: 24px;
  padding-left: 28px;
  border-radius: 999px;
  color: #fff;
  background-color: var(--basecolor);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 1.6px;
}

.more_btn::after {
  content: "";
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
  transform: rotate(45deg);
}

.more_btn:focus,
.more_btn:visited,
.more_btn:focus-visible {
  color: #fff;
}

.more_btn:hover,
.more_btn:active {
  color: rgba(255, 255, 255, 0.5);
}

/* toppage information */
.toppage_bgwrapper {
  position: relative;
  overflow: hidden;
  background-color: #fff;
}

.toppage_info {
  position: relative;
  z-index: 1;
  padding-top: 74px;
  padding-bottom: 116px;
  background-color: transparent;
}

.toppage_info_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.toppage_info_wrapper > .toppage_info_title {
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--blue1C4591);
  font-family: "Roboto", sans-serif;
  font-size: clamp(30px, 1.875vw, 36px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 1.8px;
}

.toppage_info_wrapper > .toppage_info_title::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: rgba(28, 69, 145, 0.61);
}

.toppage_info_body {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-top: 36px;
}

.toppage_info_body_wrapper {
  width: 77.8125%;
  min-width: 0;
}

.toppage_info_category {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.toppage_info_category_item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 0;
  height: 28px;
  padding-right: 30px;
  padding-left: 30px;
  border: 1px solid #d8d8d8;
  border-radius: 999px;
  color: #949699;
  background-color: #fff;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.875px;
  font-family: inherit;
  cursor: pointer;
}

.toppage_info_list[hidden] {
  display: none;
}

.toppage_info_category_item:focus,
.toppage_info_category_item:visited,
.toppage_info_category_item:focus-visible {
  color: #949699;
}

.toppage_info_category_item:hover,
.toppage_info_category_item:active {
  color: var(--blue34599A);
  border-color: var(--blue34599A);
}

.toppage_info_category_item.is-current {
  border-color: #000;
  color: #fff;
  background-color: #000;
  font-weight: 700;
}

.toppage_info_category_item.is-current:focus,
.toppage_info_category_item.is-current:visited,
.toppage_info_category_item.is-current:focus-visible {
  color: #fff;
}

.toppage_info_category_item.is-current:hover,
.toppage_info_category_item.is-current:active {
  color: rgba(255, 255, 255, 0.5);
}

.toppage_info_list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 380px));
  justify-content: space-between;
  gap: 30px;
  margin-top: 43px;
}

.toppage_info_article {
  display: block;
  min-width: 0;
}

.toppage_info_article_image {
  width: 100%;
  aspect-ratio: 380/230;
  overflow: hidden;
  transition: opacity var(--trans_300ms);
}

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

.toppage_info_article:hover .toppage_info_article_image,
.toppage_info_article:active .toppage_info_article_image,
.toppage_info_article:focus-visible .toppage_info_article_image {
  opacity: 0.6;
}

.toppage_info_article_wrapper {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 12px;
}

.toppage_info_article_date {
  color: var(--basecolor);
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.35px;
}

.toppage_info_article_tag {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 77px;
  height: 22px;
  border-radius: 5px;
  color: #fff;
  background-color: var(--blue34599A);
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.78px;
}

.toppage_info_list .toppage_info_title {
  margin-top: 14px;
  color: var(--basecolor);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.8px;
}

.toppage_info_button {
  flex-shrink: 0;
  padding-bottom: 12px;
}

/* toppage cross-section background */
.toppage_crosssection {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.toppage_crosssection_background {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.toppage_crosssection_background > span,
.toppage_business_background_anchor > span,
.toppage_crosssection_project_background > span {
  position: absolute;
  display: block;
  pointer-events: none;
}

.toppage_crosssection_blur {
  width: 54.6354%;
  aspect-ratio: 1049/906;
  background-image: url("../images/toppage_project_bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.toppage_crosssection_blur--business {
  top: -14.375vw;
  left: -30.2604%;
}

.toppage_business_background_anchor {
  position: relative;
  z-index: 0;
  height: 0;
  pointer-events: none;
}

.toppage_crosssection_blur--project {
  top: -14.8958vw;
  left: 71.875%;
}

.toppage_crosssection_project_background {
  position: relative;
  z-index: 0;
  height: 0;
  pointer-events: none;
}

.toppage_crosssection_texture {
  top: 28.59375vw;
  right: -2.1875%;
  bottom: 0;
  left: -2.1875%;
  background-color: #f2f1f2;
  background-image: url("../images/toppage_bg_noise.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.toppage_crosssection_business_circle {
  top: 0;
  left: 48.6458%;
  width: 56.7188%;
  aspect-ratio: 1089/1051;
  background-image: url("../images/toppage_business_bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* toppage business */
.toppage_business {
  position: relative;
  z-index: 1;
  padding-top: 95px;
  padding-bottom: 287px;
  background-color: transparent;
}

.toppage_business_wrapper {
  position: relative;
  z-index: 1;
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.toppage_business_head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}

.toppage_business_title {
  color: #2a477b;
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
}

.toppage_business_subtitle {
  margin-top: 14px;
  color: var(--basecolor);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.toppage_business_button {
  width: 280px;
  height: 60px;
  padding-right: 26px;
  padding-left: 32px;
  border: 1px solid #fff;
  color: #fff;
  background-color: transparent;
  font-size: 18px;
  letter-spacing: 1.8px;
  transform: translateY(9px);
}

.toppage_business_button::after {
  width: 10px;
  height: 16px;
  border: 0;
  background-image: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjEwLjA1MDciIGhlaWdodD0iMTUuOTEzMiIgdmlld0JveD0iMCAwIDEwLjA1MDcgMTUuOTEzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggaWQ9IlZlY3RvciAxIiBkPSJNMC45MjUzMTcgMC45NTM0NTdDMC45MjUzMTcgMC45NTM0NTcgOC44MDAzNiA3LjYyODM3IDguODAwNzMgNy45NTM0NkM4LjgwMTA5IDguMjc4NTQgMC44MDA3MjUgMTQuOTUzNSAwLjgwMDcyNSAxNC45NTM1IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVqb2luPSJiZXZlbCIvPgo8L3N2Zz4K");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: none;
}

.toppage_business_button:focus,
.toppage_business_button:visited,
.toppage_business_button:focus-visible {
  color: #fff;
}

.toppage_business_button:hover,
.toppage_business_button:active {
  border-color: rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.5);
  background-color: rgba(255, 255, 255, 0.12);
}

.toppage_business_line {
  width: 100%;
  height: 1px;
  margin-top: 42px;
  background-color: #f7f1f2;
}

.toppage_business_list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 49px;
}

.toppage_business_listitem {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 84px;
  grid-template-rows: 1fr auto;
  overflow: hidden;
  aspect-ratio: 400/476;
  padding-left: 24px;
  color: #fff;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.toppage_business_listitem::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background-color: rgba(255, 255, 255, 0);
  pointer-events: none;
  transition: background-color var(--trans_300ms);
}

.toppage_business_listitem:hover::before,
.toppage_business_listitem:active::before,
.toppage_business_listitem:focus-visible::before {
  background-color: rgba(255, 255, 255, 0.3);
}

.toppage_business_listitem:nth-child(1) {
  background-image: url("../images/toppage_business_engineer.webp");
}

.toppage_business_listitem:nth-child(2) {
  background-image: url("../images/toppage_business_building.webp");
}

.toppage_business_listitem:nth-child(3) {
  background-image: url("../images/toppage_business_iconst.webp");
}

.toppage_business_listitem:nth-child(4) {
  background-image: url("../images/toppage_business_tech.webp");
}

.toppage_business_listitem:focus,
.toppage_business_listitem:visited,
.toppage_business_listitem:focus-visible,
.toppage_business_listitem:hover,
.toppage_business_listitem:active {
  color: #fff;
}

.toppage_business_listitem_wrapper {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
  padding-bottom: 23px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.toppage_business_listitem:nth-child(3) .toppage_business_listitem_wrapper {
  gap: 13px;
}

.toppage_business_listitem_title {
  min-width: 0;
  color: #fff;
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.9px;
  text-shadow: 0 0 8px #7d7d7d;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.toppage_business_listitem:nth-child(3) .toppage_business_listitem_title {
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: 0.75px;
}

.toppage_business_listitem_subtitle {
  min-width: 0;
  padding-left: 3px;
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.45px;
  text-shadow: 0 0 8px #7d7d7d;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.toppage_business_listitem_button {
  position: relative;
  grid-column: 2;
  grid-row: 2;
  align-self: end;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 64px;
  margin-bottom: 22px;
}

.toppage_business_listitem_button::before {
  content: "";
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background-color: #fff;
  transition: background-color var(--trans_300ms);
}

.toppage_business_listitem_button::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13px;
  height: 21px;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAVCAYAAACdbmSKAAACMklEQVR4AXxSTWtTURA9c1/aaBJrbHHjP3DdhQtBEoW2r4K4MCSigrYQtAXbChWrpCGiFLURcSFYRLppUshGSIwgJu1v8B/oSpAUP0iM7cubznt5SfPStMPcuTPnzrnnfYxC0yg8Fp06fzH2ZnQ0MtiEDo5qeDjeFxqLRpVSaTDd2dE8i5FI5OjBFEAdP/nrCil6z8ARp3Fmq+pJHUZURNopBSKHYG9ywXyl6lnUdd1rA11BlT5l0ybwSFj1rrMHdQQfiqLWhUNZwEYx+1JuTwG0gw4T/USlqi10QHZqk6xsyG+8IOIn0ijCFmIvEkuE9av37coJbVIul2s0qt7nbGJJzkRYojgz+pWiZHg8Niel7W2SVW1urtaHAsZTMKel7iCyTxQfXxiPTQvefCcraS1R/Of3DCQBfkWEvUdlBAB6JkMQdynBsXx+pebl3wvMtOJA9saAX4bgdU+S1fFXnfAxzD4rdy1CpScpdPlm0AteJtBkF+EHk7q1j6Tr1wZou77MjAkXAfjJRJPlwtpnF+nspYljdTKX9ikIgTTENwqZonVRmzQycsPvNWopAqasg9aSektGc7qUz35oYTZJl8Fs9BtJgGbRYQT8gaK75Y+ZXAcMFQpFAv8RTIBxTw6kT6I4EdUYPFMqZNakdLlSfu02Kcg/QXuaibDNZM6Wi+urrm6nUDD5q3yp704NkTIknysX1t/J3tPVuTOnvzA3rkv3N1EwmTA/6DPeSrcMgMQevgsAAP//bwFosAAAAAZJREFUAwA0+KzKC//+uwAAAABJRU5ErkJggg==");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
}

.toppage_business_listitem:hover .toppage_business_listitem_button::before,
.toppage_business_listitem:active .toppage_business_listitem_button::before {
  background-color: rgba(255, 255, 255, 0.7);
}

/* toppage project */
.toppage_project {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding-top: 120px;
  padding-bottom: 140px;
  background-color: transparent;
}

.toppage_project_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.toppage_project_head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}

.toppage_project_title {
  color: var(--blue34599A);
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
}

.toppage_project_subtitle {
  margin-top: 17px;
  color: var(--basecolor);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.toppage_project_button {
  width: 280px;
  height: 60px;
  padding-right: 28px;
  padding-left: 34px;
  margin-bottom: 1px;
  background-color: var(--blue34599A);
  font-size: 18px;
  letter-spacing: 1.8px;
}

.toppage_project_line {
  width: 100%;
  height: 1px;
  margin-top: 29px;
  background-color: #D5D5D5;
}

.toppage_project_text {
  max-width: 1000px;
  margin-top: 17px;
  color: #2F3440;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.88;
  letter-spacing: 0.45px;
}

.toppage_project_slider {
  width: 87.34375%;
  padding-left: 5.36458%;
  margin-top: 70px;
  margin-left: 12.65625%;
}

.toppage_project_slider .splide__track {
  overflow: hidden;
}

.toppage_project_slider .splide__slide {
  aspect-ratio: 500/550;
  background-color: #f5f6f8;
  box-shadow: 0 5px 18px rgba(52, 89, 154, 0.12);
}

.toppage_project_card {
  display: block;
  width: 100%;
  height: 100%;
  padding: 4%;
  color: var(--basecolor);
}

.toppage_project_card:focus,
.toppage_project_card:visited,
.toppage_project_card:focus-visible {
  color: var(--basecolor);
}

.toppage_project_card:hover,
.toppage_project_card:active {
  color: var(--blue34599A);
}

.toppage_project_image {
  width: 100%;
  aspect-ratio: 460/350;
  overflow: hidden;
  transition: opacity var(--trans_300ms);
}

.toppage_project_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--trans_300ms);
}

.toppage_project_card:hover .toppage_project_image img,
.toppage_project_card:active .toppage_project_image img {
  transform: scale(1.03);
}

.toppage_project_card:hover .toppage_project_image,
.toppage_project_card:active .toppage_project_image,
.toppage_project_card:focus-visible .toppage_project_image {
  opacity: 0.6;
}

.toppage_project_meta {
  margin-top: 27px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.78px;
}

.toppage_project_card_title {
  margin-top: 13px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.8px;
}

.toppage_project_slider .splide__arrows {
  position: absolute;
  bottom: 1px;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.toppage_project_slider .splide__arrow {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background-color: transparent;
  cursor: pointer;
  transition: var(--trans_300ms);
}

.toppage_project_slider .splide__arrow::before {
  content: "";
  display: block;
  flex-shrink: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.toppage_project_slider .splide__arrow--prev {
  background-color: var(--basecolor);
}

.toppage_project_slider .splide__arrow--prev::before {
  width: 9px;
  height: 9px;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAnElEQVR4AWzNsQ7BUBQG4LYTk4nZO0iMRrGLRSJi8AAST+AhjBaxMVqsJoPZKFaJxSrUdzvcpW3Ol95zz9/TLKl48jzPaDHjXgq5bPhuwJYN7RgyrNNzueZAn6LC2jDs6FbsGVMjVtjU1e1Y0qRUIfR0e+bBh1JlaZremJsMCb97ef+IFTYVjeDVYcKUE2+KiqHQCX45Oo9YcCH5AwAA///9QcbdAAAABklEQVQDACp4MTzKPWbpAAAAAElFTkSuQmCC");
}

.toppage_project_slider .splide__arrow--next {
  border: 1px solid var(--basecolor);
  background-color: #fff;
}

.toppage_project_slider .splide__arrow--next::before {
  width: 8px;
  height: 9px;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAJCAYAAAAPU20uAAAAk0lEQVR4AXSPPQ6CMBiGbTt5EjcX49C0g6OOegS9gffwCHoEVxhJaCfCATgJEykPBRJISvP265vvffonrbUV86213u8SQ9I7Mj9KqRLwjl9JhhDaqXNi/QNlxhiLjxpOiGZRrkKIAvALeEgBA6soT8BqCyAftQV0xD/ed04BOcHFOffy3jeSe+b/1+x6ENwIHD6qBwAA///o8SkbAAAABklEQVQDAJI6Jvj4b9sNAAAAAElFTkSuQmCC");
}

.toppage_project_slider .splide__arrow--prev:hover {
  opacity: 0.6;
}

.toppage_project_slider .splide__arrow--next:hover {
  background-color: #e5e5e5;
}

.toppage_project_slider .splide__arrow:disabled {
  opacity: 1;
  cursor: default;
}

.toppage_project_slider .splide__arrow svg {
  display: none;
}

/* toppage company */
.toppage_company {
  min-height: 895px;
  color: #fff;
  background-color: var(--blue1C4591);
  background-image: url("../images/toppage_company_bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.toppage_company_wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 90%;
  max-width: 710px;
  padding-top: 184px;
  margin-right: auto;
  margin-left: auto;
  color: #fff;
  text-align: center;
}

.toppage_company_title {
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
}

.toppage_company_subtitle {
  margin-top: 13px;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.toppage_company_text {
  width: 100%;
  margin-top: 51px;
  color: #fff;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.88;
  letter-spacing: 0.45px;
}

.toppage_company_button {
  width: 280px;
  height: 60px;
  padding-right: 26px;
  padding-left: 32px;
  margin-top: 64px;
  color: #fff;
  background-color: var(--blue34599A);
  font-size: 18px;
  letter-spacing: 1.8px;
}

.toppage_company_button::after {
  width: 10px;
  height: 16px;
  border: 0;
  background-image: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjEwLjA1MDciIGhlaWdodD0iMTUuOTEzMiIgdmlld0JveD0iMCAwIDEwLjA1MDcgMTUuOTEzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggaWQ9IlZlY3RvciAxIiBkPSJNMC45MjUzMTcgMC45NTM0NTdDMC45MjUzMTcgMC45NTM0NTcgOC44MDAzNiA3LjYyODM3IDguODAwNzMgNy45NTM0NkM4LjgwMTA5IDguMjc4NTQgMC44MDA3MjUgMTQuOTUzNSAwLjgwMDcyNSAxNC45NTM1IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVqb2luPSJiZXZlbCIvPgo8L3N2Zz4K");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: none;
}

.toppage_company_button:focus,
.toppage_company_button:visited,
.toppage_company_button:focus-visible {
  color: #fff;
}

.toppage_company_button:hover,
.toppage_company_button:active {
  color: rgba(255, 255, 255, 0.5);
  background-color: var(--blue1C4591);
}

/* toppage recruit */
.toppage_recruit {
  padding-top: 141px;
  padding-bottom: 149px;
  background-color: #fff;
}

.toppage_recruit_wrapper {
  width: 83.3333%;
  max-width: 1072px;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.toppage_recruit_title {
  color: var(--blue34599A);
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
}

.toppage_recruit_subtitle {
  margin-top: 11px;
  color: var(--basecolor);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.toppage_recruit_text {
  margin-top: 33px;
  color: #2f3440;
  font-size: 18px;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.45px;
}

.toppage_recruit .text_redE94360 {
  color: #e94360;
  letter-spacing: 0.4px;
}

.toppage_recruit_list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
  margin-top: 55px;
}

.toppage_recruit_listitem {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  height: 240px;
  padding-top: 32px;
  background-color: #fff;
  box-shadow: 0 0 17px rgba(52, 89, 154, 0.12);
}

.toppage_recruit_listitem_number {
  position: absolute;
  top: -29px;
  left: -27px;
  z-index: 1;
  width: 78px;
}

.toppage_recruit_listitem_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 100px;
}

.toppage_recruit_listitem_icon_money {
  width: 91px;
}

.toppage_recruit_listitem_icon_newcar {
  width: 100px;
}

.toppage_recruit_listitem_icon_retire {
  width: 71px;
}

.toppage_recruit_listitem_text {
  position: relative;
  z-index: 0;
  width: fit-content;
  padding-right: 8px;
  padding-left: 8px;
  color: var(--basecolor);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.33;
  letter-spacing: 0.6px;
}

.toppage_recruit_listitem_text:first-of-type {
  margin-top: 20px;
}

.toppage_recruit_listitem_text.text_highlight::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 19px;
  background-color: #9bdfe6;
}

.toppage_recruit_infant {
  display: grid;
  grid-template-columns: 30.6% 60.6%;
  align-items: center;
  min-height: 219px;
  margin-top: 18px;
  background-color: #fff;
  background-image: url("../images/toppage_recruit_line.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  box-shadow: 0 0 17px rgba(52, 89, 154, 0.12);
}

.toppage_recruit_infant_image {
  width: 192px;
  justify-self: center;
}

.toppage_recruit_infant_wrapper {
  min-width: 0;
}

.toppage_recruit_infant_headline {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 10px 20px;
  color: #fff;
  background-color: #255e97;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 2.4px;
}

.toppage_recruit_infant_support {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  margin-top: 13px;
}

.toppage_recruit_infant_support_title {
  flex-shrink: 0;
}

.toppage_recruit_infant_support_title_text {
  color: var(--basecolor);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.4px;
}

.toppage_recruit_infant_support_title_text.spacing_wide {
  padding-left: 16px;
  letter-spacing: 16px;
}

.toppage_recruit_infant_support_amount {
  display: flex;
  align-items: baseline;
  color: var(--basecolor);
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 2.4px;
  white-space: nowrap;
}

.toppage_recruit_infant_support_amount_largeblue {
  color: #255e97;
  font-size: 80px;
  font-weight: 900;
  letter-spacing: -24px;
}

.toppage_recruit_infant_support_amount_blue {
  margin-left: 16px;
  color: #255e97;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 2.4px;
}

.toppage_recruit_linklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-top: 19px;
}

.toppage_recruit_link_entry,
.toppage_recruit_link_benefits {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  min-height: 157px;
  padding-right: 100px;
  padding-left: 52px;
  border-radius: 10px;
  color: #fff;
  text-align: left;
}

.toppage_recruit_link_entry {
  background: linear-gradient(90deg, #3d8bd9, var(--blue34599A));
}

.toppage_recruit_link_benefits {
  background: linear-gradient(90deg, #aae4ff 0.56%, #2fb8ed);
}

.toppage_recruit_link_entry::after,
.toppage_recruit_link_benefits::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 43px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #fff;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAVCAYAAACdbmSKAAACMklEQVR4AXxSTWtTURA9c1/aaBJrbHHjP3DdhQtBEoW2r4K4MCSigrYQtAXbChWrpCGiFLURcSFYRLppUshGSIwgJu1v8B/oSpAUP0iM7cubznt5SfPStMPcuTPnzrnnfYxC0yg8Fp06fzH2ZnQ0MtiEDo5qeDjeFxqLRpVSaTDd2dE8i5FI5OjBFEAdP/nrCil6z8ARp3Fmq+pJHUZURNopBSKHYG9ywXyl6lnUdd1rA11BlT5l0ybwSFj1rrMHdQQfiqLWhUNZwEYx+1JuTwG0gw4T/USlqi10QHZqk6xsyG+8IOIn0ijCFmIvEkuE9av37coJbVIul2s0qt7nbGJJzkRYojgz+pWiZHg8Niel7W2SVW1urtaHAsZTMKel7iCyTxQfXxiPTQvefCcraS1R/Of3DCQBfkWEvUdlBAB6JkMQdynBsXx+pebl3wvMtOJA9saAX4bgdU+S1fFXnfAxzD4rdy1CpScpdPlm0AteJtBkF+EHk7q1j6Tr1wZou77MjAkXAfjJRJPlwtpnF+nspYljdTKX9ikIgTTENwqZonVRmzQycsPvNWopAqasg9aSektGc7qUz35oYTZJl8Fs9BtJgGbRYQT8gaK75Y+ZXAcMFQpFAv8RTIBxTw6kT6I4EdUYPFMqZNakdLlSfu02Kcg/QXuaibDNZM6Wi+urrm6nUDD5q3yp704NkTIknysX1t/J3tPVuTOnvzA3rkv3N1EwmTA/6DPeSrcMgMQevgsAAP//bwFosAAAAAZJREFUAwA0+KzKC//+uwAAAABJRU5ErkJggg==");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 13px 21px;
  transform: translateY(-50%);
  transition: opacity var(--trans_300ms);
}

.toppage_recruit_link_entry:focus,
.toppage_recruit_link_entry:visited,
.toppage_recruit_link_entry:focus-visible,
.toppage_recruit_link_benefits:focus,
.toppage_recruit_link_benefits:visited,
.toppage_recruit_link_benefits:focus-visible {
  color: #fff;
}

.toppage_recruit_link_title {
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.56px;
  transition: opacity var(--trans_300ms);
}

.toppage_recruit_link_subtitle {
  margin-top: 6px;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.36px;
  transition: opacity var(--trans_300ms);
}

.toppage_recruit_link_entry:hover .toppage_recruit_link_title,
.toppage_recruit_link_entry:active .toppage_recruit_link_title,
.toppage_recruit_link_entry:focus-visible .toppage_recruit_link_title,
.toppage_recruit_link_entry:hover .toppage_recruit_link_subtitle,
.toppage_recruit_link_entry:active .toppage_recruit_link_subtitle,
.toppage_recruit_link_entry:focus-visible .toppage_recruit_link_subtitle,
.toppage_recruit_link_benefits:hover .toppage_recruit_link_title,
.toppage_recruit_link_benefits:active .toppage_recruit_link_title,
.toppage_recruit_link_benefits:focus-visible .toppage_recruit_link_title,
.toppage_recruit_link_benefits:hover .toppage_recruit_link_subtitle,
.toppage_recruit_link_benefits:active .toppage_recruit_link_subtitle,
.toppage_recruit_link_benefits:focus-visible .toppage_recruit_link_subtitle {
  opacity: 0.5;
}

.toppage_recruit_link_entry:hover::after,
.toppage_recruit_link_entry:active::after,
.toppage_recruit_link_entry:focus-visible::after,
.toppage_recruit_link_benefits:hover::after,
.toppage_recruit_link_benefits:active::after,
.toppage_recruit_link_benefits:focus-visible::after {
  opacity: 0.7;
}

/*** business page ***/
/* business page mainview */
.business_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #f8fbfe;
}

.mainviewlong_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: 720px;
}

.business_mainview .mainviewlong_wrapper {
  aspect-ratio: 1920/1080;
}

.mainviewlong_text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 83.3333%;
  max-width: 1600px;
  padding-top: clamp(214px, 15.4167vw, 296px);
  margin-right: auto;
  margin-left: auto;
}

.mainviewlong_subtitle {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 14px;
  color: #3c3c3c;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.12px;
  white-space: nowrap;
}

.mainviewlong_subtitle::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #ff668e;
}

.mainviewlong_title {
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(80px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.mainviewlong_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.mainviewlong_bg_image {
  position: absolute;
  inset: 0;
}

.mainviewlong_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

.mainviewlong_bg_line {
  position: absolute;
  top: 0;
  left: 0;
  width: 23.3333%;
  max-width: 448px;
  aspect-ratio: 448/735;
}

.mainviewlong_bg_line img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left top;
}

/* business page service index */
.business_service {
  position: relative;
  z-index: 1;
  padding-top: 106px;
  padding-bottom: 120px;
  margin-top: -80px;
  border-radius: 80px 80px 0 0;
  background-color: #fff;
}

.business_service_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.business_service_title {
  color: var(--blue34599A);
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
  white-space: nowrap;
}

.business_service_subtitle {
  margin-top: 10px;
  color: var(--basecolor);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.business_service_list {
  display: flex;
  flex-direction: column;
  margin-top: 64px;
}

.business_service_card {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  overflow: hidden;
  min-width: 0;
  border-radius: 6px;
  background-color: #fff;
}

.business_service_image {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  aspect-ratio: 788/493;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover;
}

.business_service_image_civil {
  background-image: url("../images/business_01.webp");
}

.business_service_image_building {
  grid-column: 2;
  background-image: url("../images/business_02.webp");
}

.business_service_image_iconstruction {
  background-image: url("../images/business_03.webp");
}

.business_service_image_technology {
  grid-column: 2;
  background-image: url("../images/business_04.webp");
}

.business_service_body {
  position: relative;
  z-index: 2;
  display: flex;
  grid-column: 2;
  grid-row: 1;
  align-items: flex-end;
  justify-content: flex-end;
  min-width: 0;
  padding: 5.0761% 26px 3.6% 0;
}

.business_service_card_building > .business_service_body {
  grid-column: 1;
}

.business_service_card_technology > .business_service_body {
  grid-column: 1;
}

.business_service_link {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 50px;
  width: 100%;
  min-width: 0;
}

.business_service_name {
  flex-shrink: 0;
  color: var(--basecolor);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}

.business_service_name_iconstruction {
  flex-shrink: 1;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.business_service_arrow {
  flex-shrink: 0;
  width: clamp(72px, 7.7083vw, 148px);
  aspect-ratio: 1;
  background-image: url("../images/business_arrow.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: opacity var(--trans_300ms);
}

.business_service_arrow:hover {
  opacity: 0.6;
}

.business_service_kicker {
  position: absolute;
  z-index: 1;
  color: rgba(229, 236, 249, 0.85);
  font-family: "Roboto", sans-serif;
  font-size: clamp(86px, 8.3333vw, 160px);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: none;
}

.business_service_kicker_civil {
  top: 10.9533%;
  left: 22.6875%;
}

.business_service_kicker_building {
  top: 11.1562%;
  left: 0.8125%;
}

.business_service_kicker_iconstruction {
  top: 10.9533%;
  left: 33.6875%;
}

.business_service_kicker_technology {
  top: 8.1136%;
  left: 0.5625%;
  font-size: clamp(76px, 7.0833vw, 136px);
  line-height: 0.9;
}

@media only screen and (min-width: 1025px) {
  .business_service_kicker_civil,
  .business_service_kicker_iconstruction {
    right: 0.5%;
    left: auto;
  }
}
.business_service_kicker_line {
  line-height: 1.05;
}

.business_service_kicker_line_indent {
  margin-left: 34.5%;
}

/*** recruit page ***/
/* recruit page mainview */
.recruit_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.recruit_mainview_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(600px, 37.5vw, 720px);
}

.recruit_mainview_text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 83.3333%;
  max-width: 1600px;
  padding-top: calc(clamp(240px, 15.4167vw, 296px) - 40px);
  margin-right: auto;
  margin-left: auto;
}

.recruit_mainview_subtitle {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 14px;
  color: #1e2430;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.12px;
  white-space: nowrap;
}

.recruit_mainview_subtitle::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #ff668e;
}

.recruit_mainview_title {
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(80px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.recruit_mainview_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.recruit_mainview_bg_image {
  position: absolute;
  inset: 0;
}

.recruit_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/* recruit page contents */
.recruit_content {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: 24px;
  padding-bottom: 256px;
  background-color: #fff;
}

.recruit_content_bg {
  position: absolute;
  left: 0;
  z-index: 0;
  width: 100%;
  pointer-events: none;
}

.recruit_content_bg img {
  width: 100%;
  height: auto;
}

.recruit_content_bg_top {
  top: 0;
}

.recruit_content_bg_bottom {
  bottom: 105px;
}

.recruit_content_wrapper {
  position: relative;
  z-index: 1;
  width: calc(100% - 160px);
  max-width: 1760px;
  margin-right: auto;
  margin-left: auto;
}

.recruit_content_head {
  padding-left: 80px;
}

.recruit_content_title {
  color: #24509a;
  font-family: "Roboto", sans-serif;
  font-size: clamp(46px, 3.3333vw, 64px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 2.56px;
}

.recruit_content_subtitle {
  margin-top: 32px;
  color: #1e2430;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
  white-space: nowrap;
}

.recruit_card_grid {
  --recruit_card_height: clamp(220px, 17.7083vw, 340px);
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 96px;
}

.recruit_card_row {
  display: grid;
  margin-right: auto;
  margin-left: auto;
}

.recruit_card_row_top {
  grid-template-columns: 34.9206% 65.0794%;
  width: 71.5909%;
  max-width: 1260px;
}

.recruit_card_row_bottom {
  grid-template-columns: 65.0794% 34.9206%;
  width: 71.5909%;
  max-width: 1260px;
}

.recruit_card_row_middle {
  grid-template-columns: 34.0909% 31.8182% 34.0909%;
  align-items: center;
  width: 100%;
  min-height: calc(var(--recruit_card_height) + 64px);
}

.recruit_card {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: var(--recruit_card_height);
  border-radius: 6px;
  color: var(--basecolor);
}

.recruit_card:focus,
.recruit_card:visited,
.recruit_card:focus-visible {
  color: var(--basecolor);
}

.recruit_card_image,
.recruit_card_overlay {
  position: absolute;
  inset: 0;
}

.recruit_card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

.recruit_card_overlay {
  z-index: 1;
  border-radius: 6px;
  background-color: rgba(246, 253, 255, 0.7);
  transition: opacity var(--trans_300ms);
}

.recruit_card_title {
  position: absolute;
  top: 24px;
  left: 24px;
  z-index: 2;
  color: #79869d;
  font-family: "Roboto", sans-serif;
  font-size: clamp(38px, 2.7083vw, 52px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.04px;
  white-space: nowrap;
}

.recruit_card_button {
  position: absolute;
  bottom: 20px;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 24px;
  width: calc(100% - 20px);
  padding: 4px;
  border-radius: 0 60px 60px 0;
  background-color: rgba(255, 255, 255, 0.6);
  transition: background-color var(--trans_300ms);
}

.recruit_card_button_text {
  color: var(--basecolor);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 1.44px;
  white-space: nowrap;
  transition: color var(--trans_300ms);
}

.recruit_card_narrow .recruit_card_button_text {
  font-size: 26px;
  letter-spacing: 1.56px;
}

.recruit_card_arrow {
  flex-shrink: 0;
  width: clamp(72px, 5.2083vw, 100px);
  aspect-ratio: 1;
  background-image: url("../images/business_arrow.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: filter var(--trans_300ms);
}

.recruit_card:hover .recruit_card_overlay,
.recruit_card:active .recruit_card_overlay,
.recruit_card:focus-visible .recruit_card_overlay {
  opacity: 0;
}

.recruit_card:hover .recruit_card_button,
.recruit_card:active .recruit_card_button,
.recruit_card:focus-visible .recruit_card_button {
  background-color: #4166a7;
}

.recruit_card:hover .recruit_card_button_text,
.recruit_card:active .recruit_card_button_text,
.recruit_card:focus-visible .recruit_card_button_text {
  color: #fff;
}

.recruit_card:hover .recruit_card_arrow,
.recruit_card:active .recruit_card_arrow,
.recruit_card:focus-visible .recruit_card_arrow {
  filter: brightness(0) invert(1);
}

.recruit_card_insights {
  align-self: start;
}

.recruit_card_support {
  align-self: end;
}

.recruit_message {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 60px 30px;
  color: var(--basecolor);
  font-size: 34px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 1.36px;
}

.recruit_message_growth {
  align-items: center;
}

.recruit_message_future {
  align-items: flex-end;
}

/*** insights page ***/
/* insights page common heading */
.insights_heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.insights_title {
  color: #24509a;
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
  white-space: nowrap;
}

.insights_label {
  color: #1e2430;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

/* insights page data */
.insights01 {
  overflow: hidden;
  padding-top: 96px;
  padding-bottom: 120px;
  background-color: #fff;
}

.insights01_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.insights01_grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 44px;
}

.insights01_card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 256px;
  min-height: 256px;
  overflow: hidden;
  padding: 36px 32px 30px;
  border: 2px solid #cdd4dd;
  border-radius: 6px;
  background-color: #fff;
}

.insights01_card_title {
  position: relative;
  z-index: 1;
  color: var(--basecolor);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 2px;
}

.insights01_icon {
  position: absolute;
  pointer-events: none;
}

.insights01_icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.insights01_icon_bonus {
  top: 45px;
  right: 45px;
  width: 73px;
  height: 82px;
}

.insights01_icon_newhire {
  top: 146px;
  left: clamp(0px, 100% - 432px, 84px);
  width: 94px;
  height: 74px;
}

.insights01_icon_vacation {
  top: 132px;
  left: clamp(0px, 100% - 385px, 131px);
  width: 72px;
  height: 81px;
}

.insights01_icon_clock {
  top: 141px;
  left: clamp(0px, 100% - 374px, 142px);
  width: 76px;
  height: 74px;
}

.insights01_icon_parent {
  top: 42px;
  right: 40px;
  width: 64px;
  height: 76px;
}

.insights01_icon_child {
  top: 30px;
  right: 47px;
  width: 61px;
  height: 85px;
}

.insights01_metric {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  color: var(--basecolor);
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  white-space: nowrap;
}

.insights01_metric_note {
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 4px;
}

.insights01_metric_note_wide {
  letter-spacing: 2px;
}

.insights01_metric_num {
  flex-shrink: 0;
  color: var(--blue1C4591);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 4px;
}

.insights01_metric_unit {
  flex-shrink: 0;
  color: var(--blue1C4591);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 4px;
}

.insights01_metric_num_104 {
  font-size: 104px;
}

.insights01_metric_num_88 {
  font-size: 88px;
}

.insights01_metric_num_80 {
  font-size: 80px;
}

.insights01_metric_num_decimal {
  letter-spacing: -2px;
}

.insights01_metric_num_76 {
  font-size: 76px;
}

.insights01_metric_num_72 {
  font-size: 72px;
}

.insights01_metric_num_56 {
  font-size: 56px;
}

.insights01_metric_num_44 {
  color: var(--blue34599A);
  font-size: 44px;
}

.insights01_metric_unit_52 {
  font-size: 52px;
}

.insights01_metric_unit_44 {
  font-size: 44px;
}

.insights01_metric_unit_40 {
  font-size: 40px;
}

.insights01_metric_unit_38 {
  color: var(--blue34599A);
  font-size: 38px;
}

.insights01_metric_unit_36 {
  font-size: 36px;
}

.insights01_metric_unit_30 {
  color: var(--blue34599A);
  font-size: 30px;
}

.insights01_metric_unit_24 {
  font-size: 24px;
}

.insights01_metric_bonus {
  margin-top: auto;
}

.insights01_metric_newhire {
  justify-content: flex-end;
  margin-top: auto;
}

.insights01_metric_vacation {
  justify-content: flex-end;
  margin-top: auto;
}

.insights01_metric_overtime {
  justify-content: flex-end;
  margin-top: auto;
}

.insights01_card_parental {
  padding: 36px 20px 20px 26px;
}

.insights01_card_note {
  position: absolute;
  top: 95px;
  left: 26px;
  color: var(--basecolor);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.insights01_metric_parent_count {
  position: absolute;
  top: 126px;
  left: 26px;
}

.insights01_metric_parent_rate {
  position: absolute;
  right: 20px;
  bottom: 20px;
}

.insights01_card_shorttime {
  padding: 36px 20px 20px;
}

.insights01_shorttime_body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  margin-top: auto;
}

.insights01_metric_shorttime {
  width: 100%;
}

.insights01_metric_unit_shorttime {
  letter-spacing: 1px;
}

.insights01_metric_note_shorttime {
  letter-spacing: 1px;
}

.insights01_shorttime_note {
  color: var(--basecolor);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
}

.insights01_card_graph {
  align-items: center;
  height: 462px;
  min-height: 462px;
  padding: 36px 32px 30px;
}

.insights01_graph_head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 80px;
}

.insights01_graph_title {
  flex-shrink: 0;
  color: var(--basecolor);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
}

.insights01_metric_graph {
  flex: 1;
  justify-content: flex-end;
  min-width: 0;
}

.insights01_graph {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.insights01_graph img {
  width: 100%;
  height: auto;
}

.insights01_graph_sales {
  max-width: 445px;
  margin-top: 47px;
}

.insights01_graph_employees {
  max-width: 406px;
  margin-top: 25px;
}

.insights01_graph_head_generation {
  flex-direction: column;
  gap: 36px;
  min-height: 113px;
}

.insights01_metric_generation {
  align-self: flex-end;
  justify-content: flex-end;
  letter-spacing: 2px;
}

.insights01_metric_note_generation {
  letter-spacing: 2px;
}

.insights01_metric_note_generation_large {
  font-size: 20px;
  letter-spacing: 2px;
}

.insights01_graph_generation {
  max-width: 409px;
  margin-top: 50px;
}

/* insights page interview */
.insights02 {
  overflow: hidden;
  padding-top: 200px;
  padding-bottom: 120px;
  background-color: #f3f5f8;
}

.insights02_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.insights02_flex {
  display: flex;
  align-items: flex-start;
  gap: 64px;
}

.insights02_visual {
  position: sticky;
  top: 144px;
  display: flex;
  flex: 0 0 37.5%;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  max-width: 600px;
}

.insights02_mosaic {
  position: relative;
  width: 100%;
  aspect-ratio: 600/753;
}

.insights02_mosaic_item {
  position: absolute;
  overflow: hidden;
  border: 1px solid #d9e0ea;
}

.insights02_mosaic_item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

.insights02_mosaic_item_01 {
  top: 4.2497%;
  left: 48.1667%;
  width: 44.1667%;
  height: 23.9044%;
}

.insights02_mosaic_item_02 {
  top: 77.2112%;
  left: -12.8333%;
  width: 42%;
  height: 22.7092%;
}

.insights02_mosaic_item_04 {
  top: 25.498%;
  left: -12.8333%;
  width: 42%;
  height: 22.7092%;
}

.insights02_mosaic_item_03 {
  top: 41.8327%;
  left: 41%;
  width: 31.8333%;
  height: 36.255%;
}

.insights02_list {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 40px;
  min-width: 0;
}

.insights02_card {
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 48px 56px;
  overflow: hidden;
  border: 1px solid #d9e0ea;
  border-radius: 6px;
  background-color: #fff;
}

.insights02_card_head {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
}

.insights02_card_image {
  flex-shrink: 0;
  width: 160px;
  height: 120px;
  overflow: hidden;
  border-radius: 6px;
}

.insights02_card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

.insights02_card_heading {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}

.insights02_card_name {
  color: #24509a;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.insights02_card_title {
  color: #1e2430;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.45;
}

.insights02_card_body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
}

.insights02_card_text {
  width: 100%;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.48px;
}

/* footer */
.footer {
  min-height: 380px;
  color: #fff;
  background-color: var(--blue34599A);
  background-image: url("../images/footer_bg.webp");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 1920px 380px;
}

.footer_wrapper {
  display: flex;
  flex-direction: column;
  width: 83.333%;
  max-width: 1600px;
  min-height: 380px;
  padding-top: 50px;
  padding-bottom: 160px;
  margin-left: auto;
  margin-right: auto;
}

.footer_head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 60px;
  padding-bottom: 23px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.8);
}

.footer_logo {
  flex-shrink: 0;
  width: 162px;
}

.footer_banner {
  display: grid;
  flex: 0 1 932px;
  grid-template-columns: repeat(3, minmax(0, 162px));
  justify-content: end;
  gap: 40px;
  min-width: 0;
}

.footer_banner_item {
  display: block;
  width: 100%;
  max-width: 162px;
  min-width: 0;
  aspect-ratio: 284/100;
  transition: opacity var(--trans_300ms);
}

.footer_banner_item:hover,
.footer_banner_item:active,
.footer_banner_item:focus-visible {
  opacity: 0.6;
}

.footer_body {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 60px;
  padding-top: 33px;
}

.footer_address {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 14px;
  color: #fff;
}

.footer_address_title {
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 2px;
}

.footer_address_text {
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 1.4px;
}

.footer_address_phone {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  line-height: 1;
}

.footer_address_phone,
.footer_address_phone:focus,
.footer_address_phone:visited,
.footer_address_phone:focus-visible {
  text-decoration: none;
  color: #ffffff;
}

.footer_address_tel {
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 1.6px;
}

.footer_address_number {
  font-size: 30px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.3px;
}

.footer_body_right {
  flex: 1;
  min-width: 0;
}

.footer_nav {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 20px 44px;
  width: 100%;
  white-space: nowrap;
}

.footer_nav_item {
  flex-shrink: 0;
  color: #fff;
  font-size: 17px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 3.4px;
}

.footer_nav_item:focus,
.footer_nav_item:visited,
.footer_nav_item:focus-visible {
  color: #fff;
}

.footer_nav_item:hover,
.footer_nav_item:active {
  color: #fff;
  opacity: 0.5;
}

.footer_copyright {
  margin-top: 44px;
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.24px;
  text-align: center;
}

@media only screen and (max-width: 1400px) {
  /*** insights page ***/
  /* insights page data */
  .insights01_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media only screen and (max-width: 1024px) and (min-width: 881px) {
  /*** insights page ***/
  /* insights page data */
  .insights01_metric_num_88 {
    font-size: clamp(70.4px, 12.3077vw - 38.0308px, 88px);
  }
  .insights01_metric_unit_44 {
    font-size: clamp(35.2px, 6.1538vw - 19.0154px, 44px);
  }
  .insights01_metric_num_104 {
    font-size: clamp(83.2px, 14.5455vw - 44.9455px, 104px);
  }
  .insights01_metric_unit_52 {
    font-size: clamp(41.6px, 7.2727vw - 22.4727px, 52px);
  }
}
@media only screen and (max-width: 880px) {
  /*** insights page ***/
  /* insights page data */
  .insights01_grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media only screen and (max-width: 1024px) {
  /*** business page ***/
  /* business page mainview */
  .business_mainview .mainviewlong_wrapper {
    min-height: 640px;
    aspect-ratio: auto;
  }
  .mainviewlong_text {
    width: 90%;
    padding-top: 210px;
  }
  .mainviewlong_title {
    font-size: clamp(68px, 9.7656vw, 100px);
  }
  /* business page service index */
  .business_service {
    padding-top: 80px;
    padding-bottom: 100px;
    margin-top: -60px;
    border-radius: 60px 60px 0 0;
  }
  .business_service_wrapper {
    width: 90%;
  }
  .business_service_card {
    gap: 18px;
  }
  .business_service_body {
    padding-bottom: 2%;
    padding-right: 20px;
    padding-left: 20px;
  }
  .business_service_link {
    gap: 28px;
  }
  .business_service_name {
    font-size: 24px;
  }
  .business_service_name_iconstruction {
    font-size: 20px;
  }
  .business_service_kicker {
    font-size: clamp(64px, 8.3333vw, 86px);
  }
  .business_service_kicker_technology {
    font-size: clamp(58px, 7.0833vw, 73px);
  }
  /*** recruit page ***/
  /* recruit page mainview */
  .recruit_mainview_wrapper {
    height: 620px;
  }
  .recruit_mainview_text {
    width: 90%;
    padding-top: 220px;
  }
  .recruit_mainview_subtitle {
    font-size: 26px;
  }
  .recruit_mainview_title {
    font-size: clamp(68px, 9.7656vw, 100px);
  }
  .recruit_mainview_bg_image img {
    object-position: 58% bottom;
  }
  /* recruit page contents */
  .recruit_content {
    padding-top: 48px;
    padding-bottom: 180px;
  }
  .recruit_content_bg_bottom {
    bottom: 70px;
  }
  .recruit_content_wrapper {
    width: 90%;
  }
  .recruit_content_head {
    padding-left: 5%;
  }
  .recruit_content_title {
    font-size: clamp(46px, 6.25vw, 60px);
  }
  .recruit_content_subtitle {
    font-size: 20px;
    line-height: 1.4;
  }
  .recruit_card_grid {
    --recruit_card_height: clamp(210px, 22vw, 240px);
    gap: 28px;
    margin-top: 72px;
  }
  .recruit_card_row,
  .recruit_card_row_top,
  .recruit_card_row_middle,
  .recruit_card_row_bottom {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    max-width: none;
    min-height: 0;
  }
  .recruit_card {
    width: 61%;
  }
  .recruit_card_row .recruit_card {
    align-self: center;
  }
  .recruit_card_title {
    top: 20px;
    left: 20px;
    font-size: 40px;
  }
  .recruit_card_button {
    bottom: 16px;
    gap: 18px;
    width: calc(100% - 16px);
  }
  .recruit_card_button_text,
  .recruit_card_narrow .recruit_card_button_text {
    font-size: 20px;
    letter-spacing: 1.2px;
  }
  .recruit_card_arrow {
    width: 72px;
  }
  .recruit_message {
    padding: 40px 12.5%;
    font-size: 26px;
    letter-spacing: 1.04px;
  }
  /* header */
  #logo {
    width: 175px;
    margin-top: 12px;
  }
  .headermenu {
    display: none;
  }
  /* toppage mainview */
  .toppage_mainview {
    padding-top: 120px;
  }
  /* toppage information */
  .toppage_info_wrapper,
  .toppage_business_wrapper,
  .toppage_project_wrapper {
    width: 90%;
  }
  .toppage_info_body {
    flex-direction: column;
    align-items: stretch;
  }
  .toppage_info_body_wrapper {
    width: 100%;
  }
  .toppage_info_button {
    align-self: flex-end;
    padding-bottom: 0;
  }
  /* toppage business */
  .toppage_crosssection_texture {
    top: 26.5%;
  }
  .toppage_business {
    padding-top: 80px;
    padding-bottom: 160px;
  }
  .toppage_crosssection_business_circle {
    left: 35%;
    width: 90%;
  }
  .toppage_business_line {
    margin-top: 32px;
  }
  .toppage_business_list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 40px;
  }
  .toppage_business_listitem {
    aspect-ratio: 4/3;
  }
  /* toppage project */
  .toppage_project {
    padding-top: 100px;
    padding-bottom: 120px;
  }
  .toppage_project_text {
    font-size: 17px;
  }
  .toppage_project_slider {
    width: 95%;
    padding-left: 7.8125%;
    margin-left: 5%;
  }
  /* toppage company */
  .toppage_company {
    min-height: 760px;
  }
  .toppage_company_wrapper {
    max-width: 650px;
    padding-top: 140px;
  }
  .toppage_company_text {
    margin-top: 42px;
    font-size: 17px;
  }
  .toppage_company_button {
    margin-top: 52px;
  }
  /* toppage recruit */
  .toppage_recruit {
    padding-top: 120px;
    padding-bottom: 120px;
  }
  .toppage_recruit_wrapper {
    width: 90%;
  }
  .toppage_recruit_text {
    font-size: 17px;
  }
  .toppage_recruit_list {
    gap: 14px;
  }
  .toppage_recruit_listitem_text {
    font-size: 20px;
  }
  .toppage_recruit_listitem_number {
    left: -18px;
  }
  .toppage_recruit_infant_image {
    width: 160px;
  }
  .toppage_recruit_infant_headline {
    font-size: 20px;
    letter-spacing: 2px;
  }
  .toppage_recruit_infant_support {
    gap: 18px;
  }
  .toppage_recruit_infant_support_title_text {
    font-size: 21px;
  }
  .toppage_recruit_infant_support_amount {
    font-size: 20px;
    letter-spacing: 2px;
  }
  .toppage_recruit_infant_support_amount_largeblue {
    font-size: 68px;
    letter-spacing: -21px;
  }
  .toppage_recruit_infant_support_amount_blue {
    margin-left: 14px;
    font-size: 20px;
    letter-spacing: 2px;
  }
  .toppage_recruit_link_entry,
  .toppage_recruit_link_benefits {
    min-height: 145px;
    padding-right: 88px;
    padding-left: 40px;
  }
  .toppage_recruit_link_entry::after,
  .toppage_recruit_link_benefits::after {
    right: 30px;
  }
  .toppage_recruit_link_title {
    font-size: 40px;
  }
  /* footer */
  .footer_wrapper {
    width: 90%;
    min-height: 0;
    padding-top: 40px;
    padding-bottom: 200px;
  }
  .footer_logo {
    width: 150px;
  }
  .footer_head {
    gap: 32px;
    padding-bottom: 24px;
  }
  .footer_banner {
    grid-template-columns: repeat(3, minmax(0, 150px));
    gap: 16px;
  }
  .footer_banner_item {
    max-width: 150px;
  }
  .footer_body {
    gap: 32px;
    padding-top: 28px;
  }
  .footer_nav {
    flex-wrap: wrap;
    gap: 20px 32px;
    max-width: 560px;
  }
}
@media only screen and (max-width: 768px) {
  /*** business page ***/
  /* business page mainview */
  .business_mainview .mainviewlong_wrapper {
    min-height: 620px;
  }
  .mainviewlong_text {
    padding-top: 170px;
  }
  .mainviewlong_subtitle {
    gap: 14px;
    padding-left: 0;
    font-size: 22px;
    letter-spacing: 0.88px;
  }
  .mainviewlong_subtitle::before {
    width: 12px;
    height: 12px;
  }
  .mainviewlong_title {
    font-size: clamp(54px, 14.5833vw, 70px);
    letter-spacing: 4.2px;
  }
  .mainviewlong_bg_image img {
    object-position: center bottom;
  }
  .mainviewlong_bg_line {
    width: 50%;
  }
  /* business page service index */
  .business_service {
    padding-top: 60px;
    padding-bottom: 80px;
    margin-top: -40px;
    border-radius: 40px 40px 0 0;
  }
  .business_service_title {
    font-size: clamp(46px, 11.25vw, 54px);
    letter-spacing: 0.54px;
    white-space: normal;
  }
  .business_service_subtitle {
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  .business_service_list {
    gap: 24px;
    margin-top: 40px;
  }
  .business_service_card {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .business_service_image,
  .business_service_image_building,
  .business_service_image_technology {
    grid-column: 1;
    grid-row: 1;
  }
  .business_service_body,
  .business_service_card_building > .business_service_body,
  .business_service_card_technology > .business_service_body {
    grid-column: 1;
    grid-row: 2;
    padding: 4.305% 16px 5.2632%;
  }
  .business_service_link {
    gap: 20px;
  }
  .business_service_name {
    font-size: 24px;
  }
  .business_service_name_iconstruction {
    font-size: 18px;
    line-height: 1.5;
  }
  .business_service_arrow {
    width: clamp(64px, 9.375vw, 72px);
  }
  .business_service_kicker {
    top: 18px;
    left: 16px;
    font-size: clamp(44px, 9.5833vw, 64px);
    line-height: 1.05;
  }
  .business_service_kicker_technology {
    top: 16px;
    left: 14px;
    font-size: clamp(42px, 8.3333vw, 58px);
    line-height: 0.9;
  }
  .business_service_kicker_line_indent {
    margin-left: 18%;
  }
  .business_service_kicker_line {
    line-height: 0.9;
  }
  /*** recruit page ***/
  /* recruit page mainview */
  .recruit_mainview_wrapper {
    height: 540px;
  }
  .recruit_mainview_text {
    padding-top: 180px;
  }
  .recruit_mainview_subtitle {
    gap: 14px;
    padding-left: 0;
    font-size: 22px;
    letter-spacing: 0.88px;
  }
  .recruit_mainview_subtitle::before {
    width: 12px;
    height: 12px;
  }
  .recruit_mainview_title {
    font-size: clamp(60px, 14.5833vw, 70px);
    letter-spacing: 4.2px;
  }
  .recruit_mainview_bg_image img {
    object-position: 32% bottom;
  }
  /* recruit page contents */
  .recruit_content {
    padding-top: 60px;
    padding-bottom: 110px;
  }
  .recruit_content_bg {
    left: 50%;
    width: 180%;
    transform: translateX(-50%);
  }
  .recruit_content_bg_bottom {
    bottom: 20px;
  }
  .recruit_content_head {
    padding-left: 0;
  }
  .recruit_content_title {
    font-size: clamp(42px, 10.4167vw, 50px);
    line-height: 1.12;
    letter-spacing: 1.8px;
  }
  .recruit_content_subtitle {
    margin-top: 24px;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.9px;
    white-space: normal;
  }
  .recruit_card_grid {
    --recruit_card_height: 240px;
    gap: 28px;
    margin-top: 64px;
  }
  .recruit_card_row,
  .recruit_card_row_top,
  .recruit_card_row_middle,
  .recruit_card_row_bottom {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    max-width: none;
    min-height: 0;
  }
  .recruit_card {
    width: 100%;
  }
  .recruit_card_title {
    top: 18px;
    left: 18px;
    font-size: 38px;
  }
  .recruit_card_button {
    bottom: 14px;
    gap: 16px;
    width: calc(100% - 14px);
    padding: 3px;
  }
  .recruit_card_button_text,
  .recruit_card_narrow .recruit_card_button_text {
    font-size: 18px;
    letter-spacing: 1.08px;
  }
  .recruit_card_arrow {
    width: 64px;
  }
  .recruit_message,
  .recruit_message_growth,
  .recruit_message_future {
    align-items: flex-start;
    padding: 20px 16px;
    font-size: 24px;
    letter-spacing: 0.96px;
  }
  .recruit_message_future {
    align-items: flex-end;
  }
  /* header */
  #logo {
    width: 150px;
    margin-top: 15px;
  }
  /* toppage mainview */
  .toppage_mainview {
    padding-bottom: 30px;
  }
  .toppage_mainview_banner {
    top: calc(100% + 20px);
    left: 50%;
    width: 81%;
    transform: translateX(-50%);
  }
  /* toppage information */
  .toppage_info {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .toppage_info_wrapper > .toppage_info_title {
    gap: 12px;
    font-size: clamp(28px, 7.5vw, 36px);
  }
  .toppage_info_body {
    margin-top: 28px;
  }
  .toppage_info_category {
    gap: 10px;
  }
  .toppage_info_list {
    grid-template-columns: minmax(0, 380px);
    justify-content: center;
    gap: 36px;
    margin-top: 34px;
  }
  .toppage_info_button {
    align-self: center;
  }
  /* toppage business */
  .toppage_crosssection_texture {
    top: 31.4%;
  }
  .toppage_business {
    padding-top: 70px;
    padding-bottom: 90px;
  }
  .toppage_crosssection_business_circle {
    left: 10%;
    width: 170%;
  }
  .toppage_business_head {
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
  }
  .toppage_business_title {
    font-size: clamp(48px, 11.25vw, 54px);
  }
  .toppage_business_subtitle {
    margin-top: 12px;
    font-size: 20px;
  }
  .toppage_business_button {
    align-self: center;
    transform: none;
  }
  .toppage_business_line {
    margin-top: 26px;
  }
  .toppage_business_list {
    grid-template-columns: minmax(0, 400px);
    justify-content: center;
    margin-top: 40px;
  }
  /* toppage project */
  .toppage_project {
    padding-top: 80px;
    padding-bottom: 90px;
  }
  .toppage_project_head {
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
  }
  .toppage_project_title {
    font-size: clamp(48px, 11.25vw, 54px);
  }
  .toppage_project_subtitle {
    margin-top: 12px;
    font-size: 20px;
  }
  .toppage_project_button {
    align-self: center;
    margin-bottom: 0;
  }
  .toppage_project_line {
    margin-top: 26px;
  }
  .toppage_project_text {
    margin-top: 16px;
    font-size: 16px;
    line-height: 1.8;
  }
  .toppage_project_slider {
    width: 90%;
    padding-left: clamp(64px, 15.625vw, 75px);
    margin-right: auto;
    margin-left: auto;
  }
  .toppage_project_meta {
    margin-top: 20px;
  }
  /* toppage company */
  .toppage_company {
    min-height: 640px;
  }
  .toppage_company_wrapper {
    width: 90%;
    max-width: none;
    padding-top: 90px;
  }
  .toppage_company_title {
    font-size: clamp(48px, 11.25vw, 54px);
  }
  .toppage_company_subtitle {
    margin-top: 12px;
    font-size: 20px;
  }
  .toppage_company_text {
    margin-top: 36px;
    font-size: 16px;
    line-height: 1.8;
  }
  .toppage_company_button {
    margin-top: 48px;
  }
  /* toppage recruit */
  .toppage_recruit {
    padding-top: 80px;
    padding-bottom: 90px;
  }
  .toppage_recruit_title {
    font-size: clamp(48px, 11.25vw, 54px);
  }
  .toppage_recruit_subtitle {
    margin-top: 12px;
    font-size: 20px;
  }
  .toppage_recruit_text {
    margin-top: 28px;
    font-size: 16px;
    line-height: 1.8;
  }
  .toppage_recruit_list {
    grid-template-columns: minmax(0, 350px);
    justify-content: center;
    gap: 44px;
    margin-top: 70px;
  }
  .toppage_recruit_listitem_number {
    left: -20px;
  }
  .toppage_recruit_listitem_text {
    font-size: 24px;
  }
  .toppage_recruit_infant {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 30px 24px 34px;
    margin-top: 50px;
  }
  .toppage_recruit_infant_image {
    width: 150px;
  }
  .toppage_recruit_infant_wrapper {
    width: 100%;
    margin-top: 20px;
  }
  .toppage_recruit_infant_headline {
    min-height: 52px;
    padding: 10px 12px;
    font-size: 18px;
    letter-spacing: 1.4px;
  }
  .toppage_recruit_infant_support {
    flex-direction: column;
    gap: 10px;
    margin-top: 20px;
  }
  .toppage_recruit_infant_support_title_text {
    font-size: 20px;
  }
  .toppage_recruit_infant_support_title_text.spacing_wide {
    padding-left: 12px;
    letter-spacing: 12px;
  }
  .toppage_recruit_infant_support_amount {
    font-size: 18px;
    letter-spacing: 1.8px;
  }
  .toppage_recruit_infant_support_amount_largeblue {
    font-size: 64px;
    letter-spacing: -20px;
  }
  .toppage_recruit_infant_support_amount_blue {
    margin-left: 13px;
    font-size: 18px;
    letter-spacing: 1.8px;
  }
  .toppage_recruit_linklist {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    margin-top: 30px;
  }
  .toppage_recruit_link_entry,
  .toppage_recruit_link_benefits {
    min-height: 130px;
    padding-right: 86px;
    padding-left: 30px;
  }
  .toppage_recruit_link_entry::after,
  .toppage_recruit_link_benefits::after {
    right: 26px;
    width: 44px;
    height: 44px;
    background-size: 11px 18px;
  }
  .toppage_recruit_link_title {
    font-size: 40px;
  }
  .toppage_recruit_link_subtitle {
    font-size: 16px;
  }
  /* footer */
  .footer_wrapper {
    padding-top: 40px;
    padding-bottom: 230px;
  }
  .footer_logo {
    width: 130px;
  }
  .footer_head {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding-bottom: 24px;
  }
  .footer_banner {
    flex-basis: auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
  }
  .footer_banner_item {
    max-width: none;
  }
  .footer_body {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
    padding-top: 28px;
  }
  .footer_address_title {
    font-size: 18px;
    letter-spacing: 1.8px;
  }
  .footer_address_tel {
    font-size: 14px;
    letter-spacing: 1.4px;
  }
  .footer_address_number {
    font-size: 26px;
    letter-spacing: 0.26px;
  }
  .footer_nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-self: stretch;
    gap: 18px 24px;
    width: auto;
    max-width: none;
    white-space: normal;
  }
  .footer_nav_item {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 1.5px;
  }
  .footer_copyright {
    margin-top: 40px;
    line-height: 1.7;
    letter-spacing: 0.2px;
  }
}
@media only screen and (max-width: 1024px) {
  /*** insights page ***/
  /* insights page common heading */
  .insights_title {
    font-size: clamp(54px, 7.8125vw, 80px);
  }
  /* insights page data */
  .insights01 {
    padding-top: 80px;
    padding-bottom: 100px;
  }
  .insights01_wrapper {
    width: 90%;
  }
  .insights01_icon_newhire {
    left: clamp(32px, 100% - 385px, 131px);
  }
  .insights01_icon_vacation {
    left: clamp(32px, 100% - 385px, 131px);
  }
  .insights01_icon_clock {
    left: clamp(32px, 100% - 374px, 142px);
  }
  .insights01_card_shorttime {
    padding-right: 24px;
    padding-left: 24px;
  }
  .insights01_metric_num_80 {
    font-size: 60px;
  }
  .insights01_metric_num_76 {
    font-size: 58px;
  }
  .insights01_metric_unit_40 {
    font-size: 30px;
  }
  .insights01_metric_note_wide {
    font-size: 14px;
    letter-spacing: 1px;
  }
  .insights01_metric_note_shorttime {
    white-space: normal;
  }
  /* insights page interview */
  .insights02 {
    padding-top: 120px;
    padding-bottom: 100px;
  }
  .insights02_wrapper {
    width: 90%;
  }
  .insights02_flex {
    flex-direction: column;
    gap: 40px;
  }
  .insights02_visual {
    position: static;
    flex-basis: auto;
    gap: 40px;
    width: 100%;
    max-width: none;
  }
  .insights02_mosaic {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto auto;
    align-items: start;
    row-gap: 24px;
    width: 600px;
    max-width: 100%;
    aspect-ratio: auto;
    margin-right: auto;
    margin-left: auto;
  }
  .insights02_mosaic_item {
    position: static;
    justify-self: center;
    height: auto;
  }
  .insights02_mosaic_item_01 {
    grid-column: 2;
    grid-row: 1;
    width: 88.3333%;
    aspect-ratio: 265/180;
  }
  .insights02_mosaic_item_02 {
    grid-column: 1;
    grid-row: 2;
    width: 84%;
    aspect-ratio: 252/171;
  }
  .insights02_mosaic_item_04 {
    grid-column: 1;
    grid-row: 1;
    width: 84%;
    aspect-ratio: 252/171;
  }
  .insights02_mosaic_item_03 {
    grid-column: 2;
    grid-row: 2;
    width: 63.6667%;
    aspect-ratio: 191/273;
  }
  .insights02_list {
    width: 100%;
  }
}
@media only screen and (max-width: 768px) {
  /*** insights page ***/
  /* insights page common heading */
  .insights_title {
    font-size: clamp(42px, 11.25vw, 54px);
    letter-spacing: 0.54px;
    white-space: normal;
  }
  .insights_label {
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  /* insights page data */
  .insights01 {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .insights01_grid {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 36px;
  }
  .insights01_card {
    min-height: 236px;
    padding: 30px 24px 24px;
  }
  .insights01_card_title {
    font-size: 20px;
    letter-spacing: 1.6px;
  }
  .insights01_card_parental {
    min-height: 256px;
    padding-right: 18px;
    padding-left: 24px;
  }
  .insights01_card_shorttime {
    min-height: 256px;
    padding-right: 20px;
    padding-left: 20px;
  }
  .insights01_icon_bonus {
    top: 36px;
    right: 28px;
  }
  .insights01_icon_newhire {
    top: 140px;
    left: clamp(24px, 100% - 529px, 150px);
  }
  .insights01_icon_vacation {
    top: 128px;
    left: clamp(24px, 100% - 529px, 150px);
  }
  .insights01_icon_clock {
    top: 134px;
    left: clamp(24px, 100% - 515px, 163px);
  }
  .insights01_icon_parent {
    top: 34px;
    right: 24px;
  }
  .insights01_icon_child {
    top: 24px;
    right: 24px;
  }
  .insights01_metric_note_shorttime {
    line-height: 1.4;
  }
  .insights01_shorttime_note {
    font-size: 13px;
  }
  .insights01_card_graph {
    height: auto;
    min-height: 0;
    padding: 30px 24px 24px;
  }
  .insights01_graph_head {
    min-height: 72px;
  }
  .insights01_graph_title {
    font-size: 20px;
  }
  .insights01_graph_sales {
    margin-top: 36px;
  }
  .insights01_graph_employees {
    margin-top: 22px;
  }
  .insights01_graph_head_generation {
    gap: 28px;
    min-height: 100px;
  }
  .insights01_graph_generation {
    margin-top: 36px;
  }
  /* insights page interview */
  .insights02 {
    padding-top: 90px;
    padding-bottom: 80px;
  }
  .insights02_mosaic {
    row-gap: 16px;
  }
  .insights02_list {
    gap: 28px;
  }
  .insights02_card {
    gap: 24px;
    padding: 32px 24px;
  }
  .insights02_card_head {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
  }
  .insights02_card_image {
    width: 50%;
    height: auto;
    aspect-ratio: 4/3;
    margin-right: auto;
    margin-left: auto;
  }
  .insights02_card_heading {
    flex: none;
    gap: 8px;
    width: 100%;
  }
  .insights02_card_name {
    font-size: 18px;
  }
  .insights02_card_title {
    font-size: 20px;
  }
  .insights02_card_body {
    gap: 14px;
  }
  .insights02_card_text {
    line-height: 1.75;
    letter-spacing: 0.32px;
  }
}
/************************/
/*** project page ***/
/* project page mainview */
.project {
  background-color: #f1f0f2;
}

.project_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #f1f0f2;
}

.project_mainview_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(600px, 37.5vw, 720px);
}

.project_mainview_text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 83.3333%;
  max-width: 1600px;
  padding-top: clamp(240px, 15.4167vw, 296px);
  margin-right: auto;
  margin-left: auto;
}

.project_mainview_subtitle {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 14px;
  color: var(--basecolor);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.12px;
  white-space: nowrap;
}

.project_mainview_subtitle::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #e94360;
}

.project_mainview_title {
  display: inline-block;
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(100px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.project_mainview_bg,
.project_mainview_bg_image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.project_mainview_bg {
  z-index: 1;
  pointer-events: none;
}

.project_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/* project page project list */
.project01 {
  padding-top: 80px;
  padding-bottom: 120px;
  background-color: #f1f0f2;
}

.project01_wrapper {
  width: 83.3333%;
  max-width: 1600px;
  margin-right: auto;
  margin-left: auto;
}

.project01_heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  height: 122px;
  overflow: hidden;
}

.project01_title {
  color: #24509a;
  font-family: "Roboto", sans-serif;
  font-size: clamp(60px, 3.75vw, 72px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.72px;
  white-space: nowrap;
}

.project01_label {
  color: #1e2430;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.project01_filter {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 48px;
  margin-top: 56px;
}

.project01_categories {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 16px;
  row-gap: 12px;
  min-width: 0;
}

.project01_category {
  display: flex;
  justify-content: center;
  align-items: center;
  width: max-content;
  height: 28px;
  padding: 0 16px;
  border: 1px solid #aaa;
  border-radius: 999px;
  color: #888;
  background-color: transparent;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.56px;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--trans_300ms), border-color var(--trans_300ms), background-color var(--trans_300ms), opacity var(--trans_300ms);
}

a.project01_category,
a.project01_category:focus,
a.project01_category:visited,
a.project01_category:focus-visible {
  color: #888;
  text-decoration: none;
}

.project01_category.is-active {
  border-color: #000;
  color: #fff;
  background-color: #000;
  font-weight: 500;
  letter-spacing: 0.98px;
}

a.project01_category.is-active,
a.project01_category.is-active:focus,
a.project01_category.is-active:visited,
a.project01_category.is-active:focus-visible {
  color: #fff;
}

.project01_category:hover,
.project01_category:active {
  border-color: var(--blue34599A);
  color: var(--blue34599A);
}

.project01_category:focus-visible {
  border-color: var(--basecolor);
  color: var(--basecolor);
}

.project01_category.is-active:hover,
.project01_category.is-active:active,
.project01_category.is-active:focus-visible {
  color: #fff;
  opacity: 0.7;
}

.project01_year {
  position: relative;
  display: block;
  flex-shrink: 0;
  width: 180px;
  height: 28px;
  line-height: 1;
}

.project01_year_label {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  margin: -1px;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.project01_year_select {
  display: block;
  width: 100%;
  height: 28px;
  padding: 0 32px 0 14px;
  border: 1px solid #aaa;
  border-radius: 999px;
  color: #5c5e62;
  background-color: transparent;
  background-image: url("../images/project_chevron_down.svg");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 16px 16px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.56px;
  cursor: pointer;
  appearance: none;
}

.project01_year_select:focus-visible {
  border-color: var(--basecolor);
  color: var(--basecolor);
  outline: 1px solid var(--basecolor);
  outline-offset: 2px;
}

.project01_grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 3.125%;
  row-gap: 40px;
  margin-top: 56px;
}

a.project01_card,
a.project01_card:focus,
a.project01_card:visited,
a.project01_card:focus-visible {
  display: block;
  width: 100%;
  aspect-ratio: 500/550;
  padding: 4%;
  color: var(--basecolor);
  background-color: #f5f6f8;
  box-shadow: 0 0 5px #f8f2f3;
}

a.project01_card:hover,
a.project01_card:active {
  color: var(--blue34599A);
}

.project01_image {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 460/350;
  transition: opacity var(--trans_300ms);
}

.project01_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--trans_300ms);
}

.project01_card:hover .project01_image img,
.project01_card:active .project01_image img {
  transform: scale(1.03);
}

.project01_card:hover .project01_image,
.project01_card:active .project01_image,
.project01_card:focus-visible .project01_image {
  opacity: 0.6;
}

.project01_card_body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin-top: 30px;
}

.project01_meta {
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.78px;
}

.project01_card_title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.8px;
}

body.is-project-modal-open {
  overflow: hidden;
}

.project_modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 32px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 350ms ease, visibility 0s linear 350ms;
}

.project_modal.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition-delay: 0s;
}

.project_modal_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(20, 31, 48, 0.76);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.project_modal_dialog {
  position: relative;
  z-index: 1;
  overflow-y: auto;
  width: min(90vw, 960px);
  max-height: calc(100svh - 64px);
  border-radius: 24px;
  background-color: #fff;
  box-shadow: 0 24px 70px rgba(13, 36, 70, 0.28);
  opacity: 0;
  transform: translate3d(0, 32px, 0);
  transition: opacity 350ms ease, transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project_modal.is-open .project_modal_dialog {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.project_modal_close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background-color: var(--basecolor);
  box-shadow: 0 6px 18px rgba(13, 36, 70, 0.2);
  cursor: pointer;
  transition: opacity var(--trans_300ms);
}

.project_modal_close::before,
.project_modal_close::after {
  position: absolute;
  width: 22px;
  height: 2px;
  background-color: currentColor;
  content: "";
}

.project_modal_close::before {
  transform: rotate(45deg);
}

.project_modal_close::after {
  transform: rotate(-45deg);
}

.project_modal_close span {
  overflow: hidden;
  width: 1px;
  height: 1px;
}

.project_modal_close:hover,
.project_modal_close:active {
  opacity: 0.78;
}

.project_modal_close:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.project_modal_image {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: min(58vh, 600px);
  min-height: 360px;
  padding: 32px;
  background-color: #edf1f7;
}

.project_modal_image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.project_modal_body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 30px 40px 36px;
}

.project_modal_body[hidden] {
  display: none;
}

.project_modal_meta[hidden] {
  display: none;
}

.project_modal_meta {
  color: #657085;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.9px;
}

.project_modal_title {
  color: var(--basecolor);
  font-size: clamp(22px, 2vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 1.2px;
}

.project01_pager {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 56px;
}

.project01_pager_arrow {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
}

.project01_pager_arrow img {
  width: 100%;
  height: 100%;
}

.project01_pager_arrow.is-disabled {
  cursor: default;
}

a.project01_pager_arrow {
  transition: opacity var(--trans_300ms);
}

a.project01_pager_arrow:hover,
a.project01_pager_arrow:active,
a.project01_pager_arrow:focus-visible {
  opacity: 0.6;
}

.project01_pager_num {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 48px;
  height: 28px;
  padding: 0 8px;
  border: 1px solid #aaa;
  border-radius: 21px;
  color: var(--basecolor);
  font-family: "Roboto", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  transition: color var(--trans_300ms), border-color var(--trans_300ms), background-color var(--trans_300ms);
}

.project01_pager_num.is-narrow {
  width: 44px;
}

a.project01_pager_num,
a.project01_pager_num:focus,
a.project01_pager_num:visited,
a.project01_pager_num:focus-visible {
  color: var(--basecolor);
}

a.project01_pager_num:hover,
a.project01_pager_num:active {
  border-color: var(--basecolor);
  color: #fff;
  background-color: var(--basecolor);
}

.project01_pager_num.is-current {
  border-color: #000;
  color: #fff;
  background-color: #000;
}

a.project01_pager_num.is-current,
a.project01_pager_num.is-current:focus,
a.project01_pager_num.is-current:visited,
a.project01_pager_num.is-current:focus-visible {
  border-color: var(--basecolor);
  color: #fff;
  background-color: var(--basecolor);
}

/* post page content and back button */
.entry-content {
  margin-top: 20px;
}

.page_backbutton {
  display: flex;
  justify-content: center;
  margin-top: 80px;
}

@media only screen and (max-width: 1024px) {
  /*** project page ***/
  /* project page mainview */
  .project_mainview_wrapper {
    height: 620px;
  }
  .project_mainview_text {
    width: 90%;
    padding-top: 220px;
  }
  .project_mainview_bg_image img {
    object-position: 15% bottom;
  }
  .project_mainview_subtitle {
    font-size: 26px;
  }
  .project_mainview_title {
    font-size: clamp(76px, 10.1563vw, 104px);
  }
  /* project page project list */
  .project01 {
    padding-top: 72px;
    padding-bottom: 96px;
  }
  .project01_wrapper {
    width: 90%;
  }
  .project01_title {
    font-size: clamp(52px, 7.0313vw, 72px);
  }
  .project01_heading {
    height: auto;
    overflow: visible;
  }
  .project01_label {
    font-size: 20px;
  }
  .project01_filter {
    margin-top: 48px;
  }
  .project01_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 32px;
    margin-top: 48px;
  }
  .project01_pager {
    margin-top: 48px;
  }
  .page_backbutton {
    margin-top: 64px;
  }
}
@media only screen and (max-width: 768px) {
  /*** project page ***/
  /* project page mainview */
  .project_mainview_wrapper {
    height: 540px;
  }
  .project_mainview_text {
    padding-top: 180px;
  }
  .project_mainview_subtitle {
    gap: 14px;
    padding-left: 6px;
    font-size: 22px;
  }
  .project_mainview_subtitle::before {
    width: 12px;
    height: 12px;
  }
  .project_mainview_title {
    font-size: clamp(56px, 15vw, 76px);
    letter-spacing: 4.56px;
  }
  /* project page project list */
  .project01 {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .project01_heading {
    gap: 10px;
  }
  .project01_title {
    font-size: clamp(44px, 11.25vw, 54px);
    letter-spacing: 0.54px;
  }
  .project01_label {
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  .project01_filter {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    margin-top: 36px;
  }
  .project01_categories {
    display: flex;
    flex: 1 1 auto;
    gap: 8px;
  }
  .project01_category {
    width: max-content;
    padding-right: 6px;
    padding-left: 6px;
    font-size: 13px;
    letter-spacing: 0.26px;
  }
  .project01_year {
    align-self: flex-end;
    width: 180px;
  }
  .project01_grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 24px;
    margin-top: 36px;
  }
  a.project01_card,
  a.project01_card:focus,
  a.project01_card:visited,
  a.project01_card:focus-visible {
    padding: 4%;
  }
  .project01_card_body {
    gap: 12px;
    margin-top: 24px;
  }
  .project_modal {
    padding: 16px;
  }
  .project_modal_dialog {
    width: 100%;
    max-height: calc(100svh - 32px);
    border-radius: 16px;
  }
  .project_modal_close {
    top: 12px;
    right: 12px;
    width: 44px;
    height: 44px;
  }
  .project_modal_close::before,
  .project_modal_close::after {
    width: 19px;
  }
  .project_modal_image {
    height: min(48vh, 440px);
    min-height: 280px;
    padding: 20px;
  }
  .project_modal_body {
    gap: 10px;
    padding: 22px 20px 26px;
  }
  .project_modal_meta {
    font-size: 13px;
  }
  .project_modal_title {
    font-size: clamp(20px, 5vw, 24px);
    line-height: 1.45;
  }
  .project01_pager {
    justify-content: space-between;
    gap: 0;
    width: min(100%, 400px);
    margin-top: 48px;
  }
  .project01_pager_arrow {
    width: 40px;
    height: 40px;
  }
  .project01_pager_num {
    width: 48px;
    padding-right: 8px;
    padding-left: 8px;
    font-size: 15px;
  }
  .project01_pager_num.is-narrow {
    width: 44px;
  }
  .page_backbutton {
    margin-top: 48px;
  }
}
/*** entry page ***/
/* entry page mainview */
.entry_mainview {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
}

.entry_mainview_wrapper {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(600px, 37.5vw, 720px);
}

.entry_mainview_text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 83.3333%;
  max-width: 1600px;
  padding-top: clamp(240px, 15.4167vw, 296px);
  margin-right: auto;
  margin-left: auto;
}

.entry_mainview_subtitle {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 14px;
  color: #1e2430;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.12px;
  white-space: nowrap;
}

.entry_mainview_subtitle::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #ff668e;
}

.entry_mainview_title {
  color: #24509a;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: "Roboto", sans-serif;
  font-size: clamp(80px, 6.4583vw, 124px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 7.44px;
  white-space: nowrap;
}

.entry_mainview_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.entry_mainview_bg_image {
  position: absolute;
  inset: 0;
}

.entry_mainview_bg_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/* entry page requirements */
.entry_requirements {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: 48px;
  padding-bottom: 120px;
  background-color: #fff;
}

.entry_requirements_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.entry_requirements_bg_top {
  position: absolute;
  top: 97px;
  right: 0;
  width: min(27.1354%, 521px);
}

.entry_requirements_bg_top img {
  width: 100%;
  height: auto;
}

.entry_requirements_bg_middle {
  position: absolute;
  top: 600px;
  left: 0;
  width: min(9.0625%, 174px);
}

.entry_requirements_bg_middle img {
  width: 100%;
  height: auto;
}

.entry_requirements_bg_bottom {
  position: absolute;
  bottom: 40px;
  left: 0;
  width: min(33.1771%, 637px);
}

.entry_requirements_bg_bottom img {
  width: 100%;
  height: auto;
}

.entry_requirements_wrapper {
  position: relative;
  z-index: 1;
  width: 83.3333%;
  max-width: 1280px;
  margin-right: auto;
  margin-left: auto;
}

.entry_requirements_head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.entry_requirements_title {
  color: #24509a;
  font-family: "Roboto", sans-serif;
  font-size: clamp(54px, 4.6875vw, 90px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.9px;
  white-space: nowrap;
}

.entry_requirements_subtitle {
  color: #1e2430;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.1px;
}

.entry_requirements_panel {
  padding: 48px;
  margin-top: 44px;
  border-radius: 6px;
  background-color: #fff;
  box-shadow: inset 0 0 0 1px #d9e0ea;
}

.entry_requirements_group_title {
  width: max-content;
  padding: 6px 10px 8px;
  color: #fff;
  background-color: #34599a;
  font-size: clamp(20px, 1.25vw, 24px);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.entry_requirements_list {
  margin-top: 22px;
}

.entry_requirements_group_labor {
  margin-top: 48px;
}

.entry_requirements_list_labor {
  padding-bottom: 24px;
  margin-top: 24px;
}

.entry_requirements_item {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  width: 100%;
  padding: 16px 24px;
  border-radius: 6px;
  background-color: #fff;
  box-shadow: inset 0 -1px 0 #d9e0ea;
}

.entry_requirements_label {
  flex-shrink: 0;
  width: 180px;
  color: #24509a;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.entry_requirements_text {
  flex: 1;
  min-width: 0;
  color: #1e2430;
  font-size: 16px;
  font-weight: 400;
  line-height: 27px;
  letter-spacing: 0.48px;
}

.entry_requirements_emphasis {
  color: #170b9b;
  font-weight: 500;
  line-height: 27px;
}

.entry_requirements_detail {
  color: #1e2430;
  line-height: 27px;
}

/* entry page form */
.entry_cont {
  background-color: #f3f5f7;
}

.entry_cont .contact_form {
  margin-top: 0;
}

.entry_form_head_banner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  gap: 32px;
  width: 100%;
  margin-top: 32px;
}

.entry_form_head_mynavi_2027 {
  flex-shrink: 0;
  width: 160px;
  height: 160px;
}

.entry_form_head_mynavi_2028 {
  flex-shrink: 0;
  width: 160px;
  height: 160px;
}

.privacy_document {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
}

.privacy_body {
  width: 100%;
  height: 360px;
  overflow-y: auto;
  border: 1px solid #d9e0ea;
  border-radius: 6px;
  background-color: #fff;
  scrollbar-color: #34599a #d1dbe8;
  scrollbar-width: thin;
}

.privacy_body::-webkit-scrollbar {
  width: 6px;
}

.privacy_body::-webkit-scrollbar-track {
  border-radius: 3px;
  background-color: #d1dbe8;
}

.privacy_body::-webkit-scrollbar-thumb {
  border-radius: 3px;
  background-color: #34599a;
}

.privacy_content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 17px 26px 17px 17px;
}

.privacy_title {
  width: 100%;
  color: #34599a;
  font-size: 18px;
  font-weight: 700;
  line-height: 27px;
  letter-spacing: 0;
}

.privacy_heading {
  width: 100%;
  color: #34599a;
  font-size: 14px;
  font-weight: 700;
  line-height: 22px;
  letter-spacing: 0;
}

.privacy_text {
  width: 100%;
  color: #3c3c3c;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  letter-spacing: 0;
}

.privacy_agree {
  width: 100%;
  padding-left: 4px;
  line-height: 0;
}

.privacy_agree_label,
.privacy_agree .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #3c3c3c;
  font-size: 16px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0;
  cursor: pointer;
}

.privacy_agree input[type=checkbox] {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1.5px solid #34599a;
  border-radius: 3px;
  background-color: #fff;
  appearance: none;
  cursor: pointer;
}

.privacy_agree input[type=checkbox]:checked {
  background-color: #34599a;
  box-shadow: inset 0 0 0 4px #fff;
}

.privacy_agree input[type=checkbox]:focus-visible {
  outline: 2px solid #5c96cc;
  outline-offset: 2px;
}

@media only screen and (max-width: 1024px) {
  /*** entry page ***/
  /* entry page mainview */
  .entry_mainview_wrapper {
    height: 620px;
  }
  .entry_mainview_text {
    width: 90%;
    padding-top: 220px;
  }
  .entry_mainview_subtitle {
    font-size: 26px;
  }
  .entry_mainview_title {
    font-size: clamp(68px, 9.7656vw, 100px);
  }
  .entry_mainview_bg_image img {
    object-position: 58% bottom;
  }
  /* entry page requirements */
  .entry_requirements {
    padding-top: 64px;
    padding-bottom: 96px;
  }
  .entry_requirements_wrapper {
    width: 90%;
  }
  .entry_requirements_panel {
    padding: 32px;
    margin-top: 40px;
  }
  .entry_requirements_bg_top {
    width: 38%;
  }
  .entry_requirements_bg_bottom {
    width: 46%;
  }
  /* entry page form */
  .entry_form_head_banner {
    gap: 24px;
  }
  .entry_form_head_mynavi_2027 {
    width: 120px;
    height: 120px;
  }
  .entry_form_head_mynavi_2028 {
    width: 120px;
    height: 120px;
  }
}
@media only screen and (max-width: 768px) {
  /*** entry page ***/
  /* entry page mainview */
  .entry_mainview_wrapper {
    height: 540px;
  }
  .entry_mainview_text {
    padding-top: 180px;
  }
  .entry_mainview_subtitle {
    gap: 14px;
    padding-left: 0;
    font-size: 22px;
    letter-spacing: 0.88px;
  }
  .entry_mainview_subtitle::before {
    width: 12px;
    height: 12px;
  }
  .entry_mainview_title {
    font-size: clamp(60px, 14.5833vw, 70px);
    letter-spacing: 4.2px;
  }
  .entry_mainview_bg_image img {
    object-position: 62% bottom;
  }
  /* entry page requirements */
  .entry_requirements {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .entry_requirements_title {
    font-size: clamp(44px, 11.25vw, 54px);
    letter-spacing: 0.54px;
  }
  .entry_requirements_subtitle {
    font-size: 18px;
    letter-spacing: 0.9px;
  }
  .entry_requirements_panel {
    padding: 24px 20px;
    margin-top: 36px;
  }
  .entry_requirements_group_title {
    font-size: clamp(20px, 4.5833vw, 22px);
  }
  .entry_requirements_group_labor {
    margin-top: 40px;
  }
  .entry_requirements_item {
    flex-direction: column;
    gap: 8px;
    padding: 14px 12px;
  }
  .entry_requirements_label {
    width: 100%;
    font-size: 17px;
  }
  .entry_requirements_bg_top {
    top: 80px;
    width: 54%;
    opacity: 0.7;
  }
  .entry_requirements_bg_middle {
    top: 720px;
    width: 20%;
    opacity: 0.7;
  }
  .entry_requirements_bg_bottom {
    width: 70%;
    opacity: 0.7;
  }
  /* entry page form */
  .entry_form_head_banner {
    gap: 20px;
  }
  .entry_form_head_mynavi_2027 {
    width: 112px;
    height: 112px;
  }
  .entry_form_head_mynavi_2028 {
    width: 112px;
    height: 112px;
  }
  .privacy_content {
    padding: 16px 20px 16px 16px;
  }
  .privacy_agree_label,
  .privacy_agree .wpcf7-list-item label {
    font-size: 15px;
  }
}
/*** lower page mainview title overlay ***/
.mainview_title,
.mainviewmiddle_title,
.mainviewlong_title,
.iconst_mainview_title {
  position: relative;
  background-image: none;
}

.mainview_heading_text {
  position: relative;
  z-index: 1;
  display: block;
  background-image: linear-gradient(180deg, #24509a 0%, #5f85a3 35.577%, #4084b8 65.865%, #24509a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.mainview_title::before,
.mainviewmiddle_title::before,
.mainviewlong_title::before,
.iconst_mainview_title::before {
  --mainview-heading-blur-left: clamp(16.8px, 1.7334vw, 33.6px);
  --mainview-heading-blur-right: clamp(21px, 2.1667vw, 42px);
  content: "";
  position: absolute;
  top: 50%;
  left: calc(0px - var(--mainview-heading-blur-left));
  z-index: -1;
  width: calc(100% + var(--mainview-heading-blur-left) + var(--mainview-heading-blur-right));
  height: calc(100% + clamp(38.4px, 3vw, 57.6px));
  border-radius: clamp(22.4px, 2.5vw, 48px);
  background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.84) 48%, rgba(255, 255, 255, 0.45) 72%, rgba(255, 255, 255, 0) 100%);
  transform: translateY(-50%);
  filter: blur(clamp(5.6px, 0.5833vw, 11.2px));
  pointer-events: none;
}

.mainview_subtitle,
.mainviewmiddle_subtitle,
.mainviewlong_subtitle {
  position: relative;
}

.mainview_subtitle::after,
.mainviewmiddle_subtitle::after,
.mainviewlong_subtitle::after {
  --mainview-heading-blur-left: clamp(16.8px, 1.7334vw, 33.6px);
  --mainview-heading-blur-right: clamp(21px, 2.1667vw, 42px);
  content: "";
  position: absolute;
  top: 50%;
  left: calc(0px - var(--mainview-heading-blur-left));
  z-index: -1;
  width: calc(100% + var(--mainview-heading-blur-left) + var(--mainview-heading-blur-right));
  height: calc(100% + clamp(22.4px, 1.6666vw, 32px));
  border-radius: clamp(14.4px, 1.6667vw, 32px);
  background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.84) 48%, rgba(255, 255, 255, 0.45) 72%, rgba(255, 255, 255, 0) 100%);
  transform: translateY(-50%);
  filter: blur(clamp(4.2px, 0.3646vw, 7px));
  pointer-events: none;
}

/*# sourceMappingURL=index.css.map */
