.page-area {
  background-image: url(/image/area-wrap-bg.png);
  background-repeat: no-repeat;
  background-position: top -40% center;
  background-size: cover;
  padding-bottom: 80px;
  position: relative;

  &::before {
    content: "";
    background-image: url(/image/area-wrap-bg-01.png);
    background-size: cover;
    width: 169px;
    max-width: 320px;
    height: 160px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  &::after {
    content: "";
    background-image: url(/image/area-wrap-bg-02.png);
    background-size: cover;
    width: 122px;
    height: 180px;
    position: absolute;
    top: 65%;
    right: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .how-to {
    position: absolute;
    top: -40px;
    right: 5%;
    margin: 0;
  }
  & .how-to a {
    color: #4C91EB;
    font-weight: bold;
    border: 2px solid #4C91EB;
    background: #fff;
    padding: 8px 40px 8px 20px;
    border-radius: 5px;
    position: relative;
    transition: .4s;
  }
  & .how-to a:hover {
    background-color: #4C91EB;
    color: #fff;
    text-decoration: none;
  }
  & .how-to a::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 16px;
    width: 9px;
    height: 9px;
    margin: auto;
    border-top: 2px solid #4C91EB;
    border-right: 2px solid #4C91EB;
    transform: rotate(45deg);
    box-sizing: border-box;
    transition: .4s;
  }
  & .how-to a:hover::after {
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
  }
}

.area-wrap {
  max-width: 1120px;
  margin-inline: auto;

  & .myarea {
    position: absolute;
    top: 0;
    right: 0;
  }
  & .my-area-btn {
    background-color: #fff;
    border: 1px solid #4C91EB;
    border-radius: 4px;
    color: #4C91EB;
    cursor: pointer;
    padding: 3px 10px;
    transition: .4s;
    margin-top: 14px;
  }
  & .my-area-btn:hover {
    background-color: #4C91EB;
    color: #fff;
  }
  & .area-cont-tab {
    margin-bottom: 54px;
    margin-inline: auto;
  }
  & .area-cont-tab-block {
    align-items: end;
    display: flex;
    margin-bottom: 0;
    justify-content: center;
    border-bottom: 2px solid #4C91EB;
    padding: 0 10px;
    gap: 4px;
  }
  & .tab a {
    background-color: #D9D9D9;
    border-radius: 10px 10px 0 0;
    color: #2F2F2F;
    display: block;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    padding: 10px 20px;
    min-width: 190px;
    transition: .4s;
  }
  & .tab a:hover,
    .tab.future a:hover {
    background-color: #4C91EB;
    cursor: pointer;
    color: #fff;
    text-decoration: none;
  }
  & .tab.now a {
    background-color: #E0F5FF;
  }
  & .tab.future a {
    background-color: #FBEFAA;
  }
  & .tab .tab-link.active {
    background-color: #4C91EB;
    color: #fff;
    padding: 20px 20px;
  }

  & .tab-cont {
    display: none;
    margin-bottom: 46px;
  }
  & .tab-cont.show {
    display: block;
  }
  & .area-head-wrap {
    align-items: center;
    display: flex;
    gap: 36px;
    margin-bottom: 54px;
    justify-content: center;
    position: relative;
    z-index: 1;
  }
  .area-head-ill {
    position: absolute;
    bottom: -44px;
    right: -10px;
    z-index: -1;
  }
  & .more-btn-area {
    display: flex;
    gap: 20px;
    justify-content: center;
  }
  & .area-head-cont a.more-btn.district-info {
    color: #4C91EB;
    border: 1px solid #4C91EB;
    position: relative;
    transition: .4s;
    text-align: center;
  }
  & .area-head-cont a.more-btn.district-info::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 10px solid #4C91EB;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .area-head-cont a.more-btn.district-info:hover::after,
    .area-head-cont a.more-btn.district-info.active::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 10px solid #fff;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .area-head-cont a.more-btn.district-info:hover,
    .area-head-cont a.more-btn.district-info.active {
    color: #fff;
    background-color:#4C91EB ;
    border: 1px solid #4C91EB;
  }
  & .area-head-cont a.more-btn.use-class {
    color: #FF6A30;
    border: 1px solid #FF6A30;
    position: relative;
    transition: .4s;
    text-align: center;
  }
  & .area-head-cont a.more-btn.use-class::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 10px solid #FF6A30;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .area-head-cont a.more-btn.use-class:hover::after,
    .area-head-cont a.more-btn.use-class.active::after {
      content: "";
      width: 0;
      height: 0;
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 10px solid #fff;
      position: absolute;
      top: 50%;
      right: 19px;
      transform: translateY(-50%);
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
  }
  & .comparison-search {
    margin-bottom: 60px;
  }
  & .comparison-search .bubble-chart-form__button-container {
    margin-bottom: 22px;
  }



  & .area-head-cont a.more-btn.use-class:hover,
    .area-head-cont a.more-btn.use-class.active {
    color: #fff;
    background-color: #FF6A30;
    border: 1px solid #FF6A30;
  }


  & .more-btn-area .more-btn.dl-btn:last-child a {
    background-color: #fff;
    border: 1px solid #FF6A30;
    color: #FF6A30;
    font-weight: bold;
    padding: 16px;
  }
  & .more-btn-area .more-btn.dl-btn:last-child a::after{
    border-top: 2px solid #FF6A30;
    border-right: 2px solid #FF6A30;
  }
  & .more-btn-area .more-btn.dl-btn:last-child a:hover {
    background-color: #FFE44F;
    border: 1px solid #000;
    color: #000;
    text-decoration: none;
  }
  & .more-btn-area .more-btn.dl-btn:last-child a:hover::after{
    border-top: 2px solid #000;
    border-right: 2px solid #000;
  }
  & .area-head-cont .more-btn {
    max-width: 320px;
    width: 100%;
  }
  & .area-head-cont a.more-btn {
    background-color: #fff;
    border: 1px solid #4C91EB;
    border-radius: 50px;
    color: #4C91EB;
    font-size: 20px;
    font-weight: bold;
    padding: 16px;
  }
  & .area-head-cont a.more-btn:hover {
    background-color: #FFE44F;
    border: 1px solid #000;
    color: #000;
    text-decoration: none;
  }
  & .area-head-cont a.more-btn::after {
    border-top: 2px solid #4C91EB;
    border-right: 2px solid #4C91EB;
  }
  & .area-head-cont a.more-btn:hover::after {
    border-top: 2px solid #000;
    border-right: 2px solid #000;
  }
  & .area-photo-block {
    background-color: #FFE44F;
    border-radius: 50%;
    padding: 20px;
    position: relative;
    width: 240px;
  }
  & .area-photo-block::after {
    content: "";
    background-image: url(/image/area-photo-bg-ill.png);
    background-size: cover;
    background-repeat: no-repeat;
    width: 66.5px;
    height: 83px;
    position: absolute;
    top: -5px;
    right: -35px;
  }
  & .area-photo {
    background-color: #fbefaa;
    background-position: center;
    margin: 0;
    border-radius: 50%;
    overflow: hidden;
    height: 200px;
  }
  & .area-head-area {
    display: flex;
    align-items: center;
    gap: 20px;
  }
  & .area-head-cont-block {
    align-items: center;
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
  }
  & .area-head-tag {
    font-size: 18px;
    font-weight: bold;
    border: 1px solid;
    padding: 3px 10px;
    margin: 0;
  }
  & .area-head-name {
    align-items: center;
    display: flex;
    font-size: 56px;
    margin: 0;
  }
  & #area-title ruby {
    position: relative;
  }
  & .area-head-name rt {
    font-size: 28%;
    position: absolute;
    top: -8px;
    left: 0;
    width: 100%;
    text-align: center;
  }
  & .area-head-city {
    font-size: 32px;
    font-weight: normal;
    margin-right: 10px;
    margin-bottom: 7px;
  }
  & .tab-cont-head {
    font-size: 36px;
    margin-bottom: 25px;
  }
  & .area-sec {
    background: #F8F8F3;
    border-radius: 16px;
    padding: 30px 40px;
    position: relative;
    margin-bottom: 46px;
  }
  & .area-sec:last-child {
    margin-bottom: 0;
  }
  & .area-cont-block-child {
    margin-bottom: 30px;
  }
  & .area-cont-block-child:last-child {
    margin-bottom: 0;
  }

  & .pop-py .area-sec-cont {
    position: relative;
  }
  & .pop-py .area-sec-cont::before {
    content: "";
    background-image: url(/image/pyramid-ill-01.png);
    background-size: cover;
    background-repeat: no-repeat;
    position: absolute;
    bottom: 0;
    left: -16px;
    width: 24px;
    height: 90px;
  }
  & .pop-py .area-sec-cont::after {
    content: "";
    background-image: url(/image/pyramid-ill-02.png);
    background-size: cover;
    background-repeat: no-repeat;
    position: absolute;
    bottom: 0;
    right: -20px;
    width: 29px;
    height: 90px;
  }
  & .tab-py-cont {
    display: none;
  }
  & .tab-py-cont.show {
    display: block;
  }
  & .area-cont-tabpy-block {
    align-items: end;
    display: flex;
    justify-content: center;
    margin-bottom: 0;
  }
  & .tab-py {
    background-color: #D9D9D9;
    color: #2F2F2F;
    font-size: 15px;
    font-weight: bold;
    padding: 0 10px;
    min-height: 50px;
    text-align: center;
    width: calc(100% / 3);
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #fff;
    border-left: 1px solid #fff;
    line-height: 1.3;
  }
  & .tab-py.active {
    background-color: #4C91EB;
    color: #fff;
    font-size: 16px;
    padding: 15px 10px;
    min-height: 60px;
  }
  & .area-sec-head {
    font-size: 24px;
    margin-bottom: 26px;
  }
  & .area-sec-head span {
    font-size: 16px;
  }
  & .area-sec-head span.other-txt {
    margin-left: 24px;
  }
  & .tab-cont-exp {
    background-color: #fff;
    border: 1px solid;
    border-radius: 4px;
    color: #4C91EB;
    position: absolute;
    top: 30px;
    right: 40px;
    padding: 3px 10px 3px 39px;
    transition: .4s;
  }
  & .tab-cont-exp:hover,
    .tab-cont-exp.click {
    background-color: #4C91EB;
    color: #fff;
    cursor: pointer;
    text-decoration: none;
  }
  & .tab-cont-exp:hover::before,
    .tab-cont-exp.click::before {
    background-image: url(/image/exp-ill02.png);
  }
  & .tab-cont-exp::before {
    content: "";
    position: absolute;
    top: 55%;
    left: 15px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background-image: url(/image/exp-ill.png);
    background-repeat: no-repeat;
    background-size: cover;
  }
  & .cp_tooltiptext {
    display: none;
    position: absolute;
    top: 32px;
    right: -1px;
    padding: 1em 1.5em;
    background-color: #4c91eb;
    color: #FFF;
    min-height: 1em;
    position: absolute;
    z-index: 100;
    font-size: 0.9em;
    width: 432px;
    height: auto;
  }
  & .cp_tooltiptext p {
    margin-bottom: 5px;
  }
  & .cp_tooltiptext p:last-child {
    margin-bottom: 0;
  }
  & .cp_tooltiptext ul {
    padding-left: 1.5em;
    margin-bottom: 5px;
  }
  & .cp_tooltiptext ul:last-child {
    margin-bottom: 0;
  }
  & .cp_tooltiptext ul li {
    list-style-type: disc;
    margin-bottom: 5px;
  }
  & .cp_tooltiptext ul li:last-child {
    margin-bottom: 0;
  }
  & .cp_tooltiptext .close-btn {
    background-color: #666666;
    font-size: 13px;
    text-align: center;
    line-height: 1;
    padding: 5px;
    margin-top: 10px;
    width: 70px;
    margin-inline: auto;
  }
  & .pop-ratio .cp_tooltiptext {
    width: 552px;
  }
  & .tab-cont-exp.click .cp_tooltiptext {
    display: block;
  }
  & .area-sec-cont {
    background-color: #fff;
    border: 1px solid #BEBEBE;
    padding: 28px;
  }
  & .head-line {
    align-items: center;
    background: #FFE44F;
    border-radius: 4px;
    display: flex;
    font-size: 18px;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 20px;
    margin-bottom: 24px;
  }
  & .head-line-txt {
    margin: 0;
  }
  & .head-line-p {
    font-size: 15px;
    margin: 0;
  }
  & .area-sec-table {
    width: 100%;
  }
  & .area-sec-table .year {
    background-color: rgba(255,228,79,0.2);
    border-top: 1px solid #D9D9D9;
    font-size: 11px;
    font-weight: normal;
  }
  & .area-sec-table td.focus {
    font-weight: bold;
  }
  & .area-sec-table th,
    .area-sec-table td {
    border-bottom: 1px solid #D9D9D9;
    font-size: 14px;
    padding: 5px 20px;
  }
  & .area-sec-table th:nth-child(n+2),
    .area-sec-table td:nth-child(n+2) {
    text-align: center;
  }
  & .graph-txt-block {
    margin-top: 15px;
    margin-bottom: 0;
  }
  & .graph-txt {
    color: #555555;
    font-size: 13px;
    margin-bottom: -5px;
    padding-left: 1em;
    position: relative;
    margin-left: 35%;
    margin-top: 10px;
  }
  & .css-graph-download {
    background-color: #fff;
    border: 1px solid #4C91EB;
    border-radius: 4px;
    color: #4C91EB;
    cursor: pointer;
    padding: 3px 10px;
    transition: .4s;
    margin-top: 14px;
  }
  & .css-graph-download:hover {
    background-color: #4C91EB;
    color: #fff;
  }
  & .graph-txt:last-child {
    margin-bottom: 0;
  }
  & .graph-txt::before {
    content: "※";
    position: absolute;
    top: 0;
    left: 0;
  }
  & .bar-graph-area {
    align-items: center;
    display: flex;
    gap: 4%;
  }
  & .population_rations-tabs,
    .future_rations-tabs,
    .simulation-tabs {
    display: flex;
    gap: 4px;
  }
  & .population_rations-tabs .population_rations-tab-radio,
    .future_rations-tab-radio,
    .simulation-tab-radio {
    display: none;
  }
  & .population_rations-tab-label,
    .future_rations-tab-label,
    .simulation-tab-label {
    background-color: #D9D9D9;
    color: #2F2F2F;
    width: calc(100% / 4);
    text-align: center;
    font-weight: bold;
    font-size: 14px;
    margin-bottom: 0;
    padding: 10px;
    transition: .4s;
  }
  & .population_rations-tab-label:hover,
    .future_rations-tab-label:hover,
    .simulation-tab-label:hover {
    background-color: #4C91EB;
    color: #fff;
    cursor: pointer;
  }
  & .population_rations-tab-label.active,
    .future_rations-tab-label.active,
    .simulation-tab-label.active {
      background-color: #4C91EB;
      color: #fff;
    }
  & .graph-box {
    min-height: 300px;
  }





  & .graph-area {
    /* width: 71%; */
    flex: 1;
  }
  & .graph-cont {
    /* width: 25%; */
    width: 320px;
  }
  & .graph-cont-head {
    font-size: 21px;
    padding-left: 1em;
    position: relative;
    margin-bottom: 20px;
  }
  & .graph-cont-head::before {
    content: "";
    background-image: url(/image/graph-cont-head-ill.png);
    background-size: cover;
    width: 19px;
    height: 19px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .graph-cont-check-li {
    margin-bottom: 0;
  }
  & .graph-cont-check-li li {
    margin-bottom: 2px;
    position: relative;
  }
  & .graph-cont-check-li li:last-child {
    margin-bottom: 0;
  }
  & .graph-cont-check-li .checkbox {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 16px;
    height: 16px;
    cursor: pointer;
  }
  & .graph-cont-check-li label {
    cursor: pointer;
    position: relative;
    padding-left: 6px;
  }
  & .graph-cont-check-li label::before {
    content: "";
    position: absolute;
    left: -1em;
    top: 55%;
    width: 16px;
    height: 16px;
    background-color: #F3F3F3;
    border: 1px solid #4C91EB;
    border-radius: 4px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .graph-cont-check-li label::after {
    content: "";
    position: absolute;
    left: -0.6em;
    top: 52%;
    width: 5px;
    height: 9px;
    border-right: 2px solid transparent;
    border-bottom: 2px solid transparent;
    opacity: 0;
    transform: translateY(-50%) rotate(45deg);
    -webkit-transform: translateY(-50%) rotate(45deg);
    -ms-transform: translateY(-50%) rotate(45deg);
  }
  & .graph-cont-check-li input[type="checkbox"]:checked + label::before {
    background-color: #4C91EB;
  }
  input[type="checkbox"]:checked + label::after {
    opacity: 1;
    border-right-color: #fff;
    border-bottom-color: #fff;
  }
  input[type="checkbox"]:disabled + label::before {  
    background-color: #ccc;
    cursor: not-allowed;
  }
  & .area-cont-block {
    margin-bottom: 30px;
  }
  & .area-cont-block:last-child {
    margin-bottom: 0;
  }
  & .area-sec.other-pop {
    background-image: linear-gradient(#ffef98, #ffe44f);
    box-shadow: 0 0 9px rgba(0,0,0,0.2);
  }
  & .tab-ch-cont {
    display: none;
  }
  & .tab-ch-cont.show {
    display: block;
  }
  & .area-cont-tabch-block {
    align-items: end;
    display: flex;
    justify-content: center;
    margin-bottom: 0;
  }
  & .area-cont-tabch-block-sp {
    display: none;
  }
  & .tab-ch {
    background-color: #D9D9D9;
    color: #2F2F2F;
    font-size: 15px;
    font-weight: bold;
    padding: 0 10px;
    min-height: 50px;
    text-align: center;
    width: calc(100%/7);
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #fff;
    border-left: 1px solid #fff;
    line-height: 1.3;
  }
  & .tab-ch:hover {
    cursor: pointer;
  }
  & .tab-ch.active {
    background-color: #4C91EB;
    color: #fff;
    font-size: 16px;
    padding: 15px 10px;
    min-height: 60px;
  }
}

#future_gender_age_forecast_5years_forecast-year-selector,
#student_future_gender_age_forecast_forecast-year-selector {
  display: flex;
  gap: 4px;

  & input {
    display: none;
  }
  & label {
    background-color: #D9D9D9;
    color: #2F2F2F;
    width: calc(100% / 3);
    text-align: center;
    font-weight: bold;
    font-size: 15px;
    margin-bottom: 0;
    padding: 10px;
    transition: .4s;
  }
  & label:hover {
    background-color: #4C91EB;
    color: #fff;
    cursor: pointer;
  }
  & label.active {
    background-color: #4C91EB;
    color: #fff;
  }
}



.more-btn-wrap {
  display: flex;
  justify-content: space-between;
  gap: 2%;
}

.more-btn {
  margin-bottom: 0;
  width: 32%;

  & a {
    background: #000;
    border-radius: 50px;
    color: #FFE44F;
    display: block;
    padding: 20px;
    position: relative;
    text-align: center;
    transition: .4s;
    max-width: 320px;
    margin-inline: auto;
    border: 1px solid #000;
  }

  & a:hover {
    background-color: #FFE44F;
    color: #000;
    text-decoration: none;
  }

  & a::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 27px;
    width: 9px;
    height: 9px;
    margin: auto;
    border-top: 2px solid #FFE44F;
    border-right: 2px solid #FFE44F;
    transform: rotate(45deg);
    box-sizing: border-box;
  }

  & a:hover::after {
    border-top: 2px solid #000;
    border-right: 2px solid #000;
  }
}


/* 未来シミュレーション */
.simulation-wrap {
  
  & .simulation-case-block {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 4%;
  }
  & .simulation-case-box{
    background-color: #fff;
    border: 1px solid #C4D2D5;
    padding: 30px;
    width: 48%;
  }
  & .simulation-dl {
    display: flex;
    gap: 2em;
  }
  & .simulation-dl dt {
    font-weight: normal;
    position: relative;
    width: 96px;
  }
  & .simulation-dl dt::after {
    content: "…";
    position: absolute;
    top: 0;
    right: -1em;
  }
  & .simulation-dl dd {
    flex: 1;
  }
  & .simulation-head {
    font-size: 24px;
    margin-bottom: 20px;
  }
  & .simulation-head span {
    background-color: #666;
    border-radius: 20px;
    color: #fff;
    display: inline-block;
    font-size: 18px;
    padding: 3px 15px;
    margin-right: 10px;
  }
  & .simulation-head b {
    color: #ff6a30;
  }
  & .simulation-case-box-head {
    font-size: 22px;
    text-align: center;
    margin-bottom: 16px;
  }
  & .simulation-case-box-head b {
    color: #ff6a30;
  }
  & .simulation-case-box-cont {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    padding-bottom: 16px;
    position: relative;
    border-bottom: 4px solid #999;
    margin-bottom: 20px;
  }
  & .simulation-case-box-cont::after {
    content: "";
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
    position: absolute;
    bottom: -18px;
    left: 0;
    right: 0;
    margin: auto;
    background-color: #999;
    width: 90px;
    height: 16px;
  }
  & .simulation-list {
    color: #ff6a30;
    padding-top: 100px;
    position: relative;
    display: block;
    width: 100%;
  }
  & .simulation-list-pattern {
    position: absolute;
    top: 0;
    left: 50%;
    text-align: center;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
  }
  & .simulation-list-icon {
    margin-bottom: 3px;
  }
  & .simulation-list:nth-child(1) .simulation-list-icon,
    .simulation-list:nth-child(3) .simulation-list-icon {
      margin-bottom: 18px;
  }
  & .simulation-list-txt {
    color: #000;
    font-weight: bold;
    font-size: 17px;
    line-height: 1.1;
    margin-bottom: 0;
    width: 94px;
  }
  & .simulation-box {
    border: 1px solid #C4D2D5;
    border-radius: 8px;
    font-weight: bold;
    font-size: 24px;
    padding: 2px;
    position: relative;
    text-align: center;
  }
  & .simulation-box::after {
    content: "＋";
    color: #000;
    font-size: 18px;
    position: absolute;
    top: 50%;
    right: -25px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .simulation-list:last-child .simulation-box::after {
    content: none;
  }
  & .simulation-box span {
    color: #000;
    margin-left: 3px;
    font-size: 16px;
  }
  & .simulation-result-txt {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 8px;
    text-align: center;
  }
  & .simulation-result-txt span {
    color: #ff6a30;
    font-size: 32px;
    margin: 0 3px;
  }
  & .simulation-result-txt-small {
    font-size: 14px;
    padding-left: 1em;
    position: relative;
    margin-bottom: 0;
  }
  & .simulation-result-txt-small::before {
    content: "※";
    position: absolute;
    top: 0;
    left: 0;
  }
  & .simulation-input-box input {
    border-radius: 8px;
    padding: 10px;
    width: 100%;
  }
  & .simulation-cont {
    background-color: #fff;
    border: 1px solid #C4D2D5;
    padding: 30px;
  }
  & .radio-block {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-bottom: 30px;
  }
  & .simulation-cont-txt {
    margin-bottom: 40px;
  }
  & .radio-box {
    background-color: #f2eedd;
    border-radius: 5px;
    font-size: 18px;
    padding: 10px 20px 10px 34px;
    position: relative;
  }
  & .radio-box input {
    position: absolute;
    top: 53%;
    left: 16px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .radio-box label {
    margin-bottom: 0;
  }
  & .radio-box span {
    color: #ff6a30;
    font-weight: bold;
  }
  & .simulation-cont-block {
    max-width: 800px;
    margin-inline: auto;
  }
  & .simulation-cont-block .simulation-list:nth-child(1) .simulation-list-icon,
  .simulation-cont-block .simulation-list:nth-child(3) .simulation-list-icon {
    margin-bottom: 3px;
  }
  & .simulation-cont-block .simulation-list-txt {
    width: 174px;
  }
  & .simulation-cont-block .simulation-list {
    padding-top: 80px;
  }
  & .simulation-cont-block .simulation-input-box {
    position: relative;
  }
  & .simulation-cont-block .simulation-input-box::before {
    color: #000;
    content: "世帯増加";
    font-weight: bold;
    position: absolute;
    bottom: 10px;
    right: 30px;
  }
  & .simulation-cont-block .simulation-input-box input {
    border: 2px solid #C4D2D5;
    font-size: 24px;
    font-weight: bold;
    padding: 10px;
    text-align: center;
  }
  & .simulation-cont-block .simulation-case-box-cont {
    border-bottom: none;
    gap: 80px;
    margin-bottom: 60px;
  }
  & .simulation-cont-block .simulation-case-box-cont::after {
    content: none;
  }
  & .simulation-cont-block .simulation-list .simulation-input-box::after {
    content: "＋";
    color: #000;
    font-size: 30px;
    font-weight: bold;
    position: absolute;
    top: 40%;
    right: -54px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }
  & .simulation-cont-block .simulation-list:last-child .simulation-input-box::after {
    content: none;
  }
  & .please {
    position: absolute;
    bottom: -24px;
    left: 0;
    font-size: 14px;
    margin: 0;
  }
  & .simulation-cont-block .more-btn {
    margin: 0 auto 60px;
  }
  & .simulation-cont-block .more-btn a {
    background-color: #FFE44F;
    color: #000;
  }
  & .simulation-cont-block .more-btn a::after {
    border-top: 2px solid #000;
    border-right: 2px solid #000;
  }
  & .graph-wrap {
    margin-bottom: 60px;
  }
  & .graph-wrap:last-child {
    margin-bottom: 0;
  }
  & .graph-wrap .head-line-txt {
    background-color: #FFE44F;
    border-radius: 4px;
    font-size: 18px;
    padding: 10px 20px;
    margin-bottom: 10px;
  }
  & .head-line-txt {
    background: #FFE44F;
    border-radius: 4px;
    display: flex;
    font-size: 18px;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 17px;
    margin-bottom: 14px;
  }
}


/* 授業でのご利用 */
.class-wrap {
  & .class-head {
    font-size: 36px;
    margin-bottom: 60px;
    text-align: center;
  }
  & .area-sec h3 {
    font-size: 36px;
    margin-bottom: 30px;
    text-align: center;
  }
  & .area-sec h3 span {
    color: #FF6A30;
    font-size: 55px;
    margin: 0 8px;
    position: relative;
  }
  & .area-sec h3 span::after {
    content: "";
    background-image: url(../image/class-head-icon.png);
    width: 61px;
    height: 34px;
    position: absolute;
    top: -.3em;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
  }
  & .class-sec {
    background-color: #fff;
    border: 1px solid #BEBEBE;
    padding: 28px;
    margin-bottom: 45px;
  }
  & .class-sec:last-child {
    margin-bottom: 0;
  }
  & .class-sec-head {
    font-size: 24px;
    margin-bottom: 20px;
  }
  & .class-sec-head span {
    color: #FF6A30;
  }
  & .class-txt {
    margin-bottom: 20px;
    line-height: 1.8;
  }
}
.class {
  .page-area {
    &::before {
      content: none;
    }
    &::after {
      content: none;
    }
    & .tab-cont {
      position: relative;
      z-index: 1;
    }
  }
}
.class-bg-ill {
  display: none;
}
.class .class-bg-ill {
  display: block;
  position: absolute;
  
  &.ill01 {
    top: 30%;
    left: 2%;
    width: 9%;
  }
  &.ill02 {
    top: 60%;
    left: 4%;
    width: 6%;
  }
  &.ill03 {
    top: 90%;
    left: 2%;
    width: 9%;
  }
  &.ill04 {
    top: 20%;
    right: 6%;
    width: 4%;
  }
  &.ill05 {
    top: 50%;
    right: 6%;
    width: 5%;
  }
  &.ill06 {
    top: 80%;
    right: 3%;
    width: 10%;
  }
}




/* レスポンシブ */
@media screen and (max-width: 1300px) {
  .page-area {
    & .how-to {
      top: -20px;
    }
    .class-bg-ill {
      display: none;
    }
  }
  .area-wrap {
    & .area-head-wrap {
      padding-top: 50px;
    }
    & .myarea {
      top: 30px;
      right: 10px;
    }
  }
}

@media screen and (max-width: 1500px) {
  .page-area {
      &::before {
        content: none;
       }
       &::after {
        content: none;
       }
    }
}

@media screen and (max-width: 1200px) {
  .area-wrap {
    & .area-cont-tab-block {
      border-bottom: none;
      border: 1px solid #4C91EB;
      border-radius: 8px;
      flex-direction: column;
      max-width: 800px;
      margin-inline: auto;
      padding: 0;
      gap: 0;
      width: 90%;
    }
    & .area-sec {
      border-radius: 0;
    }
    & .tab-cont-head {
      margin-inline: auto;
      width: 90%;
    }
    & .tab {
      background-color: #F0F4F9;
      border-bottom: 1px solid #4C91EB;
      border-radius: 0;
      color: #617074;
      padding: 0;
      position: relative;
      text-align: left;
      width: 100%;
    }
    & .tab a {
      border-radius: 0;
    }
    & .tab:first-child a {
      border-radius: 5px 5px 0 0;
    }
    & .tab:last-child {
      border-radius: 0;
    }
    & .tab:last-child a {
      border-radius: 0 0 5px 5px;
    }
    & .tab::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 16px;
      transform: translateY(-50%);
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      background-repeat: no-repeat;
      background-size: cover;
    }
    & .tab:first-child::before {
      background-image: url(/image/area-cont-tab-ill-01.png);
      width: 28px;
      height: 24px;
    }
    & .tab.active:first-child::before {
      background-image: url(/image/area-cont-tab-ill-01-active.png);
    }
    & .tab:nth-child(2)::before {
      background-image: url(/image/area-cont-tab-ill-02.png);
      width: 29px;
      height: 24px;
    }
    & .tab.active:nth-child(2)::before {
      background-image: url(/image/area-cont-tab-ill-02-active.png);
    }
    & .tab:nth-child(3)::before {
      background-image: url(/image/area-cont-tab-ill-03.png);
      width: 25px;
      height: 24px;
    }
    & .tab.active:nth-child(3)::before {
      background-image: url(/image/area-cont-tab-ill-03-active.png);
    }
    & .tab:nth-child(4)::before {
      background-image: url(/image/area-cont-tab-ill-04.png);
      width: 25px;
      height: 24px;
    }
    & .tab.active:nth-child(4)::before {
      background-image: url(/image/area-cont-tab-ill-04-active.png);
    }
    & .tab:nth-child(5)::before {
      background-image: url(/image/area-cont-tab-ill-05.png);
      width: 27px;
      height: 24px;
    }
    & .tab.active:nth-child(5)::before {
      background-image: url(/image/area-cont-tab-ill-05-active.png);
    }
    & .tab::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      right: 27px;
      width: 9px;
      height: 9px;
      margin: auto;
      border-top: 2px solid #9AB0CB;
      border-right: 2px solid #9AB0CB;
      transform: rotate(45deg);
      box-sizing: border-box;
    }
    & .tab .tab-link.active {
      padding: 10px 20px;
    }
    & .tab:first-child {
      border-radius: 8px 8px 0 0;
    }
    & .tab:last-child {
      border-radius: 0 0 8px 8px;
      border-bottom: 0;
    }
    & .tab.active {
      padding: 10px 15px 10px 60px;
    }
    & .tab.active::after {
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
    }
    & .area-sec {
      padding: 30px 2%;
    }
    & .bar-graph-area {
      flex-direction: column-reverse;
    }
    & .area-sec-cont {
      background-color: initial;
      border: none;
      padding: 0;
    }
    & .graph-area {
      background-color: #fff;
      padding: 28px;
      width: 100%;
      border-top: 1px solid #C4D2D5;
      border-bottom: 1px solid #C4D2D5;
    }
    & .graph-cont {
      margin-inline: auto;
      width: 95%;
    }
    & .graph-cont-check-li {
      display: flex;
      flex-wrap: wrap;
      gap: 0 24px;
      margin-bottom: 10px;
    }
    & .graph-cont-head {
      font-size: 18px;
      padding-left: 1.3em;
      margin-bottom: 16px;
    }
    & .head-line-p {
      display: none;
    }
    & .area-cont-tabch-block,
      .area-cont-tabpy-block {
      display: none;
    }
    & .area-cont-tabch-block-sp {
      margin-bottom: 20px;
      width: 100%;
    }
    & .area-cont-tabch-block-sp {
      border: 1px solid #4C91EB;
      border-radius: 10px;
      color: #4C91EB;
      padding: 10px;
      margin-inline: auto;
      width: 90%;
    }
    & .area-cont-tabch-block-sp {
      display: block;
    }
    & .pop-py .area-sec-cont::before {
      bottom: -49px;
      left: 10px;
      width: 16px;
      height: 60px;
    }
    & .pop-py .area-sec-cont::after {
      bottom: -45px;
      right: 10px;
      width: 19px;
      height: 60px;
    }
    & .tab-cont-exp {
      right: 16px;
    }
    & .area-sec.other-pop {
      border-radius: 16px;
      margin-inline: auto;
      width: 95%;
    }
    & .simulation-wrap .graph-area {
      border: none;
      padding: 0;
    }
    & .age-group .area-sec-cont,
      .pop-py .area-sec-cont {
      background-color: #fff;
      padding: 28px;
      width: 100%;
      border-top: 1px solid #C4D2D5;
      border-bottom: 1px solid #C4D2D5;
    }
    & .pop-py .area-sec-cont {
      margin-bottom: 30px;
    }
  }
  .area-wrap .tab-cont-txt {
    width: 95%;
    margin-inline: auto;
  }

}

@media screen and (max-width: 1024px) {
  .bubble-chart-form {
    flex-direction: row !important;
    gap: 40px !important;
  }
}

@media screen and (max-width: 1000px) {
  .more-btn-wrap {
    flex-direction: column;
    gap: 20px;
  }
  .more-btn {
    width: 100%;
  }
  .simulation-wrap {
    & .radio-block {
      flex-direction: column;
      gap: 20px;
    }
  }
}


@media screen and (max-width: 900px) {
  .page-area {
    & .how-to {
      top: 15px;
      right: 10px;
      z-index: 1;
    }
    & .how-to a {
      font-size: 14px;
    }
  }
  .area-wrap {
    & .area-head-wrap {
      flex-direction: column;
      padding-top: 100px;
      z-index: 0;
    }
    & .area-head-cont .more-btn {
      margin-inline: auto;
    }
    & .tab-cont-head {
      font-size: 25px;
    }
    & .area-sec-head {
      font-size: 22px;
      line-height: 1.3;
      padding-right: 94px !important;
      margin-inline: auto;
      width: 95%;
    }
    & .area-sec-head span {
      display: block;
    }
    & .area-sec-table-wrap {
      overflow-x: scroll;
    }
    & .area-sec-table {
      width: 800px;
      border-collapse: collapse;
      white-space: nowrap;
    }
    & .area-sec-head span.other-txt {
      margin: 10px 0 0;
    }
    & .other-pop .area-sec-head {
      padding-right: 0;
    }
    & .area-head-ill {
      display: none;
    }
    & .area-photo-block::before {
      content: "";
      background-image: url(/image/area-head-ill-sp.png);
      background-size: cover;
      width: 316px;
      height: 232px;
      position: absolute;
      top: 0;
      left: -48px;
    }
    & .myarea {
      position: inherit;
      top: 0;
      right: 0;
      left: 0;
      margin: auto;
    }
    & .my-area-btn {
      padding: 10px 20px;
      margin: 0;
    }
  }
  .simulation-wrap {
    & .simulation-head span {
      display: block;
      margin-bottom: 5px;
      width: fit-content;
    }

  }

}


@media screen and (max-width: 768px) {
  .area-wrap {
    & area-head-cont-block {
      flex-direction: column;
    }
    & .graph-txt {
      margin-left: 3%;
    }
    & .area-head-cont-block {
      flex-direction: column;
      gap: 10px;
    }
    & .area-head-city {
      font-size: 20px;
      margin: 0;
    }
    & .population_rations-tabs,
      .future_rations-tabs,
      .simulation-tabs {
        gap: 0;
        flex-direction: column;
        margin-bottom: 40px;
        max-width: 320px;
        margin-inline: auto;
        border: 1px solid #4C91EB;
        border-radius: 5px;
    }
    & .population_rations-tab-label,
      .future_rations-tab-label,
      .simulation-tab-label {
        border-bottom: 1px solid #fff;
        width: 100%;
    }
    & .population_rations-tab-label:last-child,
      .future_rations-tab-label:last-child,
      .simulation-tab-label:last-child {
        border: none;
    }
    & .more-btn-area {
      flex-direction: column;
    }
    & .pop-py .area-sec-cont::before,
      .pop-py .area-sec-cont::after {
        display: none;
    }
    & .pop-py .area-sec-cont {
      margin-bottom: 0;
    }
      
  }
  .simulation-wrap {
    & .simulation-cont {
      padding: 16px;
    }
  }
  .tab-navigation .tab-list {
    & .tab-item .tab-link {
        &.active {
            border-bottom-color: initial;
            border-left: none;
        }
    }
  }
  .simulation-wrap {
    & .simulation-case-block {
      display: block;
    }
    & .simulation-case-box {
      margin-bottom: 30px;
      width: 100%;
    }
    & .simulation-case-box:last-child {
      margin-bottom: 0;
    }
    & .simulation-cont-block .simulation-case-box-cont {
      flex-direction: column;
      gap: 80px;
    }
    & .simulation-cont-block .simulation-list .simulation-input-box::after {
      right: -36px;
    }
    & .simulation-cont-block .simulation-list .simulation-input-box::after {
      top: inherit;
      bottom: -70px;
      right: 0;
      left: 50%;
      margin: 0;
      transform: translateX(-50%);
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      text-align: center;
    }
    & .simulation-cont-block .simulation-list {
      max-width: 300px;
      margin-inline: auto;
    }
  }

  .class-wrap {
      & .class-sec-head {
        font-size: 22px;
    }
      & .area-sec h3 {
        font-size: 26px;
     }
      & .area-sec h3 span {
        font-size: 40px;
    }
     & .area-sec h3 span::after {
        background-size: cover;
        width: 51px;
        height: 25px;
    }
  }
}




@media screen and (max-width: 600px) {
  .area-wrap {
    & .cp_tooltiptext,
      .pop-ratio .cp_tooltiptext {
      width: 300px;
    }
    & .tab a {
      font-size: 15px;
    }
    & .area-head-cont {
      width: 90%;
    }
    & .area-head-name {
      font-size: 42px;
      line-height: 4;
    }
  }
  .simulation-wrap {
    & .simulation-dl {
      flex-direction: column;
      gap: 4px;
    }
    & .simulation-dl dt {
      font-size: 20px;
      font-weight: bold;
      width: 126px;
    }
    & .radio-box {
      display: flex;
      gap: 10px;
      font-size: 16px;
    }
  }
  .tab-navigation .tab-list {
    & .tab-item .tab-link {
        &.active {
            border-bottom-color: initial;
            border-left: 0;
        }
    }
  }
}