/* CSS Document */
/* CSS Document */
/* CSS Document */
/* CSS Document */
#index_top {
  height: 100vh;
  min-height: 500px;
  max-height: 600px;
  width: calc(100% - 50px);
  max-width: 900px;
  padding-left: 50px;
  margin: 0 auto;
  justify-content: center;
  align-content: center;
  flex-flow: column;
  position: relative;
  margin-bottom: 50px; }
  #index_top div {
    justify-content: space-between;
    align-content: center;
    flex-flow: row;
    vertical-align: middle; }
  #index_top #index_top_logo_text {
    float: left;
    margin-left: 20px; }
    #index_top #index_top_logo_text h1 {
      font-size: 4.2rem;
      line-height: 1;
      letter-spacing: 4px;
      margin: 10px 0;
      padding: 0;
      margin-left: -5px;
      background-color: white;
      border-radius: 10px; }
    #index_top #index_top_logo_text h2 {
      font-size: 1.8rem;
      letter-spacing: 5px;
      font-weight: bold;
      line-height: 1;
      margin: 0;
      padding: 0;
      background-color: white;
      display: inline-block;
      border-radius: 5px; }
    #index_top #index_top_logo_text h3 {
      font-size: 1.5rem;
      letter-spacing: 1px;
      font-weight: bold;
      line-height: 1;
      margin: 0;
      padding: 0;
      display: inline;
      background: linear-gradient(transparent 70%, #f7e246 0%); }
  #index_top #index_top_image {
    position: absolute;
    top: 20%;
    right: 60px;
    width: calc(70% - 60px);
    max-width: 700px;
    z-index: -1; }
    #index_top #index_top_image img {
      width: 100%; }

@media screen and (max-width: 570px) {
  #index_top {
    width: 100%;
    padding: 0 !important;
    max-height: 80vh; }
    #index_top #index_top_logo_text {
      position: absolute;
      bottom: 30%; }
    #index_top #index_top_image {
      width: 90%;
      right: 20px;
      top: 20%; } }
.index_title {
  text-align: center;
  margin: 40px 0;
  margin-top: 60px; }
  .index_title h3 {
    margin: 0;
    padding: 0;
    font-size: 2.5rem;
    font-family: fot-tsukuardgothic-std, sofia-pro, sans-serif; }
  .index_title p {
    font-size: 1.2rem;
    font-family: sofia-pro, sans-serif;
    letter-spacing: 1px; }

#index_job {
  max-width: 900px;
  margin: 32px auto;
  padding: 0 16px; }
  #index_job .index_job_box {
    margin: 8px 0;
    border: 2px solid black;
    background-color: #f7e246;
    border-radius: 16px;
    padding: 24px;
    display: flex;
    align-items: center; }
    #index_job .index_job_box .index_job_icon {
      width: 24px;
      margin-right: 16px; }
      #index_job .index_job_box .index_job_icon img {
        width: 100%; }
    #index_job .index_job_box .index_job_texts .job_title {
      font-size: 1.8rem;
      font-family: fot-tsukuardgothic-std, sofia-pro, sans-serif;
      font-weight: bold;
      margin-bottom: 4px; }
    #index_job .index_job_box .index_job_texts .job_description {
      font-size: 1.3rem;
      font-family: fot-tsukuardgothic-std, sofia-pro, sans-serif;
      font-weight: bold; }
  #index_job :hover {
    opacity: 0.6; }

#index_concept {
  max-width: 900px;
  margin: 0 auto; }
  #index_concept .index_concept_box {
    display: inline-block;
    text-align: center;
    vertical-align: top;
    max-height: 550px; }
  #index_concept .text {
    width: calc(55% - 5px - 20px);
    padding-right: 20px; }
  #index_concept .illust {
    width: calc(45% - 5px);
    text-align: left; }
  #index_concept #index_concept_text h2, #index_concept #index_concept_text h3, #index_concept #index_concept_text p {
    display: inline-block;
    vertical-align: top;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-align: left;
    margin: 0;
    padding: 0;
    line-height: 2;
    letter-spacing: 2px;
    max-height: 400px; }
  #index_concept #index_concept_text h2 {
    font-size: 2.2rem;
    margin: 0 10px;
    font-weight: normal;
    margin-left: 15px; }
    #index_concept #index_concept_text h2 .yuyu {
      font-size: 1.8rem; }
    #index_concept #index_concept_text h2 .box {
      background-color: #f7e246;
      border-radius: 5px;
      border: 2px solid black;
      padding: 5px;
      margin-bottom: 5px;
      margin-right: 5px; }
  #index_concept #index_concept_text p {
    font-size: 1.6rem;
    vertical-align: top; }
  #index_concept #index_concept_illust {
    text-align: left;
    width: 80%;
    max-width: 400px; }

@media screen and (max-width: 570px) {
  #index_concept .index_concept_box {
    display: block;
    margin: 0 auto;
    width: 100%;
    max-height: 400px;
    padding: 0; }
  #index_concept .text {
    padding-right: 0; }
  #index_concept .illust {
    text-align: center;
    max-width: 300px; }

  #index_concept_illust {
    margin-top: 30px;
    text-align: center;
    width: 70%;
    max-width: 100px; }
    #index_concept_illust img {
      width: 100%; } }
#index_services {
  max-width: 840px;
  margin: 0 auto;
  margin-top: 100px;
  padding: 0 20px; }
  #index_services .index_service_box {
    transition: .2s;
    display: inline-block;
    width: calc(50% - 5px);
    margin-top: 10px;
    margin-bottom: 30px;
    padding-bottom: 10px;
    border-radius: 10px;
    border: 1px solid #e4e4e4; }
    #index_services .index_service_box .index_service {
      width: 90%;
      margin: 0 auto; }
      #index_services .index_service_box .index_service .index_service_image {
        display: none;
        width: 100%;
        height: 100px;
        background-color: #f2f4f6;
        border-radius: 10px; }
        #index_services .index_service_box .index_service .index_service_image img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          border-radius: 10px; }
      #index_services .index_service_box .index_service .index_service_info {
        padding: 0 5px;
        margin-top: 15px; }
        #index_services .index_service_box .index_service .index_service_info div {
          margin: 4px 0; }
        #index_services .index_service_box .index_service .index_service_info .category h5 {
          margin: 0;
          padding: 0;
          font-family: fot-tsukuardgothic-std, sofia-pro, sans-serif;
          font-size: 1.2rem;
          font-weight: normal;
          letter-spacing: 1px; }
        #index_services .index_service_box .index_service .index_service_info .name {
          margin: 5px 0; }
          #index_services .index_service_box .index_service .index_service_info .name h4 {
            margin: 0;
            padding: 0;
            font-family: fot-tsukuardgothic-std, sofia-pro, sans-serif;
            font-size: 2.2rem;
            font-weight: bold;
            letter-spacing: 4px; }
        #index_services .index_service_box .index_service .index_service_info .english p {
          font-family: sofia-pro, sans-serif;
          font-size: 1.1rem;
          letter-spacing: 2px; }
    #index_services .index_service_box:hover {
      opacity: 0.4; }

@media screen and (max-width: 570px) {
  #index_services .index_service_box {
    display: block;
    width: 100%; } }
