html {
  -webkit-text-size-adjust: 100%;
}
@media (min-width: 769px){


/*見出しサイズ調整*/
.whatsnew .whatsnew-ttl span,
.top_contact .contact-ttl span{
font-size: 3.5625rem;
}
.top_partner .partner-ttl span{
font-size: 3.5625rem;
}
.partner-area h3{
font-size: 1.875rem;
}



/*header*/


.mega_menu__link3 svg{
width:25px;
vertical-align: bottom;
fill: #C30C24;
}

ul.mega-menu_pcnest_list a img{
height:20px;
vertical-align: sub;
margin-left:10px;
}

.mega-menu_h1_p img{
height:38px;
width:auto;
}

.head_mega_matsuri_link a{
color:#C30C24;
font-weight:600;
}

.mega_menu__link3.join{
margin-right:20px;
}

.mega_menu__link3.join a{
background:#C30C24;
color:#fff;
padding:4px 15px 6px;
}

.mega_menu__link3.join a:hover{
background:#121212;
}

.mega_menu__link3.join a span,
.mega_menu__link3.join a:hover span{
color:#fff;
}

.head_mega_matsuri_link a::after {
    border-right: 2px solid #C30C24;
    border-bottom: 1px solid #C30C24;
}

.mega-menu .mega-menu__list--condensed {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 2fr;
}


/*footer*/

.footer_conbox1{
padding-top:50px;
}

ul.footer_menulist2{
padding-top:50px;
}

.footer_expo{
max-width:1200px;
margin:90px auto;
}

.footer_expo img{
max-width:80%;
display: block;
height:auto;
margin:auto;
}

#page-top{
display: none;
}

.text span.em{
        color: #121212;
        font-weight: 700;
}

/*トップページ*/

p.top_bnr_expo{
display:none;
transition-duration: 0.5s;
bottom:4%;
left:2%;
max-width:226px;
width:20%;
position: fixed;
z-index: 9999;
}

p.top_bnr_expo.show{
transition-duration: 0.5s;
display:block;
}

p.top_bnr_expo img{
max-width:100%;
height:auto;
}

.top .top_head{
display: flex;
margin-bottom:80px;
align-items: stretch;
}

.top .top_head .top_movie{
width:55%;
overflow: hidden;
}

.top .top_head .top_movie video{
width: 100%;
height: 100%;
object-fit: cover;
object-position: left top;
display: block;
}

.top .top_head > .inner{
width:45%;
margin-left:0;
overflow: hidden;
float:none;
padding-right:50px;
margin-bottom: 0;
box-sizing:border-box;
height:initial;
}


.top .top_head h1 {
padding-top: 40px;
padding-left: 50px;
font-size: 3.75rem;
}

.top .top_overview {
padding: 30px 0 0;
padding-left: 50px;
}


.top_contact {
margin-bottom:80px;
}

.top_contact .inner p.p_contact{
margin-top:50px;
}

.arrow_w.top_news_a_box::after{
top:50%;
}

  .arrow_w.top_news_a_box.arrow_w:hover::after {
  }


/*下層共通*/

.sec-title{
padding:90px 0;
}

.sec-title h2{
font-size: 1.75rem;
}

.sec-title .copy{
margin-top:50px;
}

.page-links{
margin-top:0;
}

.page-links .cmn-anchor a{
width:265px;
height:45px;
}

.page-links .sec_inner{
width:560px;
}

.breadcrumbs{
padding:0 20px 20px;
}

.under-illust_wrap{
margin-bottom:30px;
}

/*イベントスケジュール*/

.year-heading h3{
background:#EBEDEA;
padding:25px;
font-size:28px;
text-align: center;
margin:50px 0;
}

.sec-title h2 span.en{
font-size:3.125rem;
font-family: 'Noto Sans JP', Noto Sans JP, sans-serif;
}

.event_list{
margin-bottom:50px;
}

.event-item{
max-width:840px;
margin:0 auto;
border-bottom:solid 1px #AAAAAA;
padding:20px 0;
}

.event-item .meta{
display: flex;
}

.event-item time{
margin-right:20px;
font-size:13px;
color:#808080;
width:150px;
}

.event-item .title a{
text-decoration: underline;
}

.event-item .title{
    display: block; 
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    width:690px;
}

.event_title ul{
display: flex;
justify-content: center;
margin-bottom:90px;
}

.event_title ul li{
width:395px;
border:solid 3px #C30C25;
padding:30px 20px;
margin:0 25px;
box-sizing:border-box;
}

.event_title ul li h3{
font-size:24px;
margin-bottom:10px;
text-align: center;;
}

.event_title ul li h3 span{
font-size:14px;
font-weight:400;
display: block;
}

p.btn_matsuri{
max-width:840px;
margin:30px auto;
text-align: right;
}

/*about*/

.about_matsuri_section{
padding-top:90px;
}

.system{
padding-top:90px;
}

.mission_project_table{
margin:30px 0 90px;
width: 100%;
}

.mission_project_table table{
width: 100%;
border-collapse: collapse;
}

.mission_project_table thead {
    background-color: #f7f8f5;
}

.mission_project_table th,
.mission_project_table td {
    border-bottom: 1px solid #ddd;
    padding: 10px;
    font-size: 1rem;
    text-align: left;
    letter-spacing: 0;
}

.mission_project_table td {
    padding: 20px 10px;
    position: relative;
}

.mission_project_table td.table_content{
text-align: left;
}


/*sandoパートナー*/

.sando{
        margin-top: 56px;
        line-height: 1.7;
        text-align: left;
        padding: 0 70px;
        font-size: 1.0625rem;
    }

.sando .sec_inner.narrow{
width:720px;
margin:auto;
}

.sando .sec_inner.narrow h3{
font-size: 1.75rem;
text-align: center;
margin-bottom:30px;
}

.sando .sec_inner.narrow h3.colored{
color:#C30C24;
}

.sando .sec_inner.narrow h3.colored span{
display: block;
font-size:14px;
}

.sando .sec_inner.narrow p.text{
font-weight: 500;
font-size: 1.0625rem;
margin-bottom:10px;
}

.sando .sec_inner.narrow p.text img.checkbox{
margin-right:10px;
vertical-align: sub;
}

.sando .sec_inner.narrow p.text span.subtext{
font-size:14px;
font-weight:400;
text-align: center;
display: block;
}

.sando.pt90{
padding-top:90px;
}

.sando .sec_inner.narrow p.text span.bold{
font-weight:bold;
}

.sando .sec_inner.narrow p.text span.em{
color:#C30C24;
font-weight:600;
}

.sando.pt90 .sec_inner.narrow p.text{
text-align: center;
}

.sando_cantact_a_box {
        max-width: 330px;
        width: 90%;
        background-color: #C30C24;
        font-size:16px;
        font-size: 1rem;
        letter-spacing: 0.06em;
        line-height: 2.1;
        margin: 70px auto 0;
        box-sizing: border-box;
        position: relative;
}

.sando_cantact_a_box a {
        color: #fff;
        display: block;
        text-align: center;
        width: 100%;
        height: 65px;
        padding-top: 16px;
        padding-right:30px;
}
    
.sando_cantact_a_box::after{
        content: '';
        display: block;
        position: absolute;
        top: calc(50% - 3px);
        left: calc(100% - 90px);
        width: 40px;
        height: 7px;
        border: none;
        border-right: 2px solid #fff;
        border-bottom: 1px solid #fff;
        transform: skew(45deg);
        background-image:none;
}

  .sando_cantact_a_box:hover::after {
    animation: arrow 0.4s ease;
  }

  @keyframes arrow {
    0% {
      width: 5px;
    }

    100% {
      width: 40px;
    }
  }
  
.sando_bottom{
display: block;
margin-top:90px;
}

/*藻類追加*/

.compare {
    margin-top: 5rem;
    pointer-events: auto;
}
.compare-scroll-container {
    height: 300vh;
}
.compare-sticky {
    height: calc(100vh - 52px);
    top: 5%;
    width: 100%;
    overflow: hidden;
    position: sticky;
}
.compare-lockup-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: grid;
}
.compare-lockup {
    grid-area: 1 / 1 / 2 / 2;
    align-items: center;
    height: 100%;
    display: grid;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}
canvas {
    width: 100%;
}

/*取組み領域*/

.categories_flex{
display: flex;
margin-bottom: 70px;
flex-wrap: wrap;
gap: 30px;
}

.categories_flex_image {
max-width: 240px;
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
}

.categories_flex_image img {
width: 100%;
object-fit: cover;
}

.categories_flex_text {
    width: calc(100% - 270px);
}


.categories_flex h3{
margin-bottom:10px;
}

.categories_flex .viewmore{
color:#C30C25;
position: relative;
text-align: right;
padding-right:50px;
font-size:14px;
margin-top:20px;
}

.categories_flex .viewmore::after{
        content: '';
        display: block;
        position: absolute;
        top: calc(50% - 4px);
        left: calc(100% - 46px);
        width: 30px;
        height: 6px;
        border: none;
        border-right: 2px solid #C30C25;
        border-bottom: 1px solid #C30C25;
        transform: skew(45deg);
        background-image:none;
}

.categories_flex .viewmore:hover::after {
    animation: arrow2 0.4s ease;
  }
  
  @keyframes arrow2 {
    0% {
      width: 5px;
    }

    100% {
      width: 30px;
    }  
}


.roadmap p.copy{
        font-size: 1.125rem;
        line-height: 1.7;
        text-align: left!important;
        margin-bottom:30px;
}

  .page-links {
    position: relative;
    overflow: hidden;
  }

  .page-links .page-links_bg {
    position: relative;
  }

  .page-links .page-links_bg:before {
    content: "";
    display: block;
    background-color: #ebedea;
    width: 100vw;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0
  }

  .page-links .sec_inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    width: 650px;
    position: relative;
    padding: 90px 0
  }


  .page-links .cmn-anchor a {
    border-color: grey;
    color: #191919;
    background-color: #fff;
    width: 300px;
  }

  .page-links .cmn-anchor a:after,
  .page-links .cmn-anchor a:before {
    background-color: grey
  }

  .page-links .cmn-anchor:nth-child(n+3) {
    margin-top: 45px
  }


/*連携する機関（藻類）*/

.relation{
padding:0;
}

.relation .nedo figure img{
width:100%;
}

#algae04.sec-title{
padding:0;
}

.sec_inner.sec_project{
width:1080px;
margin-bottom:60px
}

.sec_project ul{
display: flex;
margin-bottom:30px;
}

.sec_project ul li{
width: calc(100% / 3);
}

.sec_project ul li span.img_scale{
aspect-ratio: 3 / 2;
display: block;
margin-bottom:20px;
overflow: hidden;
}

.sec_project ul li span.project_title{
padding:0 15px;
display: block;
}

.sec_project ul li img{
display: block;
width:100%;
object-fit: cover;
}

.sec_project_a_box {
        max-width: 330px;
        width: 90%;
        background-color: #000000;
        font-size: 14px;
        letter-spacing: 0.06em;
        line-height: 2.1;
        margin: 50px 0 0 auto;
        box-sizing: border-box;
        position: relative;
}

.sec_project_a_box a {
        color: #fff;
        display: block;
        text-align: center;
        width: 100%;
        height: 60px;
        padding-top: 16px;
        padding-right:20px;
    }
    
.sec_project_a_box::after{
        content: '';
        display: block;
        position: absolute;
        top: calc(50% - 4px);
        left: calc(100% - 80px);
        width: 30px;
        height: 6px;
        border: none;
        border-right: 2px solid #ffffff;
        border-bottom: 1px solid #ffffff;
        transform: skew(45deg);
        background-image:none;
}

  .sec_project_a_box:hover::after {
    animation: arrow2 0.4s ease;
  }

/*sandoパートナー*/

.contact-form {
    width: 100%;
    margin-left: 0;
    margin-bottom: 80px;
    position: relative;
    height: 100%;
}

.contact-form .sec_inner .contact-body{
width:100%;
}

.contact-form .sec_inner{
padding-left:0;
max-width:940px;
margin:auto;
}

/*追加修正*/

.top_news_a_box a,
.top_cantact_a_box a {
padding-top: 13px;
}

.about .sec_inner{
padding:90px 70px;
}

.partner-area{
padding:90px 0;
}

.categories_flex_text p.text{
line-height: 1.7;
}
.content-space {
    margin-top: 40px;
    height: 60px;
    display: block;
    width: 2px;
    margin-left: auto;
    margin-right: auto;
    background-color: #000;
}

.sec-title#algae00{
padding-bottom:10px;
}
.photosynthesis{
margin-top:90px;
}

.reason {
padding: 90px 0;
}



}/*以下スマホ■■■■■■■■■■■■■■■■■■■■■■*/

@media only screen and (max-width: 768px) {

.top .top_head .top_movie video{
width:100%;
}

.sec-title h2 span.en{
        font-family: 'Noto Sans JP', Noto Sans JP, sans-serif;
}

.header{
position: relative;
}

li.menu_listdetail2_list .menu-drawer__menu-item img{
height:20px;
vertical-align: sub;
margin-left:10px;
}

.top .top_head > .inner{
padding-top:10%;
}

.top_partner .inner,
.whatsnew .inner,
.top .top_head,
.top_contact .inner{
width:92%;
}

.mega-menu_h1_p{
display: initial;
position: absolute;
left:initial;
right:2%;
margin:0;
grid-area:initial;
max-width:32vw;
}

ul.footer_menu_listblock{
padding-top:20px;
}

  .page-links {
    position: relative;
    overflow: hidden;
    margin-top: 40px;
  }

  .page-links .page-links_bg {
    position: relative;
  }

  .page-links .page-links_bg:before {
    content: "";
    display: block;
    background-color: #ebedea;
    width: 100vw;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0
  }

  .page-links .sec_inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    width: 650px;
    position: relative;
    padding: 90px 0;
    width: 92vw;
    padding: 13.333333333333334vw 0 16vw;
  }

  .page-links .cmn-anchor a {
    border-color: grey;
    color: #191919;
    background-color: #fff;
    width: 300px;
    height: 65px;
      width: 43.46666666666666vw;
      min-height: 17.333333333333336vw;
      height: auto;
      border-radius: 1.0666666666666667vw;
      padding: 1.3333333333333335vw;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
  }

  .page-links .cmn-anchor a:after,
  .page-links .cmn-anchor a:before {
    background-color: grey
  }

  .page-links .cmn-anchor:nth-child(n+3) {
    margin-top: 45px
  }

.text span.em {
    color: #121212;
    font-weight: 700;
}
.about_matsuri_section {
    padding-top: 90px;
}

.about .sec_inner{
padding: 16vw 8vw;
}

.event_title ul {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-bottom: 90px;
}
.event_title ul li {
width: 84vw;
border: solid 3px #C30C25;
padding: 30px 20px;
margin: auto;
box-sizing: border-box;
}
.event_title ul li h3 {
    font-size: 24px;
    margin-bottom: 10px;
    text-align: center;
}
.event_title ul li h3 span {
    font-size: 14px;
    font-weight: 400;
    display: block;
}
.year-heading h3 {
    background: #EBEDEA;
    padding: 25px;
    font-size: 28px;
    text-align: center;
    margin: 50px 0;
}
.event-item {
    width: 92vw;
    margin: auto;
    border-bottom: solid 1px #AAAAAA;
    padding: 20px 0;
}
.event-item time {
    display: block;
    font-size: 13px;
    color: #808080;
    padding-bottom:5px;
}

.event-item .title{
    display: block; 
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
}

    .event-item .title a {
        text-decoration: underline;
    }


.sando .sec_inner.narrow h3 {
    font-size: 1.5rem;
    text-align: center;
    margin-bottom: 30px;
}
    .sando .sec_inner.narrow h3.colored span {
        display: block;
        font-size: 14px;
    }
.sando .sec_inner.narrow p.text img.checkbox {
    margin-right: 10px;
    vertical-align: sub;
}
.sando {
    line-height: 1.7;
    text-align: left;
    font-size: 1.0625rem;
    margin-bottom:60px;
}
.sando_cantact_a_box {
    max-width: 453px;
    width: 90%;
    background-color: #C30C24;
    font-size: 1.125rem;
    letter-spacing: 0.06em;
    line-height: 2.1;
    margin: 60px auto ;
    box-sizing: border-box;
    position: relative;
}

.sando_cantact_a_box a {
    color: #fff;
    display: block;
    text-align: center;
    width: 100%;
    height: 65px;
    padding-top: 12px;
}

.sando_cantact_a_box::after{
        content: '';
        display: block;
        position: absolute;
        top: calc(50% - 5px);
        left: calc(100% - 80px);
        width: 30px;
        height: 7px;
        border: none;
        border-right: 2px solid #fff;
        border-bottom: 1px solid #fff;
        transform: skew(45deg);
        background-image:none;
}

  .sando_cantact_a_box:hover::after {
    animation: arrow 0.4s ease;
  }

  @keyframes arrow {
    0% {
      width: 5px;
    }

    100% {
      width: 40px;
    }
  }

.sando .sec_inner.narrow h3.colored {
    color: #C30C24;
}
.sando .sec_inner.narrow p.text {
        font-weight: 500;
        font-size: 1.0625rem;
        margin-bottom: 10px;
    }
    
    .sando .sec_inner.narrow p.text span.bold{
font-weight:bold;
}

    
    .sando .sec_inner.narrow p.text span.em {
        color: #C30C24;
        font-weight: 600;
    }
    .sando .sec_inner.narrow p.text span.subtext {
        font-size: 14px;
        font-weight: 400;
        text-align: center;
        display: block;
    }

.categories_flex_image {
    max-width: 100%;
}
.categories_flex_text {
    width: 100%;
}

.categories_flex{
margin-bottom: 50px;
}

.categories_flex_image {
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
}

.categories_flex_image img {
width: 100%;
object-fit: cover;
}

.categories_flex_text {
}


.categories_flex h3{
margin:10px 0;
}

.categories_flex .viewmore{
color:#C30C25;
position: relative;
text-align: right;
padding-right:50px;
font-size:14px;
margin-top:20px;
}

.categories_flex .viewmore::after{
        content: '';
        display: block;
        position: absolute;
        top: calc(50% - 4px);
        left: calc(100% - 46px);
        width: 30px;
        height: 6px;
        border: none;
        border-right: 2px solid #C30C25;
        border-bottom: 1px solid #C30C25;
        transform: skew(45deg);
        background-image:none;
}

.categories_flex .viewmore:hover::after {
    animation: arrow2 0.4s ease;
  }
  
  @keyframes arrow2 {
    0% {
      width: 5px;
    }

    100% {
      width: 30px;
    }  
}




.sec_inner.sec_project {
    width: 94vw;
}
.sec_project ul li {
    width: 100%;
    margin: 0 auto 30px;
}

#algae04.sec-title{
padding:0;
}

.sec_project ul li span.img_scale{
aspect-ratio: 3 / 2;
display: block;
margin-bottom:20px;
overflow: hidden;
}

.sec_project ul li span.project_title{
padding:0 15px;
display: block;
}

.sec_project ul li img{
display: block;
width:100%;
object-fit: cover;
}

.sec_project_a_box {
        max-width: 330px;
        width: 90%;
        background-color: #000000;
        font-size: 14px;
        letter-spacing: 0.06em;
        line-height: 2.1;
        margin: 50px 0 0 auto;
        box-sizing: border-box;
        position: relative;
}

.sec_project_a_box a {
        color: #fff;
        display: block;
        text-align: center;
        width: 100%;
        height: 60px;
        padding-top: 16px;
        padding-right:20px;
    }
    
.sec_project_a_box::after{
        content: '';
        display: block;
        position: absolute;
        top: calc(50% - 4px);
        left: calc(100% - 80px);
        width: 30px;
        height: 6px;
        border: none;
        border-right: 2px solid #ffffff;
        border-bottom: 1px solid #ffffff;
        transform: skew(45deg);
        background-image:none;
}

  .sec_project_a_box:hover::after {
    animation: arrow2 0.4s ease;
  }

.message{
margin-top:60px;
}

.mission_project_table{
margin:30px 0 60px;
width: 100%;
overflow-x: scroll;
}

.mission_project_table table{
width: 800px;
margin-right: 15px;
border-collapse: collapse;
}

.mission_project_table thead {
    background-color: #f7f8f5;
}

.mission_project_table th,
.mission_project_table td {
    border-bottom: 1px solid #ddd;
    padding: 10px;
    font-size: 4vw;
    text-align: left;
    letter-spacing: 0;
}

.mission_project_table td {
    padding: 20px 10px;
    position: relative;
}

.mission_project_table td.table_content{
text-align: left;
}


.btn_matsuri{
margin:50px auto 0;
max-width:70%;
text-align: right;
}

p.top_bnr_expo{
display:none;
transition-duration: 0.5s;
bottom:4%;
left:2%;
max-width:220px;
width:30%;
position: fixed;
z-index: 9999;
}

p.top_bnr_expo.show{
transition-duration: 0.5s;
display:block;
}

p.top_bnr_expo img{
max-width:100%;
height:auto;
}

.reason{
padding:60px 0 0;
}

.top_contact .inner p.p_contact{
margin-top:12vw;
}

.page-links {
margin-top:0;
}

.roadmap p.copy{
font-size: 4vw;
margin-bottom:30px;
}

/*追加修正*/

.top_partner .inner,
.whatsnew .inner{
padding:10vw 9.6vw;
}

.top_contact .inner{
padding:10vw 9.6vw 19.2vw;
}

.sec-title{
padding:60px 0;
}

.about .sec_inner{
padding:50px 8vw;
}

.about_matsuri_section{
padding-top:60px;
}

.mission,
.system{
margin-top:60px;
}

.sec-title .copy{
margin-top:30px;
}

.tree-area{
margin-top:60px;
margin-bottom: 0;
}

.relation{
padding:0;
}

.relation .sec-title{
padding:0 0 20px;
}



.contact-form .sec_inner .contact-body .contact-body__btn{
width:90%;
}

.breadcrumbs{
padding-top:100px;
}

.breadcrumbs.toppage{
padding-top:150px;
}

.footer_expo{
width:94%;
margin:auto;
padding: 0 0 20px;
}

.compare {
    margin-top: 5rem;
    pointer-events: auto;
}
.compare-scroll-container {
    height: 300vh;
}
.compare-sticky {
    height: calc(100vh - 52px);
    top: 5%;
    width: 100%;
    overflow: hidden;
    position: sticky;
}
.compare-lockup-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: grid;
}
.compare-lockup {
    grid-area: 1 / 1 / 2 / 2;
    align-items: center;
    height: 100%;
    display: grid;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}
canvas {
    width: 100%;
}



}

@media screen and (max-width: 500px) {
    .compare-sticky {
        height: calc(100vh - 140px);
        top: 52px;
    }
}


/*以下共通■■■■■■■■■■■■■■■■■■■■■■*/

img.top-partner-logo{
width:100%;
height:auto;
}

ul.footer_menulist_ul li a img{
        height: 20px;
        vertical-align: sub;
        margin-left: 5px;
}