@charset "UTF-8";
/* main */

#main {
  /* margin: 6rem auto 8rem; */
}

#main .flex {
  flex-direction: column;
}

#main h2,
#main h3 {
  text-align: center;
  margin-bottom: 2rem;
}

#main .img_box {
  margin-bottom: 1rem;
}

#main article {
  margin-bottom: 7rem;
}

/* button */

.btn_area {
  text-align: center;
}

/* summary */

#summary .pc {
  display: none;
}

/* business_list */

#business_list .contents {
  padding: 1.5rem 1rem;
  margin-bottom: 2rem;
  border-radius: 6px;
  background-color: #d1eef5;
}

#business_list .img_box {
  background-image: url(.././images/blob01.svg);
  background-size: cover;
  background-position: center;
  padding-bottom: 1.5rem;
  margin-bottom: 0;
}

/* president & staff */

#president .name_box,
#staff .name_box {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  margin-bottom: 1rem;
}

#president .name_box::before,
#staff .name_box::before,
#president .name_box::after,
#staff .name_box::after {
  content: "";
  width: 2px;
  height: 30px;
  background-color: #ff999c;
}

#president .name_box::before,
#staff .name_box::before {
  margin-right: 30px;
  transform: rotate(-35deg);
}

#president .name_box::after,
#staff .name_box::after {
  margin-left: 30px;
  transform: rotate(35deg);
}

#president .job_title,
#staff .job_title {
  font-size: 18px;
  margin-left: 0.5em;
}

#president .text_box,
#staff .text_box {
  align-self: center;
  padding: 1rem;
  border-radius: 4px;
  background-color: #fff;
}

/* staff */

#staff .contents {
  margin-bottom: 3rem;
}

#staff .contents rt {
  text-align: center;
}

/* history */

#history .timeline {
  padding-left: 0;
  margin: 0 auto;
}

#history .timeline > li {
  margin-bottom: 1rem;
}

#history .timeline_date {
  font-size: 20px;
  margin-bottom: 0.1rem;
}

#history h4 {
  font-weight: 500;
  margin-bottom: 0.2rem;
  color: #ff999c;
}

@media only screen and (min-width: 576px) {
  /* main */

  #main {
    /* margin: 6rem 0 10rem; */
  }

  /* summary */

  #summary .sp {
    display: none;
  }

  #summary .pc {
    display: block;
  }
}

@media (min-width: 768px) {
  /* business_list */

  #business_list .contents_gp {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }

  #business_list h4 {
    font-size: 17px;
  }

  /* history */

  #history .flex {
    flex-direction: row;
  }

  #history .timeline > li {
    position: relative;
    margin: 0;
  }

  #history .timeline_date {
    width: 255px;
  }

  #history .timeline_contents {
    width: 80%;
    padding: 0 2rem 2rem;
    border-left: 3px solid #d1eef5;
  }

  #history .timeline_contents:before {
    content: "";
    width: 11px;
    height: 11px;
    position: absolute;
    left: 7.9rem;
    top: 0.9rem;
    border-radius: 100%;
    background: #ff999c;
  }

  #history h4 {
    color: #333;
  }
}

@media only screen and (min-width: 992px) {
  /* main */

  #mainxx {
    /*margin: 10rem 0;*/
  }

  #main h2,
  #main h3 {
    margin-bottom: 3rem;
  }

  .btn_area br {
    display: block;
  }

  /* president & staff */

  #president .name_box,
  #staff .name_box {
    margin-bottom: 2rem;
  }

  #president .job_title,
  #staff .job_title {
    font-size: 20px;
  }

  #president .flex,
  #staff .flex {
    flex-direction: row;
    gap: 1.5rem;
  }

  #president .img_box,
  #staff .img_box {
    align-self: center;
    width: 45%;
    margin-bottom: 0;
  }

  #president .text_box,
  #staff .text_box {
    width: 55%;
    padding: 1rem 1.5rem;
  }

  /* staff */

  #staff .contents {
    margin-bottom: 5rem;
  }

  #staff .contents:last-child {
    margin-bottom: 0;
  }

  #staff .contents:nth-child(even) .img_box {
    order: 2;
  }

  /* history */

  #history .timeline_contents {
    width: 100%;
    padding: 0 2rem 2rem;
    margin-left: 0.0rem;
  }

  #history .timeline_contents:before {
    position: absolute;
    left: 10.2rem;
    top: 0.7rem;
  }
}

@media only screen and (min-width: 1200px) {
  /* business_list */

  #business_list .contents_gp {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 0.5rem;
  }

  #business_list .contents {
    padding: 1.5rem 0.5rem;
  }

  /* history */

  #history .timeline {
    width: 80%;
  }
}

@media only screen and (min-width: 1400px) {
  /* business_list */

  #business_list h4 {
    font-size: 21px;
  }

  /* history */

  #history .timeline_contents:before {
    position: absolute;
    left: 9.8rem;
    top: 0.9rem;
  }
}
