@import url('https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&family=Oswald:wght@200..700&display=swap');

*{
    box-sizing: border-box;
    line-height: inherit;
    font-weight: inherit;
    font-size: inherit;
    color: inherit;
    font-family: inherit;
}
html,body,div,h1,h2,h3,h4,h5,h6,ul,ol,li,p,dl,dt,dd{
    padding: 0;
    margin: 0;
}
html{
    font-size: 10px;
}
body{
    font-family:"BIZ UDPGothic", sans-serif;
    line-height: 1.5;
    color: #131313;
}
ol,ul,li{
    list-style: none;
}
img{
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}
a{
    text-decoration: none;
}
.flex{
    display: flex;
    flex-wrap: wrap;
}
.en{
    font-family: 'DIN', 'Oswald', sans-serif;
}
h3.title{
    text-align: center;
    font-weight: 700;
    font-size: 2.4rem;
    line-height: 1.2;
    letter-spacing: .4rem;
    margin: 0 0 4rem;
}
h3.title .en{
    font-size: 1.4rem;
    letter-spacing: 0.1rem;
    color: #0393E7;
    margin-bottom: .4rem;
}
.dl_table{
    display: table;
    width: 100%;
    border-spacing: collapse;
}
.dl_table > dl{
    display: table-row;
    width: 100%;
}
.dl_table > dl > dt,
.dl_table > dl > dd{
    display: table-cell;
}
.sp{
    display: none;
}

body{
    background: linear-gradient(180deg, #FFFFFF 10.58%, #EEF7FC 30.77%, #FFFFFF 45%, #EEF7FC 60%, #DAF2FF 100%);
}

#wrapper{
    position: relative;
    padding-bottom: 30rem;
}

header{
    padding: 5rem 5% 4.1rem;
    position: relative;
}
header h1{
    font-weight: 700;
    font-size: 2rem;
    line-height: 134%;
    letter-spacing: .4rem;
    text-align: center;
}
header span{
    position: absolute;
    right: 6.4rem;
    top: 50%;
    transform: translateY(-20%);
}

footer{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
}
.footer_wrap{
    position: relative;
    padding: 12.5vw 0 0;
}
.footer_wrap .line{
    position: absolute;
    bottom: 3.2rem;
    right: 0;
    width: 73.26vw;
    aspect-ratio: 4.75;
    pointer-events: none;
    background: url(images/footer_line.png) right center / contain no-repeat;
    z-index: 2;
}
.footer_bnr{
    position: relative;
    z-index: 1;
    width: 90%;
    max-width: 136rem;
    margin: 0 auto;
    background: #fff;
    border-radius: 1.6rem 1.6rem 0 0;
    padding: 8.5rem 0;
}
.footer_bnr_list .flex{
    justify-content: center;
    gap: 2rem 4.7rem;
}
.footer_bnr_list .flex > li{
    width: 24.2rem;
    height: 10.1rem;
    border: 1px solid #eee;
}
.copyright{
    color: #fff;
    background: #0086D5;
    padding: .8rem 5%;
}
.copyright > *{
    font-size: 1.2;
    line-height: 134%;
    letter-spacing: .1rem;
    text-align: center;
}
.copyright .flex{
    justify-content: center;
    gap: 2rem;
    margin-bottom: .4rem;
}

#menu{
    position: sticky;
    top: 8px;
    z-index: 1000;
}
#menu .flex{
    gap: 2rem 3.2rem;
    justify-content: center;
}
#menu .flex a{
    display: block;
    position: relative;
    z-index: 1;
    width: 28.4rem;
    height: 5.2rem;
    border-radius: 2.6rem;
    background: url(images/icon_link.svg) right 2rem center / .6rem auto no-repeat ,linear-gradient(90deg, #109EE6 0%, #77E0E4 100%);
    box-shadow: 0px 0px 24px 0px rgba(3, 147, 240, 0.4);
}
#menu .flex a span{
    display: block;
    position:absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-weight: 700;
    font-size: 1.7rem;
    letter-spacing: .23rem;
    text-align: center;
    color: #fff;
    transition: color .3s ease-out;
    z-index: 3;
    width: 100%;
}
#menu .flex a:before{
    content: "";
    position: absolute;
    display: block;
    width: 28.4rem;
    height: 5.2rem;
    border-radius: 2.6rem;
    transition: opacity .3s ease-out;
    background: linear-gradient(90deg, #FFFFFF 0%, #D9FEFF 100%);
    opacity: 0;
    z-index: 2;
}
#menu .flex a:hover:before{
    opacity: 1;
}
#wrapper.outline #menu .flex a.outline span,
#wrapper.plan #menu .flex a.plan span,
#wrapper.contact #menu .flex a.contact span,
#menu .flex a:hover span{
    color: #0393E7;
}
#wrapper.outline #menu .flex a.outline,
#wrapper.plan #menu .flex a.plan,
#wrapper.contact #menu .flex a.contact{
    cursor: default;
    pointer-events: none;
}
#wrapper.outline #menu .flex a.outline:before,
#wrapper.plan #menu .flex a.plan:before,
#wrapper.contact #menu .flex a.contact:before{
    opacity: 1;
}

#wrapper.page section.title{
    padding: 4.5vw 5% 7.2vw;
    position: relative;
}
#wrapper.page section.title h2{
    font-weight: 700;
    font-size: 1.4rem;
    line-height: 134%;
    letter-spacing: .4rem;
    text-align: center;
}
#wrapper.page section.title h2 p{
    font-size: 5.6rem;
    line-height: 134%;
    color: #0393E7;
}
#wrapper.page section.title:after{
    content: "";
    display: block;
    position: absolute;
    width: 89.6vw;
    aspect-ratio: 5.85;
    background: url(images/header_line.png) left center / contain no-repeat;
    z-index: 0;
    left: 0;
    bottom: -1.8vw;
}


#wrapper.top .mv{
    position: relative;
    padding-bottom: 9.16vw;
}
#wrapper.top .mv .img{
    position: relative;
    z-index: 1;
}
#wrapper.top .mv .attention{
    position: absolute;
    z-index: 3;
    bottom: 4.77vw;
    right: 4.075vw;
    font-weight: 400;
    font-size: 1rem;
    line-height: 134%;
    letter-spacing: .1rem;
    text-align: right;
    color: #fff;
}
#wrapper.top .mv .line{
    position: absolute;
    z-index: 2;
    bottom: 3.6vw;
    left: 0;
    right: 0;
    aspect-ratio: 6.4573;
    background: url(images/top_line.png) center center / 100% auto no-repeat;
    mix-blend-mode: multiply;
}
#wrapper.top .news{
    margin-top: 10.4rem;
}
#wrapper.top .news_wrap{
    width: 90%;
    max-width: 83.2rem;
    margin: 4.2rem auto 0;
    background: #fff;
    border-radius: .8rem;
    padding: 7.7rem 8rem;
    box-shadow: 24px 24px 24px 0px rgba(3, 147, 240, 0.2);
}
#wrapper.top .year{
    margin: 0 0 4.8rem;
}
#wrapper.top .year .flex{
    gap: 1.6rem;
}
#wrapper.top .year li{
    width: 10rem;
    background: #fff;
    border: 1px solid #D6D6D6;
    padding: .8rem;
    font-weight: 700;
    font-size: 1.6rem;
    line-height: 134%;
    letter-spacing: .2rem;
    text-align: center;
    color: #D6D6D6;
    border-radius: .4rem;
    cursor: pointer;
    transition: all .2s ease-out;
}
#wrapper.top .year li.active{
    cursor: default;
    pointer-events: none;
    color: #fff;
    background: #0393E7;
}
#wrapper.top .content .news_table{
    display: none;
}
#wrapper.top .content .news_table.active{
    display: block;
}
#wrapper.top .content dl + dl dt,
#wrapper.top .content dl + dl dd{
    padding-top: 1.6rem;
}
#wrapper.top .content dt{
    width: 11rem;
    font-size: 16px;
    letter-spacing: .15rem;
    font-weight: 700;
    line-height; 2rem;
}
#wrapper.top .content dd{
    width: calc( 100% - 11rem);
    font-size: 14px;
    font-weight: 400;
    line-height; 2rem;
}
#wrapper.top .content dd a.pdf{
    display: inline-block;
    margin: 0 0 0 .75rem;
    width: 2rem;
    height: 2rem;
    background: url(images/icon_pdf.svg) center / contain no-repeat;
    vertical-align: bottom;
}

#wrapper.contact .contact_wrap{
    margin: 17.2rem 0 0;
    padding: 0 5%;
}
#wrapper.contact .contact_wrap .txt{
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 190%;
    letter-spacing: .2rem;
    text-align: center;
    margin: 0;
}
#wrapper.contact .contact_wrap .num{
    font-weight: 700;
    font-size: 4.8rem;
    line-height: 190%;
    letter-spacing: .1rem;
    text-align: center;
}
#wrapper.contact .contact_wrap .num span{
    display: inline-block;
    width: 4rem;
    height: 4rem;
    margin: 0 3rem 0 0;
    vertical-align: -.25rem;
    background: url(images/icon_tel.svg) center / contain no-repeat;
}

#wrapper.plan .overview-section,
#wrapper.plan .data-table-section {
    margin: 80px auto;
    max-width: 92rem;
    width: 90%;
}
#wrapper.plan .overview-section{
    margin: 128px auto 60px;
}
#wrapper.plan .overview-title {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0..1rem;
    color: #0393E7;
    margin-bottom: 24px;
}

#wrapper.plan .overview-text {
    font-size: 16px;
    line-height: 1.9;
    letter-spacing: 0.1rem;
    color: #131313;
}
#wrapper.plan .overview-text p {
    margin-bottom: 10px;
}
#wrapper.plan .overview-text p span{
    color: #0393E7;
    font-weight: 700;
}
#wrapper.outline .timeline-header,
#wrapper.plan .table-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 23px;
}

#wrapper.outline .timeline-icon,
#wrapper.plan .table-icon {
    width: 20px;
    height: 20px;
    background: #0393E7;
    border-radius: 4px;
}
#wrapper.outline .timeline-title,
#wrapper.plan .table-title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.11em;
    color: #131313;
}

#wrapper.plan .table-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 20px;
}

#wrapper.plan .data-table {
    width: 100%;
    border-collapse: collapse;
}

#wrapper.plan .data-table th,
#wrapper.plan .data-table td {
    border-bottom: 1px solid white;
    padding: 12px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

#wrapper.plan .data-table th {
    background: #fff;
    color: #323232;
    font-size: 12px;
    letter-spacing: 0.17em;
    position: sticky;
    top: 0;
    z-index: 10;
}

#wrapper.plan .data-table td.phase2 {
    background: #1DC669;
    color: white;
}

#wrapper.plan .data-table td.phase1 {
    background: #0393E7;
    color: white;
}

#wrapper.plan .data-table td.multi-line {
    line-height: 1.3;
}

/* カードレイアウト（モバイル用） */
#wrapper.plan .table-card-layout {
    display: none;
}

#wrapper.plan .table-card {
    background: white;
    border-radius: 8px;
    margin-bottom: 16px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

#wrapper.plan .table-card-header {
    padding: 12px 16px;
    font-weight: 700;
    font-size: 14px;
    color: white;
}

#wrapper.plan .table-card-header.phase1 {
    background: #0393E7;
}

#wrapper.plan .table-card-header.phase2 {
    background: #1DC669;
}

#wrapper.plan .table-card-body {
    padding: 16px;
}

#wrapper.plan .table-card-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

#wrapper.plan .table-card-row:last-child {
    border-bottom: none;
}

#wrapper.plan .table-card-label {
    font-weight: 700;
    color: #666;
    font-size: 12px;
    flex: 1;
}

#wrapper.plan .table-card-value {
    font-weight: 700;
    color: #333;
    font-size: 12px;
    flex: 1;
    text-align: right;
}

#wrapper.plan .table-notes {
    font-size: 10px;
    line-height: 1.9;
    color: #131313;
    margin-top: 20px;
}



#wrapper.outline .content-area{
    width: 90%;
    max-width: 94.4rem;
    margin: 12.8rem auto 0;
}
#wrapper.outline .content-row.flex{
    flex-wrap: wrap;
    gap: 4rem;
}
#wrapper.outline .content-row.flex .content-left{
    width: calc( 100% - 39.6rem);
}
#wrapper.outline .content-row.flex .content-right{
    width: 35.6rem;
}
#wrapper.outline .content-section + .content-section{
    margin: 4rem 0 0;
}
#wrapper.outline .content-section .section-heading{
    font-weight: 700;
    font-size: 2rem;
    line-height: 100%;
    letter-spacing: .2rem;
    text-decoration: underline;
    text-decoration-style: solid;
    text-decoration-offset: 0%;
    text-decoration-thickness: 0%;
    text-decoration-skip-ink: auto;
    color: #0393E7;
    margin: 0 0 1.6rem;
}
#wrapper.outline .content-right .notice{
    font-size: 1rem;
    line-height: 190%;
    margin: 1.8rem 0 0;
}
#wrapper.outline .content-section .section-text{
    font-size: 1.5rem;
    line-height: 190%;
    letter-spacing: .2rem;
}
#wrapper.outline .timeline-section{
    width: 90%;
    max-width: 94.4rem;
    margin: 14rem auto 17rem;
    border-radius: 8px;
    background: #fff;
    padding: 7rem 6.5rem 4.4rem;
}
#wrapper.outline .timeline-item{
    display: flex;
    gap: 0;
}
#wrapper.outline .timeline-item > *{
    padding: 3.4rem 0;
}
#wrapper.outline .timeline .timeline-date{
    border-top: 1px solid #0393E7;
    text-align: center;
    font-weight: 700;
    font-size: 1.4rem;
    line-height: 160%;
    letter-spacing: 0px;
    width: 18rem;
    color: #0393E7;
}
#wrapper.outline .timeline .timeline-content{
    border-top: 1px solid #E5E2E2;
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 160%;
    letter-spacing: .1rem;
    width: calc( 100% - 18rem);
    padding: 3.2rem 2.4rem;
}
#wrapper.outline .timeline .timeline-content span{
    font-weight: 700;
    color: #0393E7;
}
#wrapper.outline .vision-section{
    border-top: 2px solid rgba(3,147,231,0.2);
    position: relative;
    padding: 10rem 0 0;
}
#wrapper.outline .vision-section:before{
    content: "";
    display: block;
    background:rgba(3,147,231,0.2);
    width: 2px;
    position: absolute;
    top: 0;
    left: 17.29vw;
    bottom: 0;
}
#wrapper.outline .vision-main-title{
    max-width: 55rem;
    width: 90%;
    margin: 0 auto 5.6rem;
    font-weight: 700;
    font-size: 2.8rem;
    line-height: 155%;
    letter-spacing: .3rem;
    text-align: center;
    position:relative;
    padding: 1rem 0;
}
#wrapper.outline .vision-main-title .vision-bracket{
    position: absolute;
    top: 0;
    left: 0;
}
#wrapper.outline .vision-main-title .vision-bracket.right{
    left: unset;
    right: 0;
}
#wrapper.outline .vision-badge{
    position: relative;
}
#wrapper.outline .vision-badge:nth-of-type(3){
    margin-top: 5rem;
}
#wrapper.outline .vision-badge h4{
    position: relative;
    background: #0393E7;
    width: 32.8rem;
    height: 3.5rem;
    border-radius: 1.75rem;
    font-weight: 700;
    font-size: 1.4rem;
    line-height: 3.5rem;
    letter-spacing: .2rem;
    text-align: center;
    color: #fff;
    margin: 0 auto;
    z#wrapper.outline .vision-title-index: 1;
}
#wrapper.outline .vision-badge:before{
    content: "";
    display: block;
    background:rgba(3,147,231,0.2);
    height: 2px;
    position: absolute;
    top: 1.75rem;
    left: 17.29vw;
    right: 50%;
    z-index: 0;
}
#wrapper.outline .vision-card-wrap{
    width: 85%;
    max-width: 72.7rem;
    margin: -1.75rem auto 0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 24px 24px 24px 0px #0393F033;
    padding: 3.95rem 3rem 2.2rem;
}
#wrapper.outline .vision-card-wrap:nth-of-type(4){
}
#wrapper.outline .vision-title{
    width: 100%;
    position: relative;
    margin: 0 auto 3rem;
    font-weight: 700;
    font-size: 2.2rem;
    line-height: 155%;
    letter-spacing: .22rem;
    text-align: center;
}
#wrapper.outline .vision-subtitle{
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 155%;
    letter-spacing: 0.07rem;
    text-align: center;
}
#wrapper.outline .future .vision-title{
    max-width: 48.2rem;
}
#wrapper.outline .goal .vision-title{
    max-width: 52.4rem;
}
#wrapper.outline .future .vision-title span{
    color: #0393E7;
}
#wrapper.outline .vision-title .after,
#wrapper.outline .vision-title .before{
    position: absolute;
    left: 0;
    top: 0;
}
#wrapper.outline .vision-title .after{
    left: unset;
    right: 0;
    transform: rotate(180deg);
}
#wrapper.outline .vision-card-wrap .notice{
    font-weight: 400;
    font-size: 1rem;
    line-height: 190%;
    letter-spacing: 0px;
}
#wrapper.outline .vision-card-wrap.future .notice{
    margin: 1.3rem 0 0;
}
#wrapper.outline .goals-section{
    position: relative;
    z-index: 5;
    margin: 1.3rem 0 0;
}
#wrapper.outline .goals-section .flex{
    gap: 2.4rem;
    flex-wrap: wrap;
}
#wrapper.outline .goals-section .flex > *{
    width: calc( (100% - 4.8rem) / 3);
}
#wrapper.outline .goals-section .flex > p.notice{
    width: 100%;
}
#wrapper.outline .goals-section .goal-category{
    font-weight: 700;
    font-size: 1.8rem;
    line-height: 145%;
    letter-spacing: .18rem;
}
#wrapper.outline .goals-section .goal-category span{
    font-size: 311%;
    line-height: 155%;
    display: inline-block;
    margin: 0 1.6rem 0 0;
    vertical-align: -.2rem;
}
#wrapper.outline .goal-bg{
    width: 100%;
    height: calc( 100% - 8.6rem);
    border-radius: .4rem;
    color: #fff;
    background: #ccc;
    padding: 2.2rem 1.4rem;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 179%;
    letter-spacing: .12rem;
}
#wrapper.outline .goal-bg.defense{
    background: #5573E1;
}
#wrapper.outline .goal-bg.environment{
    background: #34C3FC;
}
#wrapper.outline .goal-bg.urban{
    background: #61AFF0;
}
#wrapper.outline .goal-title{
    font-weight: 700;
    font-size: 1.6rem;
    line-height: 145%;
    text-align: center;
    margin-bottom: 1.8rem;
}
#wrapper.outline .image-gallery{
    position: relative;
    z-index: 4;
    margin-top: -10rem;
    padding: 14rem 0 8rem;
    background: #fff;
}
#wrapper.outline .image-gallery-wrap{
    max-width: 110rem;
    width: 90%;
    margin: -7rem auto 0;
}
#wrapper.outline .image-gallery-wrap .img{
    padding: 7rem 0 0;
    position: relative;
}
#wrapper.outline .image-gallery-wrap .img + .img{
    margin: 0;
}
#wrapper.outline .image-gallery-wrap .btn-wrap{
    position: absolute;
    top: 7rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 1.3rem;
    justify-content: center;
}
#wrapper.outline .image-gallery-wrap .btn a{
    display: block;
    width: 15.4rem;
    height: 15.4rem;
    border-radius: 50%;
    background: #606060;
    text-align: center;
    font-weight: 700;
    font-size: 1.3rem;
    line-height: 200%;
    letter-spacing: 0.13rem;
    padding: 5.5rem 0;
    color: #fff;
    pointer-events: none;
    transition: opacity 0.2s ease-out;
}
#wrapper.outline .image-gallery-wrap #environment .btn.right a,
#wrapper.outline .image-gallery-wrap #urban .btn.left a{
    opacity: .2;
    pointer-events: auto;
}
#wrapper.outline .image-gallery-wrap #environment .btn.right a:hover,
#wrapper.outline .image-gallery-wrap #urban .btn.left a:hover{
    opacity: 1;
}
#wrapper.outline .image-gallery-wrap .btn a p{
    font-size: 2.4rem;
    letter-spacing: 0.24rem;
}
#wrapper.outline .image-gallery-wrap .notice{
    position: absolute;
    bottom: 0.5rem;
    left: 32%;
    right: 32%;
}
#wrapper.outline .image-gallery .bnr{
    max-width: 43.2rem;
    width: 90%;
    margin: 11.7rem auto 0;
    justify-content: center;
}
#wrapper.outline .project{
    padding: 10.8rem 0 0;
}
#wrapper.outline .project-wrap{
    max-width: 96rem;
    width: 90%;
    margin: 0 auto;
    gap: 2.3rem 4.6rem;
}
#wrapper.outline .project-phases{
    width: calc( 100% - 49.4rem);
}
#wrapper.outline .project-images{
    width: 44.8rem;
}
#wrapper.outline .project .content-section{
    margin: 0 0 3.2rem;
}
#wrapper.outline .phase-title{
    font-weight: 700;
    font-size: 2rem;
    line-height: 100%;
    letter-spacing: .2rem;
    text-decoration: underline;
    text-decoration-style: solid;
    text-decoration-offset: 0%;
    text-decoration-thickness: 0%;
    text-decoration-skip-ink: auto;
    color: #0393E7;
    margin: 0 0 1.6rem;
}
#wrapper.outline .phase-description{
    font-size: 1.5rem;
    line-height: 190%;
    letter-spacing: .2rem;
}
#wrapper.outline .phase-box{
    position:relative;
}
#wrapper.outline .phase-box .phase-header{
    position: relative;
    width: 40rem;
    height: 4.5rem;
    border-radius: 4px;
    padding: 1.2rem;
    background: #E8F7FF;
    z-index: 2;
    font-weight: 700;
    font-size: 1.8rem;
    line-height: 100%;
    letter-spacing: .2rem;
    text-align: center;
    border: 2px solid #0393E7;
    color: #0393E7;
}
#wrapper.outline .phase-box.phase-2 .phase-header{
    color: #1DC669;
    border-color:#1DC669;
    background: #E4FFF0;
}
#wrapper.outline .phase-box .phase-content{
    position: relative;
    z-index: 1;
    border-radius: 4px;
    padding: 3.2rem 2.1rem 2.4rem;
    background: #fff;
    top: -2.25rem;
    font-size: 1.4rem;
    line-height: 180%;
    letter-spacing: .1rem;
}
#wrapper.outline .project-images .notice{
    margin-top: 3.2rem;
}

#wrapper.privacy-policy .privacy-contents{
    max-width: 94.4rem;
    width: 90%;
    margin: 12.8rem auto 0;
    font-size: 1.5rem;
    line-height: 190%;
    letter-spacing: .2rem;
}
#wrapper.privacy-policy .privacy-contents dt{
    margin: 2rem 0 0;
    font-weight: bold;
    font-size: 110%;
}
#wrapper.privacy-policy .privacy-contents .note{
    font-size: 90%;
    border: 1px solid #000;
    padding: 2rem;
    margin: 3rem 0 0;
}


@media screen and (max-width: 1150px){
    #wrapper.outline .vision-section:before{
        left: 6%;
    }
    #wrapper.outline .vision-badge:before{
        left: 6%;
    }
    #menu .flex a,
    #menu .flex a:before{
        width: 20rem;
    }
    #menu .flex a span{
        font-size: 1.4rem;
    }
}
@media screen and (max-width: 750px){
    .pc{
        display: none;
    }
    .sp{
        display: block;
    }
    #wrapper{
        padding-bottom: 20rem;
    }
    header span{
        position: absolute;
        right: unset;
        left: 50%;
        top: 9rem;
        white-space: nowrap;
        transform: translateX(-50%);
        font-size: .9rem;
    }
    footer{
        bottom: 6.4rem;
    }

    #menu{
        position: fixed;
        bottom: 0;
        top: unset;
        left: 0;
        right: 0;
    }
    #menu ul.flex{
        gap: 0;
    }
    #menu ul.flex > li{
        width: 25%;
    }
    #wrapper.top #menu ul.flex > li{
        width: calc(100% / 3);
    }
    #menu ul.flex > li a{
        width: 100%;
        border-radius: 0;
        height: 64px;
        padding: 8px 0;
        background: url(images/icon_link.svg) right 0.8rem bottom 0.8rem / .6rem auto no-repeat ,linear-gradient(90deg, #109EE6 0%, #77E0E4 100%);
    }
    #menu .flex a:before{
        width: 100%;
        border-radius: 0;
        height: 100%;
        top: 0;
        bottom: 0;
    }
    #menu ul.flex > li a span{
        font-size: 11px;
        width: 100%;
    }
    #menu .flex a:before{

    }
    .footer_wrap .line{
        bottom: 5.5rem;
    }
    #wrapper.top .mv .attention{
        font-size: .75rem;
        bottom: 8vw;
        right: 6vw;
    }
    #wrapper.top .news_wrap{
        padding: 3rem 3.5rem;
    }
    #wrapper.top .news_wrap .year .flex{
        gap: 1rem;
    }
    #wrapper.top .year li{
        width: 8rem;
    }
    #wrapper.contact .contact_wrap .txt{
        font-size: 1.4rem;
    }
    #wrapper.contact .contact_wrap .num{
        font-size: 2.8rem;
    }
    #wrapper.contact .contact_wrap .num span{
        width: 3rem;
        height: 3rem;
        margin: 0 2rem 0 0;
    }

    #wrapper.outline .content-row.flex .content-left,
    #wrapper.outline .content-row.flex .content-right{
        width: 100%;
    }
    #wrapper.outline .timeline-section{
        padding: 5rem 2rem 3rem;
    }
    #wrapper.outline .timeline-item{
        flex-wrap: wrap;
    }
    #wrapper.outline .timeline-item > *{
        width: 100% !important;
        padding: 2rem !important;
    }
    #wrapper.outline .timeline-item + .timeline-item{
        margin-top: 2rem;
    }
    #wrapper.outline .vision-section:before{
        left: 3%;
    }
    #wrapper.outline .vision-badge:before{
        left: 3%;
    }
    #wrapper.outline .vision-main-title{
        font-size: 1.7rem;
        max-width: 38rem;
        padding: 1.42rem 0;
    }
    #wrapper.outline .vision-main-title .vision-bracket svg{
        width: 2.2rem;
        height: 7.5rem;
    }
    #wrapper.outline .vision-title{
        font-size: 1.6rem;
        padding: 0 2.2rem;
    }
    #wrapper.outline .vision-title svg{
        width: 2rem;
        height: 1.8rem;
    }
    #wrapper.outline .goals-section .flex > *{
        width: 100%;
    }
    #wrapper.outline .image-gallery-wrap .btn-wrap{
        top: 1rem;
    }
    #wrapper.outline .image-gallery-wrap .btn a{
        width: 11.4rem;
        height: 11.4rem;
        padding: 3.75rem 0;
        font-size: 1.1rem;
    }
    #wrapper.outline .image-gallery-wrap .btn a p{
        font-size: 1.75rem;
    }
    #wrapper.outline .image-gallery-wrap .img{
        padding: 14rem 0 0;
    }
    #wrapper.outline .image-gallery-wrap .notice{
        position: static;
        margin: 1rem 0 0;
    }
    #wrapper.outline .project-phases,
    #wrapper.outline .project-images{
        width: 100%;
    }
    #wrapper.outline .phase-box .phase-header{
        width: 85%;
        font-size: 1.4rem;
        padding: 1.6rem 1.2rem;
    }
}

/* plan テーブルレスポンシブ
@media (max-width: 768px) {
    #wrapper.plan .nav-tabs {
        flex-direction: column;
        align-items: center;
    }

    #wrapper.plan .section-title {
        font-size: 36px;
    }

    #wrapper.plan .content-area {
        padding: 30px 20px;
    }

    #wrapper.plan .table-container {
        display: none;
    }

    #wrapper.plan .table-card-layout {
        display: block;
    }

    #wrapper.plan .table-header {
        margin-bottom: 16px;
    }

    #wrapper.plan .district-markers {
        position: relative;
    }

    #wrapper.plan .district-marker {
        position: relative;
        margin-bottom: 20px;
    }

    #wrapper.plan .marker-popup {
        width: 100%;
        max-width: 280px;
    }

    #wrapper.plan .plan-image {
        height: auto;
        min-height: 400px;
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
}
 */

@media (max-width: 480px) {
    #wrapper.plan .table-card-row {
        flex-direction: column;
        gap: 4px;
    }

    #wrapper.plan .table-card-value {
        text-align: left;
    }

    #wrapper.plan .main-title {
        font-size: 18px;
    }

    #wrapper.plan .tab {
        width: 240px;
        font-size: 15px;
    }
}
