

main {
  width: 100%;
  overflow: hidden
}

html, body {
  width: 100%
}

section.cross_visual {
  z-index: 100;
  position: relative;
  padding: 200px 0 5vw 0;
  margin: 0 0 10rem 0
}

@media only screen and (max-width: 768px) {
  section.cross_visual {
    margin: 0 0 8vw 0;
    padding-top: 110px
  }
  section.cross_visual.c02 .txt {
    background: #a1c9bb
  }
  section.cross_visual.c02 .titles p.en {
    color: #81b6a4;
    font-size: 1.4rem;
    line-height: 1
  }
  section.cross_visual.c02 .titles p.jp {
    color: #000;
    font-size: 1.8rem;
    margin-bottom: 2rem
  }
  section.cross_visual.c03 .txt {
    background: #c7a58a
  }
  section.cross_visual.c03 .titles p.en {
    color: #b68a68;
    font-size: 1.4rem;
    line-height: 1
  }
  section.cross_visual.c03 .titles p.jp {
    color: #000;
    font-size: 1.8rem;
    margin-bottom: 2rem
  }
}

section.cross_visual .titles {
  margin: 0 0 3rem 0;
  position: absolute;
  top: 20%;
  left: 8vw;
  color: #fff
}

@media only screen and (max-width: 768px) {
  section.cross_visual .titles {
    position: static;
    text-align: center
  }
}

section.cross_visual .titles p.en {
  font-size: 1.4rem
}

@media only screen and (max-width: 768px) {
  section.cross_visual .titles p.en {
    font-size: 3rem
  }
}

section.cross_visual .titles h1 {
  font-size: 2rem
}

@media only screen and (max-width: 768px) {
  section.cross_visual .titles h1 {
    color: #333;
    font-size: 1.4rem
  }
}

section.cross_visual .bgb {
  display: block;
  position: absolute;
  width: 50%;
  height: 105%;
  top: 0;
  left: 0;
  content: "";
  z-index: 1;
  background: #1d2bf0
}

section.cross_visual .bgb.c01 {
  background: #7292ba
}

section.cross_visual .bgb.c02 {
  background: #81b6a4
}

section.cross_visual .bgb.c03 {
  background: #b68a68
}

section.cross_visual .bgb.c04 {
  background: #b78297
}

@media only screen and (max-width: 768px) {
  section.cross_visual .bgb {
    height: 60%;
    display: none
  }
}

section.cross_visual .image {
  width: 65%;
  margin: 0 0 0 auto;
  position: relative;
  z-index: 5
}

@media only screen and (max-width: 768px) {
  section.cross_visual .image {
    width: 100%;
    margin: 0
  }
}

section.cross_visual .image .images {
  position: relative
}

section.cross_visual .txt {
  position: absolute;
  z-index: 25;
  color: #fff;
  bottom: 0;
  left: 8vw;
  display: flex;
  align-items: center;
  height: 100%;
  padding-top: 200px
}

@media only screen and (max-width: 768px) {
  section.cross_visual .txt {
    position: static;
    transform: none;
    color: #000;
    padding: 8vw;
    background: #102d79
  }
}

section.cross_visual .txt .title {
  margin: 0 0 5rem 0;
  color: #fff
}

section.cross_visual .txt .title p.en {
  font-size: 1.4rem
}

section.cross_visual .txt .title p.jp {
  font-size: 2rem;
  margin-bottom: 5rem
}

section.cross_visual .txt .title h1 {
  font-size: clamp(2.4rem, 2vw, 3rem);
  letter-spacing: .05em;
  line-height: 1.6;
  font-feature-settings: "palt"
}

section.cross_visual .txt .copy {
  width: 300px
}

section.cross_visual .txt .copy p {
  margin: 0 0 1em 0
}

section.cross_visual .txt .copy p.detail {
  margin: 0;
  font-size: 1.2rem
}

section.profile {
  padding: 10rem 0
}

@media only screen and (max-width: 768px) {
  section.profile {
    padding: 3vw 0
  }
}

section.profile .inner {
  max-width: 1200px;
  min-width: 1000px;
  margin: auto;
  padding: 0 5%
}

@media only screen and (max-width: 768px) {
  section.profile .inner {
    min-width: 0
  }
}

section.profile .inner h2 {
  text-align: center;
  font-size: 2.4rem;
  margin: 0 0 3rem 0
}

@media only screen and (max-width: 768px) {
  section.profile .inner h2 {
    font-size: 2rem;
    margin-bottom: 1rem
  }
}

section.profile .prof_flex {
  display: flex;
  justify-content: space-between
}

section.profile .prof_flex.two {
  justify-content: center
}

section.profile .prof_flex.two .box {
  margin: 0 5%;
  width: 30%
}

@media only screen and (max-width: 768px) {
  section.profile .prof_flex {
    flex-wrap: wrap
  }
}

section.profile .prof_flex .box {
  width: 23%
}

@media only screen and (max-width: 768px) {
  section.profile .prof_flex .box {
    width: 48%;
    margin: 0 0 3rem 0
  }
}

section.profile .prof_flex .box .image {
  width: 60%;
  margin: 0 auto 1em auto
}

section.profile .prof_flex .box .txts {
  font-size: 1.4rem;
  text-align: center
}

section.profile .prof_flex .box .txts p.mbs {
  margin: 0 0 2rem 0
}

section.profile .prof_flex .box .txts .name {
  margin: 0 0 2rem 0;
  position: relative
}

@media only screen and (max-width: 768px) {
  section.profile .prof_flex .box .txts .name {
    margin-bottom: 1rem
  }
}

section.profile .prof_flex .box .txts .name:after {
  content: "";
  width: 3rem;
  height: 1px;
  display: block;
  margin: 1em auto;
  background: #ccc
}

@media only screen and (max-width: 768px) {
  section.profile .prof_flex .box .txts .name:after {
    margin: .5em auto
  }
}

section.profile .prof_flex .box .txts .name p.jp {
  font-weight: bold;
  font-size: 1.6rem
}

@media only screen and (max-width: 768px) {
  section.profile .prof_flex .box .txts .name p.jp {
    font-size: 1.4rem
  }
}

section.profile .prof_flex .box .txts .name p.en {
  color: #00175b
}

section.profile .prof_flex .box .txts .job {
  margin: 0 0 2rem 0
}

@media only screen and (max-width: 768px) {
  section.profile .prof_flex .box .txts .job {
    font-size: 1rem;
    margin-bottom: 0
  }
}

section.profile .prof_flex .box .txts .block {
  text-align: left;
  background: #fff;
  padding: 2rem
}

section.profile .prof_flex .box .txts .block h3 {
  font-feature-settings: "palt";
  text-align: center;
  border-bottom: 1px dotted #333;
  padding: 0 0 1rem 0;
  margin: 0 0 1rem 0
}

@media only screen and (max-width: 768px) {
  section.profile .prof_flex .box .txts .block {
    font-size: 1.2rem
  }
}

section.profile .prof_flex.career {
  justify-content: center
}

section.profile .prof_flex.career .box {
  width: 23%;
  margin: 0 1%
}

@media only screen and (max-width: 768px) {
  section.profile .prof_flex.career .box {
    width: 31.333%
  }
}

section.cross_main {
  padding: 0 8vw;
  position: relative;
  margin: 0 0 10rem 0
}

@media only screen and (max-width: 768px) {
  section.cross_main {
    margin: 0 0 3rem 0;
    padding: 0 5%
  }
}

section.cross_main p.cat {
  font-size: 3rem;
  padding: 0;
  margin-bottom: 1rem
}

@media only screen and (max-width: 768px) {
  section.cross_main p.cat {
    font-size: 1rem;
    left: 2vw;
    top: 1rem
  }
}

section.cross_main.c01 h3 {
  color: #5278a7
}

section.cross_main.c01 h3::before {
  background: #7292ba
}

section.cross_main.c01 p.cat {
  color: #7292ba
}

section.cross_main.c02 h3 {
  color: #61a38d
}

section.cross_main.c02 h3::before {
  background: #81b6a4
}

section.cross_main.c02 p.cat {
  color: #81b6a4
}

section.cross_main.c03 h3 {
  color: #9e704d
}

section.cross_main.c03 h3::before {
  background: #b68a68
}

section.cross_main.c03 p.cat {
  color: #b68a68
}

section.cross_main.c04 h3 {
  color: #a4627c
}

section.cross_main.c04 h3::before {
  background: #b78297
}

section.cross_main.c04 p.cat {
  color: #b78297
}

section.cross_main .inner {
  max-width: 1400px;
  margin: auto;
  border-radius: 10px;
  padding: 8vw;
  background: #fff;
  box-shadow: rgba(0, 0, 0, .1) 0px 4px 12px
}

@media only screen and (max-width: 768px) {
  section.cross_main .inner {
    padding: 5%
  }
}

section.cross_main h3 {
  font-weight: bold;
  font-size: 2.4rem;
  margin: 0 0 4em 0;
  letter-spacing: .1em;
  position: relative
}

@media only screen and (max-width: 768px) {
  section.cross_main h3 {
    font-size: 1.6rem;
    margin: 0 0 2em 0
  }
}

section.cross_main h3::before {
  content: "";
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: -11vw;
  transform: translateY(-50%);
  mix-blend-mode: multiply
}

@media only screen and (max-width: 768px) {
  section.cross_main h3::before {
    display: none
  }
}

section.cross_main .cr_flex {
  display: flex;
  justify-content: space-between;
  margin: 0 0 3rem 0;
  align-items: flex-start
}

@media only screen and (max-width: 768px) {
  section.cross_main .cr_flex {
    display: block;
    margin: 0 0 2rem 0
  }
}

section.cross_main .cr_flex.rv {
  flex-direction: row-reverse
}

section.cross_main .cr_flex.rv .image {
  width: 54%;
  transform: translateX(15%)
}

@media only screen and (max-width: 768px) {
  section.cross_main .cr_flex.rv .image {
    width: 100%;
    transform: none
  }
}

section.cross_main .cr_flex .image {
  width: 54%;
  transform: translateX(-15%);
  overflow: hidden;
  border-radius: 50px
}

@media only screen and (max-width: 768px) {
  section.cross_main .cr_flex .image {
    width: 100%;
    transform: none;
    margin: 0 0 3rem 0;
    border-radius: 20px
  }
}

.ctxt {
  width: 48%
}

@media only screen and (max-width: 768px) {
  .ctxt {
    width: 100%
  }
}

.ctxt.only {
  width: 100%
}

.ctxt h4 {
  font-weight: bold;
  position: relative;
  display: flex;
  margin: 0 0 2rem 0
}

.ctxt h4::before {
  margin: .8em 1em 0 0;
  content: "";
  width: 3rem;
  height: 1px;
  display: block;
  background: #333
}

.ctxt p {
  margin: 0 0 1em 0;
  padding: 0 0 0 7rem;
  position: relative
}

@media only screen and (max-width: 768px) {
  .ctxt p {
    padding: 0 0 0 0
  }
}

.ctxt p span {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  font-weight: bold
}

@media only screen and (max-width: 768px) {
  .ctxt p span {
    position: static;
    display: block
  }
}

.ctxt p .anno {
  position: static;
  font-weight: normal;
  display: block;
  font-size: 1.4rem;
  margin-top: 1rem
}

.cross_last {
  width: 800px;
  margin: 0 auto 10rem auto
}

@media only screen and (max-width: 768px) {
  .cross_last {
    width: 100%;
    margin: 0 0 3rem 0
  }
}

.reco {
  background: #fff
}