@charset "UTF-8";

body{
    width: 100%;
    position: relative;
    background: #ACCBDC;
    background: linear-gradient(90deg, rgba(172, 203, 220, 1) 0%, rgba(255, 255, 255, 1) 100%);
}
header .headerWrap{
    max-width: 1300px;
}
header.bg{
    background: rgb(117, 157, 183, 0.9);
}
header.bg .headerWrap .pc-menu ul li a{
    color: #fff;
}
.c-nav-button{
    color: #759DB7;
}
.dot-grid span{
    background-color: #759DB7;
}

footer .c-nav-button{
    color: #fff;
}
footer .dot-grid span{
    background-color: #fff;
}
main {
    margin: 0 auto 5%;
    padding: 120px 0 0;
    width: 100%;
}
main .bread{
    background: #fff;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 100%);
    margin: 0 0 3%;
    padding: 0.5% 0;
}
main .bread dl{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    max-width: 1300px;
    width: 95%;
    margin: 0 auto;
}
main .bread dl a{
    padding: 0 24px 0 0;
    position: relative;
}
main .bread dl a:after{
    content: "";
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    width: 8px;
    height: 8px;
    position: absolute;
    top: 50%;
    right: 12px;
    transform: rotate(45deg) translate(0, -50%);
}
main .mainWrap{
    max-width: 1300px;
    width: 94%;
    margin: 0 auto;
    padding: 0 3%;
    position: relative;
}
main .mainWrap img{
    width: 20%;
    position: absolute;
    bottom: -20%;
    right: 0;
}
main .mainWrap h2{
    color: #060672;
    font-weight: 300;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    position: relative;
    margin: 0 auto;
    padding: 3% 3%;
}
main .mainWrap h2 b{
    font-size:clamp(4.375rem, 3.678rem + 3.18vw, 7.5rem); /*70-120/320-1920*/
    padding: 0 20px 0 0;
}
main .mainWrap h2 span{
    font-size:clamp(1.25rem, 1.125rem + 0.63vw, 1.875rem); /*20-30/320-1920*/
    height: fit-content;
}
main .mainWrap h2:before{
    content: "";
    background: #060672;
    width:1px;
    height: 130%;
    position: absolute;
    top:0;
    left:0;
}
main .mainWrap h2:after{
    content: "";
    background: #060672;
    width:100%;
    height: 1px;
    position: absolute;
    bottom:5%;
    left:0;
}
main .mainWrap p{
    padding: 1% 3% 0;
}
section p,
section dl,
section ul,
section a,
section span,
section details,
section summary,
section input{
    font-family: "Noto Sans JP", sans-serif;
}
section.content{
    background: #fff;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.1) 100%);
    max-width: 1300px;
    width: 90%;
    position: relative;
    margin: 5% auto;
    padding: 3%;
}
section.content .inner{
    width: 100%;
    margin: 0 auto;
    padding: 0;
}
section.content .inner h3{
    color: #060672;
    font-size: 27px;
    position: relative;
    width: 100%;
    margin: 0 auto 5%;
}
section.content .inner h3:before{
    content: "";
    background: #060672;
    height: 1px;
    width: 70%;
    position: absolute;
    top:50%;
    right: 0;
}
section.content .inner h3.long:before{
    width: 30%;
}
.recruit #message.content .inner h3:before,
.entry #message.content .inner h3:before{
    width: 50%;
}
section.content .inner h3:after{
    content: "";
    background: #060672;
    width: 20px;
    height: 20px;
    position: absolute;
    top: 42%;
    right:0;
    transform: rotate(45deg) translate(0,-50%);
}
section.content .inner dl{
    display: flex;
    flex-wrap: wrap;
    width: 80%;
    margin: 0 auto 5%;
}
.recruit section.content .inner dl{
    line-height: 1.6em;
}
section.content .inner dl dt{
    border-bottom: 1px solid #333;
    width: 25%;
    margin: 0 0 2%;
    padding: 0 0 10px;
}
section.content .inner dl dd{
    border-bottom: 1px solid #333;
    width: 75%;
    margin: 0 0 2%;
    padding: 0 0 10px;
}
.recruit section.content .inner dl dt,
.recruit section.content .inner dl dd{
    padding: 0 0 20px;
}
section.content .inner iframe{
    display: block;
    height: 420px;
    width: 75%;
    margin: 0 auto;
}
section.content .inner p.text{
    line-height: 1.6em;
    margin: 0 auto 3%;
}
#summary.content .inner p.text{
    width: 80%;
}
section.content .inner p.name{
    line-height: 1.6em;
    text-align: right;
}
#summary.content .inner a,
#message.content .inner a.totop{
    background: #f7931e;
    color: #fff;
    font-size: 1.2em;
    text-align: center;
    display: block;
    max-width: 500px;
    width: 90%;
    margin: 6% auto 3%;
    padding: 1% 0;
}
#summary.content .inner a:hover,
#message.content .inner a.totop:hover{
    background: #f47a21;
}
#contact{
    clip-path: unset;
    margin: 0 auto 0;
    padding: 7rem 0 0;
}

#topics .topicsInner {
    margin: 0 0 4rem;
}

#topics ul {
    border-bottom: 1px solid #333;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 0 0 1rem;
}

#topics ul li.newsList_date {
    border-top: 1px solid #333;
    border-right: 1px solid #333;
    border-left: 1px solid #333;
    text-align: center;
    width: 10%;
    padding: 10px;
    transition: all ease 0.5s;
}

#topics ul li.newsList_text {
    width: 80%;
    padding: 0 20px;
    flex-grow: 1;
}
#topics ul:has(li>span.newMark) li.newsList_text{
    width: calc(80% - 50px);
}

#topics ul:has(li>p>a):hover li.newsList_date {
    background: rgba(51, 51, 51, 0.6);
    color: #fff;
}
#topics ul li.newsList_text p.title{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
#topics ul li.newsList_text p.title span.newMark,
#topics ul li.newsList_mark span.newMark{
    background: #720606;
    color: #fff;
    font-size: 12px;
    display: flex;
    align-items: center;
    width: 40px;
    height: 24px;
    margin: 0 10px 0 0;
    padding: 0 5px;
}
#topics ul li.newsList_mark span.newMark{
    margin: 0 0 0 10px;
}
#topics ul li.newsList_text a {
    display: block;
    width: 100%;
    position: relative;
}
#topics ul li.newsList_text p.title:has(span.newMark) a{
    width: calc(100% - 50px);
}

#topics ul li.newsList_text a:after {
    content: "";
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    width: 10px;
    height: 10px;
    position: absolute;
    top: 50%;
    right: 0;
    transform: rotate(45deg) translate(0, -50%);
    transition: all ease 0.5s;
}

#topics ul:hover li.newsList_text a:after {
    border-top: 3px solid #333;
    border-right: 3px solid #333;
    right: -5px;
}
#topics #detail{
    line-height: 2.0em;
    margin: 5% auto;
    width: 95%;
}
#topics .link{
    max-width: 240px;
}
#topics .link a{
    padding: 10px 0;
}
footer{
    padding: 4rem 0 4rem;
}
footer figure{
    max-width: 180px;
    width: 90%;
    margin: 0 auto 3%;
}
footer figure a{
    display: block;
}
@media all and (min-width: 769px) and (max-width: 1200px) {
#topics ul li.newsList_date{
    font-size: 0.9em;
    width: 15%;
}
}
@media screen and (max-width:768px) {
main{
    overflow: hidden;
    margin: 0 auto 12%;
}
main .mainWrap{
    padding: 0 3% 5%;
}
main .mainWrap h2 b{
    width: 100%;
    margin: 0 0 0;
}
main .mainWrap h2 span{
    margin: 0 0 10px;
}
main .mainWrap p{
    width: 78%;
}
main .mainWrap img{
    width: 25%;
    bottom: 0;
}
main .mainWrap:has(p) img{
    bottom: 10%;
}
section.content{
    overflow: hidden;
    padding: 7% 5%;
}
section.content .inner h3{
    font-size: 24px;
    margin: 0 auto 10%;
    padding: 0 0 3%;
}
section.content .inner h3.long:before{
    top: 80%;
}
section.content .inner h3.long:after{
    top: 77%;
}
section.content .inner dl{
    width: 95%;
    margin: 0 auto 7%;
}
section.content .inner iframe{
    height: 320px;
    width: 95%;
}
.recruit #message.content .inner h3:before,
.entry #message.content .inner h3:before{
    top: 100%;
}
.recruit #message.content .inner h3:after,
.entry #message.content .inner h3:after{
    top:97%;
}
.recruit #summary.content .inner h3:before{
    width: 50%;
}
#summary.content .inner p.text{
    width: 100%;
}
#summary.content .inner a,
#message.content .inner a.totop{
    padding: 4% 0;
    margin: 12% auto 3%;
}
#contact{
    padding: 3rem 0 0;
}
#topics ul {
    font-size: 0.8em;
}
#topics ul li.newsList_date{
    border-bottom: 1px solid #333;
    width: 25%;
}
#topics ul li.newsList_text{
    line-height: 1.6em;
    font-size: 16px;
    width: 100%;
    padding: 3% 3% 3%;
}
#topics ul:has(li>span.newMark) li.newsList_text{
    width: 100%;
}
#topics .topicsWrap .contentWrap h2{
    font-size: 3.6rem;
}
#topics .topicsWrap:before{
    background-size: 160%;
    background-position: top 0rem left -6rem;
    background-repeat: no-repeat;
    min-height: 240px;
}
#topics ul li.newsList_text a{
    padding: 0 1rem 0.5rem 0;
    line-height: 1.4em;
}
#topics #detail{
    font-size: 16px;
    margin: 5% auto 8%;
}
}