@charset "UTF-8";

body{
    background:#fff;
    color:#333;
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    width:100%;
    margin: 0 auto;
    padding:0;
}

@font-face {
    font-family: "typos";
    src: url("/css/font/UDTypos515Std-Regular.otf") format("truetype"); 
    font-display: swap; 
}
@font-face {
    font-family: "Bask";
    src: url("/css/font/Baskerville.ttc") format("truetype"); 
    font-display: swap; 
}

.font-sans-serif{
    font-family: "Noto Sans JP", sans-serif;
}
.font-typos {
    font-family: "typos",sans-serif;
}
.font-Bask {
    font-family: "Bask",serif;
}

img{
    width:100%;
    pointer-events: none;
}

a{
    text-decoration:none;
}

header{
    width: 100%;
    margin: 0 auto;
    padding: 10px 0;
    position: fixed;
    top:0;
    z-index: 999;
}
header a{
    display: block;
}
header.bg{
    background: rgb(117,157,183,0.9);
}
header .headerWrap{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    max-width:1300px;
    width:95%;
    margin: 0 auto;
    padding: 0.5rem 0;
    position: relative;
}
header .headerWrap h1{
    width: 10%;
    max-width:180px;
}
header .headerWrap .pc-menu ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
}
header .headerWrap .pc-menu ul li a{
    color: #060672;
    display: block;
    text-align: center;
    padding: 0 12px;
    overflow: hidden;
    position: relative;
}
header .headerWrap .pc-menu ul li a span{
    font-size: 10px;
    display: block;
}
header .headerWrap .pc-menu ul li a:before{
    content:"";
    background: rgba(255,255,255,0.5);
    border-radius: 100px;
    width: 60px;
    height: 60px;
    position: absolute;
    top: 0;
    left: calc(100% - 40px);
    opacity: 0;
    transform: scale(0) translate(-50%, 0);
    transition: all ease 0.8s;
    z-index: -1;
}
header .headerWrap .pc-menu ul li a:hover:before{
    opacity: 1;
    transform: scale(1) translate(-50%,0);
}

.content{
    position:relative;
    overflow: hidden;
}

footer{
    background: #759DB7;
    color: #fff;
    width:100%;
    margin: -1px auto 0;
    padding: 8rem 0 4rem;
}
footer .copy{
    font-size: 0.7em;
    text-align: center;
    width: 100%;
    padding: 0.5rem 0;
}

footer #pagetop{
    background:rgb(117,157,183,0.8);
    color: #fff;
    font-size: 0.7em;
    font-family: "typos";
    width: 60px;
    height: 60px;
    position: fixed;
    bottom: 1rem;
    right: 2rem;
    z-index: 998;
}
footer #pagetop a{
    display:flex;
}
footer #pagetop a span{
    width: 100%;
    margin: 0;
    padding: 0.4rem 0.6rem 0;
}
footer #pagetop a i{
    background: rgba(255, 255, 255, 0.3);
    width: 80%;
    display: block;
    height: 7px;
    position: absolute;
    bottom: 0;
    right: 0;
}
footer #pagetop a i:before,
footer #pagetop a i:after{
    content:"";
    background: rgba(255, 255, 255, 0.3);
    width: 60%;
    display: block;
    height: 7px;
    position: absolute;
    bottom: 12px;
    right: 0;
}
footer #pagetop a i:after{
    bottom: 24px;
    width: 40%;
}

#contact {
    background: #759DB7;
    clip-path: polygon(0 40%, 100% 0, 100% 100%, 0% 100%);
    color: #fff;
    text-align: center;
    margin: -20rem auto 0;
    padding: 15rem 0 0;
}

#contact h2 {
    font-size: 6.2rem;
    margin: 0 0 2rem;
}

#contact h2 span {
    display: block;
    font-size: 1.0rem;
}

#contact h3 {
    font-weight: 300;
    margin: 0 0 4rem;
}

/*LINK*/
section .link {
    font-family: "Noto Sans JP", sans-serif;
    margin: 0 auto;
    padding: 0;
    max-width: 420px;
    width: 90%;
}

#service .serviceBox02 .link {
    width: 30%;
    position: absolute;
    bottom: 10rem;
    right: 0;
}

section .link a {
    background: #060672;
    color: #fff;
    display: block;
    text-align: center;
    padding: 1rem 0;
    width: 100%;
    position: relative;
    overflow: hidden;
}

#service .serviceBox02 .link a {
    text-align: left;
    padding: 1rem 0 1rem 2rem;
    width: 70%;
}

#topics .link a {
    padding: 0 0;
}

#contact .link a {
    display: block;
    background: #fff;
    color: #060672;
    padding: 1.0rem 0;
}

section .link a:before,
section .link a:after {
    content: "";
    background: #fff;
    height: 1px;
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
    transition: all ease 0.5s;
}

section .link a:before {
    left: 0;
    opacity: 1;
}

section .link a:hover:before {
    left: -50%;
    opacity: 0;
}

section .link a:after {
    right: 0;
    opacity: 1;
}

section .link a:hover:after {
    right: -50%;
    opacity: 0;
}

#service .serviceBox02 .link a:before {
    display: none;
}

#service .serviceBox02 .link a:after {
    width: 60%;
}

.content a:before,
.content a:after {
    width: 40%;
}

#contact .link a:before,
#contact .link a:after {
    background: #060672;
    width: 35%;
}

@media all and (min-width:769px){
    .sp-disp{
        display:none;
    }
    footer #float{
        display:none!important;
    }
}
@media all and (max-width:768px){
    .pc-disp{
        display:none;
    }

    header{
        position: absolute;
    }

    header .headerWrap h1{
        width: 36%;
        max-width: 180px;
    }

    footer{
        padding: 8% 0 calc(8% + 60px);
    }
    footer #pagetop{
        width: 60px;
        right: 0;
        bottom: 0;
    }
    footer #float{
        background:#117da3;
        color: #fff;
        width: 100%;
        height: 60px;
        position: fixed;
        bottom: 0;
        left: 0;
        z-index: 997;
    }
    footer ul{
        display:flex;
        width: calc(100% - 60px);
        margin: 0 auto 0 0;
    }
    footer ul li{
        display: flex;
        justify-content: center;
    }
    footer ul li.float01{
        width:80%;
    }
    footer ul li.float02{
        width:20%;
    }
    footer ul li.float01 a{
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
        width:100%;
        height:100%;
        position:relative;
    }
    footer ul li.float01 a:before,
    footer ul li.float01 a:after{
        content: "";
        background: #fff;
        width:30%;
        height: 1px;
        position: absolute;
        top: 50%;
        transform: translate(0, -50%);
        transition: all ease 0.5s;
    }
    footer ul li.float01 a:before {
        left: 0;
    }

    footer ul li.float01 a:after {
        right: 0;
    }

    #contact{
        clip-path: polygon(0 15%, 100% 0, 100% 100%, 0% 100%);
        margin: -10rem auto 0;
        padding: 8rem 0 0;
    }
    #contact h2{
        font-size: 4.2rem;
        margin: 0 0 1rem;  
    }
    #contact h3{
        margin: 0 auto 4rem;
        width: 80%;
    }
}