svg {
  fill: currentColor;
}
.info-box {
  box-sizing: border-box;
}
/*++++++++++++++++++*/
.info-article {
  margin:  0 0 100px;
  section {
    margin: 100px 0 0;
  }
}

.section-header {
  margin-bottom: 60px;
  h1 {
    font-weight: bold;
  }
  .jp,
  .en {
    display: block;
    line-height: 1;
  }
  .jp {
    font-size: 30px;
  }
  .en {
    margin-top: .75em;
    font-size: 24px;
    font-style: italic;
    color: #4E8D9C;
    letter-spacing: -.05em;
  }
  p {
    margin-top: 1em;
    font-size: 11px;
  }
}

.info-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  font-size: 10px;
}
.info-box {
  height: 37em;
  width: 36em;
  padding: 2em;
  background: #F8F8F8;
  h2 {
    font-size: 1.6em;
    font-weight: bold;
  }
}

.value {
  color: var(--accent-color);
}
.hours .value .line {
  background: var(--accent-color);
}
.bg_color-main {
  background: var(--main-color) !important;
}
.bg_color-sub {
  background: var(--sub-color1) !important;
}
.bg_color-gray {
  background: var(--color-gray) !important;
}
.white {
  color: var(--color-white) !important;
}
.gray {
  color: var(--color-gray) !important;
}

.fadein {
  transition: .8s ease-out;
  transform: translateY(2.5em);
  opacity: 0;
}
.fadein.on {
  transform: translateY(0) ;
  opacity: 1.0;
}
.rotate {
  transition: .8s ease-out;
  transform: rotate(-360deg);
}
.rotate.on {
  transform: rotate(0);
}
.fade-slide {
  transition: .8s ease-out;
  transform: translateX(-2.5em);
  opacity: 0;
  &.on {
    transform: translateX(0);
    opacity: 1.0;
  }
}


.fadein+.fadein {transition-delay: .2s;}
.fadein+.fadein+.fadein {transition-delay: .4s;}
.fadein+.fadein+.fadein+.fadein {transition-delay: .6s;}
.fadein+.fadein+.fadein+.fadein+.fadein {transition-delay: .8s;}
.fadein+.fadein+.fadein+.fadein+.fadein+.fadein {transition-delay: 1s;}

.no-width {
  transition: .8s ease-out;
  transform: translateZ(0);
  z-index: 1;
}
.no-width.off {
  width: 0 !important;
}
.no-height {
  transition: .8s ease-out;
  transform: translateZ(0);
  z-index: 1;
}
.no-height.off {
  height: 10% !important;
}

.value {
  font-weight: bold;
  color: var(--accent-color);
  text-align: center;
}

.all-purpose_txt {
  .figure {
    align-items: center;
    height: 30em;
  }
  .value {
    font-size: 3em;
  }
}

.all-purpose_list {
  .list {
    display: flex;
    gap: 3em;
    margin-top: 1em;
    ul {
      width: 30em;
      padding-left: 1em;
      font-size: 1.8em;
      line-height: 1.7;
      .title {
        color: var(--accent-color);
        font-weight: bold;
      }
    }
  }
}

.all-purpose_img {
  p {
    margin: 1em 0 0 1em;
    font-size: 1.8em;
    font-weight: 500;
  }
  .value {
    margin-top: 3em;
    line-height: 1;
  }
  p+.value {
    margin-top: .5em;
  }
  .num {
    font-size: 9em;
  }
  .unit {
    font-size: 4em;
  }
  .figure {
    margin-top: 3em;
    img {
      height: 11em;
    }
  }
}

.all-purpose_two {
  .list {
    display: flex;
    justify-content:center;
    gap: 5em;
    margin-top: 2em;
  }
  .box {
    width: 12.5em;
    text-align: center;
    p {
      text-align-last: left;
      font-size: 1.7em;
      font-weight: 500;
    }
    .value {
      line-height: 1;
    }
    .num {
      font-size: 7.5em;
    }
    .unit {
      font-size: 3.5em;
    }
    img {
      margin-top: 2em;
      height: 11em;
    }
  }
  .single {
    display: block;
    margin: 4em auto 0;
  }
}


.bar-graph {
  width: 73em;
  h2 {
    position: relative;
    z-index: 10;
  }
  .figure {
    position: relative;
    margin-top: -2em;
  }
  .img {
    display: flex;
    justify-content:center;
    align-items: center;
    position: absolute;
    top: 8em;
    left: 1em;
    height: 21em;
    width: 21em;
  }
  .bar-box-wrap {
    display: flex;
    justify-content:center;
    flex-flow: column;
    align-items: center;
    gap: 1em;
    height: 32em;
  }
  .bar-box {
    position: relative;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 15%;
    max-height: 5em;
    width: 100%;
  }
  .bar-fill {
    z-index: 1;
    position: absolute;
    height: 100%;
    border-radius: .5em 0 0 .5em;
    background: var(--sub-color1);
  }
  .value {
    color: #000;
  }
  .txt,
  .value {
    position: relative;
    z-index: 2;
    font-weight: bold;
  }
  .txt {
    display: flex;
    align-items: center;
    height: 100%;
    margin-right: 1em;
    font-size: 1.8em;
    line-height: 1;
    text-align: right;
  }
  .value {
    line-height: .5;
    margin-right: 1em;
  }
  .num {
    font-size: 5em;
  }
  .unit {
    font-size: 2em;
  }
}

.pie-chart {
  width: 73em;
  .figure {
    position: relative;
    align-items: start;
    margin-top: 1em;
    img {
      z-index: 10;
      position: absolute;
      left: 20em;
      top: 5em;
      width: 5em;
      transform: translateY(.5em);
      transition-delay: 1s;
    }
    .fadein.on {
      transform: translateY(0) ;
    }
  }
  svg {
    display: block;
    margin: auto;
    margin-top: 1em;
    transform: rotate(-90deg);
  }
  circle {
    position: relative;
    fill: none;
    stroke-width: calc(15.925 * 2);
    stroke-dashoffset: 0;
    stroke-dasharray: 100;
  }
  .pie {
    width: 27em;
    .line:not(.off) { animation: pie 1.5s ease both; }
  }
  .base {
    stroke: var(--color-gray);
  }
  .line {
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
    stroke: var(--main-color);
  }
  .line:nth-last-child(1) {
    stroke: var(--main-color);
  }
  .line:nth-last-child(2) {
    stroke: var(--accent-color);
  }
  .line:nth-last-child(3) {
    stroke: var(--sub-color1);
  }
  .line:nth-last-child(4) {
    stroke: var(--sub-color2);
  }  
  .line.off {
    stroke-dasharray: 0 100 !important;
  }
  .line+.line {
    animation-delay: .1s !important;
  }
  .line+.line+.line {
    animation-delay: .2s !important;
  }
  .line+.line+.line+.line {
    animation-delay: .3s !important;
  }
  .txt-box {
    display: flex;
    flex-wrap: wrap;

    align-items: center;
    gap: 3em;
    height: 27em;
    width: 37em;
    .box {
      width: 16em;
      p {
        font-size: 1.8em;
        font-weight: 500;
      }
    }
    .box:nth-child(1) .value {
      color: var(--main-color);
    }
    .box:nth-child(2) .value {
      color: var(--accent-color);
    }
    .box:nth-child(3) .value {
      color: var(--sub-color1);
    }
    .box:nth-child(4) .value {
      color: var(--sub-color2);
    }
  }


  .value {
    display: flex;
    align-items: baseline;
    width: 100%;
    line-height: 1;
  }
  .num {
    font-size: 9em;
  }
  .unit {
    font-size: 4dvb;
  }

}

@keyframes pie {
  0% {
    stroke-dasharray: 0 100;
  } to {}
}

.ratio-chart {
  .list {
    display: flex;
    flex-wrap: wrap;
    gap: 3em;
    justify-content:center;
    margin-top: 2em;
  }
  .figure {
    position: relative;
  }
  svg {
    display: block;
    width: 12em;
    margin: auto;
    transform: rotate(-90deg);
  }
  circle {
    position: relative;
    fill: none;
    stroke-width: 5;
    stroke-dashoffset: 0;
    stroke-dasharray: 100;
  }
  .base {
    stroke: var(--color-gray);
  }
  .line {
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
    stroke: var(--main-color);
  }
  .line:not(.off) {
    animation: pie 1.5s ease both;
  }
  .line.off {
    stroke-dasharray: 0 100 !important;
  }
  p {
    position: absolute;
    top: 1.8em;
    left: 0;
    right: 0;
    font-size: 1.4em;
    font-weight: 500;
    color: var(--accent-color);
    text-align: center;
  }
  .value {
    position: absolute;
    top: 2.8em;
    display: flex;
    justify-content:center;
    align-items: baseline;
    width: 100%;
  }
  .num {
    font-size: 4.5em;
  }
  .unit {
    font-size: 2.8em;
  }
}


.employees .num,
.branch .num {
  font-size: 10em;
}
.employees .unit,
.branch .unit {
  font-size: 4em;
}
.figure-flex {
  display: flex;
  justify-content:center;
  align-items: end;
  gap: 1em;
}

.employees {
  .figure {
    margin-top: 1.1em;
  }
  .figure {
    img {
      height: 11.4em;
    }
    .small {
      height: 7.5em;
    }
  }
}

.branch .figure img {
  height: 13em;
}


.countup {
  /* font-variant: tabular-nums; */
  /* font-feature-settings: "tnum"; */
}
.comma {
  font-size: .8em;
}
.salse {
  width: 73em;
  .value {
    display: flex;
    justify-content:center;
    align-items: center;
    margin-top: 2em;
  }
  .num {
    font-size: 14em;
  }
  .unit {
    font-size: 4em;
    writing-mode: vertical-rl;
  }
}

.listing {
  .value {
    font-size: 8em;
  }
  .figure {
    margin-top: 4em;
  }
  .figure img {
    height: 11em;
  }
}


.map {
  .figure {
    position: relative;
    width: 30em;
    height: 27em;
    margin-top: 2.5em;
    background: url(img/map.png) center right / contain no-repeat;
  }
  .pin {
    position: absolute;
    transform: translateY(-2em);
    top: 0;
    right: 0;
    width: 2.7em;
  }
  .pin.on {
    transform: translateY(0);
  }
  .value {
    position: absolute;
    top: 0;
    left: 0;
  }
  .txt {
    font-size: 5em;
  }
  .unit {
    font-size: 2.5em;
  }
}

.industry {
  .value {
    font-size: 8em;
  }
  .figure {
    margin-top: 4em;
  }
  .figure img {
    height: 11em;
  }
}
.double {
  width: 73em;
}
.industry.double .value {
  font-size: 7em;
}

.flex-box {
  display: flex;
  gap: 1em;
  .box {
    width: 34em;
  }
}

.industry-circle {
  width: 73em;
  .figure {
    position: relative;
  }
  .circle {
    position: absolute;
    width: 20em;
    transform: scale(0);
  }
  .circle text {
    color: #fff;
    font-weight: bold;
  }
  .circle.on {
    transform: scale(1);
  }
}


.hours {
  width: 73em;
  .figure {
    align-items: center;
  }
  .clock,
  .value {
    width: 50%;
  }
  .clock {
    display: flex;
    justify-content:center;
    align-items: center;
    background: url(img/hours2.png) left 13.7em top 4.7em / contain no-repeat;
    background-size: 7em;
  }
  .rotate {
    width: 16.4em;
  }
  .value {
    display: flex;
    flex-flow: column;
    align-items: center;
    font-size: 10em;
    line-height: 1;
    .time {
      display: block;
    }
    .line {
      width: .05em;
      height: .4em;
      margin-top: .2em;
    }
  }

}


.capital-ratio {
  .num {
    font-size: 10em;
  }
  .unit {
    font-size: 4em;
  }
  .figure {
    margin: 2em;
  }
  .bar {
    overflow: hidden;
    height: 5em;
    width: 100%;
    border-radius: .5em;
  }
  .bar-fill {
    height: 5em;
  }
  .bar-unit {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin-top: 0.5em;
    font-size: 1.6em;
  }
}


.divisions {
  width: 73em;
  .figure {
    display: flex;
    gap: 5em;
    img {
      width: 100%;
      max-width: 53em;
      margin-top: -2em;
    }
  }
  .value {
    font-size: 6em;
    line-height: 1.2;
    writing-mode: vertical-rl;
  }
}

.partner {
  .figure {
    display: flex;
    justify-content:center;
    gap: 4em;
    margin-top: 1em;
  }
  .bar-box {
    position: relative;
    display: flex;
    flex-flow: column;
    flex-direction : column-reverse;
    align-items: center;
    height: 29em;
    width: 8.5em;
  }
  .bar-fill {
    width: 100%;
    background: var(--sub-color1);
  }
  .value {
    color: #000;
  }
  .txt,
  .num {
    font-size: 1.6em;
    font-weight: bold;
  }
  .txt {
    z-index: 2;
    position: absolute;
    bottom: .25em;
  }
}

.since {
  .value {
    display: flex;
    justify-content:center;
    align-items: baseline;
    margin-top: 2em;
  }
  .num {
    font-size: 14em;
  }
  .unit {
    font-size: 7em;
  }
}

.share {
  .figure {
    position: relative;
  }
  svg {
    display: block;
    margin: auto;
    transform: rotate(-90deg);
  }
  circle {
    position: relative;
    fill: none;
    stroke-width: 5;
    stroke-dashoffset: 0;
    stroke-dasharray: 100;
  }
  .base {
    stroke: var(--color-gray);
  }
  .line {
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
    stroke: var(--main-color);
  }
  .line:not(.off) {
    animation: pie 1.5s ease both;
  }
  .line.off {
    stroke-dasharray: 0 100 !important;
  }
  .value {
    position: absolute;
    top: 5em;
    display: flex;
    justify-content:center;
    align-items: baseline;
    width: 100%;
  }
  .num {
    font-size: 9em;
  }
  .unit {
    font-size: 4dvb;
  }
}

.parking {
  .value {
    font-size: 5.5em;
  }
  .figure {
    margin-top: 3em;
  }
  .figure img {
    height: 11em;
  }
  p {
    margin-top: .5em;
    font-size: 3em;
    font-weight: bold;
    text-align: center;
  }
}

.mark {
  .value {
    font-size: 8em;
  }
  .figure {
    align-items: center;
    margin-top: 4em;
    height: 25em;
  }
}
.mark.double .value {
  font-size: 7em;
}

.salary {
  p {
    margin: 1em 0 0 1em;
    font-size: 1.8em;
    font-weight: 500;
  }
  .value {
    display: flex;
    justify-content:center;
    align-items: baseline;
    margin-top: 0;
    line-height: 1;
  }
  .num {
    font-size: 10em;
  }
  .unit {
    font-size: 4em;
  }
}


.day-off {
  position: relative;
  .bg {
    position: absolute;
    top: 6em;
    left: 0;
    right: 0;
    width: 260px;
    margin: auto;
  }
  
  .value {
    display: flex;
    justify-content:center;
    align-items: baseline;
    margin-top: 13em;
    line-height: 1;
  }
  .num {
    font-size: 9em;
  }
  .unit {
    font-size: 4em;
  }
}

.stylish {
  .list {
    display: flex;
    justify-content:center;
    gap: 5em;
    margin-top: 2em;
  }
  .box {
    width: 12.5em;
    text-align: center;
    p {
      text-align-last: left;
      font-size: 1.7em;
      font-weight: 500;
    }
    .value {
      line-height: 1;
      font-size: 8em;
    }
    img {
      margin-top: 2em;
      height: 11em;
    }
  }
}
.stylish.double {
  .list {
    gap: 7em;
  }
}

@media (max-width: 1200px) {
  .info-article {
    margin-bottom: 20vw;
    section {
      margin-top: 20vw;
    }
  }
  .section-header {
    margin-bottom: 10vw;
  }
  .info-list {
    font-size: 2.5vw;
  }
  .salse {
    height: 18em;
    width: 36em;
    .value {
      font-size: calc(5vw / 4);
    }
  }
  .double {
    height: 75em;
    width: 36em;
  }
  .flex-box {
    flex-flow: column;
    .box {
      height: 34em;
      width: 34em;
    }
  }
  .industry-circle {
    height: 20em;
    width: 36em;
    .figure {
      font-size: 48%;
    }
  }
  .hours {
    font-size: 50%;
    h2 {
      margin: .5em 0 0 .5em;
      font-size: 3.2em;
    }
  }
  .divisions {
    height: 20em;
    width: 36em;
    .figure {
      font-size: 48%;
      img {
        margin-top: -4em;
      }
    }
  }
  .pie-chart {
    height: 20em;
    width: 36em;
    .figure {
      font-size: 47%;
    }
  }

  .bar-graph {
    height: 42em;
    font-size: 50%;
    h2 {
      margin: .5em 0 0 .5em;
      font-size: 3.2em;
    }
    .figure {
      max-width: -4em;
    }
  }

  .stylish.double {
    .list {
      flex-wrap: wrap;
      gap: 5em;
    }
    height: 70em;
  }
  .all-purpose_list {
    height: auto;
    .list {
      flex-wrap: wrap;
      gap: 0;
      ul {
        width: 100%;
        .space {
          display: none;
        }
      }
    }
  }

}

.h1-border {
  font-size: 30px;
  padding-bottom: 10px;
  margin-top: 60px;
  margin-bottom: 60px;
  border-bottom: 1px solid #000;
}

.voices-list {
  font-size: 10px;
  .box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
  }
  .fl-end {
    align-items: flex-end;
  }
}

.voice {
  position: relative;
  display: inline-block;
  margin-bottom: 3em;
  padding: 1em 2.5em;
  border: .3em solid var(--main-color);
  background-color: #fff;
  text-align: left;
  font-size: 3em;
  font-weight: 400;
  line-height: 1.5;
  color: var(--main-color);
  &.middle {
    font-size: 3.5em;
  }
  &.large {
    font-size: 4em;
  }
  &::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 2.05em;
    border-style: solid;
    border-width: 2.2em 2.2em 0 0;
    border-color: var(--main-color) transparent transparent;
    translate: -50% 100%;
  }
  &::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 2.1em;
    border-style: solid;
    border-width: 1.6em 1.6em 0 0;
    border-color: #fff transparent transparent;
    translate: calc(-50% - .1em) 100%;
  }
  &:nth-child(even) {
    transform: translateX(2.5em);
    &::before {
      border-width: 2.2em 0 0 2.2em;
      right: .7em;
      left: auto;
    }
    &::after {
      border-width: 1.6em 0 0 1.6em;
      right: 1.1em;
      left: auto;
    }
      &.on {
        transform: translateX(0);
      }
  }
}
.bd-none {
  border: none;
  &::before {
    border: none;
  }
  &::after {
  }
}





.bubble-list {
  font-size: 10px;
  .box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    &.center {
      justify-content:center;
    }
  }
  .fl-end {
    align-items: flex-end;
  }
}
.bubble {
  display: inline-block;
  margin-bottom: 2em;
  padding: .5em 1em;
  background-color: #91C1CC;
  border-radius: .3em;
  text-align: left;
  font-size: 3em;
  font-weight: bold;
  line-height: 1.5;
  color: #fff;
  &:nth-child(even) {
    margin-top: 1em;
  }

}

.ranking-wrap {
  display: flex;
  padding: 3em;
  background: #fff;
  font-size: 10px;
}
.bold {
  font-weight: bold;
}
.ranking-list {
  width: 44%;
  font-size: 3em;
  li {
    margin-top: 1em;
    &:first-child {
      margin-top: 0;
    }
    img {
      display: inline-block;
      width: 2.3em;
      margin-right: 0.5em;
    }
  }
}
.ranking-list2 {
  width: 28%;
  font-size: 2em;
  li {
    display: flex;
    margin-top: 1.2em;
      &:first-child {
      margin-top: 0;
    }
    .i {
      display: block;
      width: 3.5em;
    }
  }
}
.ranking-wrap.flex2 {
  .ranking-list {
    width: 50%;
  }
  .ranking-list2 {
    width: 50%;
    li {
      margin-top: 2.2em;
      &:first-child {
        margin-top: 0;
      }
    }
  }
}

.sns-list {
  display: flex;
  justify-content:center;
  gap: 30px;
  font-size: 10px;
  .box {
    width: 20em;
    padding: 2.5em;
    background: #fff;
    border-radius: 1em;
    text-align: center;
    color: #000;
    text-decoration: none;
    img {
      height: 8em;
      margin-bottom: .8em;
    }
    h2 {
      font-size: 2em;
      font-weight: bold;
    }
    p {
      font-size: 1.6em;
    }
  }
}

.h1-simple {
  margin-top: 8em;
  margin-bottom: 1em;
  font-weight: bold;
  &.mt0 {
    margin-top: 0;
  }
}
.scroll-wrap {
  white-space: nowrap;
  overflow: auto;
}

.table-accordion {
  width: 100%;
  th,td {
    text-align: center;
    padding: 1em;
  }
  .p0 {
    padding: 0;
  }
}

.table-accordion-head {
  background: #636363;
  color: #fff;
  th {
    width: 10%;
      &:first-child {
        width: 40%;
      }
  }
}
.accordion-tr {
  border-top: 1px solid #636363;
  &.hidden {
    .accordion {
      display: none;
    }
    +.accordion {
      display: none;
    }
  }
}
.accordion-btn {
  position: relative;
  background: #E3E3E3;
  cursor: pointer;
  &::after {
    display: block;
    position: absolute;
    top: calc(50% - .5em);
    right: 2em;
    content: '';
    width: 1em;
    height: 1em;
    border-top: solid 1px #707070;
    border-right: solid 1px #707070;
    transform: rotate(135deg);
  }
}
.hidden {
  .accordion-btn::after {
    top: 50%;
    transform: rotate(-45deg);
  }
}
.accordion {
  .tal {
    text-align: left;
    white-space: normal;
  }
}
.table-accordion-body {
  width: 100%;
  tr.g {
    background: #F8F8F8;
    color: #636363;
  }
  td {
    width: calc(100% / 6);
  }
}




@media (max-width: 1200px) {
  .h1-border {
    font-size: 6vw;
    padding-bottom: 5vw;
    margin-top: 15vw;
    margin-bottom: 10vw;
    border-bottom: 1px solid #000;
  }
  .voices-list {
    font-size: .8vw;
  }
  .bubble-list {
    font-size: 1.5vw;
    & .box {
      &.center {
        justify-content: left;
      }
    }
  }
  .bubble {
    margin-bottom: 1em;
    &:nth-child(even) {
      margin-top: 0;
    }
  }
  
  .ranking-wrap {
    flex-flow: column;
  }
  .ranking-list,
  .ranking-list2 {
    width: 100% !important;
  }
  .ranking-list2 {
    li {
      margin-top: 1.5em !important;
    }
  }

}


@media (max-width: 800px) {
  .sns-list {
    gap: 2em;
    font-size: 1.5vw;
    .box {
      width: 20em;
      img {
        height: 8em;
        margin-bottom: .8em;
      }
    }
  }
}



@media (max-width: 520px) {
  .ranking-wrap {
    font-size: 1.8vw;
  }
}