@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');

/* =========================================
   公募情報の新着通知バッジ設定
   ========================================= */
:root {
    /* （表示する場合は inline-block、消す場合は none に書き換える） */
    --badge-main: none;
    --badge-sub1: none;
    --badge-sub2: none;
    --badge-sub3: none;
}

.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;
}

.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;
}

.nav-list > li:nth-child(5) > .dropdown-menu > li:nth-child(1) > a::after {
    display: var(--badge-sub1);
}
.nav-list > li:nth-child(5) > .dropdown-menu > li:nth-child(2) > a::after {
    display: var(--badge-sub2);
}
.nav-list > li:nth-child(5) > .dropdown-menu > li:nth-child(3) > a::after {
    display: var(--badge-sub3);
}


/* =========================================
   基本設定
   ========================================= */
*{
    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;
    border-bottom: 2px solid rgba(0, 0, 0, 0.03);
}

.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: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;
}

.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-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;
    font-size: 11pt !important;
    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; }

.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;
        background: rgba(255, 255, 255, 0.95) !important;
        box-shadow: 0 8px 20px rgba(0,0,0,0.1) !important;
        border-radius: 4px;
        border-left: none !important; 
        margin-left: 0 !important;
        z-index: 5001;
        opacity: 1 !important;
        transform: translateY(0) !important;
    }
    footer {
        flex-direction: column !important;
        align-items: center !important;
        gap: 20px !important;
        padding: 30px 20px !important;
    }

    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;
    }
}

.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;
}

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

.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;
    }
}

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

/* ========================================================================= */
/* タブレット・小型PC向け はみ出し解消のレスポンシブ対応           */
/* ========================================================================= */
@media (min-width: 769px) and (max-width: 1250px) {
    
    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;
    }

    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;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box;
    }

    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;
    }

    div#seminar_learning div#seminar,
    div#seminar_learning div#learning {
        width: 90% !important;
        max-width: none !important;
        padding: 50px !important;
        box-sizing: border-box;
    }

    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;
    }
    
    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;
    }

    #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; }
}

/* ========================================================================= */
/* フッターのはみ出し完全解消                                                */
/* ========================================================================= */

footer {
    flex-wrap: wrap !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

div#toiawase, 
div#copyright {
    white-space: normal !important;
    word-break: break-word !important;
    flex: 1 1 auto !important;
    min-width: 250px !important;
    box-sizing: border-box !important;
}

footer::before,
div#copyright::before {
    display: none !important;
}

.global-nav {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 20px 0 20px;
}

.nav-logo {
    margin-top: 0;
    margin-left: 20px;
    margin-bottom: 10px;
}

.nav-list {
    width: 100%;
    justify-content: center;
    padding-left: 0;
}

.nav-item > a {
    padding: 12px 20px;
}

@media (max-width: 1050px) {
    .global-nav {
        padding: 15px 10px 0 10px;
    }
    .nav-logo {
        margin-left: 0;
    }
}

/* =============================================
   関連分野研究者共同研究 アーカイブ用テーブルCSS
   ============================================= */

.table-container {
    max-width: 950px;
    margin: 0 auto 60px auto;
    overflow-x: auto;
}

.recruiting-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 700px;
}

.recruiting-table th {
    text-align: left;
    padding: 12px 20px;
    font-size: 0.9rem;
    color: #666;
    font-weight: normal;
    border-bottom: 2px solid #ccc;
}

.recruiting-table td {
    padding: 20px;
    font-size: 1rem;
    border-bottom: 1px solid #eaeaea;
    vertical-align: middle;
}

.recruiting-table tbody tr:hover {
    background-color: #fafafa;
}

.col-year {
    font-weight: bold;
    color: #333;
    width: 15%;
    letter-spacing: 0.05em;
}

.doc-item {
    display: flex;
    align-items: center;
}

.doc-link {
    color: #333;
    text-decoration: none;
    transition: color 0.2s ease;
}

.doc-link:hover {
    color: #d43c34;
    text-decoration: underline;
}

.doc-text.is-pending {
    color: #bbb;
    cursor: not-allowed;
}

.status-label {
    font-size: 0.8rem;
    margin-right: 8px;
    padding: 2px 0;
}

.status-label.is-open { color: #d43c34; font-weight: bold; }
.status-label.is-closed { color: #888; }
.status-label.is-pending { color: #bbb; }

.pdf-mark {
    font-size: 0.65rem;
    color: #fff;
    background-color: #d43c34;
    padding: 2px 5px;
    border-radius: 2px;
    margin-right: 8px;
    font-weight: bold;
    letter-spacing: 0.05em;
}

/* =========================================
   スマホ・タブレット用 レスポンシブ対応
   ========================================= */
@media (max-width: 768px) {
    section#main_middele,
    section#main_middele div#contents,
    div#bottom,
    div#bottom section {
        min-width: 0 !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    div#contents p#explanation,
    div#bottom section p {
        width: 100% !important;
        padding: 0 20px !important;
        box-sizing: border-box;
        font-size: 11pt !important;
        line-height: 2.0em !important;
    }

    div#contents div.img,
    div#phrase {
        width: 100% !important;
        padding: 0 20px !important;
        box-sizing: border-box;
    }

    section#main_middele div#contents h2,
    div#bottom h2 {
        font-size: 24pt !important;
        line-height: 1.2 !important;
        padding: 20px 10px;
    }
    section#main_middele div#contents h2 span,
    div#bottom h2 span {
        font-size: 10pt !important;
        margin-top: 10px;
    }

    section#main_middele div#contents::before,
    div#bottom section::before,
    div#bottom section::after {
        display: none !important;
    }
}

/* =============================================
   公募情報 モダン・ミニマルデザインリスト
   ============================================= */

.call-list-container {
    max-width: 800px;
    margin: 0 auto 60px auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.call-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border-top: 2px solid #333; 
}

.call-list > li {
    display: flex;
    align-items: center;
    padding: 25px 10px !important;
    border-bottom: 1px solid #e0e0e0;
    transition: background-color 0.2s ease;
}

.call-list > li:hover {
    background-color: #fafafa !important;
}

.call-period {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: #333 !important;
    width: 200px;
    flex-shrink: 0;
    letter-spacing: 0.05em;
}

.call-content {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    flex-grow: 1;
}

.call-content .status-label {
    font-size: 0.95rem !important;
    font-weight: bold !important;
    line-height: 1;
}
.call-content .status-label.is-open {
    color: #ED4949 !important;
}
.call-content .status-label.is-closed {
    color: #999 !important;
}

.call-content .doc-link {
    display: inline-flex;
    align-items: center;
    color: #333 !important;
    text-decoration: none !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    transition: color 0.3s ease;
}

.call-content .doc-link::after {
    content: "→";
    margin-left: 8px;
    color: #ED4949;
    transition: transform 0.3s ease;
}

.call-content .doc-link:hover {
    color: #ED4949 !important;
}
.call-content .doc-link:hover::after {
    transform: translateX(5px);
}

.call-content .doc-text {
    color: #999 !important;
    font-size: 0.95rem !important;
}

@media (max-width: 768px) {
    .call-list > li {
        flex-direction: column;
        align-items: flex-start;
        padding: 20px 10px !important;
        gap: 12px;
    }
    .call-period {
        width: 100%;
        font-size: 1rem !important;
    }
    .call-content {
        width: 100%;
        gap: 16px;
    }
}

/* =============================================
   3カラム構成テーブルのバランス調整
   ============================================= */

.table-container.is-narrow {
    max-width: 900px;
    margin: 0 auto 60px auto;
}

.recruiting-table.is-three-col {
    table-layout: fixed;
    width: 100%;
}

.recruiting-table.is-three-col th.col-year,
.recruiting-table.is-three-col td.col-year {
    width: 250px !important;
    white-space: nowrap !important;
}

.recruiting-table.is-three-col th.col-status,
.recruiting-table.is-three-col td.col-status {
    width: 150px !important;
    white-space: nowrap !important;
    font-weight: bold;
}

.recruiting-table.is-three-col th:not(.col-year):not(.col-status),
.recruiting-table.is-three-col td:not(.col-year):not(.col-status) {
    width: auto;
}

.col-status.is-pending { color: #999 !important; }
.col-status.is-pending + td .doc-link {
    color: #ccc !important;
    pointer-events: none !important;
    cursor: default !important;
}
.col-status.is-pending + td .doc-link::after { display: none; }

.col-status.is-open { color: #000 !important; }
.col-status.is-open + td .doc-link {
    color: #333 !important;
    font-weight: bold;
}

.col-status.is-closed { color: #999 !important; }
.col-status.is-closed + td .doc-link { color: #888 !important; }

@media (max-width: 768px) {
    .recruiting-table.is-three-col,
    .recruiting-table.is-three-col thead,
    .recruiting-table.is-three-col tbody,
    .recruiting-table.is-three-col tr,
    .recruiting-table.is-three-col th,
    .recruiting-table.is-three-col td {
        display: block !important;
        width: 100% !important;
    }
    .recruiting-table.is-three-col thead { display: none !important; }
    .recruiting-table.is-three-col td {
        padding: 10px !important;
        border: none !important;
    }
    .recruiting-table.is-three-col td.col-year {
        padding-top: 20px !important;
        color: #ED4949;
    }
    .recruiting-table.is-three-col tr {
        border-bottom: 1px solid #eee !important;
        padding-bottom: 10px;
    }
}

/* =============================================
   5カラム構成テーブルのバランス調整
   ============================================= */

.recruiting-table.is-five-col {
    table-layout: fixed;
    width: 100%;
    min-width: 950px;
}

.recruiting-table.is-five-col .col-year { width: 130px !important; }
.recruiting-table.is-five-col .col-status { width: 120px !important; }

.recruiting-table.is-five-col th:not(.col-year):not(.col-status),
.recruiting-table.is-five-col td:not(.col-year):not(.col-status) {
    width: auto;
}

.call-content.is-pending .doc-link {
    color: #999 !important;
    pointer-events: none !important;
    cursor: default !important;
    text-decoration: none !important;
}
.call-content.is-pending .doc-link::after {
    display: none !important;
}

.call-content.is-open .doc-link {
    color: #333 !important;
    font-weight: bold !important;
}

.call-content.is-closed .doc-link {
    color: #888 !important;
}

.col-status.is-pending { color: #999 !important; }
.col-status.is-open { color: #000 !important; }
.col-status.is-closed { color: #999 !important; }

/* =============================================
   モダンPDFマークの実装
   ============================================= */

.call-content .doc-link.is-pdf::after {
    display: none !important;
}

.call-content .doc-link.is-pdf::before {
    content: "PDF";
    display: inline-block;
    background-color: #ED4949;
    color: #ffffff;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    padding: 3px 5px;
    margin-right: 10px;
    border-radius: 3px;
    vertical-align: middle;
    letter-spacing: 0.02em;
    box-shadow: 0 2px 4px rgba(237, 73, 73, 0.2);
    transition: background-color 0.3s ease;
}

.call-content .doc-link.is-pdf:hover::before {
    background-color: #333;
}

/* ========================================================================= */
/* 火山実務担当者支援事業 レスポンシブ追加対応                               */
/* ========================================================================= */
@media (max-width: 768px) {
    div#seminar_learning {
        min-width: 0 !important;
        width: 100% !important;
        padding: 80px 20px 50px 20px !important;
        box-sizing: border-box;
    }

    img#seminar_learning_logo {
        width: 90% !important;
        max-width: 400px !important;
    }

    div#seminar_learning div#seminar,
    div#seminar_learning div#learning {
        width: 100% !important;
        padding: 30px 20px !important;
        border-radius: 20px !important;
        box-sizing: border-box;
    }

    div#seminar_learning div#seminar img {
        float: none !important;
        display: block !important;
        margin: 0 auto 20px auto !important;
        max-width: 100% !important;
    }
    div#seminar_learning div#seminar p {
        width: 100% !important;
        float: none !important;
        text-align: left !important;
    }

    div#seminar_learning div#plus {
        padding: 30px 0 !important;
    }
    div#seminar_learning div#plus img {
        max-width: 50px !important;
    }

    div#seminar_learning div#learning img {
        float: none !important;
        display: block !important;
        margin: 20px auto !important;
        max-width: 100% !important;
    }
    div#seminar_learning div#learning p#kome {
        width: 100% !important;
        margin-top: 20px !important;
    }

    div#seminar_learning div#learning div.link {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 15px !important;
        margin-top: 30px !important;
    }
    div#seminar_learning div#learning div.link div.waku1,
    div#seminar_learning div#learning div.link div.waku2 {
        float: none !important;
        width: 100% !important;
        max-width: 280px !important;
    }
}

/* ========================================================================= */
/* スマホ向け：ページ全体の文字サイズおよび行間調整                          */
/* ========================================================================= */
@media (max-width: 768px) {
    body, p, li, td, span, a, div {
        font-size: 14px !important;
        line-height: 1.8 !important;
    }

    section#main_middele div#contents h2,
    div#bottom h2,
    div#seminar_learning div#seminar h2,
    div#seminar_learning div#learning h2 {
        font-size: 24px !important;
        line-height: 1.3 !important;
        margin-bottom: 20px !important;
    }
    
    section#main_middele div#contents h2 span,
    div#bottom h2 span,
    div#seminar_learning div#seminar h2 span,
    div#seminar_learning div#learning h2 span {
        font-size: 12px !important;
        margin-top: 5px !important;
        line-height: 1.2 !important;
    }

    div#contents p#explanation,
    div#seminar_learning div#seminar p,
    div#seminar_learning div#learning p {
        font-size: 14px !important;
        padding: 0 10px !important;
    }

    div#seminar_learning div#learning p#kome,
    div#seminar_learning div#learning p#kome span {
        font-size: 12px !important;
        line-height: 1.6 !important;
    }

    div.waku a, div.waku1 a, div.waku2 a {
        font-size: 14px !important;
    }
    
    div#toiawase h1 {
        font-size: 16px !important;
    }
    div#toiawase span#t, div#toiawase span#a {
        font-size: 13px !important;
    }
}

/* ========================================================================= */
/* スマホ向け：新着情報の事業分類タグのサイズ縮小     */
/* ========================================================================= */
@media (max-width: 768px) {
    #whatsnew table tr td span.link1,
    #whatsnew table tr td span.link2,
    #whatsnew table tr td span.link3 {
        width: 120px !important;
        height: auto !important;
        min-height: 24px !important;
        font-size: 6px !important;
        line-height: 1.2 !important;
        padding: 4px 6px !important;
        box-sizing: border-box;
        white-space: normal !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    
    #whatsnew table tr td:nth-of-type(2) {
        width: auto !important;
        padding: 10px 5px !important;
    }
}

/* ========================================================================= */
/* スマホ向け：新着情報テーブルのレスポンシブ化        */
/* ========================================================================= */
@media (max-width: 768px) {
    div#whatsnew {
        width: 100% !important;
        padding: 0 15px !important;
        box-sizing: border-box;
    }
    #whatsnew table {
        min-width: 0 !important;
        width: 100% !important;
    }

    #whatsnew table tbody,
    #whatsnew table tr,
    #whatsnew table td {
        display: block !important;
        box-sizing: border-box;
    }

    #whatsnew table tr {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center;
        padding: 15px 0 !important;
    }

    #whatsnew table tr td:nth-of-type(1) {
        width: auto !important;
        padding: 0 15px 0 0 !important;
        font-weight: bold;
        font-size: 13px !important;
    }

    #whatsnew table tr td:nth-of-type(2) {
        width: auto !important;
        padding: 0 !important;
    }

    #whatsnew table tr td:nth-of-type(3) {
        width: 100% !important;
        padding: 10px 0 0 0 !important;
        line-height: 1.6 !important;
    }

    #whatsnew table tr td span.mark {
        float: left !important;
        margin-right: 5px !important;
    }
}

/* ========================================================================= */
/* トピックス（詳細ページ）向け レスポンシブ＆UI改善                         */
/* ========================================================================= */

div#article ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 30px 0 !important;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

div#article ul li a {
    display: inline-flex;
    align-items: center;
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    padding: 15px 20px;
    border-radius: 8px;
    color: #333 !important;
    text-decoration: none !important;
    font-weight: bold;
    font-size: 15px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.03);
    transition: all 0.3s ease;
    width: 100%;
    max-width: 700px;
    box-sizing: border-box;
}

div#article ul li a:hover {
    border-color: #ED4949;
    box-shadow: 0 4px 12px rgba(237, 73, 73, 0.15);
    color: #ED4949 !important;
    transform: translateY(-2px);
}

div#article ul li a[href$=".pdf"]::before {
    content: "PDF";
    background-color: #ED4949;
    color: #fff;
    font-size: 11px;
    padding: 4px 8px;
    border-radius: 4px;
    margin-right: 15px;
    font-weight: 900;
    letter-spacing: 0.05em;
}

div#article ul li a[href$=".docx"]::before,
div#article ul li a[download]::before {
    content: "WORD";
    background-color: #2b579a;
    color: #fff;
    font-size: 11px;
    padding: 4px 8px;
    border-radius: 4px;
    margin-right: 15px;
    font-weight: 900;
    letter-spacing: 0.05em;
}

@media (max-width: 768px) {
    div#contents div#article {
        width: 100% !important;
        padding: 0 20px !important;
        box-sizing: border-box;
    }
    
    div#contents div#article span#date {
        float: none !important;
        display: inline-block !important;
        margin-bottom: 10px;
    }

    div#contents div#article h1 {
        font-size: 20px !important;
        line-height: 1.4 !important;
        padding: 10px 0 20px 0 !important;
    }

    div#contents div#article p {
        width: 100% !important;
        padding: 0 !important;
    }

    div#article ul li a {
        font-size: 13px !important;
        padding: 12px 15px !important;
    }
}

/* ========================================================================= */
/* 実績報告ページ用 モダンレイアウト            */
/* ========================================================================= */

.report-section-title {
    font-size: 1.4rem;
    color: #333;
    border-left: 5px solid #ED4949;
    padding-left: 15px;
    margin: 0 auto 30px auto;
    max-width: 950px;
    font-weight: bold;
    text-align: left;
}

.core-program-box {
    max-width: 950px;
    margin: 0 auto 30px auto;
    background-color: #fff9f9;
    border: 1px solid #f5c6c6;
    border-radius: 8px;
    padding: 25px;
    text-align: left;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}
.core-program-box h4 {
    color: #ED4949;
    font-size: 1.1rem;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
}
.core-program-box h4::before {
    content: "ℹ";
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 22px; height: 22px;
    background: #ED4949; color: #fff;
    border-radius: 50%; font-size: 14px;
    margin-right: 8px;
}
.core-program-box p {
    font-size: 0.95rem; line-height: 1.6;
    margin-bottom: 15px; padding: 0 !important; color: #444; width: auto !important;
}
.core-program-box ul {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-wrap: wrap; gap: 20px;
}
.core-program-box ul li {
    background: #fff; border: 1px solid #eee; border-radius: 6px;
    padding: 15px; flex: 1; min-width: 280px;
    font-size: 0.95rem; line-height: 1.5; color: #333;
}
.core-program-box ul li strong { color: #A31D1D; font-size: 1.05rem; }

.report-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    border-radius: 8px;
    overflow: hidden;
}
.report-table th {
    background-color: #f8f8f8; color: #555;
    font-weight: bold; padding: 15px; text-align: left;
    border-bottom: 2px solid #ddd; font-size: 0.95rem;
}
.report-table td {
    padding: 20px 15px; border-bottom: 1px solid #eee;
    vertical-align: top; font-size: 0.95rem; line-height: 1.6; text-align: left;
}
.report-table tbody tr:hover { background-color: #fafafa; }

.report-table .col-date { width: 160px; font-weight: bold; color: #333; }
.report-table .col-location { width: 150px; color: #555; }
.report-table .col-guest { width: auto; }

.target-badge {
    display: inline-block; background-color: #6C2323; color: #fff;
    font-size: 11px; padding: 3px 8px; border-radius: 4px;
    margin-bottom: 5px; font-weight: bold; letter-spacing: 0.05em;
}
.target-badge.is-company { background-color: #2b579a; }

.guest-name { font-weight: bold; color: #333; margin-bottom: 5px; }
.guest-title { color: #ED4949; font-weight: 500; }

.report-table.is-elearning .col-theme { width: 100px; font-weight: bold; color: #ED4949; }
.report-table.is-elearning .col-course { width: auto; font-weight: 500; }
.report-table.is-elearning .col-badge { width: 150px; text-align: center; font-size: 0.9rem;}
.report-table.is-elearning th.col-badge { text-align: center; }
.badge-number { font-size: 1.4rem; font-weight: bold; color: #A31D1D; font-family: "Rubik", sans-serif; }

@media (max-width: 768px) {
    .report-section-title { padding: 0 15px; }
    .core-program-box { margin: 0 15px 20px 15px; padding: 20px 15px; }
    
    .report-table, .report-table thead, .report-table tbody, .report-table th, .report-table td, .report-table tr {
        display: block !important; width: 100% !important; box-sizing: border-box;
    }
    .report-table thead { display: none !important; }
    .report-table tr { border-bottom: 2px solid #ddd; margin-bottom: 10px; }
    .report-table td { border-bottom: none; padding: 10px 15px; position: relative; }
    
    .report-table .col-date { font-size: 1.1rem; color: #ED4949; padding-bottom: 0; }
    .report-table .col-location { padding-bottom: 10px; border-bottom: 1px dashed #eee; margin-bottom: 10px; }
    .report-table .col-guest { padding-top: 0; }
    
    .report-table.is-elearning .col-theme { background: #fdf5f5; padding: 10px 15px; }
    .report-table.is-elearning .col-badge { text-align: right; margin-top: 10px; border-top: 1px dashed #eee; padding-top: 15px;}
}

/* ========================================================================= */
/* 講演資料集ページ用 モダンレイアウト調整                       */
/* ========================================================================= */

div#article ul.doc-list li a {
    justify-content: flex-start;
    padding: 20px !important;
}

.doc-info {
    display: flex;
    flex-direction: column;
    text-align: left;
}

.doc-info .doc-title {
    font-size: 1.1rem;
    color: #333;
    margin-bottom: 5px;
    line-height: 1.4;
}

.doc-info .doc-author {
    font-size: 0.85rem;
    color: #666;
    font-weight: normal;
}

.survey-action {
    text-align: center;
    margin: 60px auto 40px auto;
    padding: 40px 20px;
    background-color: #f0ebf8;
    border-radius: 12px;
    border: 1px solid #d1c4e9;
    max-width: 700px;
}

.survey-action p {
    font-weight: bold;
    color: #202124 !important;
    margin-bottom: 25px !important;
    font-size: 1.05rem !important;
    padding: 0 !important;
}

.btn-survey {
    display: inline-block;
    background-color: #673ab7;
    color: #ffffff !important;
    font-weight: bold;
    padding: 12px 32px;
    border-radius: 4px;
    text-decoration: none !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
    transition: all 0.3s cubic-bezier(.25,.8,.25,1);
    font-size: 1.1rem;
    line-height: 1.4;
}

.btn-survey span {
    display: block;
    font-size: 0.8rem;
    font-weight: normal;
    opacity: 0.9;
    margin-top: 4px;
}

.btn-survey:hover {
    background-color: #512da8;
    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
    transform: translateY(-1px);
    text-decoration: none !important;
}

@media (max-width: 768px) {
    .doc-info .doc-title { font-size: 1rem; }
    .btn-survey { font-size: 1.05rem; padding: 12px 25px; width: 100%; box-sizing: border-box;}
}

/* ========================================================================= */
/* 講演資料リストのボタン横幅を美しく統一する                  */
/* ========================================================================= */

div#article ul.doc-list {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
}

div#article ul.doc-list li {
    width: 100% !important;
    max-width: 650px !important;
    list-style: none !important;
}

div#article ul.doc-list li a {
    width: 100% !important; 
    box-sizing: border-box !important;
    display: flex !important;
}