@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');


/* @font-face {
  font-family: "hiragino";
  src:
    local("hiragino"),
    url("./fonts/hiragino_w6.otf") format("opentype"),
    url("./fonts/hiragino_w7.otf") format("opentype"),
    url("./fonts/hiragino_w8.otf") format("opentype"),
    url("./fonts/hiragino_w9.otf") format("opentype"),
} */

body{
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 300;
    font-style: normal;
    font-size:16px;
    background:#fff;
    color:#2d2d2d;
    letter-spacing:.05em;
}

*{
    margin:0;
    padding:0;
    list-style:none;
    font-style:normal;
    font-weight:400;
    text-decoration:none;
    box-sizing:border-box;
    line-height:1.6em;
}

a{
    transition:.3s;
}

a:hover{
    opacity:.7;
}


img{
    max-width:100%;
    pointer-events:none;
}

.sp{
    display:none;
}

@media screen and (max-width:961px){
    .pc{
        display:none;
    }

    .sp{
        display:block;
    }

    br.sp{
        display:inline;
    }
}

section{
    padding:5em 0;
}

.inr{
    width:min(1200px, 90%);
    margin:0 auto;
    position:relative;
}

.mainvisual{
    background:#E94830;
    position:relative;
    text-align:center;
}

.mainvisual .inr{
    z-index:1;
    width:100%;
}

.mainvisual:after{
    content:'';
    position:absolute;
    background:url(../img/bg1.jpg) center bottom no-repeat;
    background-size:100%;
    width:100%;
    height:100%;
    bottom:0;
    right:0;
}

.mainvisual .bg_logo{
    width:min(800px, 55%);
    margin:0 auto;
}

.mainvisual .inr h2{
    position:absolute;
    transform:translate(-50%, 0);
    top:25vh;
    left:50%;
    width:100%;
    font-weight:700;
    line-height:1.3em;
    font-size:min(5em, 6vw);
}

.mainvisual h2 span{
    display:block;
    margin-top:1em;
    font-size:.25em;
}

.mainvisual .comp_cap{
    margin-top:3em;
    color:#fff;
}



.btnara{
    text-align:center;
    margin-top:3em;
}

.btn,
.btnara .btn{
    padding:1em 2em;
    width:min(auto, 100%);
    margin:0 auto;
    background:#000;
    color:#fff;
    border-radius:50rem;
    display:inline-block;
    min-width:300px;
}

#global-nav ul li .btn{
    min-width:none;
}

.btnara .btn.orange{
    background:#E94830;
}

.btnara .btn.white{
    background:#fff;
    color:#2d2d2d;
}

.btnara .btn.news{
    background:#fff;
    color:#2D2D2D;
    border:solid 1px;
}

.btnara .more{
    color:#fff;
    display:flex;
    align-items:center;
    justify-content: center;
}

.btnara .more:after{
    content:'';
    width:1.5em;
    height:1.5em;
    background:url(/img/arrow_more.svg) center center no-repeat;
    background-size:contain;
    display:inline-block;
    margin-left:.5em;
}

.caption{
    background:#2D2D2D;
    color:#E94830;
    padding:10em 0;
}

.caption p{
    line-height:2em;
    /* font-size:1.5em; */
    width:min(850px, 100%);
    margin:0 auto;
}

.service{
    background:#2D2D2D;
    color:#fff;
    position:relative;
    padding:5em 0 10em;
}

.service:before{
    content:'';
    width:100%;
    height:50%;
    background:linear-gradient(#2D2D2D, transparent);
    position:absolute;
    top:0;
    right:0;
    z-index:1;
}

.service:after{
    content:'';
    width:100%;
    height: 100%;
    background:url(../img/bg2.jpg) center bottom no-repeat;
    background-size:100%;
    position:absolute;
    bottom:0;
    right:0;
    z-index:0;
}

.service .inr{
    z-index:1;
}

h3{
    text-align:center;
}

h3 strong{
    opacity:.2;
    font-size:3em;
    font-weight:900;
    line-height:1em;
}

h3 span{
    display:block;
    font-size:.8em;
}

.service p.cap{
    text-align:center;
    margin:1em 0;
}

.service p.cap {
    font-size:2.5em;
    font-weight:700;
}

.service p.cap span{
    font-size:.5em;
    display:block;
}

.service .service_list{
    margin:10em auto 0;
    width: min(950px, 100%);
}

.service .service_list ul{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
}

.service .service_list ul li{
    width:calc(100% / 3 - 1.5em);
    padding:0 1.5em;
    text-align:center;
    margin-bottom:5em;
}

.service .service_list ul li figure{
    background:#d9d9d915;
    width:80%;
    padding-top:80%;
    position:relative;
    border-radius:50rem;
    margin: 0 auto;
}

.service .service_list ul li figure img{
    position:absolute;
    transform:translate(-50%, -50%);
    top:50%;
    left:50%;
    width:70%;
}

.service .service_list ul li h4{
    padding:1em 0;
    border-bottom:solid 1px #E94830;
    
}

.service .service_list ul li strong{
    display:block;
    padding:1em 0;
    font-size:.9em;
}

.service .service_list ul li > p{
    font-size:.75em;
}

.news{
    background:#2D2D2DF2;
    color:#fff;
}

.news .news_list {
    margin-top:3em;
}

.news .news_list ul{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
}

.news .news_list ul:after{
    content:'';
    width:calc(100% / 3 - 1.5em);
}

.news .news_list ul li{
    width:calc(100% / 3 - 1.5em);
    margin-bottom:2em;
}

.news .news_list ul li .thumb{
    width:100%;
    padding-top:66.6%;
    position:relative;
    border-radius:.5em;
    overflow:hidden;
}

.news .news_list ul li .thumb img{
    width:100%;
    height:100%;
    position:absolute;
    transform:translate(-50%, -50%);
    top:50%;
    left:50%;
    object-fit:cover;
}

.news .news_list ul li .date{
    font-size:.8em;
    color:#979797;
    margin:1em 0;
}

.news .btnara{
    margin-top:7em;
}

.campany{
    background:#EBEEF3;
    padding:10em 0;
}

.flxblc{
    display:flex;
    text-align:left;
    justify-content: space-between;
}

.flxblc .txtara {
    width:40%;
}

.flxblc .txtara h3{
    text-align:left;
}

.flxblc .txtara p{
    padding-right:1em;
}

.flxblc dl{
    width:60%;
    display:flex;
    flex-wrap:wrap;
}

.flxblc dl dt{
    width:5em;
    margin-bottom:1em;
    font-weight:600;
}

.flxblc dl dd{
    width:calc(100% - 5em);
    margin-bottom:1em;
    padding-left:1em;
    line-height:1.8em;
}

.flxblc dl dd:last-child{
    width:100%;
    margin-top:2em;
}

.flxblc dl dd:last-child strong{
    font-weight:600;
    display:block;
}

.flxblc .mapara{
    width:60%;
}

.access{
    background:#fff;
    padding:10em 0;
}

.access .mapara .mapinr{
    width:100%;
    padding-top:75%;
    position:relative;
}

.access .mapara .mapinr iframe{
    position:absolute;
    width:100%;
    height:100%;
    top:0;
    right:0;
}

.flxblc .txtara p{
    margin-top:3em;
}

.contact{
    padding:10em 0;
    background:url(../img/bg3.jpg) center center no-repeat;
    background-size:cover;
    text-align:center;
    color:#fff;
}

.contact p{
    font-weight:700;
}

.contact strong{
    display:block;
    margin:1em 0;
    font-size:1.5em;
    font-weight:700;
}

.contact .btnara a{
    margin:0 .5em;
}

footer{
    background:#2D2D2D;
    color:#fff;
    padding:3em 1.5em;
}

footer .foot_logo{
    margin-bottom:3em;
}

footer .foot_menu ul{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:end;
}

footer .foot_menu ul > li{
    margin:0 .5em;
    display:flex;
    align-items:center;
    font-size:.8em;
}

footer .foot_menu ul > li:nth-child(n + 2){
    margin-left:auto;
}

footer .foot_menu ul > li.hd{
    margin-left:0;
}

footer .foot_menu ul > li img{
    margin-right:.5em;
}

footer .foot_menu ul > li ol{
    display:flex;
    align-items:center;
}

footer .foot_menu ul > li ol li{
    margin:0 1.5em;
}

footer .foot_menu ul > li ol li:last-child{
    margin:0 0 0 1.5em;
}

footer a{
    color:#fff;
}

footer .foot_menu ul > li.sp{
    display:none;
}

@media screen and (max-width:961px){
    .mainvisual .inr{
        width:90%;
    }
    .mainvisual .inr h2{
        position:static;
        margin-top:2em;
        transform:translate(0);
        text-align:left;
    }

    .mainvisual h2 span{
        font-size:.6em;
        font-weight:600;
    }


    h3{
        text-align:left;
    }

    .service p.cap{
        font-size:1.5em;
        text-align:left;
    }

    .service p.cap span{
        font-size:.7em;
        font-weight:600;
    }

    .service .service_list ul li{
        width:100%;
        position:relative;
        padding-top:40%;
        text-align:left;
    }

    .service .service_list ul li .thumb{
        position:absolute;
        top:0;
        right:0;
        width:50%;
        padding-top:50%;
    }

    .service .service_list ul li h4{
        width:50%;
    }

    .service:after {
        content: '';
        width: 100%;
        height: 100%;
        background: url(../img/bg2.jpg) center bottom no-repeat;
        background-size: cover;
        position: absolute;
        bottom: 0;
        right: 0;
        z-index: 0;
    }

    .news .news_list ul li{
        width:100%;
        margin-bottom:2em;
    }

    .news .news_list ul li .date{
        margin:1em 0 .5em;
    }

    .flxblc{
        flex-wrap:wrap;
    }

    .flxblc .txtara,
    .flxblc dl,
    .flxblc .mapara{
        width:100%;
    }

    .flxblc .txtara{
        margin-bottom:5em;
    }

    .contact p{
        line-height:1.8em;
    }

    .contact .btnara .btn{
        margin-bottom:1em;
    }

    footer .foot_menu ul{
        flex-wrap:wrap;
        flex-direction:column-reverse;
    }

    footer .foot_menu ul > li{
        width:100%;
        flex-wrap:wrap;
    }

    footer .foot_menu ul > li.sp{
        display:flex;
    }

    footer{
        padding:3em 1em;
    }

    footer .foot_menu ul > li:nth-child(2){
        margin-bottom:2.5em;
    }

    footer .foot_menu ul > li img{
        max-width:40%;
        margin-bottom:1em;
        display:block;
    }

    footer .foot_menu ul > li ol{
        justify-content:space-between;
        margin:0 auto;
        width:95%;
    }

    footer .foot_menu ul > li ol li{
        margin:0;
    }

    footer .foot_menu ul > li ol li img{
        max-width:100%;
    }
}

body:not(.page--home) h3{
    text-align:left;
}

body:not(.page--home) section:nth-of-type(1){
    margin-top:74px;
}

body:not(.page--home) section.news{
    background:#fff;
    color:#2D2D2D;
    padding:5em 0;
}

body:not(.page--home) section.news a{
    color:#2d2d2d;
}

body:not(.page--home) section.news .category{
    margin-top:2em;
}

body:not(.page--home) section.news .category ul {
    display:flex;
    flex-wrap:wrap;
}

body:not(.page--home) section.news .category ul li{
    margin:0 .25em;
}

body:not(.page--home) section.news .category ul li:nth-child(1){
    margin:0 .5em 0 0;
}

body:not(.page--home) section.news .category ul li a{
    padding:.5em 1.5em;
    border-radius:50rem;
    background: #2d2d2d;
    color:#fff;
    font-size:.8em;
    display:inline-block;
}

body:not(.page--home) section.news .titara{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:center;
    margin-top:1em;
}

body:not(.page--home) section.news .titara .cat,
body:not(.page--home) section.news .titara .date{
    display:inline-block;
}

body:not(.page--home) section.news .titara .cat{
    background:#000;
    color:#fff;
    border-radius:50rem;
    padding:.5em 1.5em;
    font-size:.7em;
}

.page--information.detail section.news .titara{
    justify-content:left;
    margin-bottom:2em;
}

.page--information.detail section.news .titara p:nth-child(-n + 2){
    margin-right:.5em;
    font-size:.8em;
}

.page--information.detail section.news .titara p.tit{
    font-size:1.7em;
    font-weight:800;
    margin-top:.5em;
}

.page--information.detail section.news .btnara:has(.prev){
    margin:2em 0 5em;
    text-align:left;
    color:inherit;
}

.page--information.detail section.news .btnara .prev{
    color:#2D2D2D;
    margin-right:.5em;
    display:flex;
    align-items:center;
}

.page--information.detail section.news .btnara .prev:before{
    content:'';
    margin-right:.5em;
    width:1.5em;
    height:1.5em;
    background:url(/img/arrow_prev.svg);
    background-size:contain;
    display:inline-block;
}

.page--support h4{
    font-size:1.5em;
    margin-bottom:2em;
}

.page--support div > p.sign{
    text-align:right;
    margin-top:3em;
}

.page--support .blc{
    margin-bottom:5em;
}

@media screen and (max-width:961px){
    body:not(.page--home) section.news .category ul li{
        margin-bottom:.5em;
    }
}