@charset "UTF-8";
/* CSS Document */

:root{
    font-size:62.5%;
}
html {
    font-size:62.5%;
}
body{
	font-size:16px;
	color:#000000;
    font-family:"Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-style: normal;
	margin:0;
	position: relative;
}
h1,h2,h3,h4,h5,h6,p,li,th,td,dt,dd,a,span,div{  
    line-height:1.5;
    font-weight: 500;
}
a{
	color:#000000;
	text-decoration:none;
    transition: 0.3s;
}
a:hover{
	opacity:0.5;
	filter:alpha(opacity=50);
	-ms-filter: "alpha( opacity=50 )";
}
img {
	border: none;
	vertical-align: bottom;
    max-width: 100%;
	height: auto;
}
a img { 
	border: none;
}
a.nolink{
    pointer-events: none;
}
ul {
	list-style-type: none;
}
table{
	border-collapse: collapse;
}
.clearfix:after {
	content: "";
	display: block;
	overflow: hidden;
	clear: both;
}
.flexBox{
    display: flex;
}
.sp{
	display:none !important;
}
.spacer{
    width:100%;
}
.center{
    text-align: center;
}
.contentWidth{
    width:92%;
	max-width: 1200px;
	margin: auto auto auto auto;
}

h2.style001{
    font-size:40px;
    font-weight: bold;
    margin-bottom: 50px;
}
h2.style001::before{
    content: attr(data-title)"";
    font-size:30px;
    font-weight: bold;
    color:#BEC276;
    display: block;
}
@media (max-width: 768px) {
    body{
        font-size:14px;
    }
    .pc{
        display:none !important;
    }
    .sp{
        display:block !important;
    }
    .contentWidth{
        width:calc(100% - 40px);
    }
    h2.style001{
        font-size:20px;
        margin-bottom: 30px;
    }
    h2.style001::before{
        font-size:14px;
    }
}

/*--------------------------------------
    header
--------------------------------------*/

header{
    width:100%;
    height:100px;
    display: flex;
    align-items: center;
    position: fixed;
    top:0;
    left:0;
    right:0;
    bottom:auto;
    z-index: 9999;
    background: #FFFFFF;
}
header h1{
    width:350px;
    margin-left: 15px;
}
header .linkArea{
    display: flex;
    gap:35px;
    margin-left: auto;
}
header .linkArea .gNav{
    display: flex;
    align-items: center;
    gap:15px;
}
header .linkArea .gNav li{
    display: flex;
    justify-content: center;
    align-items: center;
    height:100%;
}
header .linkArea .gNav li a,
header .linkArea .gNav li span{
    font-size:18px;
    cursor: pointer;
}
header .linkArea .gNav li.parent span::after{
    content: "+";
    color:#BEC276;
    font-weight: bold;
}
header .linkArea .gNav li span + .child{
    padding:40px 0;
    position: fixed;
    top:100px;
    left:0;
    right:0;
    bottom:auto;
    transform: translate(0,50px);
    opacity: 0;
    pointer-events: none;
    transition: 0.3s;
    background: #FFF6F8;
}
header .linkArea .gNav li:hover span + .child{
    transform: translate(0,0);
    opacity: 1;
    pointer-events:fill;
}
header .linkArea .gNav li span + .child .childinner{
    background: #FFFFFF;
    border-radius: 20px;
    width:1200px;
    margin: 0 auto;
    display: flex;
    gap:40px;
    justify-content: center;
    box-sizing: border-box;
    padding: 30px 50px 25px 50px;
}
header .linkArea .gNav li span + .child .childinner a{
    max-width:245px;
}
header .linkArea .gNav li span + .child .childinner a p{
    font-size:15px;
    margin-top: 15px;
}
header .linkArea .gNav li span + .child .childinner a p.pic{
    position: relative;
    width:100%;
    height:auto;
    aspect-ratio:29 / 19;
}
header .linkArea .gNav li span + .child .childinner a p.pic img{
    width:100%;
    height:100%;
    object-fit: cover;
}
header .linkArea .gNav li span + .child .childinner a.nolink p.pic::after{
    content: "休止中";
    width:100%;
    height:100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgba(0,0,0,0.3);
    color:#FFFFFF;
    position: absolute;
    top:0;
    left:0;
    right:0;
    bottom:0;
    z-index: 60;
    font-size:18px;
    font-weight: bold;
}
header .linkArea .gNav li span + .child .childinner a p.text::before{
    content: "-";
    margin-right: 5px;
}
header .linkArea .btnArea{
    display: flex;
    width:361px;
    gap:1px;
}
header .linkArea .btnArea a{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width:180px;
    height:100px;
    font-size:20px;
    color:#FFFFFF;
}
header .linkArea .btnArea a:first-child{
    background: #CA455A;
}
header .linkArea .btnArea a:first-child::before{
    content: "";
    width:40px;
    height:40px;
    display: block;
    background: url(../images/icon_header_001.png) no-repeat center center / auto;
}
header .linkArea .btnArea a:last-child{
    background: #5C6F24;
}
header .linkArea .btnArea a:last-child::before{
    content: "";
    width:40px;
    height:40px;
    display: block;
    background: url(../images/icon_header_002.png) no-repeat center center / auto;
}
@media (max-width: 768px) {
    header{
        height:50px;
        position: fixed;
    }
    header h1{
        width:200px;
        margin-left: 10px;
    }
    header .linkArea{
        display: none;
    }
    header .spbtn{
        position: absolute;
        top:0;
        left:auto;
        right:0;
        bottom:0;
        margin: auto;
        width: 50px;
        height: 50px;
        transition: 0.3s;
        z-index: 10000;
        background: #CA455A;
    }
    header .spbtn,
    header .spbtn span {
        display: inline-block;
        -webkit-transition: all 0.3s; 
        -moz-transition: all 0.3s; 
        -o-transition: all 0.3s; 
        transition: all 0.3s;
        box-sizing: border-box;
    }
    header .spbtn span {
        position: absolute;
        left: 0;
        right:0;
        margin: auto;
        width: 24px;
        height: 2px;
        background-color: #FFFFFF;
        transition: 0.3s;
    }
    header .spbtn span:nth-of-type(1) {
        top: 17px;
    }
    header .spbtn span:nth-of-type(2) {
        top: 24px;
    }
    header .spbtn span:nth-of-type(3) {
        top: 31px;
    }
    header.select .spbtn span:nth-of-type(1) {
        transform: translate(0,7px) rotate(-45deg);
    }
    header.select .spbtn span:nth-of-type(2) {
        opacity: 0;
    }
    header.select .spbtn span:nth-of-type(3) {
        transform: translate(0,-7px) rotate(45deg);
    }
    header .spmenu{
        width:100%;
        height:calc(100vh - 50px);
        position: fixed;
        top:50px;
        left:auto;
        right:0;
        bottom:auto;
        margin: auto;
        z-index:9990;
        -webkit-transition: all 0.3s;
        -moz-transition: all 0.3s;
        -o-transition: all 0.3s;
        transition: all 0.3s;
        overflow-y: scroll;
        background: rgba(202,69,90,0.9);
        opacity: 0;
        transform:translate(100%,0);
        pointer-events: none;
        padding:0 0 0 0;
    }
    header.select .spmenu{
        opacity: 1;
        transform:translate(0,0);
        pointer-events: fill;
    }
    header .spmenu ul li{
        text-align: left;
        display: block;
    }
    header .spmenu ul li a,
    header .spmenu ul li span{
        font-size:14px;
        color:#FFFFFF;
        padding:10px 4%;
        line-height: 1.2;
        display:block;
        border-bottom:1px solid #FFFFFF;
        position: relative;
        box-sizing: border-box;
        font-weight: bold;
    }
    header .spmenu ul li a:after{
        position: absolute;
        content: ">";
        right:5%;
        top:50%;
        transform: translate(0,-50%);
        font-weight: bold;
        font-size:14px;
    }
    header .spmenu ul li span:after{
        position: absolute;
        content: "＋";
        right:5%;
        top:50%;
        transform: translate(0,-50%);
        font-weight: bold;
        font-size:14px;
    }
    header .spmenu ul li span.select:after{
        content: "―";
    }
    header .spmenu ul li.parent ul.child{
        display: none;
        border-bottom: 1px solid #FFFFFF;
    }
    header .spmenu ul li.parent ul.child{
        background: #FCEFF2;
    }
    header .spmenu ul li.parent ul.child a{
        color:#000000;
    }
    header .spmenu ul li.parent ul.child li:not(:last-child) a{
        border-bottom:1px solid #CA455A;
    }
}

/*--------------------------------------
    main
--------------------------------------*/

main{
    padding-top: 100px;
}
@media (max-width: 768px) {
    main{
        padding-top: 50px;
    }
}

/*--------------------------------------
    footer
--------------------------------------*/

footer .contactArea{
    width:100%;
    padding: 80px 0 90px 0;
    background: url("../images/bg_contact_001.jpg") no-repeat center center / cover;
}
footer .contactArea .inner{
    width:400px;
    margin-left: auto;
}
footer .contactArea .inner h2.style001{
    color:#FFFFFF;
    margin-bottom: 40px;
}
footer .contactArea .inner h2.style001::before{
    color:#FFFFFF;
}
footer .contactArea .inner .text{
    font-size:18px;
    margin-bottom: 60px;
    color:#FFFFFF;
}
footer .contactArea .inner .btn{
    width:380px;
    height:120px;
    font-size:30px;
    font-weight: bold;
    margin-right: 20px;
    background: #FFFFFF;
    box-sizing: border-box;
    padding-right: 44px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}
footer .contactArea .inner .btn::after{
    content: "→";
    font-size:34px;
    height: 44px;
    font-weight: bold;
    position: absolute;
    top:0;
    right:30px;
    bottom:0;
    margin: auto;
}
footer .contactArea .inner .btn:last-child{
    margin-top: 30px;
}
footer .footerArea{
    margin: 80px 0 65px 0;
}
footer .footerArea .fNav{
    display: flex;
    justify-content: center;
    gap:80px;
    margin-top: 50px;
}
footer .footerArea .fNav ul{
    display: grid;
    gap:20px;
}
footer .footerArea .fNav ul li a{
    font-size:18px;
    font-weight: bold;
}
footer .footerArea .fNav ul li.parent .child{
    display: grid;
    gap:15px;
    margin-top: 30px;
}
footer .footerArea .fNav ul li.parent .child li a{
    font-size:16px;
    font-weight: normal;
}
footer .footerArea .fNav ul li.parent .child li:before{
    content: "-";
    margin-right: 5px;
}
footer .copyright{
    height:42px;
    display: flex;
    justify-content: center;
    align-items: center;
    color:#FFFFFF;
    background: #D5D8A7;
}
@media (max-width: 768px) {
    footer .contactArea{
        padding: 40px 0 40px 0;
    }
    footer .contactArea .inner{
        width:100%;
    }
    footer .contactArea .inner h2.style001{
        margin-bottom: 30px;
    }
    footer .contactArea .inner .text{
        font-size:14px;
        margin-bottom: 40px;
    }
    footer .contactArea .inner .btn{
        width:100%;
        height:50px;
        font-size:18px;
        margin-right: 0;
        padding-right: 20px;
    }
    footer .contactArea .inner .btn::after{
        content: "→";
        font-size:18px;
        height: 22px;
        right:15px;
    }
    footer .contactArea .inner .btn:last-child{
        margin-top: 10px;
    }
    footer .footerArea{
        margin: 40px 0 40px 0;
    }
    footer .footerArea .fNav{
        display: none;
    }
}

/*--------------------------------------
    pagetop
--------------------------------------*/

.pagetop{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: fixed;
    bottom:-180px;
    right:50px;
    background: #CA455A;
    width:120px;
    height:120px;
    padding: 10px;
    box-sizing: border-box;
    border-radius: 50%;
    color:#FFFFFF;
    z-index: 999;
}
.pagetop::before{
    content:"⇧";
    font-size:50px;
    line-height: 1;
    margin-bottom: 5px;
}
@media (max-width: 768px) {
    .pagetop{
        right:20px;
        width:80px;
        height:80px;
        font-size:14px;
    }
    .pagetop::before{
        font-size:30px;
    }
}
