:root {
  --pc: 1000px;
  --sp: 999px;
  --fs48: 4.8rem;
  --fs40: 4rem;
  --fs36: 3.6rem;
  --fs28: 2.8rem;
  --fs22: 2.2rem;
  --fs20: 2.0rem;
  --fs18: 1.8rem;
  --fs16: 1.6rem;
  --fs14:1.4rem;
  --fs12:1.2rem; }

@media (max-width: 999px) {
  :root {
    --fs48: 2.6rem;
    --fs40: 2.2rem;
    --fs36: 2.4rem;
    --fs28: 2.2rem;
    --fs22: 2.0rem;
    --fs20: 1.8rem;
    --fs18: 1.4rem;
    --fs16: 1.4rem;
    --fs14: 1.2rem;
    --fs12: 1.0rem; } }
/* 
---------------------------------------
data01
---------------------------------------
*/
@media (max-width: 999px) {
  #data01 {
    margin-bottom: 0; } }
#data01 .dataLead {
  margin-bottom: 6rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center; }
  @media (max-width: 999px) {
    #data01 .dataLead {
      margin-bottom: 3rem;
      font-size: 1.8rem; } }
#data01 .dataTopList {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3rem; }
  @media (max-width: 999px) {
    #data01 .dataTopList {
      grid-template-columns: 1fr;
      gap: 2rem; } }
#data01 .dataTopBox {
  position: relative;
  min-width: 0;
  padding: 8rem 0 2rem;
  background: url("../img/data/01_bgDeco.jpg"); }
  @media (max-width: 999px) {
    #data01 .dataTopBox {
      min-height: 0;
      padding: 6rem 2rem 3rem; } }
#data01 .dataTopBox:first-child .dataNote {
  text-align: center; }
#data01 .dataTopTtl {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: max-content;
  margin: 0 auto;
  padding: 1.2rem 2rem;
  background: #000;
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  text-align: center; }
  @media (max-width: 999px) {
    #data01 .dataTopTtl {
      min-width: 12rem;
      padding: 1rem 1.5rem;
      font-size: 2rem; } }
#data01 .dataTopMain {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4rem;
  margin-bottom: 2rem;
  min-height: 10rem; }
  @media (max-width: 999px) {
    #data01 .dataTopMain {
      margin-bottom: 1rem;
      min-height: 0; } }
  #data01 .dataTopMain .ico {
    flex-shrink: 0; }
    #data01 .dataTopMain .ico img {
      display: block;
      max-width: 11rem;
      height: auto; }
      @media (max-width: 999px) {
        #data01 .dataTopMain .ico img {
          max-width: 8rem; } }
#data01 .dataNumberBox {
  text-align: center; }
#data01 .dataSubLabel {
  margin-bottom: 0.5rem;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
  padding-left: 1rem; }
  @media (max-width: 999px) {
    #data01 .dataSubLabel {
      font-size: 1.5rem; } }
#data01 .dataNumber {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.8rem;
  line-height: 1; }
  #data01 .dataNumber .num {
    color: #eb3300;
    font-size: clamp(6rem, 6vw, 8rem);
    font-weight: 700;
    line-height: 0.9; }
    @media (max-width: 999px) {
      #data01 .dataNumber .num {
        font-size: 5.5rem; } }
  #data01 .dataNumber .unit {
    padding-bottom: 0;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1; }
    @media (max-width: 999px) {
      #data01 .dataNumber .unit {
        padding-bottom: 0.6rem;
        font-size: 2rem; } }
#data01 .dataNote {
  width: 80%;
  margin: 0 auto; }
  @media (max-width: 999px) {
    #data01 .dataNote {
      width: 100%;
      font-size: 1.4rem;
      text-align: center; } }
#data01 .dataRatioBox {
  position: relative;
  padding: 10rem 6rem 5rem;
  background: url("../img/data/01_bgDeco.jpg"); }
  @media (max-width: 999px) {
    #data01 .dataRatioBox {
      padding: 7rem 2rem 4rem; } }
#data01 .dataRatioTtl {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: max-content;
  margin: 0 auto;
  padding: 1.2rem 3rem;
  background: #000;
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  text-align: center; }
  @media (max-width: 999px) {
    #data01 .dataRatioTtl {
      padding: 1rem 1.5rem;
      font-size: 2rem; } }
#data01 .dataRatioList {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: end;
  gap: 2rem;
  max-width: 110rem;
  margin: 0 auto; }
  #data01 .dataRatioList::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 5rem;
    width: 100%;
    height: 2px;
    background: #ddd; }
    @media (max-width: 999px) {
      #data01 .dataRatioList::after {
        display: none; } }
  @media (max-width: 999px) {
    #data01 .dataRatioList {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-items: stretch;
      gap: 2rem 0; } }
#data01 .dataRatioItem {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0; }
  @media (max-width: 999px) {
    #data01 .dataRatioItem {
      justify-content: flex-end; } }
  #data01 .dataRatioItem .ico {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 100%;
    height: 12rem;
    margin-bottom: 1.5rem; }
    @media (max-width: 999px) {
      #data01 .dataRatioItem .ico {
        height: 7rem;
        margin-bottom: 1rem; } }
    #data01 .dataRatioItem .ico img {
      display: block;
      width: auto;
      max-width: 100%;
      height: auto;
      max-height: 100%; }
  #data01 .dataRatioItem:nth-child(1) .ico {
    height: 16rem; }
    @media (max-width: 999px) {
      #data01 .dataRatioItem:nth-child(1) .ico {
        height: 10rem; } }
    #data01 .dataRatioItem:nth-child(1) .ico img {
      max-width: 14rem; }
  #data01 .dataRatioItem:nth-child(2) .ico {
    height: 26rem; }
    @media (max-width: 999px) {
      #data01 .dataRatioItem:nth-child(2) .ico {
        height: 15rem; } }
    #data01 .dataRatioItem:nth-child(2) .ico img {
      max-width: 18rem; }
  #data01 .dataRatioItem:nth-child(3) .ico {
    height: 14rem; }
    @media (max-width: 999px) {
      #data01 .dataRatioItem:nth-child(3) .ico {
        height: 8rem; } }
    #data01 .dataRatioItem:nth-child(3) .ico img {
      max-width: 13rem; }
  #data01 .dataRatioItem:nth-child(4) .ico img {
    max-width: 14rem; }
  #data01 .dataRatioItem:nth-child(5) .ico img {
    max-width: 16rem; }
  @media (max-width: 999px) {
    #data01 .dataRatioItem:last-child {
      grid-column: 1 / -1;
      width: calc(50% - 0.75rem);
      margin: 0 auto; } }
#data01 .dataRatioNum {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  line-height: 1; }
  #data01 .dataRatioNum .num {
    color: #eb3300;
    font-size: clamp(4.5rem, 5vw, 7rem);
    font-weight: 700;
    line-height: 0.9; }
    @media (max-width: 999px) {
      #data01 .dataRatioNum .num {
        font-size: 4rem; } }
  #data01 .dataRatioNum .unit {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1; }
    @media (max-width: 999px) {
      #data01 .dataRatioNum .unit {
        font-size: 1.6rem; } }
#data01 .dataRatioName {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center; }
  @media (max-width: 999px) {
    #data01 .dataRatioName {
      font-size: 1.8rem; } }
#data01 .dataRatioNote {
  margin-top: 3rem;
  text-align: center; }
  @media (max-width: 999px) {
    #data01 .dataRatioNote {
      margin-top: 2rem;
      text-align: left; } }
#data01 .dataProfileList {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4rem; }
  @media (max-width: 999px) {
    #data01 .dataProfileList {
      grid-template-columns: 1fr;
      gap: 3rem; } }
#data01 .dataProfileBox {
  position: relative;
  min-width: 0;
  padding: 9rem 4rem 5rem;
  background: url("../img/data/01_bgDeco.jpg"); }
  @media (max-width: 999px) {
    #data01 .dataProfileBox {
      padding: 7rem 2rem 4rem; } }
#data01 .dataProfileTtl {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: max-content;
  margin: 0 auto;
  padding: 1.2rem 3rem;
  background: #000;
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  text-align: center; }
  @media (max-width: 999px) {
    #data01 .dataProfileTtl {
      padding: 1rem 1.5rem;
      font-size: 2rem; } }
#data01 .dataProfileRows {
  border-top: 0.1rem solid #ccc; }
#data01 .dataProfileRow {
  display: grid;
  grid-template-columns: 10rem minmax(0, 1fr) 8rem;
  align-items: center;
  gap: 2rem;
  min-height: 8rem;
  border-bottom: 0.1rem solid #ccc; }
  @media (max-width: 999px) {
    #data01 .dataProfileRow {
      grid-template-columns: 5rem minmax(0, 1fr) 5rem;
      gap: 1rem;
      min-height: 6.5rem; } }
  #data01 .dataProfileRow .label {
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.5; }
    @media (max-width: 999px) {
      #data01 .dataProfileRow .label {
        font-size: 1.5rem; } }
#data01 .iconList {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  min-width: 0; }
  @media (max-width: 999px) {
    #data01 .iconList {
      gap: 0.5rem; } }
  #data01 .iconList img {
    display: block;
    width: 3rem;
    height: auto; }
    @media (max-width: 999px) {
      #data01 .iconList img {
        width: 2.3rem; } }
#data01 .count {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.5rem;
  line-height: 1; }
  #data01 .count .num {
    color: #eb3300;
    font-size: 5rem;
    font-weight: 700;
    line-height: 0.9; }
    @media (max-width: 999px) {
      #data01 .count .num {
        font-size: 3.6rem; } }
  #data01 .count .unit {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1; }
    @media (max-width: 999px) {
      #data01 .count .unit {
        font-size: 1.5rem; } }
#data01 .dataProfileNote {
  margin-top: 2rem; }
  @media (max-width: 999px) {
    #data01 .dataProfileNote {
      margin-top: 1.5rem; } }
#data01 .dataProfileBox:nth-child(2) .label {
  font-size: 2rem; }
  @media (max-width: 999px) {
    #data01 .dataProfileBox:nth-child(2) .label {
      font-size: 1.6rem; } }
#data01 .dataProfileBox:nth-child(2) .iconList img {
  width: clamp(3.2rem, 2vw, 3.8rem); }
  @media (max-width: 999px) {
    #data01 .dataProfileBox:nth-child(2) .iconList img {
      width: 2.2rem; } }
@media (max-width: 999px) {
  #data01 .dataProfileBox:nth-child(2) .dataProfileRow {
    grid-template-columns: 9rem minmax(0, 1fr) 5rem; } }
#data01 .dataBottomBox {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 32rem;
  padding: 6rem 0 3rem;
  background: url("../img/data/01_bgDeco.jpg"); }
  @media (max-width: 999px) {
    #data01 .dataBottomBox {
      min-height: 0;
      padding: 4rem 2rem 2rem; } }
#data01 .dataBottomTtl {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: max-content;
  max-width: calc(100% - 4rem);
  margin: 0 auto;
  padding: 1.2rem 3rem;
  background: #000;
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  text-align: center; }
  @media (max-width: 999px) {
    #data01 .dataBottomTtl {
      max-width: calc(100% - 2rem);
      padding: 1rem 1.5rem;
      font-size: 2rem; } }
#data01 .dataBottomMain {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  min-height: 0;
  margin-bottom: 0; }
  @media (max-width: 999px) {
    #data01 .dataBottomMain {
      gap: 2rem; } }
  #data01 .dataBottomMain .ico {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 12rem;
    width: 12rem;
    height: 14rem; }
    @media (max-width: 999px) {
      #data01 .dataBottomMain .ico {
        flex-basis: 8rem;
        width: 8rem;
        height: 10rem; } }
    #data01 .dataBottomMain .ico img {
      display: block;
      width: auto;
      max-width: 100%;
      height: auto;
      max-height: 100%; }
#data01 .dataBottomList {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3rem;
  margin-top: 4rem; }
  @media (max-width: 999px) {
    #data01 .dataBottomList {
      grid-template-columns: 1fr;
      gap: 2rem;
      margin-top: 3rem; } }
#data01 .dataBottomNumber {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.8rem;
  min-width: 0;
  line-height: 1; }
  #data01 .dataBottomNumber .num {
    color: #eb3300;
    font-size: clamp(7rem, 6vw, 9rem);
    font-weight: 700;
    line-height: 0.9; }
    @media (max-width: 999px) {
      #data01 .dataBottomNumber .num {
        font-size: 6rem; } }
  #data01 .dataBottomNumber .unit {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap; }
    @media (max-width: 999px) {
      #data01 .dataBottomNumber .unit {
        padding-bottom: 0.5rem;
        font-size: 2rem; } }
    #data01 .dataBottomNumber .unit.large {
      font-size: clamp(2.2rem, 2.1vw, 3.2rem); }
      @media (max-width: 999px) {
        #data01 .dataBottomNumber .unit.large {
          font-size: 1.8rem; } }
#data01 .dataBottomTxt {
  width: 90%;
  margin: 0 auto; }
  @media (max-width: 999px) {
    #data01 .dataBottomTxt {
      width: 100%;
      margin-top: 0; } }

/* 
---------------------------------------
data02
---------------------------------------
*/
#data02 {
  position: relative;
  overflow: hidden;
  padding: clamp(8rem, 8vw, 12rem) 0 clamp(8rem, 10vw, 16rem); }
  @media (max-width: 999px) {
    #data02 {
      padding: 4rem 0 6rem; } }
  #data02 .bgDeco {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%; }
  #data02 .dataVoiceHead {
    position: absolute;
    top: 1rem;
    left: 0;
    width: 100%;
    text-align: center;
    pointer-events: none; }
    @media (max-width: 999px) {
      #data02 .dataVoiceHead {
        position: static;
        margin-bottom: 2rem; } }
  #data02 .dataVoiceEn {
    color: transparent;
    font-size: clamp(12rem, 15vw, 22rem);
    line-height: 1;
    -webkit-text-stroke: 1px #ddd;
    text-stroke: 1px #ddd;
    white-space: nowrap; }
    @media (max-width: 999px) {
      #data02 .dataVoiceEn {
        font-size: 7rem; } }
  #data02 .dataVoiceList {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(6rem, 4vw, 8rem) clamp(2rem, 2vw, 4rem);
    padding-top: 10rem; }
    @media (max-width: 999px) {
      #data02 .dataVoiceList {
        grid-template-columns: 1fr;
        gap: 4rem;
        padding-top: 0; } }
  #data02 .dataVoiceBox {
    min-width: 0;
    padding: 0 4rem 4rem;
    background: #fff; }
    @media (max-width: 999px) {
      #data02 .dataVoiceBox {
        padding: 0 2rem 3rem; } }
  #data02 .dataVoiceTtl {
    position: relative;
    display: inline-block;
    margin-top: -2rem;
    margin-bottom: 3rem;
    padding: 1rem 2rem;
    background: #000;
    color: #fff;
    font-size: clamp(2.4rem, 2.2vw, 3.2rem);
    font-weight: 700;
    line-height: 1.5; }
    @media (max-width: 999px) {
      #data02 .dataVoiceTtl {
        margin-bottom: 2rem;
        padding: 1.2rem 1.5rem;
        font-size: 2rem; } }
    #data02 .dataVoiceTtl::after {
      content: "";
      position: absolute;
      left: 3rem;
      bottom: -1.8rem;
      width: 0;
      height: 0;
      border-top: 2rem solid #000;
      border-right: 1.5rem solid transparent;
      border-left: 1.5rem solid transparent; }
      @media (max-width: 999px) {
        #data02 .dataVoiceTtl::after {
          left: 2rem;
          bottom: -1.5rem;
          border-top-width: 1.5rem;
          border-right-width: 1rem;
          border-left-width: 1rem; } }
  #data02 .dataVoiceRows {
    border-top: 0.1rem solid #ddd; }
  #data02 .dataVoiceRow {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr) 7rem;
    align-items: center;
    gap: 2rem;
    min-height: 8.5rem;
    border-bottom: 0.1rem solid #ddd; }
    @media (max-width: 999px) {
      #data02 .dataVoiceRow {
        grid-template-columns: 5rem minmax(0, 1fr) 5.5rem;
        gap: 1rem;
        min-height: 7rem; } }
    #data02 .dataVoiceRow .ico {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 7rem;
      height: 7rem; }
      @media (max-width: 999px) {
        #data02 .dataVoiceRow .ico {
          width: 5rem;
          height: 5rem; } }
      #data02 .dataVoiceRow .ico img {
        display: block;
        width: 7rem;
        height: 7rem;
        object-fit: contain; }
        @media (max-width: 999px) {
          #data02 .dataVoiceRow .ico img {
            width: 5rem;
            height: 5rem; } }
    #data02 .dataVoiceRow .label {
      font-size: clamp(1.8rem, 1.5vw, 2.4rem);
      font-weight: 700;
      line-height: 1.5; }
      @media (max-width: 999px) {
        #data02 .dataVoiceRow .label {
          font-size: 1.5rem; } }
    #data02 .dataVoiceRow .count {
      display: flex;
      align-items: flex-end;
      justify-content: flex-end;
      gap: 0.3rem;
      line-height: 1; }
      #data02 .dataVoiceRow .count .num {
        color: #eb3300;
        font-size: 4.5rem;
        font-weight: 700;
        line-height: 0.9; }
        @media (max-width: 999px) {
          #data02 .dataVoiceRow .count .num {
            font-size: 3.5rem; } }
      #data02 .dataVoiceRow .count .unit {
        font-size: 1.8rem;
        font-weight: 700;
        line-height: 1; }
        @media (max-width: 999px) {
          #data02 .dataVoiceRow .count .unit {
            font-size: 1.4rem; } }
  #data02 .dataVoiceTxt {
    margin-top: 3rem; }
    @media (max-width: 999px) {
      #data02 .dataVoiceTxt {
        margin-top: 2rem; } }
  #data02 .btn {
    margin: 0 auto; }

#data01 .num,
#data02 .num {
  font-variant-numeric: tabular-nums; }
