@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Rubik:ital,wght@0,300..900;1,300..900&display=swap');

*{
    margin: 0px;
    padding: 0px;
    line-height: 2.0em;
    font-family: "Noto Sans JP", serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    font-size: 13pt;
    background-color:transparent;
    text-align: left;
    color: #333333;
}
a{
    text-decoration: none;
}
a:hover{
    text-decoration: underline;
}

p{
    color: #331D00;
    font-size: 14pt;
    line-height: 2.5em;
}

body{
    background-color: #FFFBEF;
    text-align: center;
}
div#container{
    width:100%;
    min-width: 1200px;
    max-width: 1980px;
    margin: 0px auto 0px auto;
}

body#index div#top{
    width: 98%;
    max-width: 1880px;
    margin: 0px auto 0px auto;
    height: 64px;
}
body#index div#top h1{
    float: left;
    line-height: 64px;
    width: 400px;
    padding: 0px 0px 0px 20px;
    color: #547081;
}
body#index div#top div#right_menu{
    float: right;
    width: 600px;
    height: 64px;
}
body#index div#top div#right_menu a{
    float: right;
    display: block;
    width: 110px;
    line-height: 64px;
    height: 64px;
    font-size: 11pt;
    text-align: center;
}
body#index div#top div#right_menu div#gentei{
    float: right;
    height: 44px;
    width: 180px;
    padding: 10px 0px 10px 0px;
}
body#index div#top div#right_menu div#gentei a{
    width: 180px;
    color: white;
    background-color: #ED4949;
    border-radius: 22px;
    line-height: 44px;
    height: 44px;
}

div#container header{
    width: 98%;
    max-width: 1880px;
    margin: 0px auto 0px auto;
    padding: 10px 0px 10px 0px;
}
a#top_logo{
    float: left;
    width: 25%;
    max-width: 512px;
    height: auto;
    display: block;
    aspect-ratio: 512 / 75;
}
a#top_logo img{
    width: 100%;
    max-width: 512px;
    height:auto;
    display: block;
    aspect-ratio: 512 / 75;    
}

body#index div#container header{
    background-color: #FFFBEF;
}
@keyframes header_in {
    0% { opacity: 0; }
  100% { opacity: 1.0;  }
}
@keyframes header_out {
    0% { opacity: 1.0; }
  100% { opacity: 0.0; display  :none  }
}

div#container header ul#top_menu {
    margin-top: 30px;
    float: right;
    list-style-type: none;
    max-width: 1180px;
    width: 75%;
}
div#container header ul#top_menu li{
    float: left;
    padding: 0px 10px 0px 0px;
    line-height: 44px;
    height: 44px;
}
div#container header ul#top_menu li:last-child{
    padding: 0px 0px 0px 0px;
}

div#container header ul#top_menu li.w{
    padding: 0px 20px 0px 10px;
}
div#container header ul#top_menu li a{
    font-size: 11pt;
    line-height: 44px;
}
@media screen and (max-width: 1700px) {
    div#container header ul#top_menu{
        zoom: 0.9;
    }
}
@media screen and (max-width: 1500px) {
    div#container header ul#top_menu{
        zoom: 0.8;
    }
}
@media screen and (max-width: 1300px) {
    div#container header ul#top_menu{
        zoom: 0.7;
    }
}

div#container header ul#top_menu li a#link1,
div#container header ul#top_menu li a#link2,
div#container header ul#top_menu li a#link3,
div#container header ul#top_menu li a#gentei{
    display: block;
    border-radius: 22px;
    line-height: 44px;
    height: 44px;
    text-align: center;
}

div#container header ul#top_menu li a#link1{
    width: 220px;
    color:#331D00;
    background-color: #E5D0AC;
}
div#container header ul#top_menu li a#link2{
    width: 240px;
    color:#FFFBEF;
    background-color: #A31D1D;
}
div#container header ul#top_menu li a#link3{
    width: 220px;
    color:#FFFBEF;
    background-color: #6C2323;
}
div#container header ul#top_menu li a#gentei{
    width: 160px;
    color: white;
    background-color: #ED4949;
}
div#container div#page_top{
    width: 98%;
    max-width: 1880px;
    margin: 0px auto 0px auto;
    padding: 10px 0px 10px 0px;
}
div#container div#page_top img{
    width:100%;
}

body#index section#main_top{
    width: 98%;
    max-width: 1880px;
    height: auto;
    aspect-ratio: 1880 / 1000;
    margin: 0px auto 0px auto;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url(../images/main_top.png);
}
body#index section#main_top div#main_top_link_out::before{
    content: "";
    display: block;
    max-width: 1880px;
    height: auto;
    aspect-ratio: 1880 / 830;
}

body#index section#main_top div#main_top_link_out{
    text-align: center;
    width: 100%;
}
body#index section#main_top div#main_top_link{
    margin: 0px auto 0px auto;
    width: 880px;
}
body#index section#main_top div#link1,
body#index section#main_top div#link2,
body#index section#main_top div#link3{
    float: left;
    width: 260px;
    height: 64px;
    border-radius: 32px;
    padding: 0px 0px 0px 20px;
}
body#index section#main_top div#link1 a,
body#index section#main_top div#link2 a,
body#index section#main_top div#link3 a{
    float: left;
    display: block;
    height: 64px;
    line-height: 64px;
    width: 230px;
    text-align: center;
}
body#index section#main_top div#link1 span,
body#index section#main_top div#link2 span,
body#index section#main_top div#link3 span{
    float: right;
    display: block;
    height: 64px;   
    line-height: 64px;
    width: 30px;
}
body#index section#main_top div#link1 span{
    color:#331D00;
}
body#index section#main_top div#link2 span{
    color:#FFFBEF;
    padding: 0px 0px 0px 8px;
    width: 22px;
}
body#index section#main_top div#link3 span{
    color:#FFFBEF;
}

body#index section#main_top div#link1{
    background-color: #E5D0AC;
}
body#index section#main_top div#link2{
    margin: 0px 20px 0px 20px;
    background-color: #A31D1D;
}
body#index section#main_top div#link3{
    background-color: #6C2323;
}
body#index section#main_top div#link1 a{
    color:#331D00;
}
body#index section#main_top div#link2 a{
    color:#FFFBEF;
}
body#index section#main_top div#link3 a{
    color:#FFFBEF;
}

body#limited div#background{
    max-width: 1880px;
    min-width: 1200px;
    margin: 0px auto 0px auto;
    background-repeat: no-repeat;
    background-position: 0px -150px;
    background-image: url(../images/limited_background.png);
}

section#main_middele{
    max-width: 1880px;
    min-width: 1200px;
    margin: 0px auto 0px auto;
    padding: 0px 0px 50px 0px;
    text-align: center;
}

body#index section#main_middele{
    background-size: contain;
    background-repeat: no-repeat;
    background-position: 0px 0px;
    background-image: url(../images/index_background.png);
}

section#main_middele div#contents::before{
    content: "";
    display: block;
    max-width: 1880px;
    min-width: 1200px;
    height: auto;
    aspect-ratio: 1880 / 100;
}

section#main_middele div#contents{
    text-align: center;
    min-width: 1110px;
    margin: 0px auto 0px auto;
}

section#main_middele div#contents div#phrase{
    padding: 70px 0px;
    text-align: center;
}

section#main_middele div#contents h2,
div#bottom h2{
    text-align: center;
    line-height: 40pt;
      font-size: 38pt;
    font-family: "Rubik", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    color: #ED4949;
}
section#main_middele div#contents h2 span,
div#bottom h2 span{
    width: 100%;
    display: block;
    font-size: 12pt;
    line-height: 12pt;
    color: #331D00;
    text-align: center;
}

body#index div#contents p#project::before{
    content: "";
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1110 / 60;   
}

body#index div#contents p#project{
    text-align: center;
}
body#index div#contents p#project::after{
    content: "";
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1110 / 100;   
}

body#index div#contents p#project span{
    display: inline-block;
    border: 1px solid #331D00;
    background-color: white;
    padding: 0px 5px 0px 5px;
    color: #ED4949;
}

div#contents p#explanation{
    margin: 0px auto 0px auto;
    width: 1110px;
    text-align: left;
}

body#p1 div#contents p#explanation span{
    display: inline-block;
    border: 1px solid #331D00;
    background-color: #E5D0AC;
    padding: 0px 5px 0px 5px;
    font-weight: 700;
}
body#p2 div#contents p#explanation span{
    display: inline-block;
    border: 1px solid #331D00;
    background-color: #A31D1D;
    padding: 0px 5px 0px 5px;
    font-weight: 700;
    color: white;
}
body#p3 div#contents p#explanation span{
    display: inline-block;
    border: 1px solid #331D00;
    background-color: #6C2323;
    padding: 0px 5px 0px 5px;
    font-weight: 700;
    color: white;
}

div#contents div.img{
    text-align: center;
    padding: 80px 0px 50px 0px;
}

body#limited div#contents div.img a{
    display: block;
    width: 600px;
    margin: 0px auto 20px auto;
}

body#index div#contents div.mark{
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    width: 101px;
    height:101px;
}

body#index div#contents div#progrum::before{
    content: "";
    display: block;
    min-width: 1110px;
    height: auto;
    aspect-ratio: 1110 / 120;
}

body#index div#contents div#progrum{
    margin: 0px auto 0px auto;
    padding: 0px 0px 0px 0px;
    width: 1110px;
}

body#index div#contents div#progrum1,
body#index div#contents div#progrum2,
body#index div#contents div#progrum3{
    position: relative;
    float: left;
    border-radius: 36px;
    text-align: center;
    width: 360px;
    padding: 60px 0px 20px 0px;
}
body#index div#contents div#progrum1 p,
body#index div#contents div#progrum2 p,
body#index div#contents div#progrum3 p{
    padding: 20px 50px 20px 50px;
    font-size: 12pt;
    line-height: 1.8em;
    text-align: left;
    height: 140px;
}
body#index div#contents div#progrum1 h3,
body#index div#contents div#progrum2 h3,
body#index div#contents div#progrum3 h3{
    text-align: center;
    font-size: 23pt;
    line-height: 1.3em;
}

body#index div#contents div#progrum div.waku,
div#bottom div.waku,
div#contents div.waku{
    margin: 0px auto 0px auto;
    background-color: #ED4949;
    width: 280px;
    height: 64px;
    border-radius: 32px;
}
body#index div#contents div#progrum div.waku a,
div#bottom div.waku a,
div#contents div.waku a{
    display: block;
    float: left;
    width: 230px;
    height: 64px;
    line-height: 64px;
    color: white;
    text-align: center;
    padding: 0px 0px 0px 20px;
}
body#index div#contents div#progrum div.waku span,
div#bottom div.waku span,
div#contents div.waku span{
    color: white;
    display: block;
    float: right;
    height: 64px;
    line-height: 64px;
    width: 30px;
}

body#index div#contents div#progrum1{
    background-color: #E5D0AC;
}
body#index div#contents div#progrum1 h3{
    color: #331D00;
}

body#index div#contents div#progrum2{
    background-color: #A31D1D;
    margin: 0px 15px 0px 15px;
}
body#index div#contents div#progrum2 h3{
    color: #FFFBEF;
}
body#index div#contents div#progrum2 p{
    color: #FFFBEF;
}
body#index div#contents div#progrum3{
    background-color: #6C2323;
}
body#index div#contents div#progrum3 h3{
    color: #FFFBEF;
}
body#index div#contents div#progrum3 p{
    color: #FFFBEF;
}

body#index div#contents div#lilited::before{
    content: "";
    display: block;
    width: 1110px;
    height: auto;
    aspect-ratio: 1110 / 100;
}

body#index div#contents div#lilited{
    margin: 0px auto 0px auto;
    margin-top: 150px;
    margin-bottom: 150px;
    width: 1110px;
    height: 400px;
    background-image: url(../images/index_background2.png);
}

body#index div#contents div#lilited div.waku,
body#index div#contents div#topics div.waku{
    margin: 80px auto 0px auto;
    background-color: #ED4949;
    width: 320px;
    height: 64px;
    border-radius: 32px;
}

body#index div#contents div#lilited div.waku a,
body#index div#contents div#topics div.waku a{
    display: block;
    float: left;
    width: 260px;
    height: 64px;
    line-height: 64px;
    color: white;
    text-align: center;
    padding: 0px 0px 0px 20px;
}
body#index div#contents div#lilited div.waku span,
body#index div#contents div#topics div.waku span{
    color: white;
    display: block;
    float: right;
    height: 64px;
    line-height: 64px;
    width: 40px;
}
div#contents div#topics::before{
    content: "";
    display: block;
    width: 1110px;
    height: auto;
    aspect-ratio: 1110 / 50;
}
div#contents div#topics {
    margin: 0px auto 0px auto;
    width: 1110px;
}
div#contents div#topics::after{
    content: "";
    clear: both;
    display: block;
} 

div#contents div#topics div.list{
    float: left;
    width: 330px;
    margin: 20px 39px 0px 0px;
}
div#contents div#topics div.list img{
    width: 330px;
}

div#contents div#topics div.list:nth-of-type( 4n ) {
    margin-right:0px;
}

div#contents div#topics div.list h4{
    font-size: 14pt;
    line-height: 1.5em;
}
div#contents div#topics div.list h4 a {
    font-size: 14pt;
    line-height: 1.5em;
}
div#contents div#topics div.list p{
    font-size: 12pt;
    line-height: 1.5em;
    padding: 10px 0px 0px 0px;
}

div#contents div#topics::after{
    content: "";
    display: block;
    min-width: 1110px;
    height: auto;
    aspect-ratio: 1110 / 60;
} 

div#contents div#article,
div#contents div#whatsnew,
div#contents div#loginform {
    margin: 50px auto 50px auto;
    width: 1110px;
}

div#contents div#article span#date{
    width: 120px;
    float: left;
    display: block;
    color: #ED4949;
    line-height: 25px;
}
div#contents div#article span#g{
    float: left;
    display: block;
    width: 150px;
    height: 25px;
    background-color: #CECECE;
    border-radius: 12px;
}

div#contents div#article h1::before{
    content: "";
    display: block;
    clear: both;
}
div#contents div#article h1{
    padding: 40px 0px 20px 0px; 
    font-size: 26pt;
}
div#contents div#article p{
    padding: 20px 0px 20px 0px;
}
body#p3 div#container{
    padding: 0px 0px 150px 0px;
}

div#seminar_learning{
    position: relative;
    min-width: 1200px;
    text-align: center;
    background-color: #F7F2E4;
    padding: 200px 0px 150px 0px;
    text-align: center;
}

img#seminar_learning_logo{
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
}
div#seminar_learning div#seminar{
    margin: 0px auto 0px auto;
    width: 970px;
    border-radius: 30px;
    background-color: #ED4949;
    padding: 70px 70px 70px 70px;
}

div#seminar_learning div#seminar h2{
    text-align: center;
    line-height: 30pt;
      font-size: 30pt;
    font-family: "Rubik", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    color: white;
    margin-bottom: 50px;
}
div#seminar_learning div#seminar h2 span{
    width: 100%;
    display: block;
    font-size: 12pt;
    line-height: 12pt;
    color: white;
    text-align: center;
}

div#seminar_learning div#seminar p{
    color: white;
    line-height: 2.0em;
    width: 650px;
    float: right;
}
div#seminar_learning div#seminar div.link{
    text-align: center;
}

div#seminar_learning div#seminar div.link div.waku{
    margin: 0px auto 0px auto;
    background-color: white;
    width: 280px;
    height: 64px;
    border-radius: 32px;
    margin-top: 50px;
}
div#seminar_learning div#seminar div.link div.waku a{
    display: block;
    float: left;
    width: 230px;
    height: 64px;
    line-height: 64px;
    color: #ED4949;
    text-align: center;
    padding: 0px 0px 0px 20px;
}
div#seminar_learning div#seminar div.link div.waku span{
    color: #ED4949;
    display: block;
    float: right;
    height: 64px;
    line-height: 64px;
    width: 30px;
}
div#seminar_learning div#plus{
    text-align: center;
    padding: 50px;
}

div#seminar_learning div#learning{
    margin: 0px auto 0px auto;
    width: 970px;
    border-radius: 50px;
    background-color: white;

    padding: 70px 70px 70px 70px;
}

div#seminar_learning div#learning h2{
    text-align: center;
    line-height: 30pt;
      font-size: 30pt;
    font-family: "Rubik", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    color: #ED4949;
    margin-bottom: 50px;
}
div#seminar_learning div#learning h2 span{
    width: 100%;
    display: block;
    font-size: 12pt;
    line-height: 12pt;
    color: #331D00;
    text-align: center;
}

div#seminar_learning div#learning p{
    color: black;
    line-height: 2.0em;
}
div#seminar_learning div#learning p#kome{
    font-size: 9pt;
    width: 600px;
    margin-top: 50px;
}
div#seminar_learning div#learning p#kome span{
    font-size: 9pt;
    color: #ED4949;
    text-decoration: underline;
}

div#seminar_learning div#learning div.link{
    margin: 50px auto 0px auto;
    text-align: center;
    width: 600px;
}

div#seminar_learning div#learning div.link div.waku1{
    margin: 0px auto 0px auto;
    background-color: #ED4949;
    width: 280px;
    height: 64px;
    border-radius: 32px;
    float: left;
}
div#seminar_learning div#learning div.link div.waku1 a{
    display: block;
    float: left;
    width: 230px;
    height: 64px;
    line-height: 64px;
    color: white;
    text-align: center;
    padding: 0px 0px 0px 20px;
}
div#seminar_learning div#learning div.link div.waku1 span{
    color: white;
    display: block;
    float: right;
    height: 64px;
    line-height: 64px;
    width: 30px;
}

div#seminar_learning div#learning div.link div.waku2{
    margin: 0px auto 0px auto;
    background-color: white;
    border: 1px solid #ED4949;
    width: 280px;
    height: 64px;
    border-radius: 32px;
    float: right;

}
div#seminar_learning div#learning div.link div.waku2 a{
    display: block;
    float: left;
    width: 230px;
    height: 64px;
    line-height: 64px;
    color: #ED4949;
    text-align: center;
    padding: 0px 0px 0px 20px;
}
div#seminar_learning div#learning div.link div.waku2 span{
    color: #ED4949;
    display: block;
    float: right;
    height: 64px;
    line-height: 64px;
    width: 30px;
}

div#bottom{
    min-width: 1200px;
    text-align: center;
}
div#bottom section{
    min-width: 1110px;
}
div#bottom section p{
    text-align: center;
    padding: 50px 0px 50px 0px;
}

div#bottom section#whatsnew {
    background-color: #F7F2E4; 
}
div#bottom section#how_to_apply {
    background-color: #ffffff; 
}

div#bottom section::before,
div#bottom section::after{
    content: "";
    display: block;
    min-width: 1110px;
    height: auto;
    aspect-ratio: 1110 / 60;
}

#whatsnew table{
    margin: 0px auto 70px auto;
    min-width: 1110px;
    border-collapse: collapse;
}
#whatsnew  h2::after{
    content: "";
    display: block;
    min-width: 1110px;
    height: auto;
    aspect-ratio: 1110 / 30;
}

#whatsnew table tr {
    border-top: 1px solid #C6C2B5;
    border-bottom: 1px solid #C6C2B5;
}
#whatsnew table tr td{
    padding: 10px 0px;
}
#whatsnew table tr td:nth-of-type( 1 ) {
    white-space: nowrap;
    width:100px;
}
#whatsnew table tr td:nth-of-type( 2 ) {
    padding: 10px 10px;
    width: 170px;
}
#whatsnew table tr td:nth-of-type( 3 ) {
    padding: 10px 5px;
    width: 780px;
}
#whatsnew table tr td span.g{
    display: block;
    width: 170px;
    height: 30px;
    background-color: #CECECE;
    border-radius: 12px;
}
#whatsnew table tr td span.link1{
    display: block;
    text-align: center;
    height: 30px;
    width: 170px;
    border-radius: 12px;
    color:#331D00;
    background-color: #E5D0AC;
    font-size: 9pt;
    line-height: 30px;
}
#whatsnew table tr td span.link2{
    display: block;
    text-align: center;
    height: 30px;
    width: 170px;
    border-radius: 12px;
    color:#FFFBEF;
    background-color: #A31D1D;
    font-size: 9pt;
    line-height: 30px;
}
#whatsnew table tr td span.link3{
    display: block;
    text-align: center;
    height: 30px;
    width: 170px;
    border-radius: 12px;
    color:#FFFBEF;
    background-color: #6C2323;
    font-size: 9pt;
    line-height: 30px;
}
#whatsnew table tr td span.mark{
    width: 30px;
    height: 25px;
    display: block;
    float: right;
}
#whatsnew table tr td span.mark::before{
    content: "〉";
    color: #ED4949;
}

div#contents div#loginform {
    text-align: center;
}
div#contents div#loginform h3{
    text-align: center;
    font-size: 1.5em;
}
div#contents div#loginform p{
    color: red;
    font-weight: bold;
    text-align: center;
}
div#contents div#loginform table{
    margin: 30px auto;
}
div#contents div#loginform table td{
    padding: 5px 10px;
}
div#contents div#loginform table td input#submit{
    padding: 8px 10px;
}

footer{
    margin: 0px auto 0px auto;
    max-width: 1880px;
    padding: 0px 0px 20px 0px;
}
footer::before{
    content: "";
    display: block;
    min-width: 1200px;
    height: auto;
    aspect-ratio: 1200 / 100;
}
div#footer_logo{
    padding: 0px 20px 0px 0px;
    width: 138px;
    height: 141px;
    background-repeat: no-repeat;
    background-image: url(../images/fotter_logo.png);
    float: left;
}
div#toiawase{
    width:40%;
    max-width: 700px;
    float: left;
}
div#toiawase h1{
    padding: 10px 0px 10px 0px;
    line-height: 1.7em;
}
div#toiawase span#a{
    display: block;
    font-size: 10pt;
    line-height: 1.5em;
}
div#toiawase span#t{
    display: block;
    font-size: 10pt;
    font-weight: 600;
}

div#copyright{
    font-size: 10pt;
    width:45%;
    max-width: 650px;
    float: right;
}
div#copyright::before{
    content: "";
    display: block;
    min-width: 650px;
    height: auto;
    aspect-ratio: 650 / 120;
}

div#go_top{
    bottom:10px;
    right:10px;   
    z-index: 4998;
    position: fixed;
    opacity :0.0;
}

@keyframes go_top_move_in {
    0% { opacity: 0; }
  100% { opacity: 0.6;  }
}
@keyframes go_top_move_out {
    0% { opacity: 0.6; }
  100% { opacity: 0.0;  }
}

/* ========================================================================= */
/* ここから下は新規追加・上書きスタイル（レスポンシブ・新レイアウト等）      */
/* ========================================================================= */

/* 基本設定のレスポンシブ上書き */
body, #container, div#bottom { min-width: auto !important; max-width: 100% !important; }
img { max-width: 100%; height: auto; }
.wrapper { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* メインビジュアル（ヘッダー画像） */
.hero-section {
    width: 90%;
    max-width: 1880px;
    margin: 0 auto;
    aspect-ratio: 1880 / 1000;
    background-image: url('../images/main_top.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* =========================================
   追従ナビゲーションバー（洗練されたデザイン版）
   ========================================= */
.global-nav {
    /* すりガラス効果（半透明の白＋背景ぼかし） */
    background: rgba(255, 255, 255, 0.85); 
    backdrop-filter: blur(10px); 
    -webkit-backdrop-filter: blur(10px);
    
    /* 影を広く薄くして、上品に浮き上がらせる */
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); 
    border-bottom: 1px solid rgba(237, 73, 73, 0.1); /* 下部にうっすらとアクセントカラーの線 */
    
    position: sticky;
    top: 0;
    z-index: 5000;
}

.nav-list {
    display: flex;
    justify-content: center;
    list-style: none;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}

.nav-item { 
    position: relative; 
}

/* メニューのリンク文字調整 */
.nav-item > a {
    display: block;
    padding: 20px 25px; /* 上下左右の余白を広げて優雅に */
    color: #444; /* 真っ黒ではなく、少し柔らかいダークグレーに */
    text-decoration: none;
    font-weight: 600; 
    font-size: 14px;
    letter-spacing: 0.05em; /* 文字間隔を少し広げてスタイリッシュに */
    transition: color 0.3s ease; /* 色の変化を滑らかにする */
    position: relative;
}

/* ホバー時のアンダーラインアニメーション */
.nav-item > a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 3px;
    background: #ED4949; /* プロジェクトのテーマカラー */
    transition: all 0.3s ease; /* アニメーションの速度 */
    transform: translateX(-50%);
    border-radius: 3px 3px 0 0;
}

.nav-item > a:hover { 
    color: #ED4949; 
    /* ほんのり色をつけることで「ボタンの範囲」を意識させます */
    background: rgba(237, 73, 73, 0.05); 
    text-decoration: none;
    border-radius: 4px; /* 角を少し丸めると親しみやすくなります */
}

/* 常に薄いベースラインを表示したい場合はこちらを追加 */
.nav-item > a {
    border-bottom: 2px solid rgba(0, 0, 0, 0.03); /* ほとんど見えないくらいの薄い線 */
}

/* ホバーすると下線が中央から広がる */
.nav-item > a:hover::after {
    width: 80%;
}

/* ナビゲーションのドロップダウンメニュー */
.dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    /* ドロップダウンもすりガラス効果に合わせる */
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.08);
    border-radius: 0 0 8px 8px; /* 角を少し丸めて柔らかい印象に */
    list-style: none;
    padding: 10px 0;
    margin: 0;
    min-width: 220px;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease; /* ふわっと表示させる */
}

/* ホバーでメニューを表示する際のアニメーション設定 */
.nav-item:hover .dropdown-menu { 
    display: block; 
    opacity: 1;
    transform: translateY(0);
}

.dropdown-menu li a {
    display: block;
    padding: 12px 25px;
    color: #555;
    text-decoration: none;
    font-size: 13px;
    transition: all 0.2s ease;
    letter-spacing: 0.03em;
}

.dropdown-menu li a:hover { 
    background: rgba(237, 73, 73, 0.05); /* ほんのり赤みがかった背景 */
    color: #ED4949; 
    padding-left: 30px; /* ホバー時に文字が少し右にスライドする遊び心 */
}

/* 背景画像を含むメインコンテンツエリア */
.main-background {
    background-image: url('../images/index_background.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top center;
    padding-top: 40px; 
    padding-bottom: 50px;
}

/* トップページの2カラムレイアウト */
.main-layout {
    display: flex;
    gap: 40px;
    margin: 0 auto;
    align-items: flex-start;
}
.content-left { flex: 2; min-width: 0; }
.content-right { flex: 1; min-width: 0; }

/* セクションタイトル */
.section-title {
    font-size: 24px;
    color: #ED4949;
    border-bottom: 2px solid #ED4949;
    padding-bottom: 8px;
    margin-bottom: 20px;
    font-family: "Rubik", sans-serif;
}
.section-title span { font-size: 14px; color: #331D00; display: block; margin-top: 4px; }

/* ABOUT要約カード */
/* ABOUT要約カード */
.about-summary {
    background: #fff;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    line-height: 1.8;
    margin-bottom: 40px;
    text-align: center;
}
.about-logo {
    display: block;
    width: 80%;
    height: auto;
    margin: 0 auto 20px auto;
}
.about-summary p {
    text-align: left;
    margin-bottom: 20px;
    
    /* ↓ここを追記（PC向けのサイズ指定） */
    font-size: 11pt !important; /* 全体の14ptより小さく（約14.5px相当） */
    line-height: 1.8 !important; /* 行間もカードに合わせて調整 */
}
.btn-more {
    display: inline-block;
    background: #ED4949;
    color: #fff;
    padding: 8px 24px;
    border-radius: 20px;
    text-decoration: none;
    font-size: 14px;
}
.btn-more:hover { opacity: 0.8; text-decoration: none; }

/* トップページ 新3つのプログラムグリッド */
.program-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.program-card {
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    text-align: center;
    text-decoration: none;
    transition: transform 0.2s;
    display: flex;
    flex-direction: column;
}
.program-card:hover { transform: translateY(-5px); }
.program-card h3 { font-size: 16px; margin: 10px 0; flex-grow: 0; }
.program-card p { font-size: 12px; line-height: 1.5; color: #555; text-align: left; margin: 0; flex-grow: 1; }
.pc-1 { border-top: 5px solid #E5D0AC; }
.pc-2 { border-top: 5px solid #A31D1D; }
.pc-3 { border-top: 5px solid #6C2323; }

/* 新着情報リスト */
.news-list { list-style: none; padding: 0; margin: 0; }
.news-list li {
    border-bottom: 1px dashed #ccc;
    padding: 15px 0;
}
.news-meta { margin-bottom: 5px; font-size: 12px; }
.news-date { color: #666; margin-right: 10px; }
.news-tag {
    display: inline-block; padding: 2px 8px; border-radius: 4px; color: #fff; font-size: 11px;
}
.tag-1 { background: #E5D0AC; color: #331D00; }
.tag-2 { background: #A31D1D; }
.tag-3 { background: #6C2323; }
.news-list a { color: #333; text-decoration: none; font-size: 14px; line-height: 1.5; display: block; }
.news-list a:hover { color: #ED4949; text-decoration: underline; }

/* フッター調整（元の設定を上書き） */
footer { 
    display: flex; 
    flex-wrap: nowrap; 
    justify-content: center; 
    align-items: center; 
    gap: 40px; 
    padding: 40px 20px; 
    background: #fff; 
    width: 100%; 
    max-width: 100%; 
    box-sizing: border-box;
}
footer::before { display: none; }
div#toiawase, div#copyright {
    width: auto !important;
    max-width: none !important;
    white-space: nowrap; 
    float: none !important;
}

/* ========================================================================= */
/* スマホ・タブレット用メディアクエリ                                        */
/* ========================================================================= */
@media (max-width: 992px) {
    .program-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .main-layout { flex-direction: column; }
    .program-grid { grid-template-columns: 1fr; }
    .nav-item > a { padding: 12px 15px; font-size: 13px; }
    .dropdown-menu {
        position: absolute !important; /* 宙に浮かせて配置し、ナビバーを押し広げない */
        top: 100%;
        left: 0; /* 親要素の左端を基準にする */
        width: 220px; /* スマホ向けに適度な幅を指定 */
        
        /* PC版と同じすりガラス・影のデザインを適用 */
        background: rgba(255, 255, 255, 0.95) !important;
        box-shadow: 0 8px 20px rgba(0,0,0,0.1) !important;
        border-radius: 4px;
        
        /* static用に設定されていた線を消去 */
        border-left: none !important; 
        margin-left: 0 !important;
        z-index: 5001; /* 本文より確実に手前に表示させる */
        
        /* JSで展開した際に透明にならないよう強制表示化 */
        opacity: 1 !important;
        transform: translateY(0) !important;
    }/* フッターを縦1列（1カラム）レイアウトに強制 */
    footer {
        flex-direction: column !important; /* 横並びを解除して縦並びに */
        align-items: center !important;    /* 中央揃え */
        gap: 20px !important;              /* 各要素間の縦の余白 */
        padding: 30px 20px !important;
    }

    /* 各要素の横幅制限とfloatを解除し、1カラムとして扱う */
    div#footer_logo,
    div#toiawase,
    div#copyright {
        width: 100% !important;
        max-width: none !important;
        float: none !important;
        text-align: center !important;     /* スマホ時は中央揃えが見やすい */
        white-space: normal !important;    /* テキストの折り返しを許可 */
    }

    /* スマホ表示向けのお問い合わせの文字サイズ微調整 */
    div#toiawase h1 {
        font-size: 12pt !important;
        line-height: 1.5 !important;
    }

    /* コピーライトの極小化とはみ出し元凶の削除 */
    div#copyright { 
        font-size: 8px !important;         /* 極端に小さいサイズ */
        line-height: 1.5 !important;
        margin-top: 10px !important;       /* 上部の余白設定 */
    }
    div#copyright::before {
        display: none !important;          /* 650pxの空間確保を無効化 */
    }
}

/* ナビゲーションのカレント（現在地）表示 */
.nav-item > a.is-active {
    color: #ED4949 !important; /* 文字色をテーマカラーに */
    font-weight: 800 !important; /* 太字にして強調 */
}

/* ホバー時と同様の下線を表示させる場合 */
.nav-item > a.is-active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 80%; /* 常に表示 */
    height: 3px;
    background: #ED4949;
    transform: translateX(-50%);
    border-radius: 3px 3px 0 0;
}


/* =========================================
   新着情報 通知バッジ設定
   ========================================= */

/* 1. バッジ表示のON/OFFスイッチ 
   （表示する場合は inline-block、消す場合は none に書き換える） */
:root {
    --badge-main: none; /* 親メニュー「公募情報・報告書 ▼」 */
    --badge-sub1: none; /* サブメニュー1「社会人院生の募集」 */
    --badge-sub2: none; /* サブメニュー2「共同研究公募」 */
    --badge-sub3: none; /* サブメニュー2「共同研究公募」 */
}

/* 2. 親メニュー（左から5番目）の右上にバッジを配置 */
.nav-list > li:nth-child(5) > a::before {
    content: "NEW";
    display: var(--badge-main); /* スイッチと連動 */
    position: absolute;
    top: 8px;
    right: 5px;
    background-color: #ED4949; /* 赤色 */
    color: #FFF;
    font-size: 9px;
    font-family: "Rubik", sans-serif;
    font-weight: bold;
    line-height: 1;
    padding: 3px 6px;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(237, 73, 73, 0.4);
    letter-spacing: 0;
    pointer-events: none; /* クリックの邪魔にならないようにする */
}

/* サブメニュー項目の基準位置設定 */
.nav-list > li:nth-child(5) > .dropdown-menu > li > a {
    position: relative;
}

/* 3. サブメニューのバッジ共通デザイン */
.nav-list > li:nth-child(5) > .dropdown-menu > li > a::after {
    content: "NEW";
    position: absolute;
    top: 50%;
    right: 15px; /* 右端に配置 */
    transform: translateY(-50%);
    background-color: #ED4949;
    color: #FFF;
    font-size: 9px;
    font-family: "Rubik", sans-serif;
    font-weight: bold;
    line-height: 1;
    padding: 3px 6px;
    border-radius: 10px;
    letter-spacing: 0;
    pointer-events: none;
}

/* サブメニュー個別の表示スイッチ連動 */
/* 1番目「社会人院生の募集」 */
.nav-list > li:nth-child(5) > .dropdown-menu > li:nth-child(1) > a::after {
    display: var(--badge-sub1);
}
/* 2番目「共同研究公募」 */
.nav-list > li:nth-child(5) > .dropdown-menu > li:nth-child(2) > a::after {
    display: var(--badge-sub2);
}
/* 3番目「実務担当者支援事業実績」 */
.nav-list > li:nth-child(5) > .dropdown-menu > li:nth-child(3) > a::after {
    display: var(--badge-sub3);
}

/* ========================================================================= */
/* トップページ 新3つのプログラムグリッド（PC: 横並び / スマホ: 縦並び） */
/* ========================================================================= */
.program-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* --- PC向け（横並び）の基本デザイン --- */
.program-card {
    background: #ffffff;
    padding: 25px 20px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.04);
    border: 1px solid #f8f8f8;
    text-decoration: none !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    
    display: flex;
    flex-direction: row; 
    align-items: center; 
    gap: 15px;           
    position: relative;
    overflow: hidden;
}

/* 上部のアクセントカラー */
.program-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    transition: height 0.3s ease;
    z-index: 0;
}
.pc-1::before { background: #E5D0AC; }
.pc-2::before { background: #A31D1D; }
.pc-3::before { background: #6C2323; }

/* ホバー時の浮き上がりと影の強調 */
.program-card:hover { 
    transform: translateY(-4px);
    box-shadow: 0 12px 25px rgba(0,0,0,0.08);
    border-color: transparent;
}
.program-card:hover::before { height: 6px; }

/* アイコン（左側） */
.program-icon {
    width: 60px;            
    height: 60px;
    flex-shrink: 0;         
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    background: #fafafa;
    transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
    z-index: 1;
}
.program-icon img {
    width: 55%; 
    height: auto;
    object-fit: contain;
}
.program-card:hover .program-icon {
    transform: scale(1.05);
    background: #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* テキストコンテンツエリア */
.program-content {
    z-index: 1;
    display: flex;
    flex-direction: column;
    text-align: left;     
}
.program-card h3 { 
    font-size: 1.05rem !important;  
    margin: 0 0 6px 0; 
    line-height: 1.4 !important;
    font-weight: bold;
}
.pc-1 h3 { color: #331D00 !important; }
.pc-2 h3 { color: #A31D1D !important; }
.pc-3 h3 { color: #6C2323 !important; }

.program-card p { 
    font-size: 0.85rem !important; 
    line-height: 1.5 !important; 
    color: #666 !important; 
    margin: 0; 
}

/* ========================================================================= */
/* トップページ 新3つのプログラムグリッド（PC: 横並び / スマホ: 縦並び） */
/* ========================================================================= */
.program-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* --- PC向け（横並び）の基本デザイン --- */
.program-card {
    background: #ffffff;
    padding: 25px 20px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.04);
    border: 1px solid #f8f8f8;
    text-decoration: none !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    
    display: flex;
    flex-direction: row; 
    align-items: center; 
    gap: 15px;           
    position: relative;
    overflow: hidden;
}

/* 上部のアクセントカラー */
.program-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    transition: height 0.3s ease;
    z-index: 0;
}
.pc-1::before { background: #E5D0AC; }
.pc-2::before { background: #A31D1D; }
.pc-3::before { background: #6C2323; }

/* ホバー時の浮き上がりと影の強調 */
.program-card:hover { 
    transform: translateY(-4px);
    box-shadow: 0 12px 25px rgba(0,0,0,0.08);
    border-color: transparent;
}
.program-card:hover::before { height: 6px; }

/* アイコン（左側） */
.program-icon {
    width: 60px;            
    height: 60px;
    flex-shrink: 0;         
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    background: #fafafa;
    transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
    z-index: 1;
}
.program-icon img {
    width: 55%; 
    height: auto;
    object-fit: contain;
}
.program-card:hover .program-icon {
    transform: scale(1.05);
    background: #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* テキストコンテンツエリア */
.program-content {
    z-index: 1;
    display: flex;
    flex-direction: column;
    text-align: left;     
}
.program-card h3 { 
    font-size: 1.05rem !important;  
    margin: 0 0 6px 0; 
    line-height: 1.4 !important;
    font-weight: bold;
}
.pc-1 h3 { color: #331D00 !important; }
.pc-2 h3 { color: #A31D1D !important; }
.pc-3 h3 { color: #6C2323 !important; }

.program-card p { 
    font-size: 0.85rem !important; 
    line-height: 1.5 !important; 
    color: #666 !important; 
    margin: 0; 
}


/* ========================================================================= */
/* --- スマホ・タブレット向けメディアクエリ（縦並びへの変更） --- */
/* ========================================================================= */
@media (max-width: 992px) {
    .program-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .program-grid { grid-template-columns: 1fr !important; }
    
    .program-card {
        flex-direction: column !important; /* スマホ表示時は縦並びに強制 */
        text-align: center !important;    
        padding: 25px 20px !important;
        gap: 15px !important;
    }

    .program-icon {
        width: 70px !important; 
        height: 70px !important;
    }

    .program-content {
        text-align: center !important; 
        align-items: center !important;
    }

    .program-card h3 {
        font-size: 1.1rem !important;
        margin-bottom: 8px !important;
    }
    
    .program-card p {
        font-size: 0.9rem !important;
    }
}

/* ========================================================================= */
/* ボタン（.waku, .waku1, .waku2）内のテキスト垂直中央揃え修正              */
/* ========================================================================= */
div.waku a, div.waku span,
div.waku1 a, div.waku1 span,
div.waku2 a, div.waku2 span {
    line-height: 64px !important;
}

/* ========================================================================= */
/* タブレット・小型PC（中間幅）向け はみ出し解消のレスポンシブ対応           */
/* 画面幅 769px 〜 1250px の領域のみ適用（スマホ向けCSSに影響を与えない設計）*/
/* ========================================================================= */
@media (min-width: 769px) and (max-width: 1250px) {
    
    /* 1. 全体コンテナや背景の固定幅（1200px）を解除し、画面幅に追従させる */
    body,
    div#container,
    body#limited div#background,
    section#main_middele,
    div#seminar_learning,
    div#bottom {
        min-width: 0 !important;
        width: 100% !important;
        overflow-x: hidden; /* 念のため横スクロールを抑制 */
    }

    /* 2. 1110pxの固定幅を持つメインコンテンツ群を画面幅の約94%に設定 */
    section#main_middele div#contents,
    div#contents p#explanation,
    body#index div#contents div#progrum,
    body#index div#contents div#lilited,
    div#contents div#topics,
    div#contents div#article,
    div#contents div#whatsnew,
    div#contents div#loginform,
    div#bottom section,
    #whatsnew table {
        min-width: 0 !important;
        width: 100% !important;
        max-width: 94% !important; /* 左右に3%ずつの余白が生まれる */
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box;
    }

    /* 3. 余白確保用の見えないブロック（疑似要素）の固定幅を解除 */
    section#main_middele div#contents::before,
    body#index div#contents p#project::before,
    body#index div#contents p#project::after,
    body#index div#contents div#progrum::before,
    body#index div#contents div#lilited::before,
    div#contents div#topics::before,
    div#contents div#topics::after,
    div#bottom section::before,
    div#bottom section::after,
    footer::before,
    div#copyright::before {
        min-width: 0 !important;
        width: 100% !important;
    }

    /* 4. 火山実務担当者支援事業ページの 970px 固定幅を解除 */
    div#seminar_learning div#seminar,
    div#seminar_learning div#learning {
        width: 90% !important;
        max-width: none !important;
        padding: 50px !important; /* タブレット向けに内側の余白を少し縮小 */
        box-sizing: border-box;
    }

    /* 5. 画像や要素が横並びになっている箇所のパーセント調整 */
    /* トップページの3つのプログラム（フロート配置版への安全対策） */
    body#index div#contents div#progrum1,
    body#index div#contents div#progrum2,
    body#index div#contents div#progrum3 {
        width: 31% !important;
        margin: 0 1% !important;
        padding: 40px 10px 20px 10px !important;
        box-sizing: border-box;
    }
    
    /* トピックスの4列画像リスト */
    div#contents div#topics div.list {
        width: 22% !important;
        margin: 20px 1.5% 0 1.5% !important;
    }
    div#contents div#topics div.list:nth-of-type(4n) {
        margin-right: 1.5% !important;
    }

    /* 6. 中間幅での新着情報（テーブル形式）の列幅をパーセント指定に緩和 */
    #whatsnew table tr td:nth-of-type(1) { width: 15% !important; } /* 日付 */
    #whatsnew table tr td:nth-of-type(2) { width: 25% !important; } /* タグ */
    #whatsnew table tr td:nth-of-type(3) { width: 60% !important; } /* タイトル */
}

/* ========================================================================= */
/* フッターのはみ出し完全解消（全画面サイズ共通の強制上書き）                */
/* ========================================================================= */

/* 1. フッター全体の折り返し許可とはみ出しの強制カット */
footer {
    flex-wrap: wrap !important;  /* 画面が狭い場合は要素の折り返しを許可 */
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important; /* 念のための横スクロール防止 */
}

/* 2. テキスト要素の折り返し（自動改行）を許可 */
div#toiawase, 
div#copyright {
    white-space: normal !important; /* nowrap（改行禁止）を解除 */
    word-break: break-word !important; /* 長い単語やアドレスも枠内で改行させる */
    flex: 1 1 auto !important; /* 画面幅に合わせて柔軟に伸縮させる */
    min-width: 250px !important; /* 極端に潰れないための最低幅 */
    box-sizing: border-box !important;
}

/* 3. はみ出しの元凶となる不可視の固定幅ブロックを完全に消去 */
footer::before,
div#copyright::before {
    display: none !important;
}

