@charset "UTF-8";
@media print, screen and (min-width: 768.1px) {
  .sp {
    display: none !important;
  }
}

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

:root {
  --font-default: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft Yahei UI", "Microsoft Yahei", "Source Han Sans CN", sans-serif;
  --font-jp: "FOT-筑紫ゴシック Pro M", "FOT-筑紫ゴシック Pro B", FOT-TsukuGo Pro, var(--font-default);
  --font-en: "din-2014", sans-serif;
  --black: #111111;
  --white: #f8f8f8;
  --gray: #a8a8a8;
  --red: #E7161A;
  --upwhite: #f9f9f9;
  --basewhite: #eaeaea;
  --concept-color: #f29c9f;
  --course-color-md: #E60025;
  --course-color-an: #0099cc;
  --course-color-cd: #ec6d74;
  --course-color-gc: #6FBA2C;
  --course-color-vv: #3C558A;
  --course-color-gd: #6E6E6E;
  --course-color-ia: #40A08B;
  --course-color-fc: #FDCD00;
  --course-color-ai: #ED7100;
  --main-color: var(--black);
  --nega-color: var(--white);
  --pale-color: var(--basewhite);
  --clear-color: rgba(249, 249, 249, 0.35);
  --vanish-color: rgba(249, 249, 249, 0.15);
  --text-color: var(--black);
  --text-gray: #666666;
  --bg-color: #ffffff;
}

body[data-page=top] {
  --main-color: var(--concept-color);
}

body[data-page=md] {
  --main-color: var(--course-color-md);
  --pale-color: rgba(230, 0, 37, 0.15);
  --bg-color: var(--upwhite);
}

body[data-page=an] {
  --main-color: var(--course-color-an);
  --pale-color: rgba(57, 125, 177, 0.15);
}

body[data-page=cd] {
  --main-color: var(--course-color-cd);
  --pale-color: rgba(57, 125, 177, 0.15);
}

body[data-page=gc] {
  --main-color: var(--course-color-gc);
  --pale-color: rgba(111, 186, 44, 0.15);
}

body[data-page=vv] {
  --main-color: var(--course-color-vv);
  --pale-color: rgba(60, 85, 138, 0.1);
  --bg-color: var(--upwhite);
}

body[data-page=gd] {
  --main-color: var(--course-color-gd);
  --pale-color: rgba(110, 110, 110, 0.15);
}

body[data-page=ia] {
  --main-color: var(--course-color-ia);
  --pale-color: rgba(64, 160, 139, 0.15);
}

body[data-page=fc] {
  --main-color: var(--course-color-fc);
  --pale-color: rgba(228, 184, 44, 0.15);
  --text-color: var(--white);
  --nega-color: #111111;
  --bg-color: var(--black);
}

body[data-page=ai] {
  --main-color: var(--course-color-ai);
  --pale-color: rgba(237, 114, 0, 0.15);
}

#feature .evolution .headline-M b:first-child {
  margin-left: 0;
}
#feature .evolution .headline-M em {
  font-size: 148%;
  font-weight: 700;
}
#feature .pickup01 .main img,
#feature .pickup02 .image img,
#feature .pickup02 .combine-number-S + .line-catch-S + img,
#feature .pickup03 .image img,
#feature .pickup03 .body picture img,
#feature .pickup04 .image img {
  display: block;
  width: 100%;
  height: auto;
}
@media print, screen and (min-width: 768.1px) {
  #feature .pickup02 {
    margin-top: 72px;
    align-items: center;
  }
}
@media screen and (max-width: 768px) {
  #feature .pickup02 {
    margin-top: 12vw;
    position: relative;
  }
}
#feature .pickup02 .combine-number-line {
  flex-wrap: nowrap;
}
#feature .pickup02 .combine-number-S + .line-catch-S + img {
  max-width: 164px;
}
@media screen and (max-width: 768px) {
  #feature .pickup02 .combine-number-S + .line-catch-S + img {
    position: absolute;
    right: -5.3333333333vw;
    top: -17.3333333333vw;
  }
}
@media print, screen and (min-width: 768.1px) {
  #feature .pickup03 {
    margin-top: 62px;
  }
}
@media screen and (max-width: 768px) {
  #feature .pickup03 {
    margin-top: 12vw;
    padding-top: 11.7333333333vw;
    position: relative;
  }
}
#feature .pickup03 .line-catch-S {
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  #feature .pickup03 .line-catch-S {
    white-space: normal;
  }
}
#feature .pickup03 .body {
  align-items: flex-start;
}
@media print, screen and (min-width: 768.1px) {
  #feature .pickup03 .body {
    margin-top: 2.75em;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 30px;
  }
}
@media screen and (max-width: 768px) {
  #feature .pickup03 .body {
    margin-top: 1.5em;
  }
}
#feature .pickup03 .body picture {
  max-width: none;
}
@media screen and (max-width: 768px) {
  #feature .pickup03 .body picture {
    width: 58.6666666667vw;
    position: absolute;
    top: 0;
    right: 0;
  }
}
#feature .pickup04 {
  position: relative;
}
@media print, screen and (min-width: 768.1px) {
  #feature .pickup04 {
    margin-top: 72px;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
  }
  #feature .pickup04 .image {
    max-width: 610px;
  }
  #feature .pickup04 .lead {
    margin-top: 2.25em;
  }
}
@media screen and (max-width: 768px) {
  #feature .pickup04 {
    margin-top: 12vw;
  }
  #feature .pickup04 .image {
    margin-top: 6vw;
  }
}

#topics .section-catch {
  margin-top: 1.5em;
}
@media print, screen and (min-width: 768.1px) {
  #topics .topics02-gc {
    margin-top: 56px;
  }
}
@media screen and (max-width: 768px) {
  #topics .topics02-gc {
    margin-top: 10vw;
  }
}
@media print, screen and (min-width: 768.1px) {
  #topics .topics02-gc .title {
    margin-bottom: 56px;
  }
}
#topics .topics02-gc .case .case-head .combine-number-text {
  margin-left: 0;
}
#topics .topics02-gc .case .case-body .image.image-stack,
#topics .topics02-gc .case .case-body .image.image-collage,
#topics .topics02-gc .case .case-body .image.image-gallery {
  display: grid;
  position: relative;
  z-index: 2;
}
#topics .topics02-gc .case .case-body .image.image-stack img,
#topics .topics02-gc .case .case-body .image.image-collage img,
#topics .topics02-gc .case .case-body .image.image-gallery img {
  position: relative;
  right: auto;
  bottom: auto;
  display: block;
  width: 100%;
  height: auto;
}
#topics .topics02-gc .case .case-body .image.image-collage .main,
#topics .topics02-gc .case .case-body .image.image-gallery .main,
#topics .topics02-gc .case .case-body .image.image-gallery .sub,
#topics .topics02-gc .case .case-body .image.image-stack .main,
#topics .topics02-gc .case .case-body .image.image-stack .sub {
  margin: 0;
}
#topics .topics02-gc .case .case-body .image.image-collage figure.main figcaption,
#topics .topics02-gc .case .case-body .image.image-gallery figure figcaption {
  position: static;
  margin-top: 0.6em;
}
#topics .topics02-gc .case .case-body .image.image-stack {
  gap: 16px;
}
#topics .topics02-gc .case01 .case-body .image.image-stack {
  display: block;
}
#topics .topics02-gc .case01 .case-body .image.image-stack .sub {
  display: none;
}
@media print, screen and (min-width: 768.1px) {
  #topics .topics02-gc .case01 .case-body {
    align-items: flex-start;
    gap: 60px;
  }
  #topics .topics02-gc .case01 .case-body .content {
    width: 54%;
    max-width: 640px;
  }
  #topics .topics02-gc .case01 .case-body .image {
    width: 46%;
    max-width: 500px;
  }
  #topics .topics02-gc .case .case-body .image.image-stack .sub {
    grid-column: 2/3;
    margin-left: auto;
    max-width: 360px;
  }
}
@media screen and (max-width: 768px) {
  #topics .topics02-gc .case01 .case-body .image {
    margin-top: 6vw;
  }
}
#topics .topics02-gc .case .case-body .content {
  position: relative;
}
#topics .topics02-gc .case02 .case-head,
#topics .topics02-gc .case03 .case-head {
  position: relative;
}
#topics .topics02-gc .case .head-visual {
  margin: 0;
}
#topics .topics02-gc .case .head-visual img {
  display: block;
  width: 100%;
  height: auto;
}
#topics .topics02-gc .case01 .message {
  margin-top: 48px;
}
#topics .topics02-gc .case02 .image .main {
  transform: none;
}
@media print, screen and (min-width: 768.1px) {
  #topics .topics02-gc .case01 .message-box-b .head {
    padding-right: 136px;
  }
  #topics .topics02-gc .case01 .message-box-b .head picture {
    right: 20px;
    width: 164px;
    height: 200px;
    max-width: none;
  }
  #topics .topics02-gc .case01 .message-box-b .head picture img {
    -o-object-position: top;
       object-position: top;
  }
  #topics .topics02-gc .case02 .case-head {
    min-height: 126px;
    padding-right: 176px;
  }
  #topics .topics02-gc .case02 .head-visual--case02 {
    position: absolute;
    top: -90px;
    right: 0;
    width: 210px;
  }
  #topics .topics02-gc .case02 .case-body .content,
  #topics .topics02-gc .case03 .case-body .content {
    width: 58%;
    max-width: 660px;
  }
  #topics .topics02-gc .case02 .case-body .image,
  #topics .topics02-gc .case03 .case-body .image {
    width: 42%;
    max-width: 460px;
  }
  #topics .topics02-gc .case03 .case-head {
    min-height: 146px;
    padding-right: 196px;
  }
  #topics .topics02-gc .case03 .head-visual--case03 {
    position: absolute;
    top: -10px;
    right: 0;
    width: 240px;
  }
  #topics .topics02-gc .case03 .case-body .content {
    width: 54%;
    max-width: 640px;
  }
  #topics .topics02-gc .case03 .case-body .image {
    width: 46%;
    max-width: 500px;
  }
}
@media screen and (max-width: 768px) {
  #topics .topics02-gc .case01 .message {
    margin-top: 8vw;
  }
  #topics .topics02-gc .case01 .message-box-b .head {
    padding-right: 24vw;
  }
  #topics .topics02-gc .case01 .message-box-b .head picture {
    right: 0;
    width: 20vw;
  }
  #topics .topics02-gc .case02 .case-head,
  #topics .topics02-gc .case03 .case-head {
    min-height: 22vw;
    padding-right: 38vw;
  }
  #topics .topics02-gc .case02 .head-visual,
  #topics .topics02-gc .case03 .head-visual {
    position: absolute;
    top: 0;
    right: 0;
    width: 34vw;
    margin: 0;
  }
}
#topics .topics02-gc .case02 .image.image-collage {
  display: block;
}
#topics .topics02-gc .case02 .image.image-collage figure.main {
  margin: 0;
}
#topics .topics02-gc .case03 .image.image-gallery {
  gap: 18px;
}
@media print, screen and (min-width: 768.1px) {
  #topics .topics02-gc .case03 .image.image-gallery {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
  }
  #topics .topics02-gc .case03 .image.image-gallery .sub {
    grid-row: 1/2;
  }
  #topics .topics02-gc .case03 .image.image-gallery .main {
    grid-row: 2/3;
  }
}

#works {
  position: relative;
  z-index: 1;
}
@media print, screen and (min-width: 768.1px) {
  #works {
    padding-top: 90px;
  }
}
@media screen and (max-width: 768px) {
  #works {
    padding-top: 12vw;
  }
}
#works::before {
  content: "";
  display: block;
  width: 100vw;
  height: 100%;
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
#works .section-title .back {
  color: var(--basewhite);
}
#works .lead {
  position: relative;
  z-index: 2;
}
@media print, screen and (min-width: 768.1px) {
  #works .lead {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
  }
  #works .lead .line-catch-L {
    text-align: right;
    white-space: nowrap;
  }
  #works .lead .lead-copy {
    color: var(--main-color);
    font-size: 110%;
    font-weight: 700;
    line-height: 1.9;
    margin-bottom: 3em;
  }
}
@media screen and (max-width: 768px) {
  #works .lead .line-catch-L span {
    padding: 1.0666666667vw 1.6vw;
    font-size: 4.8vw;
    line-height: 8.2666666667vw;
    letter-spacing: 0.06em;
  }
}
#works .contents {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 1;
}
#works .contents > * {
  position: relative;
}
#works .contents.interview-style-gc {
  margin: 0;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents {
    gap: 60px;
    margin-top: 1em;
    padding-top: 60px;
    padding-bottom: 56px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents {
    gap: 12vw;
    margin-top: 8vw;
    padding-top: 10.6666666667vw;
    padding-bottom: 10.6666666667vw;
  }
}
#works .contents::before {
  content: "";
  height: 100%;
  background-color: var(--pale-color);
  position: absolute;
  top: 0;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents::before {
    width: calc(100% + 120px);
    left: -60px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents::before {
    width: 100vw;
    left: -5.3333333333vw;
  }
}
@media print, screen and (min-width: 768.1px) {
  #works .contents > div {
    gap: 60px;
  }
}
#works .contents > div > div,
#works .contents .size-ML {
  position: relative;
  min-width: 0;
}
#works .contents .cover {
  display: flex;
  flex-direction: column;
  background-color: var(--main-color);
  color: var(--white);
  overflow: hidden;
  position: relative;
  text-align: center;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .cover {
    position: absolute;
    left: 0;
    bottom: 0;
  }
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .cover {
    padding: 0 0 56px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .cover {
    padding: 0 0 8vw;
  }
}
#works .contents .cover .visuals {
  display: flex;
  flex-direction: column;
  position: relative;
}
#works .contents .cover .hero,
#works .contents .cover .portrait {
  display: block;
}
#works .contents .cover .hero {
  margin: 0;
  position: relative;
}
#works .contents .cover .hero img,
#works .contents .cover .portrait img {
  display: block;
  width: 100%;
  height: auto;
}
#works .contents .cover .hero figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  color: var(--white);
  line-height: 1.5;
  text-align: left;
  text-shadow: 0 1px 8px rgba(17, 17, 17, 0.75);
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .cover .hero figcaption {
    padding: 0 8px 10px;
    font-size: 12px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .cover .hero figcaption {
    padding: 0 3.2vw 3.2vw;
    font-size: 2.4vw;
  }
}
#works .contents .cover .meta {
  position: relative;
  z-index: 1;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .cover .meta {
    margin-top: 34px;
    padding: 0 34px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .cover .meta {
    margin-top: 6.4vw;
    padding: 0 5.3333333333vw;
  }
}
#works .contents .cover h3 {
  font-family: var(--font-en);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.252em;
  white-space: nowrap;
  position: relative;
  margin: 0.5em 0;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .cover h3 {
    font-size: 60px;
    line-height: 70px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .cover h3 {
    white-space: normal;
    font-size: 8vw;
    line-height: 9.3333333333vw;
  }
}
#works .contents .cover .identity {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2em;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .cover .identity {
    margin-top: 22px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .cover .identity {
    margin-top: 4vw;
  }
}
#works .contents .cover .name {
  font-style: normal;
  font-weight: 500;
  line-height: 1.55;
  margin: 0;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .cover .name {
    font-size: 32px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .cover .name {
    font-size: 4.2666666667vw;
  }
}
#works .contents .cover .name small {
  display: block;
  margin-top: 0.35em;
  font-family: var(--font-en);
  font-style: normal;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.28px;
}
#works .contents .cover .portrait {
  border-radius: 50%;
  overflow: hidden;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .cover .portrait {
    width: 120px;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .cover .portrait {
    width: 16vw;
  }
}
#works .contents .faq + .faq {
  margin-top: 0;
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .equal-media-row {
    --equal-media-row-height: clamp(110px, 11vw, 160px);
    --equal-media-row-gap: 20px;
    margin: 2em 0;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .equal-media-row {
    --equal-media-row-sp-gap: 3.2vw;
  }
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .equal-media-grid {
    --equal-media-grid-gap: 20px;
    margin: 2em 0;
  }
}
@media screen and (max-width: 768px) {
  #works .contents .equal-media-grid {
    --equal-media-grid-sp-gap: 3.2vw;
  }
}
#works .contents .equal-media-grid.works-gallery {
  margin: 0;
  gap: var(--equal-media-grid-gap, 20px);
}
@media print, screen and (min-width: 768.1px) {
  #works .contents .equal-media-grid.works-gallery {
    --equal-media-grid-columns: 2;
    --equal-media-grid-gap: 20px;
    --equal-media-grid-ratio: 615 / 333;
  }
}
#works .works-gallery figcaption {
  margin-top: 0.7em;
  text-align: right;
}

#achievements {
  position: relative;
  z-index: 1;
}
#achievements .section-catch {
  margin-top: 1.5em;
}
#achievements .section-title .back {
  color: var(--basewhite);
}
#achievements .achievements-box .pickup {
  align-items: flex-start;
}
#achievements .achievements-box .pickup .content {
  width: 100%;
}
#achievements .achievements-box {
  position: relative;
  z-index: 1;
}
#achievements .achievements-box::before {
  content: "";
  display: block;
  width: calc(100vw - 100px);
  height: calc(100% - 100px);
  background-image: linear-gradient(to top left, rgba(111, 186, 44, 0) 20%, rgba(111, 186, 44, 0.2) 25%, rgba(111, 186, 44, 0) 30% 70%, rgba(111, 186, 44, 0.2) 75%, rgba(111, 186, 44, 0) 80%), linear-gradient(to top right, rgba(111, 186, 44, 0) 20%, rgba(111, 186, 44, 0.2) 25%, rgba(111, 186, 44, 0) 30% 70%, rgba(111, 186, 44, 0.2) 75%, rgba(111, 186, 44, 0) 80%);
  background-size: 10px 10px;
  position: absolute;
  top: 50px;
  left: 50%;
  transform: translate(-50%);
  z-index: -1;
}
#achievements .achievements-box::after {
  content: "";
  inset: 0;
  background-color: var(--white);
  position: absolute;
  z-index: -1;
}
#achievements .achievements-box .pickup .message-box-a .body p.font-S {
  width: auto;
  max-width: none;
}
#achievements .achievements-box .pickup .image {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
#achievements .achievements-box .pickup .image::before {
  content: none;
  display: none;
}
#achievements .achievements-box .pickup .image figure {
  margin: 0;
  width: 100%;
}
#achievements .achievements-box .pickup .image img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
#achievements .achievements-box .pickup .message-box-a .head {
  min-height: 0;
}
#achievements .achievements-box .pickup .message-box-a picture {
  border-radius: 100%;
  overflow: hidden;
}
#achievements .achievements-box .pickup .message-box-a picture img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media print, screen and (min-width: 768.1px) {
  #achievements .achievements-box {
    display: flex;
    flex-direction: column;
    gap: 72px;
    margin-top: 60px;
    padding: 60px;
  }
  #achievements .achievements-box .pickup {
    margin-top: 0;
    gap: 50px;
  }
  #achievements .achievements-box .pickup .content {
    max-width: 520px;
  }
  #achievements .achievements-box .pickup .image {
    flex: 1;
    width: 100%;
    min-width: 0;
    max-width: 630px;
    margin-top: 4px;
  }
  #achievements .achievements-box .pickup .message-box-a {
    margin-top: 40px;
  }
  #achievements .achievements-box .pickup .message-box-a .head {
    padding-right: 112px;
  }
  #achievements .achievements-box .pickup .message-box-a picture {
    top: 0;
    right: 0;
    width: 92px;
    height: 92px;
  }
  #achievements .achievements-box .pickup .message-box-a .body {
    margin-top: 4px;
  }
  #achievements .achievements-box > .annotation:last-child {
    margin-top: -12px;
    text-align: right;
  }
}
@media screen and (max-width: 768px) {
  #achievements {
    padding-top: 12vw;
    padding-bottom: 16vw;
  }
  #achievements .achievements-box {
    margin-top: 10.6666666667vw;
    padding: 8vw 6.4vw;
  }
  #achievements .achievements-box .pickup {
    gap: 8vw;
  }
  #achievements .achievements-box .pickup + .pickup {
    margin-top: 16vw;
  }
  #achievements .achievements-box .pickup .content,
  #achievements .achievements-box .pickup .image {
    order: initial;
  }
  #achievements .achievements-box .pickup .image {
    width: 100%;
    margin-top: 1.3333333333vw;
  }
  #achievements .achievements-box .pickup .message-box-a {
    margin-top: 5.3333333333vw;
  }
  #achievements .achievements-box .pickup .message-box-a .head {
    padding-right: 26vw;
  }
  #achievements .achievements-box .pickup .message-box-a picture {
    top: 0;
    right: 0;
    width: 19.2vw;
    height: 19.2vw;
  }
  #achievements .achievements-box > .annotation:last-child {
    margin-top: 8vw;
    text-align: right;
  }
}
#achievements .achievements-box .pickup .image {
  margin: 0;
}
#achievements .pickup .message-box-a .head .headline-S {
  max-width: none;
}
@media print, screen and (min-width: 768.1px) {
  #achievements .achievements-box .pickup .message-box-a picture {
    width: 108px;
    height: 108px;
  }
}
#achievements .pickup01 .image {
  position: relative;
}
@media print, screen and (min-width: 768.1px) {
  #achievements .pickup01 .image figure {
    position: absolute;
    bottom: -30px;
  }
}
@media print, screen and (min-width: 768.1px) {
  #achievements .pickup01 .image figure img {
    max-height: 580px;
    width: auto;
  }
}
@media print, screen and (min-width: 768.1px) {
  #achievements .pickup03 .image {
    align-self: center;
  }
}
