@charset "utf-8";

*:focus {
  outline: none;
}
body{
    margin: 0;
    padding: 0;
}
.Arial{
    font-family: "arial", sans-serif;
}
.Inter{
    font-family: "Inter", sans-serif;
}
.Oswald{
    font-family: "Oswald", sans-serif;
}

#fo_wrap{
    max-width: 1000px;
    width: 100%;
	text-align: center;
	margin: 0% auto;
    color: #000000;
    display: block;
    padding:0;
    font-weight: 400;
    overflow: hidden;
    line-height: 1.6em;
    letter-spacing: 1px;
    font-family: "Noto Sans JP", serif;
    background: #FFFFFF;
    
}
#fo_wrap img{
    width: 100%;
    vertical-align: bottom;
    line-height: 0;
    border: none;
}
#fo_wrap ul,#fo_wrap li{
	padding: 0;
	/*overflow: hidden;*/
    list-style: none;
}
#fo_wrap a,#fo_wrap a:hover,#fo_wrap a:link{
    text-decoration: none;
    opacity: 1;
}

/* ==================================== 
header
======================================= */
#fo_head{
    width: 100%;
    background: #FFFFFF;
    margin: 0 auto;
    display: block;
}
#fo_head .head{
    width: 100%;
    text-align: center;
    display: inline-block;
    margin: 0 auto;
    position: relative;
}
#fo_head .visual ul{
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    position: relative;
    column-gap: 0.3333%;
    margin: 0;
}
#fo_head .visual ul li{;
    position: relative;
    display: inline-block;
    opacity: 0;
    margin-bottom: 1%;
    animation: fadeIn 2s forwards;
}
#fo_head .visual ul li:nth-of-type(2){
    animation-delay: .4s;
}
#fo_head .visual ul li:nth-of-type(3){
    animation-delay: .8s;
}


@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
#fo_head .title{
    font-size: 60px;
    font-family: "arial", sans-serif;
    font-weight: 800;
    position: absolute;
    bottom: 15%;
    left: 4%;
}
#fo_head .title_s{
    font-size: 40px;
    font-family: "arial", sans-serif;
    font-weight: 800;
    position: absolute;
    bottom: 30%;
    left: 4%;
}
#fo_head .lead{
    width: 100%;
    font-size: 17px;
    text-align: center;
    margin: 5% auto 2.5%;
    position: relative;
    display: inline-block;
    line-height: 2em;
}
#fo_head .lead span{
    font-weight: 500;
    font-size: 1.4vw;
    text-decoration: underline;
}
#fo_head .title_s{
    opacity: 0;
	transition: 2s all 0.4s ease;
}
#fo_head .title{
    opacity: 0;
	transition: 2s all 0.6s ease;
}


#fo_head .lead{
    opacity: 0;
    transition: 2s all 1.2s ease;
}
#fo_head.ac .title_s,#fo_head.ac .title,#fo_head.ac .lead{
	opacity: 1;
    transform: translate(0);
}

/* ======================================================================== 
　　Contents
=========================================================================== */

#fo_contents{
    max-width: 800px;
    width: 100%;
    text-align: center;
    position:relative;
    margin: 5% auto;
    display: block;
    border-left: #000000 2px solid;
    border-right: #000000 2px solid;
    border-top: #000000 2px solid;
}
#fo_contents .container{
    width: 100%;
}
#fo_contents .grid-section {
    text-align: center;
}
#fo_contents .ttl_box{
    margin: 0 auto;
    padding: 2% 0;
    
}
#fo_contents .ttl{
    width: 100%;
    display: flex;
    margin: 0 auto;
    position: relative;
    font-size: 18px;
    font-weight: 500;
    justify-content: center;
    line-height: normal;
    letter-spacing: 0px;
}
#fo_contents .ttl .calendar{
    width: 25px;
    margin-right: 10px;
}
#fo_contents .ttl .arial{
    font-family: "arial", sans-serif;
    font-weight: 800;
}
#fo_contents .ttl_box p{
    font-size: 18px;
    margin: 5px auto;
    line-height: 1.7em;
}


#fo_contents .grid {
    display: grid;
    gap: 0% 20px; /* アイテムの間隔 */
    padding: 0 20px; /* グリッド全体に左右の余白をつける */
    border-top: #000000 2px solid;
    border-bottom: #000000 2px solid;
    
}
#fo_contents .grid-2 {
    grid-template-columns: repeat(2, 1fr);
}
#fo_contents .grid-2x2 {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, auto);
}
#fo_contents .grid-2x3 {
    grid-template-columns: repeat(2, 1fr);
   grid-template-rows: repeat(3, auto);
}
#fo_contents .grid-item {
   display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    
}
#fo_contents .grid-item_2 {
   display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    border-top: #000000 1px solid;
    margin-top: 2.5%;
    
}
#fo_contents .grid-item:not(:nth-child(2n))::after {
    content: "";
    position: absolute;
    top: 0;
    right: -10px; /* gap の半分 (20px / 2 = 10px) */
    width: 1px;
    height: 100%;
    background: repeating-linear-gradient(
        to bottom,
        black,
        black 1px,
        transparent 0px,
        transparent 0px
    ); /* 点線を作成 */
}
#fo_contents .grid-item_2:not(:nth-child(2n))::after {
    content: "";
    position: absolute;
    top: 2.5%;
    right: -10px; /* gap の半分 (20px / 2 = 10px) */
    width: 1px;
    height: 97.5%;
    background: repeating-linear-gradient(
        to bottom,
        black,
        black 1px,
        transparent 0px,
        transparent 0px
    ); /* 点線を作成 */
}

#fo_contents .image-box_l{
    display: flex;
    justify-content: center;
    align-items: center;
    aspect-ratio: 5 / 6; 
    width: 90%;
    margin-top: 40px;
    margin-right: 10px;
}
#fo_contents .image-box_r{
    display: flex;
    justify-content: center;
    align-items: center;
    aspect-ratio: 5 / 6; 
    width: 90%;
    margin-top: 40px;
    margin-left: 10px;
}
#fo_contents .text-box {
    margin-top: 3%;
    font-size: 16px;
    color: #000000;
}
#fo_contents .red{
    font-size: 12px;
    color: #FF0004;
    letter-spacing: 0px;
}
#fo_contents .sub{
    font-size: 12px;
    letter-spacing: 0px;
}
/* ======================== ボタン======================== */
.btn01 a {
    background: #333333;
    color: #FFFFFF;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 10% auto 20%;
    width: 200px;
    padding: 3% 2%;
    transition: 0.3s ease-in-out;
    font-weight: 500;
    font-size: 14px;
    line-height: 2em;
    /*border: #333 1px solid;*/
    font-family: "Oswald", sans-serif;
    float: none;
}
.btn01 a:hover {
    background:#333;
    color: #FFFFFF;
}

.hr{
    width: 100%;
    border-bottom: #A3A3A3 1px dotted;
    margin: 0 auto;
    text-align: center;
}
.pc{
    display:block;
}
.sp {
	display:none;
}
.small{
    font-size: 70%;
    letter-spacing: 0px;
}
.storng{
    font-size: 120%;
    font-weight: 700;
    
}
.clear{
    clear: both;
}
.Left{
    float: left;
}
.Right{
    float: right;
}


.hr01 {
    width: 100%;
    text-align: center;
    border-bottom: #CDCDCD 1px solid;
    margin: 5% auto;
}



/**********************************************
　　　　　　　　　　　　SP
**********************************************/

@media only screen and (max-width:768px){
	#fo_wrap {
		width: 100%;
	}
    #fo_head .title{
        font-size: 45px;
        left: 6.5%;
    }
    #fo_head .title_s{
        font-size: 26px;
        left: 6.5%;
        bottom: 35%;
    }
    #fo_head .lead{
        font-size: 14px;
        margin: 10% auto;
        letter-spacing: .5px;
    }
    #fo_contents{
        width: 98%;
    }
    #fo_contents .ttl_box{
        padding: 3.5% 0;
    }
    
    #fo_contents .ttl{
        font-size: 16px;
    }
    #fo_contents .ttl .calendar{
        width: 18px;
    }
    #fo_contents .ttl_box p, #fo_contents .ttl_box_2 p{
        font-size: 14px;
    }
    #fo_contents .grid{
        padding: 0 2%;
    }
    #fo_contents .image-box_l{
        width: 100%;
        margin-right: 0px;
        margin-top: 5%;
    }
    #fo_contents .image-box_r{
        width: 100%;
        margin-left: 0px;
        margin-top: 5%;
    }
    
    #fo_contents .text-box{
        width: 94%;
        font-size: 12px;
        letter-spacing: 0px;
        line-height: 1.5em;
        text-align: left;
        
    }
    #fo_contents .sub{
        font-size: 9px;
    }
    #fo_contents .red{
        font-size: 9px;
    }
    
    .hr{
        margin: 15% auto 0;
    }
    .btn01 a{
        width: 170px;
        font-size: 11px;
        line-height:2.6em;
    }
    .btn02 a{
        width: 86%;
        font-size: 15px;
        line-height: 2em;
        margin: 10% auto;
    }
    .pc {
		display:none;
	}
	.sp {
		display:block;
		width: 100%;
	}
    .Left{
        float: none;
    }
    .Right{
        float: none;
    }

}

.fade01{
	opacity: 0;
	transition: 1.5s all 0.2s ease;
}
.fade02{
	opacity: 0;
	transition: 1.5s all 0.4s ease;
}
.fade03{
	opacity: 0;
	transition: 1.5s all 0.6s ease;
}
.fade01.ac,.fade02.ac,.fade03.ac{
	opacity: 1;
    transform: translate(0);
}
.anim01 {
    opacity: 0;
    transform: translateY(50px);
    transition: 1.5s all 0.2s ease;
}
.anim02 {
    opacity: 0;
    transform: translateY(50px);
    transition: 1.5s all 0.4s ease;
}

.anim01.ac,.anim02.ac {
	opacity: 1;
    transform: translate(0);
}
