/*============================================================


  figure.css


============================================================*/
/*========================================
  sales
========================================*/
ul.graph.sales {
  width: 100%;
  text-align: center;
  border-bottom: 1px solid #ccc;
  margin-bottom: 8.8rem;
}

ul.graph.sales > li {
  display: inline-block;
  width: 10%;
  height: 100%;
  vertical-align: bottom;
}

ul.graph.sales > li > dl {
  width: 100%;
  height: 44rem;
  position: relative;
}

ul.graph.sales > li > dl .year {
  display: block;
  width: 100%;
  text-align: center;
  text-indent: 0.6rem;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3rem;
}

ul.graph.sales > li > dl .year > span {
  font-family: 'Roboto', sans-serif;
  font-size: 1.8rem;
  font-weight: 300;
  letter-spacing: 0.02em;
}

ul.graph.sales > li > dl .value {
  display: block;
  width: 16%;
  background: #000;
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
}

ul.graph.sales > li:last-child > dl .value {
  /* background-color: #59c3c3; */
}

ul.graph.sales > li > dl .value > span {
  font-family: 'Roboto', sans-serif;
  font-size: 1.3rem;
  font-weight: 300;
  letter-spacing: 0.02em;
  white-space: nowrap;
  position: absolute;
  left: 50%;
  top: -2em;
  -webkit-transform: translateX(-50%);
     -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
       -o-transform: translateX(-50%);
          transform: translateX(-50%);
}


/* ----------------------------
  売上高を4,000,000で割った数値
---------------------------- */
ul.graph.sales .y2009 .value {
  height: 56.184%;
}

ul.graph.sales .y2010 .value {
  height: 82.469%;
}

ul.graph.sales .y2011 .value {
  height: 65.165%;
}

ul.graph.sales .y2012 .value {
  height: 70.354%;
}

ul.graph.sales .y2013 .value {
  height: 77.814%;
}

ul.graph.sales .y2014 .value {
  height: 78.634%;
}

ul.graph.sales .y2015 .value {
  height: 48.422%;
}

ul.graph.sales .y2016 .value {
  height: 52.669%;
}

ul.graph.sales .y2017 .value {
  height: 59.340%;
}

ul.graph.sales .y2018 .value {
  height: 62.721%;
}

ul.graph.sales .y2019 .value {
  height: 69.754%;
}

ul.graph.sales .y2020 .value {
  height: 76.211%;
}

ul.graph.sales .y2021 .value {
  height: 65.019%;
}

ul.graph.sales .y2022 .value {
  height: 65.137%;
}

@media (max-width: 480px) and (orientation: portrait) {
  ul.graph.sales {
    margin-bottom: 6rem;
  }

  ul.graph.sales > li {
    width: 16.8%;
  }

  ul.graph.sales > li > dl {
    height: 32rem;
  }

  ul.graph.sales > li > dl .year {
    font-size: 0.8rem;
    bottom: -2.4rem;
  }

  ul.graph.sales > li > dl .year > span {
    font-size: 1.3rem;
    letter-spacing: 0;
  }

  ul.graph.sales > li > dl .value > span {
    font-size: 1rem;
  }

  ul.graph.sales > li:nth-of-type(-n+4) {
    display: none;
  }
}



/*========================================
  engineering
========================================*/
ul.figure.engineering {
  width: 100%;
  padding-top: 100%;
  position: relative;
}

ul.figure.engineering > li {
  display: block;
  width: 33%;
  padding-top: 33%;
  position: absolute;
}

ul.figure.engineering > li.p1 {
  margin: 0 auto;
  left: 0;
  right: 0;
  top: 0;
}

ul.figure.engineering > li.p2 {
  margin: -16.5% 0 0;
  right: 0;
  top: 50%;
}

ul.figure.engineering > li.p3 {
  margin: 0 auto;
  left: 0;
  right: 0;
  bottom: 0;
}

ul.figure.engineering > li.p4 {
  margin: -16.5% 0 0;
  left: 0;
  top: 50%;
}

ul.figure.engineering > li > div {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

ul.figure.engineering > li dl {
  display: table;
  width: 100%;
  height: 100%;
  border: 0.4rem solid #000;
  border-radius: 50%;
  position: relative;
}

ul.figure.engineering > li dl > dt {
  width: 100%;
  font-family: 'Roboto', sans-serif;
  font-size: 1.2rem;
  font-weight: 300;
  letter-spacing: 0.06em;
  text-align: center;
  position: absolute;
  left: 0;
  top: 20%;
}

ul.figure.engineering > li dl > dd {
  display: table-cell;
  font-family: "Noto Serif Japanese", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝", "游明朝体", "YuMincho", "Yu Mincho", "HG明朝E", serif;
  font-size: 2rem;
  text-align: center;
  vertical-align: middle;
}

ul.figure.engineering > li.p4 dl > dd {
  font-size: 1.6rem;
  line-height: 1.3;
}

ul.figure.engineering > li .arrow {
  display: block;
  width: 30%;
  padding-top: 30%;
  position: absolute;
}

ul.figure.engineering > li.p1 .arrow {
  right: -24%;
  bottom: -4%;
  -webkit-transform: rotate(-45deg);
     -moz-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
       -o-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

ul.figure.engineering > li.p2 .arrow {
  left: -4%;
  bottom: -24%;
  -webkit-transform: rotate(45deg);
     -moz-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
       -o-transform: rotate(45deg);
          transform: rotate(45deg);
}

ul.figure.engineering > li.p3 .arrow {
  left: -24%;
  top: -4%;
  -webkit-transform: rotate(135deg);
     -moz-transform: rotate(135deg);
      -ms-transform: rotate(135deg);
       -o-transform: rotate(135deg);
          transform: rotate(135deg);
}

ul.figure.engineering > li.p4 .arrow {
  right: -4%;
  top: -24%;
  -webkit-transform: rotate(-135deg);
     -moz-transform: rotate(-135deg);
      -ms-transform: rotate(-135deg);
       -o-transform: rotate(-135deg);
          transform: rotate(-135deg);
}

ul.figure.engineering > li .arrow::before {
  content: "";
  display: block;
  width: 0.2rem;
  height: 100%;
  background: #000;
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}

ul.figure.engineering > li .arrow::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: 0.6rem solid transparent;
  border-top: 1.8rem solid #000;
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1.8rem;
}

@media (max-width: 480px) and (orientation: portrait) {
  ul.figure.engineering > li dl {
    border-width: 2px;
  }

  ul.figure.engineering > li dl > dt {
    font-size: 1rem;
    letter-spacing: 0.04em;
  }

  ul.figure.engineering > li dl > dd {
    font-size: 1.4rem;
  }

  ul.figure.engineering > li.p4 dl > dd {
    font-size: 1.2rem;
  }

  ul.figure.engineering > li .arrow {
    width: 24%;
    padding-top: 24%;
    position: absolute;
  }

  ul.figure.engineering > li.p1 .arrow {
    right: -20%;
    bottom: 0%;
  }
  
  ul.figure.engineering > li.p2 .arrow {
    left: 0%;
    bottom: -20%;
  }

  ul.figure.engineering > li.p3 .arrow {
    left: -20%;
    top: 0%;
  }

  ul.figure.engineering > li.p4 .arrow {
    right: 0%;
    top: -20%;
  }

  ul.figure.engineering > li .arrow::after {
    border: 0.5rem solid transparent;
    border-top: 1.5rem solid #000;
    bottom: -1.5rem;
  }
}





/*========================================
  education
========================================*/
ul.graph.education {
  width: 100%;
  text-align: center;
  border-bottom: 0.4rem solid #000;
  margin-bottom: 4rem;
  position: relative;
}

ul.graph.education::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: 0.6rem solid transparent;
  border-left: 1.8rem solid #000;
  position: absolute;
  right: -2.4rem;
  bottom: -0.8rem;
}


ul.graph.education > li {
  display: inline-block;
  width: 16%;
  vertical-align: bottom;
}

ul.graph.education > li > dl {
  width: 100%;
  height: 32rem;
  position: relative;
}

ul.graph.education > li > dl::before {
  content: "";
  display: block;
  width: 1px;
  height: 100%;
  background: #ddd;
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
}

ul.graph.education > li > dl::after {
  content: "";
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  background: #000;
  border-radius: 1rem;
  border: 0.4rem solid #fff;
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1rem;
}

ul.graph.education > li > dl .year {
  display: block;
  width: 100%;
  font-weight: bold;
  text-align: center;
  text-indent: 0.6rem;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4rem;
}

ul.graph.education > li > dl .year > span {
  font-family: 'Roboto', sans-serif;
  font-size: 2.4rem;
  font-weight: 400;
  letter-spacing: 0.02em;
}

ul.graph.education > li > dl .training > p  {
  display: block;
  width: 20rem;
  height: 4rem;
  color: #fff;
  font-family: "Noto Serif Japanese", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝", "游明朝体", "YuMincho", "Yu Mincho", "HG明朝E", serif;
  font-size: 1.8rem;
  letter-spacing: 0.04em;
  line-height: 3.8rem;
  background-color: #000;
  border-radius: 10rem;
  white-space: nowrap;
  position: absolute;
  z-index: 1;
}

ul.graph.education .y0 .training p:nth-of-type(1) {
  top: 4rem;
  left: 2rem;
}

ul.graph.education .y1 .training p:nth-of-type(1) {
  top: 10rem;
  left: -6rem;
}

ul.graph.education .y1 .training p:nth-of-type(2) {
  top: 16rem;
  left: 2rem;
}

ul.graph.education .y2 .training p:nth-of-type(1) {
  top: 10rem;
  left: -2rem;
}

ul.graph.education .y2 .training p:nth-of-type(2) {
  top: 22rem;
  left: 2rem;
}

ul.graph.education .y3 .training p:nth-of-type(1) {
  top: 10rem;
  left: 2rem;
}

ul.graph.education .y4 .training p:nth-of-type(1) {
  top: 16rem;
  left: -4rem;
}

ul.graph.education .y4 .training p:nth-of-type(2) {
  top: 22rem;
  left: 2rem;
}

ul.graph.education .y5 .training p:nth-of-type(1) {
  top: 10rem;
  left: -6rem;
}

@media (max-width: 480px) and (orientation: portrait) {
  ul.graph.education {
    border-bottom: none;
    margin-bottom: 0;
  }

  ul.graph.education::before {
    content: "";
    display: block;
    width: 0.3rem;
    height: 100%;
    background-color: #000;
    margin: 0 auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
  }

  ul.graph.education::after {
    border: 0.5rem solid transparent;
    border-top: 1.5rem solid #000;
    margin: 0 auto;
    position: absolute;
    right: 0;
    left: 0;
    bottom: -1.4rem;
  }

  ul.graph.education > li {
    display: block;
    width: 100%;
    border-top: 1px solid #ddd;
  }

  ul.graph.education > li > dl {
    display: table;
    width: 100%;
    height: auto;
    min-height: 12rem;
    padding: 2rem 0;
    position: relative;
  }

  ul.graph.education > li > dl::before {
    display: none;
  }

  ul.graph.education > li > dl::after {
    position: absolute;
    left: 0;
    right: 0;
    top: -0.8rem;
    bottom: auto;
  }

  ul.graph.education > li > dl .year {
    display: block;
    width: 100%;
    text-align: left;
    text-indent: 0;
    margin: 0;
    position: absolute;
    left: 0;
    right: auto;
    top: 1rem;
    bottom: auto;
  }

  ul.graph.education > li > dl .training {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
  }

  ul.graph.education > li > dl .training > p  {
    display: inline-block;
    width: 70%;
    height: 2.6rem;
    font-size: 1.5rem;
    letter-spacing: 0.02em;
    line-height: 2.6rem;
    position: static;
  }

  ul.graph.education > li > dl .training > p + p {
    margin-top: 1rem;
  }
}





/*========================================
  career-step
========================================*/
ul.graph.career-step {
  width: 100%;
  text-align: center;
  border-bottom: 0.4rem solid #000;
  margin-bottom: 4rem;
  position: relative;
}

ul.graph.career-step::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: 0.6rem solid transparent;
  border-left: 1.8rem solid #000;
  position: absolute;
  right: -2.4rem;
  bottom: -0.8rem;
}

ul.graph.career-step > li {
  display: inline-block;
  width: 20%;
  vertical-align: bottom;
}

ul.graph.career-step > li:first-child {
  width: 10%;
}

ul.graph.career-step > li:last-child {
  margin-right: 10%;
}

ul.graph.career-step > li > dl {
  width: 100%;
  height: 30rem;
  position: relative;
}

ul.graph.career-step > li:not(:first-child) > dl::before {
  content: "";
  display: block;
  width: 1px;
  height: 100%;
  background: #ddd;
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
}

ul.graph.career-step > li:not(:first-child) > dl::after {
  content: "";
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  background: #000;
  border-radius: 1rem;
  border: 0.4rem solid #fff;
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1rem;
}

ul.graph.career-step > li > dl .year {
  display: block;
  width: 100%;
  font-weight: bold;
  text-align: center;
  text-indent: 0.6rem;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4rem;
}

ul.graph.career-step > li > dl .year > span {
  font-family: 'Roboto', sans-serif;
  font-size: 2.4rem;
  font-weight: 400;
  letter-spacing: 0.02em;
}

ul.graph.career-step > li > dl .step {
  display: table;
  width: 14rem;
  height: 14rem;
  background-color: #000;
  border-radius: 7rem;
  margin-left: -7rem;
  margin-top: -7rem;
  margin-bottom: auto;
  position: absolute;
  left: 50%;
  top: 50%;
  bottom: 0;
  z-index: 1;
}

ul.graph.career-step > li > dl .step > p {
  display: table-cell;
  width: 100%;
  height: 100%;
  color: #fff;
  font-family: "Noto Serif Japanese", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝", "游明朝体", "YuMincho", "Yu Mincho", "HG明朝E", serif;
  font-size: 1.8rem;
  letter-spacing: 0.04em;
  line-height: 1.3;
  text-align: center;
  vertical-align: middle;
  padding-bottom: 0.6rem;
}

@media (max-width: 480px) and (orientation: portrait) {
  ul.graph.career-step {
    border-bottom: none;
    margin-bottom: 0;
  }

  ul.graph.career-step::before {
    content: "";
    display: block;
    width: 0.3rem;
    height: 100%;
    background-color: #000;
    margin: 0 auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
  }

  ul.graph.career-step::after {
    border: 0.5rem solid transparent;
    border-top: 1.5rem solid #000;
    margin: 0 auto;
    position: absolute;
    right: 0;
    left: 0;
    bottom: -1.4rem;
  }

  ul.graph.career-step > li {
    display: table;
    width: 100%;
    min-height: 12rem;
    border-top: 1px solid #ddd;
    position: relative;
  }

  ul.graph.career-step > li:first-child {
    min-height: 6rem;
    border-top: 0;
  }

  ul.graph.career-step > li > dl {
    display: table-cell;
    width: 100%;
    height: 100%;
    vertical-align: middle;
    padding: 2rem 0;
  }

  ul.graph.career-step > li > dl::before {
    display: none !important;
  }

  ul.graph.career-step > li > dl::after {
    position: absolute;
    left: 0;
    right: 0;
    top: -0.8rem;
    bottom: auto;
  }

  ul.graph.career-step > li > dl .year {
    display: block;
    width: 100%;
    text-align: left;
    text-indent: 0;
    margin: 0;
    position: absolute;
    left: 0;
    right: auto;
    top: 1rem;
    bottom: auto;
  }

  ul.graph.career-step > li > dl .step {
    display: inline-table;
    width: 60%;
    height: 8rem;
    border-radius: 4rem;
    margin: 0;
    position: static;
    left: 50%;
    top: 0;
    bottom: 0;
    z-index: 1;
  }

  ul.graph.career-step > li > dl .step > p  {
    font-size: 1.5rem;
  }
}


