@charset "UTF-8";
html, body {
  overflow-x: hidden !important;
}

body {
  font-family: "Zen Kaku Gothic New", sans-serif;
}

@media (max-width: 767px) {
  .pc {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

.section-title {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media (max-width: 767px) {
  .section-title.--culture {
    display: block;
    max-width: 500px;
    margin-inline: auto;
    width: 100%;
  }
}

.section-title__en {
  color: #fff;
  font-family: "Jost", sans-serif;
  font-size: 64px;
  font-style: italic;
  font-weight: 500;
  line-height: 160%; /* 102.4px */
  letter-spacing: 1.28px;
  text-transform: uppercase;
}
.section-title__en.--blue {
  background: -webkit-gradient(linear, right top, left top, from(#0291D9), to(#023E78));
  background: linear-gradient(270deg, #0291D9 0%, #023E78 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
@media (max-width: 767px) {
  .section-title__en {
    font-size: 32px;
    letter-spacing: 0.96px;
  }
}

.section-title__ja {
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 180%; /* 32.4px */
  letter-spacing: 1.8px;
}
.section-title__ja.--black {
  color: #404559;
}
@media (max-width: 767px) {
  .section-title__ja {
    font-size: 15px;
    letter-spacing: 1.5px;
  }
}

.business-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  gap: 16px;
}
@media (max-width: 900px) {
  .business-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    row-gap: 20px;
    -webkit-column-gap: 9px;
       -moz-column-gap: 9px;
            column-gap: 9px;
  }
}

.business-list__item {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.business-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-block: 17px;
  -webkit-padding-start: 38px;
          padding-inline-start: 38px;
  -webkit-padding-end: 20px;
          padding-inline-end: 20px;
  border-radius: 4px;
  color: #023E78;
  border: 1px solid #0961b6;
  background: #E4EAF1;
}
@media (max-width: 1350px) {
  .business-item {
    padding: 12px;
    gap: 4px;
  }
}
@media (max-width: 767px) {
  .business-item {
    -webkit-padding-start: 8px;
            padding-inline-start: 8px;
    -webkit-padding-end: 8px;
            padding-inline-end: 8px;
    padding-block: 4px;
    gap: 2px;
  }
}
.business-item.current {
  background: #023E78;
  color: #fff;
  border-color: #fff;
}
.business-item.current .business-item__category,
.business-item.current .business-item__number,
.business-item.current .business-item__label {
  color: #fff;
}

.business-item__category {
  font-family: "Jost", sans-serif;
  font-size: 14px;
  font-style: italic;
  font-weight: 500;
  line-height: 160%; /* 22.4px */
  text-transform: uppercase;
  text-align: left;
}
@media (max-width: 1350px) {
  .business-item__category {
    font-size: 12px;
    text-align: left;
  }
}
@media (max-width: 767px) {
  .business-item__category {
    font-size: 8px;
    text-align: left;
  }
}

.business-item__main {
  -webkit-margin-before: 4px;
          margin-block-start: 4px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 12px;
}
@media (max-width: 1350px) {
  .business-item__main {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
    text-align: left;
  }
}

.business-item__number {
  font-family: Jost;
  font-size: 20px;
  font-style: italic;
  font-weight: 500;
  line-height: 150%; /* 30px */
}
@media (max-width: 767px) {
  .business-item__number {
    text-align: left;
    font-size: 15px;
  }
}

.business-item__label {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 160%; /* 28.8px */
}
@media (max-width: 767px) {
  .business-item__label {
    font-size: 13px;
    text-align: left;
  }
}

.business-card {
  -webkit-padding-before: 31px;
          padding-block-start: 31px;
  padding-inline: 28px;
  -webkit-padding-after: 27px;
          padding-block-end: 27px;
  border-radius: 4px;
  background: #E4EAF1;
  max-width: 608px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
}
@media (max-width: 767px) {
  .business-card {
    max-width: 312px;
    -webkit-padding-before: 13px;
            padding-block-start: 13px;
    padding-inline: 11px;
    -webkit-padding-after: 14px;
            padding-block-end: 14px;
  }
}

@media (max-width: 767px) {
  .business-card__head {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 5.5px;
  }
}

.business-card__category {
  color: #023E78;
  font-family: "Jost", sans-serif;
  font-size: 16px;
  font-style: italic;
  font-weight: 500;
  line-height: 160%; /* 25.6px */
  letter-spacing: 0.48px;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .business-card__category {
    font-size: 12px;
    letter-spacing: 0.36px;
  }
}

.business-card__title {
  -webkit-margin-before: 5px;
          margin-block-start: 5px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 12px;
     -moz-column-gap: 12px;
          column-gap: 12px;
}
@media (max-width: 767px) {
  .business-card__title {
    -webkit-margin-before: 1px;
            margin-block-start: 1px;
  }
}

.business-card__number {
  color: #023E78;
  font-family: "Jost", sans-serif;
  font-size: 28px;
  font-style: italic;
  font-weight: 500;
  line-height: 160%; /* 44.8px */
  letter-spacing: 0.84px;
}
@media (max-width: 767px) {
  .business-card__number {
    font-size: 20px;
    letter-spacing: 0.6px;
  }
}

.business-card__name {
  color: #023E78;
  /* 見出し3日本語 */
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 160%; /* 38.4px */
}
@media (max-width: 767px) {
  .business-card__name {
    font-size: 18px;
  }
}

.business-card__image {
  -webkit-margin-before: 19.5px;
          margin-block-start: 19.5px;
  aspect-ratio: 552/310.5;
}
@media (max-width: 767px) {
  .business-card__image {
    -webkit-margin-before: 10.5px;
            margin-block-start: 10.5px;
  }
}
.business-card__image img {
  width: 100%;
}

.business-card__content {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 24px;
}
@media (max-width: 767px) {
  .business-card__content {
    -webkit-margin-before: 12px;
            margin-block-start: 12px;
  }
}

.business-card__section-title {
  color: #023E78;
  /* 見出し4 */
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 160%; /* 28.8px */
}
@media (max-width: 767px) {
  .business-card__section-title {
    font-size: 15px;
  }
}

.business-card__list {
  -webkit-margin-before: 5px;
          margin-block-start: 5px;
  color: #404559;
  -webkit-padding-start: 6px;
          padding-inline-start: 6px;
  list-style: none;
  /* 本文中 */
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 170%; /* 27.2px */
}
@media (max-width: 767px) {
  .business-card__list {
    margin-block-strat: 6px;
    font-size: 14px;
  }
}

.business-card__list li {
  position: relative;
  padding-left: 18px;
  color: #404559;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 170%; /* 27.2px */
}
@media (max-width: 767px) {
  .business-card__list li {
    font-size: 14px;
  }
}
.business-card__list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  line-height: 170%;
  color: #404559;
}

.business-card__button {
  position: relative;
  margin-top: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 18px 40px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-radius: 4px;
  background: #023E78;
  color: #fff;
  overflow: hidden;
  border: 1px solid transparent;
  -webkit-transition: color 0.3s ease, border-color 0.3s ease;
  transition: color 0.3s ease, border-color 0.3s ease;
  /* 背景拡大アニメ */
  /* ★ ホバーで白背景が広がる */
  /* ★ ホバー時の文字色・枠線 */
  /* 中身を前面に */
  /* プラスアイコン（擬似要素） */
}
@media (max-width: 767px) {
  .business-card__button {
    -webkit-margin-before: 27px;
            margin-block-start: 27px;
    padding: 18px 20px;
  }
}
.business-card__button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #FFFFFF;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  z-index: 0;
}
.business-card__button:hover::before {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.business-card__button:hover {
  color: #023E78;
  border-color: #023E78;
  background: none;
}
.business-card__button span, .business-card__button i, .business-card__button svg {
  position: relative;
  z-index: 1;
}
.business-card__button::after {
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  background: url(../img/plus-icon.png) no-repeat center center;
  background-size: contain;
  position: relative;
  z-index: 1;
  -webkit-transition: -webkit-filter 0.3s ease;
  transition: -webkit-filter 0.3s ease;
  transition: filter 0.3s ease;
  transition: filter 0.3s ease, -webkit-filter 0.3s ease;
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}
.business-card__button:hover::after {
  -webkit-filter: brightness(0) saturate(100%) invert(9%) sepia(95%) saturate(2618%) hue-rotate(194deg) brightness(95%) contrast(101%);
          filter: brightness(0) saturate(100%) invert(9%) sepia(95%) saturate(2618%) hue-rotate(194deg) brightness(95%) contrast(101%);
}

.business-card__button-text {
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 700;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
@media (any-hover: hover) {
  .business-card__button:hover .business-card__button-text {
    color: #023E78;
  }
}

.challenge-card {
  position: relative;
  padding: 94px 24px 14px 24px;
  border-radius: 4px;
  max-width: 582px;
  margin-inline: auto;
}
.challenge-card.--stage1 {
  border-bottom: 12px solid #37A4DB;
  height: 590px;
  border-radius: 4px;
  border-bottom: 12px solid #37A4DB;
  background: rgba(244, 251, 255, 0.7);
}
@media (max-width: 767px) {
  .challenge-card.--stage1 {
    height: auto;
  }
}
.challenge-card.--stage2 {
  border-bottom: 12px solid #2766AE;
  height: 590px;
  border-radius: 4px;
  background: rgba(238, 246, 254, 0.7);
}
@media (max-width: 767px) {
  .challenge-card.--stage2 {
    height: auto;
  }
}
.challenge-card.--stage3 {
  border-bottom: 12px solid #025178;
  background: #EBF3F7;
  height: 617px;
  border-radius: 4px;
  background: rgba(235, 243, 247, 0.7);
}
@media (max-width: 767px) {
  .challenge-card.--stage3 {
    height: auto;
  }
}
.challenge-card.--stage4 {
  border-bottom: 12px solid #023E78;
  background: #E9F2FA;
  height: 617px;
  border-radius: 4px;
  background: rgba(233, 242, 250, 0.7);
}
@media (max-width: 767px) {
  .challenge-card.--stage4 {
    height: auto;
  }
}

.challenge-card__head {
  position: absolute;
  top: 0;
  left: 0;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 4px 0 4px 0;
  padding: 14px 28px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 6px;
}
@media (max-width: 767px) {
  .challenge-card__head {
    padding: 13px 28px;
  }
}

.--stage1 .challenge-card__head {
  background: #37A4DB;
}

.--stage2 .challenge-card__head {
  background: #2766AE;
}

.--stage3 .challenge-card__head {
  background: #025178;
}

.--stage4 .challenge-card__head {
  background: #023E78;
}

.challenge-card__stage {
  color: #fff;
  font-family: "Jost", sans-serif;
  font-style: italic;
  text-transform: uppercase;
  font-size: 18px;
  font-style: italic;
  font-weight: 500;
  line-height: 100%; /* 18px */
  letter-spacing: 0.54px;
}
@media (max-width: 767px) {
  .challenge-card__stage {
    font-size: 15px;
    letter-spacing: 0.45px;
  }
}
.challenge-card__stage span {
  font-size: 24px;
  letter-spacing: 0.72px;
}
@media (max-width: 767px) {
  .challenge-card__stage span {
    font-size: 20px;
    letter-spacing: 0.6px;
    padding-left: 4px;
  }
}

.challenge-card__title {
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 160%; /* 38.4px */
}
@media (max-width: 767px) {
  .challenge-card__title {
    font-size: 18px;
  }
}

.challenge-card__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
}
@media (max-width: 767px) {
  .challenge-card__body {
    row-gap: 28px;
  }
}

.challenge-card__text {
  -webkit-margin-before: 25px;
          margin-block-start: 25px;
  color: #404559;
  /* 本文中 */
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 170%; /* 27.2px */
}
@media (max-width: 767px) {
  .challenge-card__text {
    -webkit-margin-before: 12px;
            margin-block-start: 12px;
    font-size: 15px;
  }
}

.challenge-card__image {
  margin-top: auto;
  border-radius: 4px;
  overflow: hidden;
}
.challenge-card__image img {
  display: block;
  width: 100%;
  height: auto;
}

.challenge-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -webkit-column-gap: 79px;
     -moz-column-gap: 79px;
          column-gap: 79px;
  row-gap: 32px;
}
@media (max-width: 767px) {
  .challenge-list {
    -webkit-column-gap: 32px;
       -moz-column-gap: 32px;
            column-gap: 32px;
  }
}
@media (max-width: 630px) {
  .challenge-list {
    grid-template-columns: repeat(1, 1fr);
    -webkit-column-gap: 24px;
       -moz-column-gap: 24px;
            column-gap: 24px;
  }
}

.stories-card {
  position: relative;
  width: 386px;
  z-index: 1;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (max-width: 767px) {
  .stories-card {
    width: 312px;
  }
}

.stories-card::before {
  content: attr(data-number);
  position: absolute;
  top: -44px;
  right: 8px;
  color: #023E78;
  text-align: justify;
  text-shadow: 1px 1px 0 #fff;
  font-family: "Jost", sans-serif;
  font-size: 56px;
  font-style: italic;
  font-weight: 500;
  line-height: 150%; /* 84px */
  letter-spacing: 1.12px;
  z-index: 10;
}

.stories-card__photo-wrapper {
  position: relative;
  overflow: hidden;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  height: 514.67px;
}
.stories-card__photo-wrapper::after {
  content: "";
  position: absolute;
  inset: 0;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(49.93%, rgba(255, 255, 255, 0)), to(#FFFFFF));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 49.93%, #FFFFFF 100%);
  z-index: 1;
  pointer-events: none;
}
.stories-card__photo-wrapper img {
  width: 386px;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: relative;
  z-index: 0;
}
@media (max-width: 767px) {
  .stories-card__photo-wrapper {
    height: 416px;
  }
  .stories-card__photo-wrapper img {
    width: 312px;
  }
}

.stories-card__label-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 10px;
  position: absolute;
  bottom: 24px;
  left: 0;
  z-index: 2;
}

.stories-card__label {
  padding: 4px 14px;
  background: #FFFFFF;
}

.stories-card__label--dept {
  color: #023E78;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20.5px;
  font-weight: 700;
  background: #F2F4F6;
  padding-block: 8px;
  -webkit-padding-end: 15px;
          padding-inline-end: 15px;
  -webkit-padding-start: 21px;
          padding-inline-start: 21px;
}

.stories-card__label--info {
  color: #023E78;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 700;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.stories-card__label--info span {
  -webkit-margin-start: 6px;
          margin-inline-start: 6px;
  color: #023E78;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 150%; /* 30px */
  letter-spacing: 1px;
}

.stories-card__text-content {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 200%; /* 30px */
  letter-spacing: 0.3px;
  border: 2px solid #023E78;
  background: #023E78;
  padding: 12px 16px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-height: 0;
}
@media (max-width: 767px) {
  .stories-card__text-content {
    padding: 9px 14px;
  }
}

.header {
  position: fixed;
  z-index: 103;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  padding-inline: 40px;
  background: -webkit-gradient(linear, right top, left top, from(#0291D9), to(#023E78));
  background: linear-gradient(270deg, #0291D9 0%, #023E78 100%);
}
@media (max-width: 767px) {
  .header {
    padding-inline: 16px;
  }
}

.header__inner {
  display: grid;
  grid-template-columns: 150px 1fr;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-block: 12px;
}
@media (max-width: 767px) {
  .header__inner {
    padding-block: 18px;
  }
}

.header__logo {
  position: relative;
  z-index: 103;
  display: block;
  width: 320px;
  height: auto;
}
@media (max-width: 767px) {
  .header__logo {
    width: 175px;
  }
}
.header__logo img {
  width: 100%;
  height: 100%;
}

.header__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: end;
  -webkit-column-gap: 37px;
     -moz-column-gap: 37px;
          column-gap: 37px;
}
@media (max-width: 1100px) {
  .header__nav {
    -webkit-column-gap: 20px;
       -moz-column-gap: 20px;
            column-gap: 20px;
  }
}
@media (max-width: 1000px) {
  .header__nav {
    display: none;
  }
}

.header__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 36px;
     -moz-column-gap: 36px;
          column-gap: 36px;
}
.header__list li a {
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
  position: relative;
  display: inline-block;
  padding-bottom: 4px; /* 下線との距離 */
  color: #fff;
  text-decoration: none;
}
.header__list li a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%; /* 中央から */
  width: 0;
  height: 1px;
  background: #fff;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transition: width 0.3s ease;
  transition: width 0.3s ease;
}
.header__list li a:hover::after {
  width: 100%;
}

.header__button {
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  line-height: 140%; /* 22.4px */
  letter-spacing: 0.8px;
  text-transform: uppercase;
  border-radius: 44px;
  border: 1px solid #fff;
  -webkit-padding-start: 22px;
          padding-inline-start: 22px;
  -webkit-padding-end: 46px;
          padding-inline-end: 46px;
  padding-block: 10px;
  position: relative;
  display: inline-block;
  overflow: hidden;
  z-index: 1;
  /* 背景拡大アニメ */
}
.header__button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #023E78;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  z-index: -1;
}
.header__button::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  aspect-ratio: 1/1;
  background: #fff400;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 21px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.header__button:hover::before {
  -webkit-transform: scale(1);
          transform: scale(1);
}

.drawer-icon {
  display: none;
}
@media (max-width: 1000px) {
  .drawer-icon {
    position: fixed;
    z-index: 104;
    top: 29px;
    right: 20px;
    width: 40px;
    height: 16px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

.drawer-icon__bar {
  width: 100%;
  height: 2px;
  background: #fff;
}

.drawer-icon.js-show .drawer-icon__bar:nth-child(1) {
  rotate: 25deg;
  translate: 0 7.5px;
}
.drawer-icon.js-show .drawer-icon__bar:nth-child(2) {
  rotate: -25deg;
  translate: 0 -7.5px;
}

.drawer {
  position: fixed;
  z-index: 103;
  top: 0;
  height: 100vh;
  background: var(--background-gradation, linear-gradient(270deg, #0291D9 0%, #023E78 100%));
  overflow-y: scroll;
  width: 100%;
  translate: 101%;
  -webkit-transition: translate 0.5s ease;
  transition: translate 0.5s ease;
}
.drawer.js-show {
  translate: 0;
}

.drawer__body {
  width: 100%;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  padding-block: 92px 40px;
  padding-inline: 28px;
}

.drawer__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 16px;
  margin-bottom: 40px;
}
@media (max-width: 767px) {
  .drawer__list {
    row-gap: 5px;
  }
}
.drawer__list li a {
  padding-block: 17px;
  display: block;
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  border-bottom: 1px solid #C4CCD7;
  position: relative;
}
.drawer__list li a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 8px;
  height: 16px;
  background-image: url(../img/arrow.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.drawer__button {
  color: #fff;
  font-family: Futura;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  padding: 10px 24px;
  border-radius: 44px;
  border: 1px solid #fff;
  background: transparent;
  display: block;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  /* 背景拡大アニメーション */
}
.drawer__button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #023E78;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  z-index: -1;
}
.drawer__button:hover::before {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.drawer__button::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  aspect-ratio: 1/1;
  background: #fff400;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 21px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.footer {
  position: relative;
  padding: 106px 110px;
  background: #E4EAF1;
  overflow: hidden;
}
@media (max-width: 1000px) {
  .footer {
    padding: 62px 60px;
  }
}
@media (max-width: 767px) {
  .footer {
    padding: 50px 6px;
  }
}

.footer__decoration {
  position: absolute;
  right: -4px;
  bottom: -261.833px;
  width: 844px;
  height: 1132px;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 1000px) {
  .footer__decoration {
    right: -85px;
    bottom: -219.917px;
    width: 335px;
    height: 450px;
    aspect-ratio: 67/90;
  }
}

.footer__decoration-img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.footer__inner.inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  -webkit-column-gap: 112px;
     -moz-column-gap: 112px;
          column-gap: 112px;
  padding-inline: 17px;
  -webkit-padding-after: 0;
          padding-block-end: 0;
}
@media (max-width: 800px) {
  .footer__inner.inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    row-gap: 32px;
    padding-inline: 16px;
  }
}

.footer__left {
  grid-column: 1;
  grid-row: 1;
}
@media (max-width: 800px) {
  .footer__left {
    grid-column: 1;
    grid-row: 1;
  }
}

.footer__logo {
  width: 280.5px;
}
.footer__logo img {
  width: 100%;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .footer__logo img:hover {
    opacity: 0.7;
  }
}

.footer__company {
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
}
.footer__company p {
  color: #404559;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 170%; /* 27.2px */
}
@media (max-width: 800px) {
  .footer__company {
    -webkit-margin-before: 32px;
            margin-block-start: 32px;
  }
}

.footer__note {
  grid-column: 1;
  grid-row: 2;
  -webkit-margin-before: 0;
          margin-block-start: 0;
  -webkit-margin-after: 0;
          margin-block-end: 0;
  color: #000;
  text-align: center;
  font-family: Inter;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 160%; /* 19.2px */
}
@media (max-width: 800px) {
  .footer__note {
    grid-column: 1;
    grid-row: 2;
  }
}

.footer__copyright {
  grid-column: 1;
  grid-row: 1;
  align-self: flex-end;
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
  -webkit-margin-after: 28px;
          margin-block-end: 28px;
  color: #404559;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 12px;
  text-align: left;
  font-weight: 500;
  line-height: 150%;
}
@media (max-width: 800px) {
  .footer__copyright {
    grid-column: 1;
    grid-row: 3;
    align-self: auto;
    -webkit-margin-before: 0;
            margin-block-start: 0;
    -webkit-margin-after: 0;
            margin-block-end: 0;
    font-weight: 500;
    line-height: 150%; /* 18px */
  }
}

.footer__right {
  grid-column: 2;
  grid-row: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  row-gap: 77px;
}
@media (max-width: 800px) {
  .footer__right {
    grid-column: 1;
    grid-row: 2;
    row-gap: 53px;
  }
}

/* メニュー2列 */
.footer__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 48px;
     -moz-column-gap: 48px;
          column-gap: 48px;
}

.footer__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-column-gap: 20px;
     -moz-column-gap: 20px;
          column-gap: 20px;
  row-gap: 10px;
  width: 100%; /* ★右側全部を使う */
  -webkit-padding-before: 16px;
          padding-block-start: 16px;
}
@media (max-width: 800px) {
  .footer__list {
    -webkit-margin-before: 16px;
            margin-block-start: 16px;
    row-gap: 10px;
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
    -webkit-padding-before: 0;
            padding-block-start: 0;
  }
}

.footer__list-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 164px;
     -moz-column-gap: 164px;
          column-gap: 164px;
}
@media (max-width: 800px) {
  .footer__list-inner {
    -webkit-column-gap: 48px;
       -moz-column-gap: 48px;
            column-gap: 48px;
  }
}
@media (max-width: 767px) {
  .footer__list-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding-left: 15px;
  }
}

.footer__list-col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 10px;
}
@media (max-width: 767px) {
  .footer__list-col {
    row-gap: 7.5px;
  }
}

@media (max-width: 767px) {
  .footer__list-col + .footer__list-col {
    -webkit-margin-before: 13px;
            margin-block-start: 13px;
  }
}

.footer__item a {
  display: block;
  color: #404559;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 140%;
  padding-block: 8px;
  position: relative;
}
.footer__item a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 1px;
  background: #0961b6;
  -webkit-transition: width 0.3s ease;
  transition: width 0.3s ease;
}
.footer__item a:hover::after {
  width: 100%;
}

.footer__sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 38px;
     -moz-column-gap: 38px;
          column-gap: 38px;
}
@media (max-width: 800px) {
  .footer__sns {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-column-gap: 37px;
       -moz-column-gap: 37px;
            column-gap: 37px;
  }
}

.footer__sns-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 40px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.footer__sns-item a img {
  width: 100%;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .footer__sns-item a img:hover {
    opacity: 0.7;
  }
}

.fv {
  background: -webkit-gradient(linear, right top, left top, from(#0291D9), to(#023E78));
  background: linear-gradient(270deg, #0291D9 0%, #023E78 100%);
  position: relative;
  overflow: hidden;
  z-index: 102;
  -webkit-padding-after: 80px;
          padding-block-end: 80px;
}
@media (max-width: 767px) {
  .fv {
    -webkit-padding-after: 40px;
            padding-block-end: 40px;
  }
}

.fv__inner {
  width: 100%;
  max-width: 1280px;
  -webkit-padding-before: 128px;
          padding-block-start: 128px;
  min-height: 640px;
  position: relative;
}
@media (max-width: 767px) {
  .fv__inner {
    min-height: 560px;
    -webkit-padding-before: 111px;
            padding-block-start: 111px;
  }
}

.fv__catch {
  position: absolute;
  left: 477px;
  bottom: 29px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 1001;
}
@media (max-width: 980px) {
  .fv__catch {
    left: 390px;
  }
}
@media (max-width: 767px) {
  .fv__catch {
    left: 176px;
    bottom: -4px;
  }
}

.fv__catch-line-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  background: rgba(255, 255, 255, 0.7);
  -webkit-backdrop-filter: blur(40px);
          backdrop-filter: blur(40px);
  opacity: 0;
}
@media (max-width: 767px) {
  .fv__catch-line-wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px;
    background: transparent;
    -webkit-backdrop-filter: none;
            backdrop-filter: none;
  }
}

.fv__catch-line {
  display: inline-block;
  color: #023E78;
  font-family: "Jost", sans-serif;
  font-size: 64px;
  font-style: italic;
  font-weight: 500;
  line-height: 130%; /* 83.2px */
  letter-spacing: 1.28px;
  text-transform: uppercase;
  padding: 8px 24px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  white-space: nowrap; /* 折り返し禁止 */
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
}
@media (max-width: 980px) {
  .fv__catch-line {
    font-size: 48px;
    line-height: 120%; /* 38.4px */
    letter-spacing: 0.64px;
  }
}
@media (max-width: 767px) {
  .fv__catch-line {
    font-size: 32px;
    padding: 6px 16px;
  }
}

.fv__catch-line.fv__catch-line--1 {
  margin-bottom: 20px;
  background: rgba(255, 255, 255, 0.7);
  -webkit-backdrop-filter: blur(40px);
          backdrop-filter: blur(40px);
}
@media (max-width: 767px) {
  .fv__catch-line.fv__catch-line--1 {
    margin-bottom: 10px;
  }
}

@media (max-width: 767px) {
  .fv__catch-line.fv__catch-line--2 {
    background: rgba(255, 255, 255, 0.7);
    -webkit-backdrop-filter: blur(40px);
            backdrop-filter: blur(40px);
    opacity: 0;
  }
}

.fv__catch-line.fv__catch-line--3 {
  padding-left: 7px;
  -webkit-margin-start: -10px;
          margin-inline-start: -10px;
}
@media (max-width: 1415px) {
  .fv__catch-line.fv__catch-line--3 {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@media (max-width: 767px) {
  .fv__catch-line.fv__catch-line--3 {
    background: rgba(255, 255, 255, 0.7);
    -webkit-backdrop-filter: blur(40px);
            backdrop-filter: blur(40px);
    opacity: 0;
    padding-left: 15px;
    -webkit-margin-start: 0;
            margin-inline-start: 0;
  }
}

.about {
  position: relative;
  -webkit-padding-before: 133px;
          padding-block-start: 133px;
  -webkit-padding-after: 118px;
          padding-block-end: 118px;
  background: -webkit-gradient(linear, right top, left top, from(#0291D9), to(#023E78));
  background: linear-gradient(270deg, #0291D9 0%, #023E78 100%);
  overflow: hidden;
}
@media (max-width: 900px) {
  .about {
    -webkit-padding-before: 96px;
            padding-block-start: 96px;
    -webkit-padding-after: 131px;
            padding-block-end: 131px;
  }
}

.about__decoration {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0;
  pointer-events: none;
  z-index: 0;
  bottom: 0;
}
.about__decoration img {
  display: block;
  width: 1080px;
  height: 574px;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0.5;
}
@media (max-width: 767px) {
  .about__decoration img {
    width: 540px;
    height: 287px;
  }
}

.about__inner.inner {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-column-gap: 9.7222222222%;
     -moz-column-gap: 9.7222222222%;
          column-gap: 9.7222222222%;
  max-width: 1440px;
  margin-inline: auto;
}
@media (max-width: 900px) {
  .about__inner.inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 64px;
  }
}

.about__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-padding-start: 6.9444444444%;
          padding-inline-start: 6.9444444444%;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 82px;
  width: 45.8888%;
}
@media (max-width: 1300px) {
  .about__content {
    width: 50%;
  }
}
@media (max-width: 900px) {
  .about__content {
    width: 100%;
    -webkit-padding-start: 0;
            padding-inline-start: 0;
    row-gap: 48px;
    padding-inline: 24px;
    max-width: 600px;
    margin-inline: auto;
  }
}

.about__text {
  color: #023E78;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 220%; /* 39.6px */
  text-shadow: 0 0 64px rgba(0, 0, 0, 0.25);
}
@media (max-width: 900px) {
  .about__text {
    font-size: 15px;
  }
}
.about__text span {
  display: inline-block;
  color: #023E78;
}

.about__image {
  aspect-ratio: 640/800;
  width: 44.4444444444%;
}
@media (max-width: 1300px) {
  .about__image {
    width: 570px;
  }
}
@media (max-width: 900px) {
  .about__image {
    aspect-ratio: 331/496;
    width: 100%;
    padding-left: 59px;
  }
}
@media (max-width: 767px) {
  .about__image {
    aspect-ratio: auto;
  }
}
.about__image img {
  width: 100%;
  height: auto; /* ← これが一番重要。高さを自動にする */
  -o-object-fit: cover;
     object-fit: cover; /* 必要ならトリミングして収める */
  display: block; /* 画像下の余白を消す */
}

.business {
  background: -webkit-gradient(linear, right top, left top, from(#0291D9), to(#023E78));
  background: linear-gradient(270deg, #0291D9 0%, #023E78 100%);
}
@media (max-width: 767px) {
  .business {
    -webkit-margin-after: 0;
            margin-block-end: 0;
    -webkit-padding-before: 33px;
            padding-block-start: 33px;
  }
}

.business__inner.inner {
  padding-inline: 100px;
}
@media (max-width: 767px) {
  .business__inner.inner {
    padding-inline: 19px;
  }
}

.business__list {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}
@media (max-width: 767px) {
  .business__list {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
  }
}

.business__swiper-container {
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
  width: 100%; /* ← 100vw は使わない mac / chrome / devtools の Mobile View では100vw が "実際の画面幅 + スクロールバー幅" になり、中央揃えがずれます。*/
  position: relative;
  /* 中央基準（これが最重要） */
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  /* inner と揃える左余白 */
  padding-left: 100px; /* inner の padding と合わせる */
}

@media (max-width: 767px) {
  .business__swiper-container {
    padding-left: 20px;
  }
}
.business__swiper {
  width: 100%;
}

.business__swiper-wrapper {
  width: 100%;
}

.business__swiper-slide {
  width: auto;
}

.business__swiper-container,
.business__swiper,
.business__swiper-wrapper,
.business__swiper-slide {
  position: relative;
}

.swiper-slide {
  height: 806.5px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: visible !important;
}
@media (max-width: 767px) {
  .swiper-slide {
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
  }
}

.challenge {
  position: relative;
  -webkit-padding-before: 237px;
          padding-block-start: 237px;
  -webkit-padding-after: 132.5px;
          padding-block-end: 132.5px;
  background: -webkit-gradient(linear, right top, left top, from(#0291D9), to(#023E78));
  background: linear-gradient(270deg, #0291D9 0%, #023E78 100%);
  overflow: hidden;
}
@media (max-width: 767px) {
  .challenge {
    -webkit-padding-before: 120px;
            padding-block-start: 120px;
    -webkit-padding-after: 80px;
            padding-block-end: 80px;
  }
}

.challenge__decoration {
  position: absolute;
  right: -117px;
  top: -96px;
  width: 1081px;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 767px) {
  .challenge__decoration {
    right: -400px;
    top: 0;
    width: 810px;
    height: 287px;
  }
}
.challenge__decoration img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.challenge__inner.inner {
  position: relative;
  z-index: 1;
  max-width: 1320px;
  padding-inline: 40px;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .challenge__inner.inner {
    padding-inline: 23px;
  }
}

.challenge__list {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}
@media (max-width: 767px) {
  .challenge__list {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
    row-gap: 24px;
  }
}

.challenge__card.--stage1 {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}
@media (max-width: 767px) {
  .challenge__card.--stage1 {
    -webkit-margin-before: 0;
            margin-block-start: 0;
  }
}
.challenge__card.--stage2 {
  border-bottom: 12px solid #2766AE;
  height: 590px;
}
.challenge__card.--stage3 {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}
@media (max-width: 767px) {
  .challenge__card.--stage3 {
    -webkit-margin-before: 0;
            margin-block-start: 0;
  }
}

.stories {
  position: relative;
  padding-block: 120px;
  background: #E4EAF1;
  overflow: hidden;
}
@media (max-width: 767px) {
  .stories {
    -webkit-padding-before: 82px;
            padding-block-start: 82px;
    -webkit-padding-after: 81px;
            padding-block-end: 81px;
  }
}

.stories__decoration {
  position: absolute;
  right: 0px;
  top: 0.833px;
  width: 810px;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 767px) {
  .stories__decoration {
    right: 81px;
    top: -6px;
    width: 305px;
    height: 162.102px;
  }
}
.stories__decoration img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.stories__inner {
  position: relative;
  z-index: 1;
  padding-inline: 100px;
  margin-inline: auto;
  overflow: visible; /* 数字が隠れないようにする */
}
@media (max-width: 767px) {
  .stories__inner {
    padding-inline: 21px;
  }
}

.stories__title-block {
  -webkit-margin-after: 48px;
          margin-block-end: 48px;
}
@media (max-width: 767px) {
  .stories__title-block {
    -webkit-margin-after: 32px;
            margin-block-end: 32px;
  }
}

.stories__swiper-container,
.stories__swiper,
.stories__swiper-wrapper,
.stories__swiper-slide {
  position: relative;
}

.stories__swiper-container {
  -webkit-margin-before: 58px;
          margin-block-start: 58px;
  width: 100%; /* ← 100vw は使わない mac / chrome / devtools の Mobile View では100vw が "実際の画面幅 + スクロールバー幅" になり、中央揃えがずれます。*/
  position: relative;
  /* 中央基準（これが最重要） */
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  /* inner と揃える左余白 */
  padding-left: 100px; /* カンプに合わせて100px */
}
@media (max-width: 767px) {
  .stories__swiper-container {
    -webkit-margin-before: 42px;
            margin-block-start: 42px;
    padding-left: 21px;
  }
}

.stories__swiper {
  padding-top: 25px;
  overflow: hidden;
  width: 100%;
}
@media (max-width: 767px) {
  .stories__swiper {
    padding-top: 22px;
  }
}

.stories__swiper-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; /* すべてのスライドを同じ高さにする */
}

.stories__swiper-slide {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; /* カードをスライドの高さいっぱいに広げる */
  width: 368px;
  overflow: visible !important;
  height: auto; /* スライドの高さを統一 */
  z-index: 1;
  /* タブレットサイズ */
}
@media (min-width: 768px) and (max-width: 1024px) {
  .stories__swiper-slide {
    width: 380px; /* タブレットサイズでは画面幅の45%に設定 */
  }
}
@media (max-width: 767px) {
  .stories__swiper-slide {
    width: 312px;
  }
}

.stories__swiper-slide.swiper-slide-active {
  z-index: 10;
}

.stories__swiper-slide.swiper-slide-next,
.stories__swiper-slide.swiper-slide-prev {
  z-index: 5;
}

.stories__swiper-slide::before {
  content: attr(data-number);
  position: absolute;
  top: -44px;
  right: 8px;
  color: #023E78;
  text-align: justify;
  text-shadow: 1px 1px 0 #fff;
}

/* 位置のreset */
.swiper-button-prev,
.swiper-button-next {
  position: relative; /* flexコンテナ内で自然に配置 */
  top: unset;
  bottom: unset;
  left: unset;
  right: unset;
  margin: 0;
  padding: 0;
  color: #023e78;
  -ms-flex-negative: 0;
      flex-shrink: 0; /* ボタンが縮まないように */
}

.swiper-pagination {
  position: relative; /* flexコンテナ内で自然に配置 */
  top: unset;
  bottom: unset;
  left: unset;
  right: unset;
  margin: 0;
  padding: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; /* プログレスバーが左側で伸縮 */
  max-width: 976px; /* 最大幅を制限 */
  pointer-events: none; /* クリックをナビゲーションボタンに通す */
}
@media (max-width: 767px) {
  .swiper-pagination {
    -webkit-box-flex: unset;
        -ms-flex: unset;
            flex: unset;
  }
}

.stories__swiper-bottom {
  padding-inline: 100px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; /* プログレスバーを左、ボタンを右に配置 */
  -webkit-margin-before: 65px;
          margin-block-start: 65px;
  -webkit-column-gap: 24px;
     -moz-column-gap: 24px;
          column-gap: 24px;
}
@media (max-width: 767px) {
  .stories__swiper-bottom {
    -webkit-margin-before: 69px;
            margin-block-start: 69px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 41px;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    padding-inline: 22px;
  }
}

.stories__swiper-buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 14px;
     -moz-column-gap: 14px;
          column-gap: 14px;
  -ms-flex-negative: 0;
      flex-shrink: 0; /* ボタングループが縮まないように */
}
@media (max-width: 767px) {
  .stories__swiper-buttons {
    -webkit-column-gap: 24px;
       -moz-column-gap: 24px;
            column-gap: 24px;
  }
}

/* =============================
   ナビゲーションボタン
============================= */
/* デフォルトのボタンを初期化 */
.swiper-button-prev::after,
.swiper-button-next::after {
  content: ""; /* デフォルトのものを初期化 */
}

/* 各ボタンのカスタマイズ */
.swiper-button-prev,
.swiper-button-next {
  width: 80px;
  height: 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (max-width: 767px) {
  .swiper-button-prev,
  .swiper-button-next {
    width: 40px;
    height: 40px;
  }
}
.swiper-button-prev img,
.swiper-button-next img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

/* =============================
   ページネーション (progressbar)
============================= */
/* 位置の設定と外枠 */
.swiper-pagination-progressbar.swiper-pagination-horizontal {
  position: relative; /* flexコンテナ内で自然に配置 */
  width: 100%; /* flex: 1と組み合わせて中央で伸縮 */
  height: 8px;
  background: #C4CCD7;
}

/* activeな部分 */
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  position: absolute;
  height: 8px;
  background: #0961b6; /* #0961B6 */
}

.culture {
  padding-block: 116px 0;
  background: #F2F4F6;
}
@media (max-width: 767px) {
  .culture {
    padding-block: 81px 0;
  }
}

.culture__inner.inner {
  max-width: 1317px;
  padding-inline: 40px;
  margin-inline: auto;
  background: rgba(255, 255, 255, 0.2);
}
@media (max-width: 767px) {
  .culture__inner.inner {
    padding-inline: 20px;
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
  }
}

.culture__cards {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}
@media (max-width: 767px) {
  .culture__cards {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
  }
}

.culture__image {
  -webkit-margin-before: 120px;
          margin-block-start: 120px;
  width: 100vw;
  aspect-ratio: 1440/380;
  overflow: hidden;
  margin-left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media (max-width: 767px) {
  .culture__image {
    -webkit-margin-before: 85px;
            margin-block-start: 85px;
    width: 100%;
    aspect-ratio: 403/381;
    margin-left: 0;
    -webkit-transform: none;
            transform: none;
  }
}
.culture__image picture {
  display: block;
  width: 100%;
  height: 100%;
}
.culture__image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 42%;
     object-position: 50% 42%; /* ← 画像の上下中央を基準 */
}
@media (max-width: 767px) {
  .culture__image img {
    -o-object-position: center;
       object-position: center;
  }
}

.welfare {
  position: relative;
  padding-block: 120px;
  background: #F2F4F6;
  overflow: hidden;
}
@media (max-width: 767px) {
  .welfare {
    padding-block: 80px 83px;
  }
}

.welfare__decoration {
  position: absolute;
  right: 0px;
  right: -6px;
  top: -2.167px;
  width: 776px;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 767px) {
  .welfare__decoration {
    right: 3px;
    top: 0px;
    width: 214px;
  }
}
.welfare__decoration img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.welfare__inner.inner {
  position: relative;
  z-index: 1;
  max-width: 1317px;
  padding-inline: 40px;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .welfare__inner.inner {
    padding-inline: 20px;
  }
}

.welfare__title {
  color: #404559;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 160%; /* 38.4px */
  position: relative;
  -webkit-padding-start: 39px;
          padding-inline-start: 39px;
}
@media (max-width: 767px) {
  .welfare__title {
    max-width: 500px;
    margin-inline: auto;
    font-size: 20px;
    -webkit-padding-start: 33px;
            padding-inline-start: 33px;
  }
}
.welfare__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 29.309px;
  aspect-ratio: 1;
  background-image: url(../img/welfare-logo.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
@media (max-width: 767px) {
  .welfare__title::before {
    width: 19.309px;
  }
}

.welfare__cards {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
}
@media (max-width: 767px) {
  .welfare__cards {
    -webkit-margin-before: 18px;
            margin-block-start: 18px;
  }
}

/* ===========================
   各カード
=========================== */
.culture-card {
  padding-block: 26px;
  -webkit-padding-start: 30px;
          padding-inline-start: 30px;
  -webkit-padding-end: 30px;
          padding-inline-end: 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-column-gap: 40px;
     -moz-column-gap: 40px;
          column-gap: 40px;
  max-width: 1240px;
  /* ← margin-inline を消す（インナーと干渉してズレる） */
  margin-inline: 0;
}
@media (max-width: 767px) {
  .culture-card {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 32px;
    -webkit-padding-after: 31px;
            padding-block-end: 31px;
    margin-inline: 15px;
    padding-inline: 0;
  }
}

.culture-card + .culture-card {
  border-top: 2px solid #C4CCD7;
}

/* ===========================
   アイコン＋タイトル
=========================== */
.culture-card__head-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 40px;
     -moz-column-gap: 40px;
          column-gap: 40px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 900px) {
  .culture-card__head-wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 30px;
    text-align: center;
  }
}
@media (max-width: 767px) {
  .culture-card__head-wrapper {
    row-gap: 40px;
  }
}

.culture-card__icon {
  width: 63.882px;
  height: 63.882px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.culture-card__icon img {
  width: 100%;
}

.culture-card__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 12px;
}
@media (max-width: 767px) {
  .culture-card__head {
    row-gap: 4px;
  }
}

.culture-card__title {
  color: #023E78;
  /* 見出し3日本語 */
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 160%; /* 38.4px */
}
@media (max-width: 767px) {
  .culture-card__title {
    text-align: center;
    font-size: 18px;
    line-height: 150%; /* 27px */
  }
}

.culture-card__sub {
  color: #023E78;
  font-family: "Jost", sans-serif;
  font-size: 14px;
  font-style: italic;
  font-weight: 500;
  line-height: 160%; /* 22.4px */
  letter-spacing: 0.42px;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .culture-card__sub {
    text-align: center;
    font-size: 13px;
    letter-spacing: 0.39px;
  }
}

.culture-card__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  row-gap: 12px;
}

/* ===========================
   テキスト
=========================== */
.culture-card__text {
  color: #404559;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 172%; /* 27.2px */
}
@media (max-width: 767px) {
  .culture-card__text {
    width: 100%;
    font-size: 15px;
  }
}

/* ===========================
   カード全体（白いボックス）
=========================== */
.culture-cards {
  border-radius: 12px;
  border: 1px solid #fff;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.2);
}
@media (max-width: 767px) {
  .culture-cards {
    max-width: 500px;
    margin-inline: auto;
  }
}

.welfare-card {
  padding-block: 27px;
  -webkit-padding-start: 30px;
          padding-inline-start: 30px;
  -webkit-padding-end: 30px;
          padding-inline-end: 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-column-gap: 40px;
     -moz-column-gap: 40px;
          column-gap: 40px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-inline: 40px;
}
@media (max-width: 767px) {
  .welfare-card {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 32px;
    padding-inline: 0;
    margin-inline: 15px;
    padding-block: 26px;
  }
}

.welfare-card + .welfare-card {
  border-top: 2px solid #C4CCD7;
}

.welfare-card__head-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 40px;
     -moz-column-gap: 40px;
          column-gap: 40px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 900px) {
  .welfare-card__head-wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center;
    row-gap: 30px;
  }
}
@media (max-width: 767px) {
  .welfare-card__head-wrapper {
    row-gap: 40px;
  }
}

.welfare-card__icon {
  width: 63.882px;
  height: 63.891px;
  aspect-ratio: 1;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.welfare-card__icon img {
  width: 100%;
}

.welfare-card__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 12px;
}
@media (max-width: 767px) {
  .welfare-card__head {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 4px;
  }
}

.welfare-card__title {
  color: #023E78;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 160%; /* 38.4px */
}
@media (max-width: 767px) {
  .welfare-card__title {
    text-align: center;
    font-size: 18px;
    line-height: 150%; /* 27px */
  }
}

.welfare-card__sub {
  color: #023E78;
  font-family: "Jost", sans-serif;
  font-size: 14px;
  font-style: italic;
  font-weight: 500;
  line-height: 160%; /* 22.4px */
  letter-spacing: 0.42px;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .welfare-card__sub {
    text-align: center;
    font-size: 13px;
    letter-spacing: 0.39px;
  }
}

.welfare-card__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  row-gap: 12px;
}

.welfare-card__text {
  color: #404559;
  width: 51.241935%;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 170%; /* 27.2px */
}
@media (max-width: 767px) {
  .welfare-card__text {
    font-size: 15px;
    line-height: 175%; /* 25.5px */
    width: auto;
    margin-inline: 0;
  }
}

.welfare-cards {
  border-radius: 12px;
  border: 1px solid #fff;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}
@media (max-width: 767px) {
  .welfare-cards {
    max-width: 500px;
    margin-inline: auto;
  }
}

summary {
  display: block;
}
summary::-webkit-details-marker {
  display: none;
}
@media (any-hover: hover) {
  summary:hover {
    cursor: pointer;
  }
}

.faq {
  position: relative;
  padding-block: 99px;
  background: #E4EAF1;
  overflow: hidden;
}
@media (max-width: 767px) {
  .faq {
    padding-block: 100px;
  }
}

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

.faq__decoration-img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.faq__decoration--top {
  right: -80px;
  top: -114.167px;
  width: 317px;
  height: 317px;
  border-radius: 317px;
  background: #AFD2E7;
  opacity: 0.5;
  -webkit-filter: blur(75px);
          filter: blur(75px);
}
@media (max-width: 767px) {
  .faq__decoration--top {
    right: -44px;
    top: -59px;
    width: 183px;
    height: 183px;
  }
}

.faq__decoration--bottom {
  right: 52px;
  bottom: 8.167px;
  width: 317px;
  height: 317px;
  border-radius: 317px;
  background: #AFD2E7;
  opacity: 0.5;
  -webkit-filter: blur(75px);
          filter: blur(75px);
}
@media (max-width: 767px) {
  .faq__decoration--bottom {
    display: none;
  }
}

.faq__decoration--middle {
  left: -3px;
  bottom: -2.833px;
  width: 589px;
}
@media (max-width: 767px) {
  .faq__decoration--middle {
    left: -5px;
    bottom: -132.833px;
    width: 281px;
  }
}

.faq__inner.inner {
  position: relative;
  z-index: 1;
  max-width: 1320px;
  padding-inline: 40px;
  padding-block: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 237px;
     -moz-column-gap: 237px;
          column-gap: 237px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .faq__inner.inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 37px;
    padding-block: 0;
    padding-inline: 20px;
  }
}

.faq-items {
  width: 880px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 24px;
}
@media (max-width: 767px) {
  .faq-items {
    row-gap: 20px;
    width: 100%;
  }
}

.faq-item {
  padding-block: 8px;
  border-radius: 4px;
  background: #FFFFFF;
}
@media (max-width: 767px) {
  .faq-item {
    -webkit-padding-start: 13px;
            padding-inline-start: 13px;
    -webkit-padding-end: 16px;
            padding-inline-end: 16px;
  }
}

.faq-item__summary {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 19px;
     -moz-column-gap: 19px;
          column-gap: 19px;
  padding-block: 15.5px;
  -webkit-padding-start: 52px;
          padding-inline-start: 52px;
  -webkit-padding-end: 58px;
          padding-inline-end: 58px;
  color: #404559;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 160%;
}
@media (max-width: 767px) {
  .faq-item__summary {
    padding-inline: 0;
    padding-block: 8.5px;
    -webkit-column-gap: 8px;
       -moz-column-gap: 8px;
            column-gap: 8px;
  }
}

.faq-item__icon {
  width: 36px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media (max-width: 767px) {
  .faq-item__icon {
    width: 28px;
  }
}
.faq-item__icon img {
  display: block;
  width: 100%;
}

.faq-item__question {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  color: #404559;
  /* 本文大 */
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 160%; /* 32px */
}
@media (max-width: 767px) {
  .faq-item__question {
    font-size: 15px;
  }
}

.faq-item__icon-arrow {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  width: 20px;
  flex-shrink: 0;
}
.faq-item__icon-arrow svg {
  display: block;
}
.faq-item__icon-arrow path {
  stroke: #0961b6;
}

.faq-item:not(.is-opened) .faq-item__icon-arrow {
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
}

.faq-item.is-opened .faq-item__icon-arrow {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}

.faq-content {
  overflow: hidden;
  height: 0;
  opacity: 0;
}

.faq-content__inner {
  border-top: 1px solid #C4CCD7;
  padding-block: 16px;
  padding-inline: 32px;
  margin-inline: 20px;
  color: #023E78;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 200%;
}
@media (max-width: 767px) {
  .faq-content__inner {
    font-size: 15px;
    padding-block: 8px;
    margin-inline: 0;
    padding-inline: 0;
  }
}

.cta {
  position: relative;
  background: #E4EAF1;
  padding: 32px;
}
@media (max-width: 767px) {
  .cta {
    padding: 12px;
  }
}

.cta__inner.inner {
  position: relative;
  max-width: 1376px;
  margin-inline: auto;
  border-radius: 8px;
  overflow: hidden;
  -webkit-perspective: 2000px;
          perspective: 2000px;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}
@media (max-width: 767px) {
  .cta__inner.inner {
    height: 400px;
  }
}

.cta__doors {
  position: relative;
  width: 100%;
  height: 636px;
  -webkit-perspective: 2000px;
          perspective: 2000px;
  /* 青グラデ背景 */
  background: -webkit-gradient(linear, right top, left top, from(#0291D9), to(#023E78));
  background: linear-gradient(270deg, #0291D9 0%, #023E78 100%);
}

.cta__door {
  position: absolute;
  top: 0;
  width: 50%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
  -webkit-transition: width 3s, -webkit-transform 3s;
  transition: width 3s, -webkit-transform 3s;
  transition: transform 3s, width 3s;
  transition: transform 3s, width 3s, -webkit-transform 3s;
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
          box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
.cta__door img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (max-width: 800px) {
  .cta__door {
    display: none;
  }
}

.cta__door--left {
  left: 0;
  -webkit-transform-origin: left;
          transform-origin: left;
}

.cta__door--right {
  right: 0;
  -webkit-transform-origin: right;
          transform-origin: right;
}

/* 開いたときの状態 */
.cta.is-open .cta__content {
  z-index: 1;
}

.cta.is-open .cta__door--left {
  -webkit-transform: rotateY(62deg);
          transform: rotateY(62deg);
  -webkit-transform-origin: left;
          transform-origin: left;
  z-index: 10;
}

.cta.is-open .cta__door--right {
  -webkit-transform: rotateY(-62deg);
          transform: rotateY(-62deg);
  z-index: 10;
}

/* ============================
   中央コンテンツ
============================ */
.cta__content {
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 636px;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  padding: 113.5px 40px;
  text-align: center;
  border-radius: 8px;
  overflow: hidden;
  -webkit-perspective: 2000px;
          perspective: 2000px;
  -webkit-perspective-origin: center top;
          perspective-origin: center top;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}
@media (max-width: 767px) {
  .cta__content {
    padding: 56px 8px 55px;
    height: auto;
  }
}

.cta__catch {
  color: #fff;
  text-align: center;
  font-family: "Jost", sans-serif;
  font-size: 56px;
  font-style: italic;
  font-weight: 500;
  line-height: 150%; /* 84px */
  letter-spacing: 1.68px;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .cta__catch {
    font-size: 32px;
    text-align: center;
    letter-spacing: 1.6px;
  }
}

.cta__text {
  -webkit-margin-before: 36px;
          margin-block-start: 36px;
  color: #fff;
  text-align: center;
  /* 本文中 */
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 170%; /* 27.2px */
}
@media (max-width: 767px) {
  .cta__text {
    -webkit-margin-before: 24px;
            margin-block-start: 24px;
    font-size: 14px;
  }
}

.cta__button {
  -webkit-margin-before: 56px;
          margin-block-start: 56px;
}
@media (max-width: 767px) {
  .cta__button {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
  }
}

.cta-button {
  -webkit-margin-before: 56px;
          margin-block-start: 56px;
  padding: 14px 90px 16px 63px;
  color: #fff;
  border-radius: 44px;
  border: 1px solid #fff;
  position: relative;
  display: inline-block;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  overflow: hidden;
  z-index: 1;
  font-size: 24px;
  font-weight: 500;
  line-height: 150%; /* 36px */
  letter-spacing: 1.2px;
  text-transform: uppercase;
  /* 背景拡大アニメ */
}
@media (max-width: 767px) {
  .cta-button {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
    font-size: 18px;
    letter-spacing: 0.9px;
  }
}
.cta-button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #023E78;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  z-index: -1;
}
.cta-button::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  aspect-ratio: 1/1;
  background: #fff400;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 40px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.cta-button:hover::before {
  -webkit-transform: scale(1);
          transform: scale(1);
}

.images__scroll {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  --images-width: 0px;
  --image-gap: 12px;
  --scroll-duration: 16s;
  gap: var(--image-gap);
  -webkit-animation: infinity-scroll-left var(--scroll-duration) linear infinite;
          animation: infinity-scroll-left var(--scroll-duration) linear infinite;
  min-width: 100%;
  min-height: 640px;
}
@media (max-width: 767px) {
  .images__scroll {
    min-height: 560px;
  }
}

@-webkit-keyframes infinity-scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(calc(-1 * (var(--images-width) + var(--image-gap))));
            transform: translateX(calc(-1 * (var(--images-width) + var(--image-gap))));
  }
}

@keyframes infinity-scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(calc(-1 * (var(--images-width) + var(--image-gap))));
            transform: translateX(calc(-1 * (var(--images-width) + var(--image-gap))));
  }
}
/* ---------------------------
   タイルレイアウト（現在使っている grid）
--------------------------- */
.images {
  display: grid;
  row-gap: 20px;
  -webkit-column-gap: 20px;
     -moz-column-gap: 20px;
          column-gap: 20px;
  grid-template-columns: repeat(7, 268.57144px);
  grid-template-rows: repeat(2, 270px);
  width: 2000px;
  height: 640px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media (max-width: 767px) {
  .images {
    grid-template-columns: repeat(7, 149.71428px);
    grid-template-rows: repeat(2, 254px);
    row-gap: 12px;
    -webkit-column-gap: 12px;
       -moz-column-gap: 12px;
            column-gap: 12px;
    width: 1120px;
    height: 560px;
    row-gap: 12px;
    column-gap: 12px;
  }
}
.images img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0;
  -webkit-transition: opacity 0.8s ease;
  transition: opacity 0.8s ease;
}
.images img.is-show {
  opacity: 1;
}

.image1 {
  grid-column: 1/span 1;
  grid-row: 1/span 2;
}

.image2 {
  grid-column: 2/span 1;
  grid-row: 1/span 1;
}

.image3 {
  grid-column: 2/span 1;
  grid-row: 2/span 1;
}

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

.image5 {
  grid-column: 5/span 1;
  grid-row: 1/span 1;
}

.image6 {
  grid-column: 5/span 1;
  grid-row: 2/span 1;
}

.image7 {
  grid-column: 6/span 2;
  grid-row: 1/span 2;
}

.animated__fadeIn,
.js-fade-in {
  opacity: 0;
  -webkit-transform: translateY(40px);
          transform: translateY(40px);
  -webkit-transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.animated__fadeIn.js-show,
.js-fade-in.js-show {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* 初期設定 */
button {
  background: none;
}

:where(dialog) {
  width: unset;
  max-width: unset;
  height: unset;
  max-height: unset;
  padding: unset;
  background-color: unset;
  border: unset;
  overflow: unset;
}

body:has(dialog[open]) {
  overflow: hidden;
}

.modal__open-btn {
  padding: 4px 20px;
  border: 1px solid #000;
}

/* モーダルのスタイル ============ */
dialog::-ms-backdrop {
  opacity: 0;
  -ms-transition: background 0.3s ease-in-out;
  transition: background 0.3s ease-in-out;
}
dialog::backdrop {
  opacity: 0;
  -webkit-transition: background 0.3s ease-in-out;
  transition: background 0.3s ease-in-out;
}
dialog.js-show.modal__content {
  opacity: 1;
}
dialog.js-show::-ms-backdrop {
  opacity: 1;
  /* 背景画像 */
  background: rgba(2, 62, 120, 0.5);
  backdrop-filter: blur(6px);
}
dialog.js-show::backdrop {
  opacity: 1;
  /* 背景画像 */
  background: rgba(2, 62, 120, 0.5);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
}

.modal__inner {
  overflow-y: scroll;
  height: 100%;
  position: relative;
}

.modal__body {
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  /* modal内のスタイル */
}
.modal__body h3 {
  font-size: 30px;
  font-weight: 700;
}
.modal__body p {
  font-size: 20px;
}

.modal__close-btn {
  position: absolute;
  z-index: 2;
  top: 20px;
  right: 20px;
  font-size: 30px;
}

.business-modal__content {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
}

.business-modal__section {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}
.business-modal__section:first-child {
  -webkit-margin-before: 0;
          margin-block-start: 0;
}

.business-modal__section-title {
  font-size: 20px;
  font-weight: 700;
  -webkit-margin-after: 12px;
          margin-block-end: 12px;
}

.business-modal__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.business-modal__list li {
  font-size: 16px;
  line-height: 1.8;
  -webkit-margin-before: 8px;
          margin-block-start: 8px;
}
.business-modal__list li:first-child {
  -webkit-margin-before: 0;
          margin-block-start: 0;
}

/* ================================
   【共通モーダルレイアウト】
================================ */
.modal {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 0.25s ease, -webkit-transform 0.25s ease;
  transition: opacity 0.25s ease, -webkit-transform 0.25s ease;
  transition: opacity 0.25s ease, transform 0.25s ease;
  transition: opacity 0.25s ease, transform 0.25s ease, -webkit-transform 0.25s ease;
}
.modal.js-show {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.modal::-ms-backdrop {
  background: rgba(2, 62, 120, 0.5);
  backdrop-filter: blur(4px);
}
.modal::backdrop {
  background: rgba(2, 62, 120, 0.5);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}

/* モーダル中央配置 */
.modal__wrapper {
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: min(1200px, 95%);
  max-height: 90vh;
  overflow: hidden;
  background: #FFFFFF;
  border-radius: 12px;
  padding: 48px;
  -webkit-box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3);
          box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (max-width: 767px) {
  .modal__wrapper {
    padding: 16px;
    height: 90vh; /* スマホ時スクロール対応 */
  }
}

/* ヘッダー */
.modal__header {
  position: relative;
}

.modal__category {
  color: #023E78;
  font-family: "Jost", sans-serif;
  font-size: 18px;
  font-style: italic;
  font-weight: 500;
  line-height: 160%; /* 28.8px */
}
@media (max-width: 767px) {
  .modal__category {
    -webkit-margin-before: 32px;
            margin-block-start: 32px;
    font-size: 14px;
  }
}

.modal__title {
  -webkit-margin-before: 4px;
          margin-block-start: 4px;
  color: #023E78;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 160%; /* 44.8px */
}
@media (max-width: 767px) {
  .modal__title {
    font-size: 20px;
  }
}
.modal__title span {
  -webkit-margin-end: 16px;
          margin-inline-end: 16px;
  font-family: Jost;
  font-size: 30px;
  font-style: italic;
  font-weight: 500;
  line-height: 160%; /* 28.8px */
}
@media (max-width: 767px) {
  .modal__title span {
    font-size: 18px;
  }
}

.modal__close-text {
  position: absolute;
  right: 0;
  top: 50px;
  color: #023E78;
  text-decoration: underline;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 170%; /* 27.2px */
}
@media (max-width: 767px) {
  .modal__close-text {
    font-size: 12px;
    right: 64px;
    top: 0;
  }
}
.modal__close-text::after {
  content: "";
  position: absolute;
  right: 0;
  top: -42px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background: url(../img/modal-close.png) no-repeat center center;
  background-size: contain;
  display: block;
  width: 36px;
  height: 36px;
}
@media (max-width: 767px) {
  .modal__close-text::after {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 36px;
    height: 36px;
    top: 17px;
    right: -65px;
  }
}

/* 本文エリア */
.modal__content {
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
  overflow-y: auto;
}
@media (max-width: 767px) {
  .modal__content .modal__content {
    -webkit-margin-before: 12px;
            margin-block-start: 12px;
    overflow-y: auto; /* スマホ時スクロール対応 */
  }
}

/* ブロック */
.modal__block {
  padding-block: 12px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 40px;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.modal__block:last-of-type {
  margin-bottom: 0;
  border-bottom: 1px solid #C4CCD7;
}
@media (max-width: 767px) {
  .modal__block {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
    margin-bottom: 0;
    -webkit-box-align: normal;
        -ms-flex-align: normal;
            align-items: normal;
  }
}

.modal__block + .modal__block {
  border-top: 1px solid #C4CCD7;
}

.modal__block-title {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 378px;
  color: #023E78;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 160%; /* 28.8px */
  margin-top: 0;
  margin-bottom: 0;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}
@media (max-width: 1100px) {
  .modal__block-title {
    width: 250px;
  }
}
@media (max-width: 767px) {
  .modal__block-title {
    width: 100%;
    margin-bottom: 8px;
    font-size: 15px;
  }
}

.modal__block-list {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  list-style: none;
  padding: 0;
  margin: 0;
}
.modal__block-list li {
  display: block;
  color: #404559;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 170%; /* 27.2px */
  margin-top: 8px;
}
@media (max-width: 767px) {
  .modal__block-list li {
    font-size: 15px;
  }
}
.modal__block-list li:first-child {
  margin-top: 0;
}

/* エントリーボタン */
.modal__entry-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 36px;
  background: #023E78;
  color: #fff;
  text-align: center;
  padding: 20px 40px;
  border-radius: 4px;
  margin-top: 40px;
  position: relative;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  color: var(--, #FFF);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
}
@media (max-width: 767px) {
  .modal__entry-btn {
    color: var(--, #FFF);
    font-family: "Zen Kaku Gothic New";
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    padding: 20px 40px;
  }
}
.modal__entry-btn::after {
  content: "";
  display: block;
  width: 10px;
  height: 20px;
  background: url(../img/modal-arrow.png) no-repeat center center;
  background-size: contain;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.parallax {
  position: fixed;
  z-index: -1;
  inset: 0;
  width: 100vw;
  height: 100vh;
  min-height: 802px;
  background: url("../img/culture-main.jpg") no-repeat center center/cover;
  pointer-events: none;
}
@media (max-width: 767px) {
  .parallax {
    min-height: 488px;
    background: url("../img/culture-main-sp.jpg") no-repeat center center/cover;
  }
}

.container.--2 {
  margin-top: 398px;
  background: #FFFFFF;
}

.font-jost {
  font-size: 80px;
  font-family: "Jost", sans-serif;
  font-weight: 500;
}

.font-gothic {
  font-size: 80px;
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.font-jost-italic {
  font-size: 80px;
  font-weight: 500;
  font-family: "Jost", sans-serif;
  font-style: italic;
}