@charset "utf-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@700;900&display=swap');

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video{
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    vertical-align: baseline;
    box-sizing: border-box;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, main {
	display: block;
}

html{ scroll-behavior: smooth; }

body {
    margin: 0;
    padding: 0;
    background-color: #fff;
    line-height: 1.4;
    -webkit-text-size-adjust: 100%;
}


body, button, input, select, textarea {
    font-family: YuGothic, "Yu Gothic medium", "游ゴシック", "Hiragino Sans", Meiryo, "sans-serif";
    box-sizing: border-box;
}
h1, h2, h3, h4, h5, h6 {
    font-weight: normal;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
    line-height: 0;
}

a{
    color: #005492;
}
table{
    border-collapse: collapse;
    width: 100%;
}

.cont05,
.cont06{
    display: none;
}

.center {
    text-align: center;
}

.margin30 {
  margin: 30px;
}
.mt30 {
    margin-top: 30px;
  }
.note{
    padding:0 0 1em 1.5em;
    color:#f00;
    text-indent: -1.25em;
    margin: 0 auto !important;
    max-width: 400px;
    text-align: left;
}
.red{
    color:#f00;
}
/*header
----------------------------------------------------------------*/
header{
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    border-top: 5px solid #204ca0;
    position: relative;
}

header p{
    text-align: center;
    color: #fff;
    background: linear-gradient(to bottom, #113781, #204ca0);
    font-size: 1.25em;
    padding: 0.25em;
}

header p strong{
    font-size: 1.5em;
    font-weight: bold;
    display: inline-block;
}

header p strong sup{
    font-weight: normal;
    font-size: 0.5em;
}
header p span{
    display: inline-block;
}
header .fukidashi{
    position: absolute;
    top: 98%;
    right: 0;
    background: #FFCE00;
    color: #204ca0;
    padding: 1.25em;
    line-height: 1.2;
    font-weight: bold;
    border-radius: 50%;
}
header .fukidashi::before{
    content: "";
    position: absolute;
    top: 0.2em;
    left:0.8em;
    display: block;
    width: 0;
    height: 0;
    border: #FFCE00 solid 0.8em;
  border-bottom-color: transparent;
    border-right-color: transparent;
    transform:skew(30deg,30deg);
    
}
/*footer
----------------------------------------------------------------*/
footer{
    background-color: #eee;
    padding: 3em 0;
    text-align: center;
    line-height: 1.7;
}

footer span{
    font-size: 0.875em;
}

footer ul{
    display: flex;
    justify-content: center;
    margin:1em auto;
    flex-wrap: wrap;
}

footer ul li{
    margin: 0 1em 0 0;
    list-style: none;
    display: flex;
    align-items: center;
}
footer ul li:last-child{
    margin: 0;
}
footer ul li::before{
    content: "";
    display: inline-block;
    width: 1px;
    height: 1em;
    background-color: #000;
    margin-right: 1em;
}

footer ul li:first-child::before{
    display: none;
}

/*pagetop
----------------------------------------------------------------*/
#pagetop{
    position: fixed;
    bottom: 2em;
    right: 2em;
}

#pagetop span{
    display: none;
}

#pagetop a{
    display: grid;
    place-content: center;
    position: relative;
    width: 3em;
    height: 3em;
    border-radius: 50%;
    background-color: rgba(0,0,0,0.3);
}
#pagetop a::after{
    content: "";
    width: 0.5em;
    height: 0.5em;
    border-top: #fff 3px solid;
    border-left: #fff 3px solid;
    transform: rotate(45deg);
}


/*main
----------------------------------------------------------------*/
main{
   width:100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 0 3em;
}

/*pre_message・ended_message
----------------------------------------------------------------*/
.pre_message,
.ended_message{
   /* display: none; */
    width: 96%;
    max-width: 1000px;
   margin:10% auto;
    border: #ff4081 2px solid;
    border-radius: 0.5em;
    padding: 1.5em 1em 1em;
    text-align: center;
}
.pre_message h2,
.ended_message h2{
    font-size: 2em;
    color: #ff4081;
    margin: 0 0 1em;
    font-weight: bold;
}
.pre_message h2{
    margin-bottom: 0;
}
.ended_message p{
    display: inline-block;
    text-align: left;
    margin-bottom:0.5em;
    font-size: 1.125em;
}
.ended_message p span{
    font-weight: bold;
}


/*price_info
----------------------------------------------------------------*/
.price_info{
    position: relative;
}

.price_info p a{
    position: absolute;
    display: grid;
    place-content :center;
    place-items: center;
    top: 26%;
    right: 25%;
    font-family:'Noto Sans JP',YuGothic, "Yu Gothic medium", "游ゴシック", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight:900;
    color:#fff;
    font-size: 1.875em;
    background-color:#ff4081;
    width:7em;
    height:7em;
    border-radius: 50%;
    text-decoration: none;
    text-align: center;
    padding: 0.75em;
    gap: 0.3em;
}
.price_info p a::after{
    content: "";
    width: 0.5em;
    height: 0.5em;
    border-right: #fff 5px solid;
    border-bottom: #fff 5px solid;
transform: rotate(45deg);
}
.price_info p a:hover{
    filter: brightness(1.2);
}
/*price_comparison
----------------------------------------------------------------*/
.price_comparison{
    background-color: #d1e9ff;
    padding: 2em;
}

.price_comparison h2{
    font-family:'Noto Sans JP',YuGothic, "Yu Gothic medium", "游ゴシック", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight:900;
    font-size: 1.5em;
    text-align: center;
    margin-bottom: 1em;
}

.price_comparison table{
    border-collapse: collapse;
    width: 100%;
    font-size: 0.875em;
	margin-bottom: 0.5em;
}
.price_comparison table th,
.price_comparison table td{
    border: 1px #d1e9ff solid;
    text-align: center;
    vertical-align: middle;
}
.price_comparison table th{
    background-color: #204ca0;
    color: #fff;
    font-weight: normal;
    padding: 0.5em;
	white-space: nowrap;
}
.price_comparison table th:nth-child(5){
	width: 9%;
}

.price_comparison table td{
    background-color: #fff;
    padding: 0.25em 0.5em;
}
.price_comparison table span{
    display:block;
    font-size: 0.857em;
}
.price_comparison table tr:nth-child(2) td{
    font-weight: bold;
    font-size: 1.142em;
    background-color: #ffdfdf;
	white-space: nowrap;
}

.price_comparison table + ul li{
	list-style: none;
	font-size: 0.875em;
	padding-left: 1.2em;
	text-indent: -1.2em;
}

/*important_notices
----------------------------------------------------------------*/
.important_notices{
    text-align: center;
    width: 96%;
    margin:2em auto;
}
.important_notices p:first-child{
    display: inline-block;
    border: #ff4081 2px solid;
    border-radius: 0.5em;
    padding: 1em;
    margin-bottom: 1em;
    font-family:'Noto Sans JP',YuGothic, "Yu Gothic medium", "游ゴシック", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700;
    color: #ff4081;
    font-size: 2em;
    text-align: center;
    line-height: 1.2;
}
.important_notices p:first-child span:first-child{
    display: block;
}
.important_notices p:first-child span:nth-child(2){
    display: inline-block;
}
.important_notices p:first-child span:nth-child(3){
    font-size: 3em;
    margin: 0 0.1em 0 0.25em;
}
.important_notices p:first-child span:nth-child(5){
    display: block;
    color: #000;
    text-align: left;
    font-size: 0.5em;
    margin-top:1em;
}


/*cont01
----------------------------------------------------------------*/
.cont01{
   background-color: #f3f9fe;
    padding: 2em 3em  1.5em;
}
.cont01 li{
    list-style: none;
    padding-left:1.5em;
    position: relative;
    margin-bottom: 1.5em;
}
.cont01 li::before{
    content: "";
    position: absolute;
    top: 0.6em;
    left: 0;
    display: inline-block;
    width:0.6em;
    height:0.6em;
    border-top: #204ca0 3px solid;
    border-right: #204ca0 3px solid;
    transform: rotate(45deg);
}
.cont01 li span{
    font-size: 1.4em;
    line-height: 1.4;
    color: #204ca0;
    font-weight: bold;
    display: block;
}
.cont01 li strong{
    color: #ff4081;
}

/*cont02
----------------------------------------------------------------*/
.cont02{
   background-color: #eee;
    padding: 2em 1em  1.5em;
    display: flex;
    align-items: center;
}

.cont02 h2{
    background-color:#424242;
    color: #fff;
    margin-right: 1em;
    line-height: 1.2;
    padding: 0.5em 0.75em;
    letter-spacing: 0.1em;
    white-space: nowrap;
}
.cont02 div{
    font-size: 0.875em;
}
.cont02 li{
    list-style: none;
    padding-left: 2em;
    text-indent: -2em;
}
.cont02 li:last-child{
    margin-top: 0.5em;
}
.cont02 span{
    color: #ff4081;
    font-weight: bold;
}


/*cont03
----------------------------------------------------------------*/
.cont03{
    max-width: 800px;
    margin: 2em auto;
    padding:0 1em;
}
.cont03 h2{
    padding: 0.25em;
    font-size: 1.8em;
    text-align: center;
    color: #204ca0;
    border-bottom: 2px solid #204ca0;
    margin: 0 auto 0.5em;
}
.cont03 .movie_box{
    position: relative;
    height: 0;
    width: 100%;
    padding: 56.25% 0 0;
}

.cont03 .movie_box iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.cont03 .movie_box + p{
    padding-top: 0.5em;
    font-size: 0.875em;
}

/*cont_faq
----------------------------------------------------------------*/
.cont_faq{
   background-color: #f3f9fe;
    padding: 2em 1em;
}
.cont_faq > *{
    max-width: 800px;
    margin: 0 auto;
}
.cont_faq h2{
    padding: 0.25em;
    font-size: 2em;
    text-align: center;
    color: #204ca0;
    max-width: 600px;
    border-bottom: 2px solid #204ca0;
    margin: 0 auto 0.5em;
}
.cont_faq h3{
    font-size: 1.25em;
   border-bottom: #204ca0 1px solid;
    color:  #204ca0;
    position: relative;
    padding:0.5em 2em 0.5em 0.5em;
    cursor: pointer;
    margin-top: 1.5em;
}
.cont_faq h3::after{
    content: "+";
    display: block;
    position: absolute;
    font-size: 1.5em;
    font-weight: bold;
    top:0;
    right: 1em;
}
.cont_faq h3.faq_open::after{
    content: "";
    display: block;
    height: 2px;
    width: 0.5em;
    background-color: #204ca0;
    top: 0.5em;
}
.cont_faq h3 + div{
    display: none;
    margin-top: 0.5em;
}
.cont_faq h4{
    color:  #204ca0;
    position: relative;
    padding:0.5em 2em;;
    cursor: pointer;
}

.cont_faq h4:hover{
    text-decoration: underline;
}
.cont_faq h4::before{
    content: "Q";
    position: absolute;
    top:0;
    left: 0;
    font-size: 1.5em;
    font-weight: bold;
    margin-right: 0.5em;
}

.cont_faq h4 + p{
    display: none;
    background-color: #fff;
    padding: 0.75em 0.5em 0.5em 2.5em;
    position: relative;
    margin-bottom: 1.5em;
}

.cont_faq h4 + p::before{
    content: "A";
    position: absolute;
    top: 0.25em;
    left: 0.5em;
    font-size: 1.5em;
    font-weight: bold;
    color:  #ff4081;

}

.cont_faq > p{
    margin-top: 3em;
}

/*cont04
----------------------------------------------------------------*/
.cont04{
   background-color: #eee;
    padding: 2em 1em;
}
.cont04 h2{
    padding: 0.25em;
    font-size: 2em;
    text-align: center;
    color: #204ca0;
    max-width: 600px;
    border-bottom: 2px solid #204ca0;
    margin: 0 auto 0.5em;
}
.cont04 h2 + p{
    text-align: center;
    margin-bottom:0.5em;
}
.cont04 .note{
    max-width:700px;
}
.cont04 h3{
    text-align: center;
    font-size: 2em;
    font-weight: bold;
    margin-bottom: 1em;
    color: #444;
}
.cont04 .product_container{
    display: flex;
    margin-top: 3em;
}

.cont04 .product_detail{
    width:calc(50% - 2em);
    padding: 1.5em 1.5em 7em;
    margin: 0 1em;
    position: relative;
    background-color: #fff;
}

.cont04 .column2{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.cont04 .column2 > img,
.cont04 .column2 > div{
    width:35%;
}
.cont04 .column2 > div p{
    border: #ff4081 5px solid;
    border-radius: 1em;
    margin:2em 0 0;
    text-align: center;
    padding:0.5em 0.25em;
}
.cont04 .column2 > div > p > span{
    display: block;
    font-weight: bold;
}
.cont04 .column2 > div > p > span:nth-of-type(1){
    color: #ff4081;
}
.cont04 .column2 > div > p > span:nth-of-type(2){
    color: #ff4081;
    font-size: 1.3em;
}
.cont04 .column2 > div > p > span:nth-of-type(3){
    font-size: 0.75em;
    font-weight: normal;
}


.cont04 .column2 table{
    width:  62%;
}
.cont04 .column2 table th,
.cont04 .column2 table td{
    padding: 0.25em 0.5em;
    border: #ddd 1px solid;
    font-size: 0.8125em;
    background-color: #fff;
    word-break: break-all;
}

.cont04 .column2 table th{
    background-color: #204ca0;
    color: #fff;
    font-weight: normal;
    width:40%;
}

.cont04 .column2 table ul{
    margin-left: 1.5em;
}
.cont04 .column2 > p{
    display: none;
}
.cont04 .product_detail > p{
    text-align: center;
    position: absolute;
    bottom:2em;
    left: 0;
    width: 100%;
}

.cont04 .product_detail > p label{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5em;
    font-weight: bold;
    color: #fff;
    background-color: #0084FF;
    padding: 0.5em;
    border-radius: 1.2em;
    width: 12em;
    max-width:96%;
    cursor: pointer;
}
.cont04 .product_detail > p label:hover{
    opacity: 0.8;
}
.cont04 .product_detail > p input{
    margin-right:1em;
    -moz-appearance: none;
    width:1em;
    height:1em;
    background-color: #fff;
    border-radius: 50%;
    display: inline-block;
}
.cont04 .product_detail > p input:checked::after{
    content: "";
    display: block;
    width:1.5em;
    height:1.5em;
    border:  #fff 5px solid;
    background-color:#ff4081;
    border-radius: 50%;
    position: relative;
    margin: -0.75em 0 0 -0.75em;
}


/*cont05
----------------------------------------------------------------*/
.cont05{
    padding: 2em;
    text-align: center;
}

.cont05 h2{
    padding: 0.25em;
    font-size: 2em;
    text-align: center;
    position: relative;
    color: #204ca0;
    margin: 0 auto 1.5em;
}
.cont05 h2.keiyaku_id_ttl{
    margin-top: 2em;
}
.cont05 h2::after{
    content: "";
    display: block;
    position: absolute;
    height: 2px;
    width: 100%;
    max-width: 600px;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background-color: #204ca0;
}

.cont05 p{
    margin: 0 0 1em;
}
.daigaku_select p br{display: none;}

.daigaku_select .select2,
.gakunen_select p.glst_select{
    width: 600px !important;
    max-width: 100%;
    font-size: 1.125em;
    text-align: left;
}
.daigaku_select .select2-container .select2-selection--single {
    height: auto !important;
}
.daigaku_select .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 5px 20px 5px 8px;
}
.daigaku_select .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 38px;
}

.gakunen_select p.glst_select{
    position: relative;
    margin: 0 auto;
}
.gakunen_select p.glst_select::after{
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 0.5em;
    width: 0;
    height: 0;
    border-top: #888 5px solid;
    border-left: transparent 4px solid;
    border-right: transparent 4px solid;
}

.gakunen_select #gakunenList{
    appearance: none;
    width: 100%;
    border: #aaa 1px solid;
    border-radius: 4px;
    padding: 5px 20px 5px 8px;
    font-size: 100%;
}

.gakunen_select #gakunenList:focus{
    outline: 0;
    border: #aaa 1px solid;
}

#keiyaku_id{
    font-size: 1.126em;
    padding: 0.5em;
    width: 100%;
    max-width: 600px;
}

/*cont06
----------------------------------------------------------------*/
.cont06{
    background-color: #f3f9fe;
    padding:2em;
}

.cont06 .delivery,
.cont06 .confirm{
    width: 900px;
    max-width: 100%;
    margin: 0 auto;
    padding: 1.5em 0;
}
.cont06 .delivery{
    border-bottom: #ddd 1px solid;

}
.cont06 .delivery p{
    margin: 0 0 0.5em;
}
.cont06 .delivery li{
    list-style: none;
    padding-left: 1.5em;
    text-indent: -1.5em;
    margin: 0 0 0.5em;
}

.cont06 .delivery .delivery_date{
    text-align: center;
}

.cont06 .delivery .delivery_date input{
    font-size: 1.126em;
    padding: 0.5em;
    max-width: 100%;
}



.cont06 h2{
    padding: 0.25em;
    font-size: 2em;
    text-align: center;
    color: #204ca0;
    max-width: 600px;
    border-bottom: 2px solid #204ca0;
    margin: 0 auto 1.5em;
}
.cont06 .confirm table{
    max-width: 600px;
    margin: 0 auto;
}
.cont06 .confirm th,
.cont06 .confirm td{
    padding: 0.5em;
    border: #ddd 1px solid;
}
.cont06 .confirm th{
    background-color: #eee;
    font-weight: normal;
}
.cont06 .confirm td{
    background-color: #fff;
}
.cont06 .confirm p{
    text-align: center;
    padding: 1.5em 0 0;
}
.cont06 .confirm p input{
    font-size: 1.125em;
    display: flex;
    width:12em;
    height: 3em;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    -webkit-appearance: none;
    font-weight: bold;
    color: #fff;
    background-color: #0084FF;
    padding: 0.5em;
    border-radius: 1.5em;
    border: none;
}


.cont06 .confirm p input:hover{
    opacity: 0.8;
}

/*
================================================*/
@media screen and (max-width: 1200px) {


.price_info{
    font-size:1.33vw ;
}
	.price_comparison table th,
	.price_comparison table tr:nth-child(2) td{
		white-space: normal;
	}   
    .cont04 .column2 > div p{
        font-size: 1.33vw;
    }
}


/*
スマートフォン用
================================================*/
@media screen and (max-width: 899px) {



    
    header p strong{
        font-size: 1.25em;
    }
    
header .fukidashi{
    top:100%;
}
.price_info{
    font-size:1em;
}
.price_info p a{
    position: static;
    display: grid;
    grid-template-columns: auto auto;
    font-weight: 700;
    gap: 1em;
    margin: 1em auto;
    max-width: 96%;
    width:auto;
    height:auto;
    border-radius: 1.45em;
    font-size: 1.5em;

}
.price_info p a::after{
transform: rotate(-45deg);
}
	.price_comparison h2{
		font-size: 1em;
	}
.price_comparison h2 br,
.price_comparison table th:not(:first-child):not(:last-child),
.price_comparison table td:not(:first-child):not(:last-child){
    display: none;
}


    .cont01,
    .cont02,
    .cont04 .product_container,
    .cont04 .column2{
        display: block;
    }
    .cont01{
        padding: 2em 1.5em;
    }
    .cont01 div,
    .cont01 ul{
        width: 100%;
        padding-left: 0;
    }
    .cont02 h2{
        margin: 0 0 1em;
    }
    .cont02 h2 br{
        display: none;
    }
    .cont04 .product_detail{
    width:calc(100% - 2em);
    margin: 0 1em 2em;
    }

    
    .cont04 .column2{
        text-align: center;
    }
    .cont04 .column2 td{
        text-align: left;
    }
    .cont04 .column2 > p{
    display: block;
        font-size: 1.125em;
        color: #fff;
        background-color: #204ca0;
        text-align: center;
        padding: 0.5em;
        cursor: pointer;
        position: relative;
        max-width: 300px;
        margin: 1em auto;
}
    
    .cont04 .column2 p::after{
        content: "";
        display: block;
        width: 0.5em;
        height: 0.5em;
        border-bottom: #fff 2px solid;
        border-right: #fff 2px solid;
        transform: rotate(45deg);
        transition:transform 0.5s;
        position: absolute;
        top: 0.75em;
        right: 1em;
    }
     .cont04 .column2 p.open::after{
         transform: rotate(225deg);
         transition:transform 0.5s;
         top: 1em;
    }
  .cont04 .column2 > img{
    width:auto;
}
    .cont04 .column2 > div{
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .cont04 .column2 > div > *{
        margin: 0 1em !important;
        font-size: 1.8vw !important;
        max-width: calc(50% - 2em);
    }
    
.cont04 .column2 table{
    display: none;
    width:auto;
    margin: 0 auto;
}
    .cont05{
    padding: 2em 1.5em;

}
}
@media screen and (max-width: 860px) {
    header .fukidashi{
    top:93%;
        font-size: 2vw;

}
header .fukidashi::before{
    top: 20%;
    left: -0.35em;
    transform: rotate(-20deg) skew(30deg,30deg);
}
}
@media screen and (max-width: 740px) {
    .important_notices{
        font-size: 2.162vw;
    }
    .important_notices p:first-child {
        padding: 0.75em;
    }
    }
@media screen and (max-width: 600px) {
                header .fukidashi{
        font-size: 0.875em;
}
    footer{
    padding: 3em 1em;
    text-align: left;
    }
    footer ul{
    justify-content: flex-start;
    }
.cont01 li::before{
    content: "";
    position: absolute;
    top: 0.6em;
    left: 0;
    display: inline-block;
    width:0.4em;
    height:0.4em;
    border-top: #204ca0 3px solid;
    border-right: #204ca0 3px solid;
    transform: rotate(45deg);
}
.cont01 li span{
    font-size: 1.25em;
}
    .cont03 h2,
    .cont04 h2,
    .cont05 h2,
    .cont06 h2,
    .cont_faq h2{
        font-size:5vw;
    }
    .cont05 p br{display: inline;}
    .cont04 h2 + p{
        font-size: 0.875em;
    }
}
@media screen and (max-width: 480px) {
        header p{
        font-size:5vw;
        padding:10px 0.5vw;
    }

        header .fukidashi{
        top:100%;
        bottom:auto;
        }
    header .fukidashi::before{

    top: 0;
    left:30%;
 transform:rotate(0) skew(30deg,30deg);
    
}
    header .fukidashi br{
        display: none;
    }
    .important_notices {
        margin-top:10vw;
    }
        .cont04 h3{font-size: 1.5em;}
    .cont04 .column2 p {
    font-size: 1em;
    }
    .cont05 p,
    .cont06 .delivery,
    .cont06 .confirm{
        font-size: 0.875em;
    }
    
    
}
