html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

main {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

main img {
  max-width: 100%;
  height: auto;
}

:root {
  --about-blue: #009fe8;
  --about-dark-blue: #004875;
  --about-text: #345d76;
  --about-light-blue: #edf9ff;
  --about-line: #d8eaf3;
  --about-white: #ffffff;
}

.fv__title-blue {
  color: var(--about-blue);
}

 .fv--about .fv__subtitle {
    margin-left: 32px;
  }


body {
  overflow-x: hidden;
}

.about-message__image {
  position: relative;

  width: 380px;
  height: 100%;

  overflow: hidden;

  margin-left: 60px;
}

.about-message__image img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}

.about-message__catch {
  position: absolute;
  z-index: 3;

  left: 28px;
  top: 58%;

  transform: translateY(-50%);

  margin: 0;
  padding: 10px 14px;


  color: #164474;

  font-size: 18px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.05em;

  white-space: nowrap;
}


.about-message__catch::before {
  content: "";

  position: absolute;
  z-index: -1;

  top: 50%;
  left: 50%;

  width: 115%;
  height: 120%;

  transform: translate(-50%, -50%);

  background: rgba(255, 255, 255, 0.88);

  border-radius: 50%;

  filter: blur(10px);

  pointer-events: none;
}


.message {
  padding-top: 90px;
  padding-bottom: 110px;

  background: var(--about-white);
}

.message .section-label {
  margin-bottom: 28px;
}

.message .section-title {
  margin-bottom: 55px;
}

.message__inner {
  display: grid;

  grid-template-columns: 44% 1fr;

  gap: 75px;

  align-items: stretch;
}



.message__visual {
  position: relative;
  width: 100%;
}

.message__visual img {
  width: 100%;
  height: auto;

  object-fit: cover;
}


.message__content {
  padding-top: 5px;

  font-size: 13px;
  line-height: 2.15;

  color: var(--about-text);
}

.message__content p {
  margin: 0 0 24px;
}



.message__signature {
  margin-top: 28px;
  text-align: left;
  font-size: 12px;
  line-height: 1.4;
  color: var(--about-dark-blue);
}

.message__signature p {
  margin: 0;
}

.message__signature p + p {
  margin-top: 6px;
}


.scroll-up {
  opacity: 0;
  transform: translateY(80px);

  transition:
    opacity 0.9s ease,
    transform 0.9s ease;
}

.scroll-up.is-show {
  opacity: 1;
  transform: translateY(0);
}


.vision {
  position: relative;

  padding-top: 70px;
  padding-bottom: 120px;

  background: var(--about-light-blue);

  overflow: hidden;
}


.vision .section-label {
  position: relative;
  z-index: 4;

  margin-bottom: 70px;
}

.vision__music-loop {
  position: absolute;
  z-index: 1;

  left: 0;
  top: 50%;

  width: 100%;
  height: 430px;

  transform: translateY(-50%);

  overflow: hidden;
  pointer-events: none;
}

.vision__music-track {
  display: flex;
  align-items: center;

  width: max-content;
  height: 100%;

  animation: visionMusicLoop 30s linear infinite;
}

.vision__music {
  display: block;

  width: 1440px;
  max-width: none;
  height: auto;

  flex-shrink: 0;
}

@keyframes visionMusicLoop {

  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-1440px);
  }

}


.vision__content {
  position: relative;
  z-index: 3;

  width: 100%;

  text-align: center;
}

.vision__content::before {
  content: "";

  position: absolute;
  z-index: -1;

  left: 50%;
  top: 50%;

  width: 1050px;
  height: 230px;

  transform: translate(-50%, -50%);

  border-radius: 50%;
  
  background: #ffffff;
  
  filter: blur(14px);
  
  pointer-events: none;
}

.vision__content h2 {
  margin: 0;

  font-size: 29px;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.03em;

  color: var(--about-dark-blue);
}


.vision__content p {
  margin: 28px 0 0;

  font-size: 16px;
  line-height: 2;

  color: var(--about-blue);
}

.company-info {
  padding: 90px 0 110px;
  background: #fff;
}

.company-info .section-label {
  margin-bottom: 50px;
}


.company-info__inner {
  display: grid;
  grid-template-columns: 36% 1fr;
  gap: 90px;
  align-items: start;
}


.company-info__heading {
  margin-left: 0;
  padding: 0;
}

.company-info__heading .section-title {
  margin: 0 0 28px;
  padding: 0;

  margin-left: 32px;

  font-size: 30px;
  line-height: 1.4;
  color: var(--about-dark-blue);
}

.company-info__heading p {
  margin: 0 0 0 32px;
  padding: 0;

  font-size: 14px;
  line-height: 2;
  color: var(--about-text);
}



.company-table {
  width: 100%;
  margin: 0;
  padding: 0;
}

.company-table dl {
  width: 100%;
  margin: 0;
  padding: 0;

  border-top: 1px solid var(--about-line);
}

.company-table dl > div {
  display: grid;

  grid-template-columns: 135px 1fr;

  align-items: center;

  min-height: 62px;

  border-bottom: 1px solid var(--about-line);
}


.company-table dt {
  margin: 0;
  padding: 0;

  font-size: 14px;
  font-weight: 500;

  color: var(--about-blue);
}



.company-table dd {
  margin: 0;
  padding: 0;

  font-size: 14px;
  line-height: 1.8;

  color: var(--about-text);
}



.company-table dd {
  white-space: normal;
}

.business {
  width: 100%;
  background: var(--about-light-blue);
}

.business__heading {
  padding-top: 80px;
  padding-bottom: 55px;
}

.business__heading .section-label {
  margin-bottom: 25px;
}

.business__heading .section-title {
  margin-bottom: 0;
}

.business-item {
  display: grid;
  grid-template-columns: 1fr 1fr;

  width: 100%;
  min-height: 420px;

  background: var(--about-light-blue);
}


.business-item--reverse {
  background: #ffffff;
}


.business-item__content {
  display: flex;
  flex-direction: column;
  justify-content: center;

  box-sizing: border-box;

  padding-top: 55px;
  padding-bottom: 55px;

  padding-left:
    max(
      80px,
      calc((100vw - 1280px) / 2)
    );

  padding-right: 70px;
}


.business-item--reverse .business-item__content {
  padding-left: 70px;

  padding-right:
    max(
      80px,
      calc((100vw - 1280px) / 2)
    );
}


.business-item__number {
  margin: 0 0 25px;

  font-size: 30px;
  font-weight: 300;
  line-height: 1;

  color: #76c9f1;
}


.business-item__en {
  margin: 0 0 12px;

  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;

  color: var(--about-blue);
}


.business-item__content h3 {
  margin: 0 0 27px;

  font-size: 27px;
  font-weight: 600;
  line-height: 1.5;

  color: var(--about-dark-blue);
}


.business-item__content > p:not(
  .business-item__number,
  .business-item__en
) {
  margin-top: 0;
  margin-bottom: 20px;

  font-size: 16px;
  line-height: 2;

  color: var(--about-text);
}

.business-item__visual {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;

  width: 100%;
  height: 560px;

  box-sizing: border-box;
  overflow: hidden;
}

.business-item__visual img {
  position: relative;
  z-index: 1;

  display: block;

  width: 100%;
  height: auto;
  max-height: 460px;

  object-fit: contain;

  margin-top: auto;
  margin-bottom: 0;       
}

.business-item--01 .business-item__visual {
  overflow: visible;
}

.business-item--01 .business-item__visual img {
  width: 115%;
  max-width: none;
  max-height: 500px;

  margin-top: auto;
  margin-left: 30px;
  margin-bottom: 0;

  transform: translateX(-90px) translateY(50px);
}


.business-item--reverse .business-item__visual img {
  transform: translateY(20px);
}

.business-item__visual::after {
  content: "";
  position: absolute;
  z-index: 2;

  top: 0;
  bottom: 0;

  width: 330px;

  pointer-events: none;
}

.business-item__visual::after {
  content: "";
  position: absolute;
  z-index: 2;

  top: 0;
  bottom: 0;

  pointer-events: none;
}

.business-item--01 .business-item__visual {
  justify-content: flex-start;
}


.business-item--01 .business-item__visual::after {
  right: 0;
  width: 400px;

  background: linear-gradient(
    to right,
    rgba(237, 249, 255, 0) 0%,
    rgba(237, 249, 255, 0.25) 25%,
    rgba(237, 249, 255, 0.65) 45%,
    rgba(237, 249, 255, 0.96) 65%,
    var(--about-light-blue) 100%
  );
}

.business-item--reverse .business-item__visual {
  justify-content: flex-end;
}

.business-item--reverse .business-item__visual img {
  margin-right: 30px;
}

.business-item--reverse .business-item__visual::after {
  left: 0;
  width: 330px;

  background: linear-gradient(
    to left,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.45) 15%,
    rgba(255, 255, 255, 0.8) 40%,
    rgba(255, 255, 255, 0.96) 70%,
    #ffffff 100%
  );
}


.business-item:not(.business-item--01):not(.business-item--reverse)
.business-item__visual {
  justify-content: flex-start;
}

.business-item:not(.business-item--01):not(.business-item--reverse)
.business-item__visual img {
  margin-left: 30px;
}

.business-item:not(.business-item--01):not(.business-item--reverse)
.business-item__visual::after {
  right: 0;
  width: 300px;

  background: linear-gradient(
    to right,
    rgba(237, 249, 255, 0) 0%,
    rgba(237, 249, 255, 0.2) 35%,
    rgba(237, 249, 255, 0.6) 60%,
    rgba(237, 249, 255, 0.95) 82%,
    var(--about-light-blue) 100%
  );
}

.service-detail {
  display: flex;
  gap: 50px;

  margin-top: 15px;
}

.service-detail__block {
  flex: 1;
}

.service-detail__block h4 {
  margin: 0 0 12px;

  font-size: 10px;
  font-weight: 600;

  color: var(--about-dark-blue);
}

.service-detail__block p {
  margin: 0;

  font-size: 9px;
  line-height: 1.9;

  color: var(--about-text);
}


.business-item:not(.business-item--reverse)
.business-item__visual {
  border-radius: 100px 0 0 0;
}


.business-item--reverse
.business-item__visual {
  border-radius: 0 100px 0 0;
}
.business-detail {
  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 35px;

  margin-top: 25px;
}

.business-detail__title {
  margin-bottom: 10px;

  font-size: 9px;
  font-weight: 600;

  letter-spacing: 0.05em;

  color: var(--about-dark-blue);
}

.business-detail p {
  margin: 0;

  font-size: 9px;
  line-height: 1.8;

  color: var(--about-text);
}

.access {
  padding: 90px 0 110px;
  background: #ffffff;
}



.access .section-label {
  margin-bottom: 28px;
}



.access .section-title {
  margin-left: 32px;
  margin-bottom: 55px;
  padding: 0;
}


.access__inner {
  display: grid;

  grid-template-columns: 55% 1fr;

  gap: 70px;

  align-items: start;
}

.access__map {
  position: relative;

  width: 100%;
  height: 380px;

  overflow: hidden;
}

.access__map a {
  display: block;

  width: 100%;
  height: 100%;
}

.access__map iframe {
  display: block;

  width: 100%;
  height: 100%;

  border: 0;

  pointer-events: none;
}


.access__content {
  display: flex;
  flex-direction: column;

  gap: 32px;

  padding-top: 0;
}

.access__item {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 18px;
  align-items: start;
}

.access__item--training .access__icon {
  width: 50px;
  height: 50px;
  max-width: none;
  object-fit: contain;
}

.access__icon-circle {
  width: 64px;
  height: 64px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: #e5f6ff;
  border-radius: 50%;

  flex-shrink: 0;

  margin-left: -15px;
  transform: translateY(-10px);
}

.access__icon {
  display: block;

  width: 34px;
  height: 34px;

  object-fit: contain;
}

.access__text h3 {
  margin: 0 0 14px;

  font-size: 18px;
  font-weight: 600;

  line-height: 1.5;

  color: var(--about-dark-blue);
}



.access__text p {
  margin: 0;

  font-size: 14px;

  line-height: 2;

  color: var(--about-text);
}



#message,
#company,
#service,
#access {
  scroll-margin-top: 100px;
}


.message__content .message-sign {
  margin-top: 20px;
  text-align: right;
}

.message__content .message-sign p {
  margin: 0 !important;
  padding: 0;
  line-height: 1.4;
  text-align: right;
}

.message__content .message-sign p + p {
  margin-top: 4px !important;
}

:root {
  --about-label-indent: 32px;
}


.message .section-title {
  margin-left: var(--about-label-indent) !important;
  padding-left: 0 !important;
}



.vision__content {
  text-align: center;
}



.business__heading .section-title {
  margin-left: var(--about-label-indent) !important;
  padding-left: 0 !important;
}

.access .section-title {
  margin-left: var(--about-label-indent) !important;
  padding-left: 0 !important;
}


.business-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;

  width: 100%;
  min-height: 520px;

  background: var(--about-light-blue);
}


.business-item__content {
  display: flex;
  flex-direction: column;
  justify-content: center;

  box-sizing: border-box;

  padding-top: 60px;
  padding-bottom: 60px;

  padding-left: max(
    84px,
    calc((100vw - 1280px) / 2)
  );

  padding-right: 55px;
}


.business-item__number {
  margin: 0 0 25px;

  font-size: 31px;
  font-weight: 300;
  line-height: 1;

  color: #71c7f3;
}


.business-item__en {
  margin: 0 0 14px;

  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;

  color: var(--about-blue);
}


.business-item__content h3 {
  margin: 0 0 28px;

  font-size: 28px;
  line-height: 1.4;

  color: var(--about-dark-blue);
}


.business-item__content .service-description {
  margin: 0;

  font-size: 11px;
  line-height: 2;

  color: var(--about-text);
}


.service-detail {
  display: grid;

  grid-template-columns: 1fr 1.25fr;

  gap: 30px;

  margin-top: 32px;
}

.service-detail__block h4 {
  margin: 0 0 13px;

  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;

  color: var(--about-dark-blue);
}

.service-detail__block p {
  margin: 0;

  font-size: 12px;
  line-height: 1.85;

  color: var(--about-text);
}


.business-item--01 .business-item__visual {
  border-radius: 110px 0 0 0;
}


.business-item--reverse {
  background: #ffffff !important;
}

.business-item--reverse .business-item__visual {
  background: #ffffff;
}


.slide-right {
  opacity: 0;
  transform: translateX(100px);
  transition:
    opacity 1s ease,
    transform 1s ease;
}

.slide-left {
  opacity: 0;
  transform: translateX(-100px);
  transition:
    opacity 1s ease,
    transform 1s ease;
}

.slide-right.is-show,
.slide-left.is-show {
  opacity: 1;
  transform: translateX(0);
}

.about-sp-br {
  display: none;
}

.message-sp-br {
  display: none;
}

.company-sp-br,
.company-sp-text {
  display: none;
}

.development-sp-br {
  display: none;
}

.consulting-pc-br {
  display: inline;
}

.consulting-sp-br {
  display: none;
}

@media (max-width: 1100px) {


  .message__inner {
    gap: 45px;
  }


  .company-info__inner {
    grid-template-columns: 34% 1fr;
    gap: 50px;
  }


  .business-item__content {
    padding-left: 50px;
    padding-right: 50px;
  }

  .business-item--reverse .business-item__content {
    padding-left: 50px;
    padding-right: 50px;
  }


  .access__inner {
    gap: 45px;
  }
}

@media (min-width: 769px) and (max-width: 1100px) {

  .message__inner {
    display: block;
  }

  .about-message__image {
    width: 70%;
    height: auto;
    margin: 0 auto 45px;
    overflow: hidden;
  }

  .about-message__image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  .about-message__catch {
    left: 28px;
  }

.message__content {
  width: auto;
  margin-left: 32px !important;
  margin-right: 0;
  padding: 0;
  text-align: left;
}

.message__content > p {
  margin-left: 0;
  padding-left: 0;
  text-align: left;
}



  .message__content .message-sign {
    margin-top: 25px;
    text-align: left;
  }

  .message__content .message-sign p {
    text-align: left;
  }

  .vision__content h2 {
  font-size: 23px;
  white-space: nowrap;
}

.company-info__heading .section-title {
  margin-left: 32px !important;
}

.business-item--01 {
  height: 560px;
  min-height: 560px;
}

.business-item--01 .business-item__content,
.business-item--01 .business-item__visual {
  height: 560px;
  min-height: 560px;
}

@media (min-width: 769px) and (max-width: 1100px) {

  .business-item--01 .business-item__visual {
    position: relative;
    height: 560px;
    min-height: 560px;

    padding-top: 100px;

    box-sizing: border-box;
    overflow: hidden;
  }

  .business-item--01 .business-item__visual > img {
    position: relative !important;
    top: 40px !important;


  width: 140% !important;
  max-width: none !important;

  transform: translateX(-35px) !important;
  }

}
  

  .business-item--01 .business-item__visual::after {
    top: 0;
    bottom: 0;
    height: auto;
  }

.business-item--reverse .service-description,
.business-item:not(.business-item--01):not(.business-item--reverse) .service-description {
  font-size: 14px !important;
}

.business-item:not(.business-item--01):not(.business-item--reverse)
.business-item__content {
  padding-right: 15px !important;
}

.business-item:not(.business-item--01):not(.business-item--reverse)
.service-description {
  font-size: 14px !important;
  width: calc(100% + 35px);
  max-width: none;
}

}

@media (max-width: 768px) {


  .message {
    padding-top: 65px;
    padding-bottom: 75px;
  }

  .message .section-title {
    margin-bottom: 35px;
  }

  .message__inner {
    grid-template-columns: 1fr;

    gap: 35px;
  }

  .message__content {
    font-size: 12px;
  }

  .message-sp-br {
    display: inline;
  }


  .about-message__image {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  transform: translateX(-20px);
}

.about-sp-br {
  display: inline;
}


  .vision {
    padding-top: 60px;
    padding-bottom: 80px;
  }

  .vision .section-label {
    margin-bottom: 50px;
  }

  .vision__content h2 {
    font-size: 22px;
    line-height: 1.8;
  }

  .company-info {
    padding-top: 65px;
    padding-bottom: 75px;
  }

  .company-info__inner {
    grid-template-columns: 1fr;
gap: 40px;
  }

.company-info__heading .section-title {
  transform: translateX(0) !important;
}


.company-info__heading > p {
  margin-left: 0 !important;
  transform: translateX(30px) !important;
  font-size: 12px !important;
}


  .company-info__data > div {
    grid-template-columns: 100px 1fr;
  }

  .company-sp-br,
.company-sp-text {
  display: inline;
}

.company-pc-text {
  display: none;
}

.business-item__content > p {
  font-size: 13px !important;
}

  .business__heading {
    padding-top: 65px;
    padding-bottom: 40px;
  }

  .business-item {
    grid-template-columns: 1fr;

    min-height: 0;
  }

  .business-item__content {
    order: 1;

    padding: 55px 20px;
  }

  .business-item__visual {
  order: 2;

  height: auto;
  min-height: 0;
}

.business-item__visual img {
  margin-top: auto;
  margin-bottom: 0;
}

  .business-item--reverse .business-item__content {
    order: 1;

    padding: 55px 20px;
  }

  .business-item--reverse .business-item__visual {
    order: 2;
  }

  .business-item:not(.business-item--reverse)
  .business-item__visual,
  .business-item--reverse
  .business-item__visual {
    border-radius: 60px 0 0 0;
  }

  .business-item__number {
    font-size: 26px;
  }

  .business-item__content h3 {
    font-size: 23px;
  }

  .business-item--reverse .business-item__visual::after {
  width: 180px !important;
}


  
.service-detail {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 35px !important;
}

.service-detail__block h4 {
  white-space: nowrap !important;
}

.development-sp-br {
  display: inline;
}

.development-sp-br {
  display: inline !important;
}

.business-item .business-item__content .service-list {
  font-size: 12px !important;
  line-height: 2 !important;
  white-space: nowrap !important;
}


.service-description {
  font-size: 12px !important;
}

.service-description .consulting-list {
  display: inline-block !important;
  font-size: 11px !important;
  line-height: 2 !important;
}


.consulting-pc-br {
  display: none;
}

.consulting-sp-br {
  display: inline;
}


  .access {
    padding: 65px 0 75px;
  }

  .access .section-title {
    margin-bottom: 35px;
  }

  .access__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .business-item__visual img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  margin: 0;
  transform: translateY(-15px);

  .business-item--01 .business-item__visual {
  transform: translateY(-30px) !important;
}
}

.business-item--01 .business-item__visual > img {
  position: relative !important;
  top: -30px !important;
  left: 20px !important;
}
.business-item--reverse .business-item__visual > img {
  position: relative !important;
  left: 50px !important;
}


}

@media (max-width: 480px) {


  .vision__content h2 {
    font-size: 19px;
  }

  .company-info__data > div {
    grid-template-columns: 85px 1fr;
  }

  .business-item__content h3 {
    font-size: 21px;
  }

}