main {
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 0; }
  main .imgBlock {
    position: absolute;
    bottom: -15px;
    left: 0;
    width: 100%;
    height: 50vw;
    z-index: 1; }
    main .imgBlock img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      font-family: 'object-fit:cover;'; }
    main .imgBlock:after {
      display: block;
      content: '';
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background-color: rgba(0, 0, 0, 0);
      z-index: 2; }
  main h2 {
    color: white;
    text-align: left;
    padding: 15vw 0 8vw 8vw;
    position: relative;
    z-index: 3; }
    main h2 span {
      display: block;
      text-align: left;
      color: inherit;
      font-size: 200%;
      font-weight: 900; }
      main h2 span em {
        font-size: inherit;
        font-weight: inherit;
        font-family: inherit;
        display: inline-block;
        color: transparent;
        -webkit-text-stroke: 1px white;
        margin-left: .5rem; }

.com_message {
  padding-bottom: 5rem; }
  .com_message .row {
    position: relative;
    z-index: 0;
    padding-bottom: 0;
    overflow: hidden; }
  .com_message h2 {
    opacity: 0.2;
    position: absolute;
    top: 5%;
    left: 5rem;
    z-index: 3; }
    .com_message h2 span {
      display: block;
      color: #242324;
      font-weight: 900;
      text-align: left;
      line-height: 100%;
      font-size: 400%;
      writing-mode: tb; }
  .com_message dl {
    margin-top: 4rem;
    position: relative;
    z-index: 2; }
    .com_message dl dt {
      flex-basis: 45%; }
      .com_message dl dt .wrap {
        width: 80%;
        position: relative;
        z-index: 1; }
        .com_message dl dt .wrap img {
          width: 100%;
          height: auto;
          position: relative;
          z-index: 2; }
        .com_message dl dt .wrap .back {
          display: block;
          position: absolute;
          top: 3rem;
          left: -5rem;
          width: 100%;
          height: 100%;
          background-color: rgba(0, 0, 0, 0.1);
          z-index: 0; }
    .com_message dl dd {
      flex-basis: 55%;
      position: relative;
      z-index: 2; }
      .com_message dl dd h3, .com_message dl dd p {
        text-align: left; }
      .com_message dl dd h3 {
        font-size: 140%;
        margin-bottom: 1rem; }
      .com_message dl dd p {
        margin-bottom: 1.5rem;
        font-size: 80%; }
        .com_message dl dd p span {
          display: inline-block;
          margin-left: 1rem; }

.com_vision .row {
  position: relative;
  min-height: 100vh; }
.com_vision .wrap {
  position: relative;
  z-index: 0;
  align-items: flex-start; }
  .com_vision .wrap dt {
    flex-basis: 65%;
    padding: 4rem 5rem;
    position: relative;
    z-index: 2;
    background-color: white; }
    .com_vision .wrap dt h2 {
      position: relative;
      text-align: left;
      font-size: 200%;
      font-weight: 900;
      color: #242324; }
    .com_vision .wrap dt h3 {
      font-family: "Noto Serif JP",serif;
      margin: 2rem auto;
      font-size: 200%;
      text-align: left; }
    .com_vision .wrap dt p {
      font-size: 80%; }
      .com_vision .wrap dt p:not(:last-of-type) {
        margin-bottom: 1rem; }
      .com_vision .wrap dt p b {
        display: block;
        color: gainsboro;
        font-family: 'Montserrat', sans-serif;
        font-size: 80%; }
  .com_vision .wrap dd {
    flex-basis: 35%;
    position: relative;
    z-index: 1; }
    .com_vision .wrap dd img {
      width: 120%;
      object-fit: cover;
      font-family: 'object-fit:cover;'; }
  .com_vision .wrap.vision {
    margin-bottom: 4rem; }
    .com_vision .wrap.vision dd img {
      max-height: 26rem; }
  .com_vision .wrap.mission img {
    margin-top: -4rem; }

.com_info {
  padding-bottom: 10vh; }
  .com_info h2 {
    font-weight: 700;
    font-size: 200%;
    line-height: 110%;
    text-align: left; }
    .com_info h2 span {
      font-size: inherit;
      font-weight: inherit;
      font-family: inherit;
      display: inline-block;
      color: transparent;
      -webkit-text-stroke: 1px #242324;
      margin-left: .5rem; }
  .com_info dl {
    padding: 2rem 0;
    max-width: 70rem;
    margin-bottom: 2rem; }
    .com_info dl dt, .com_info dl dd {
      padding: 3rem 2rem;
      text-align: left;
      line-height: 160%;
      font-size: 80%; }
    .com_info dl dt {
      flex-basis: 30%;
      border-bottom: 2px solid #F5CB5C; }
    .com_info dl dd {
      flex-basis: calc(70% - 4vw);
      margin-left: 4vw;
      border-bottom: 1px solid gainsboro; }

.com_map {
  position: relative; }
  .com_map h2 {
    position: absolute;
    right: 5vw;
    padding: 3rem 4rem;
    font-weight: 700;
    font-size: 200%;
    line-height: 110%;
    text-align: left;
    color: white;
    background-color: #242324; }
    .com_map h2 span {
      font-size: inherit;
      font-weight: inherit;
      font-family: inherit;
      display: inline-block;
      color: transparent;
      -webkit-text-stroke: 1px white;
      margin-left: .5rem; }
  .com_map iframe {
    display: block;
    margin: 0 auto;
    border: none;
    outline: none;
    vertical-align: bottom; }

@media screen and (max-width: 480px) {
  .com_vision .row {
    padding-bottom: 15vh; }
  .com_vision .wrap.vision dd {
    left: -6.4rem; }
  .com_vision .wrap.mission dd {
    top: -6vh; }

  .com_map h2 {
    position: relative;
    top: 15vh; } }
@media screen and (min-width: 481px) {
  .com_map h2 {
    top: 10vh; } }
@media screen and (min-width: 481px) and (max-width: 769px) {
  .cnt_contact a {
    top: 40vh; } }
@media screen and (max-width: 769px) {
  .com_message dl dt, .com_message dl dd {
    min-width: 100%; }
  .com_message dl dt {
    margin-bottom: 5rem; }
    .com_message dl dt .wrap {
      height: 30rem;
      margin-left: 20%; }
      .com_message dl dt .wrap img {
        height: 100%;
        object-fit: cover;
        font-family: 'object-fit:cover;'; }
  .com_message dl dd {
    background-color: white;
    padding-top: 2rem; }

  .com_vision .wrap dt, .com_vision .wrap dd {
    min-width: 100%; }
  .com_vision .wrap dd img {
    margin-top: -4rem;
    max-height: 26rem; }
  .com_vision .wrap.vision dd img {
    object-position: top; }

  .top_map h2 {
    top: -2rem; } }
@media screen and (min-width: 770px) {
  .com_vision .wrap dd img {
    margin-left: -10%; }
  .com_vision .wrap.mission {
    flex-direction: row-reverse; }

  .cnt_contact a {
    top: 38vh; } }
