@charset "UTF-8";
/* CSS Document */
* { padding:0; margin:0;}

@media screen and (max-width: 599px) {
    section p.lead{
        font-size: 12px;
        text-align: left;
    }
}


/* -----------------------------------
スクール一覧
----------------------------------- */
/* ----- ソートボタン ----- */
.soat_list ul{
    max-width: 990px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5%;
    margin-bottom: 50px;
}
.soat_list ul li{ margin: .5em 0;}
.soat_list ul li > button{
    width: 100%;
    height: 60px;
    border-radius: 5px;
    font-size: 16px;
    line-height: 1.3;
    cursor: pointer;
    transition: all ease 0.3s;
    border: 1px solid #000;
    background-color: #fff;
}
.soat_list ul li > button:focus{
    outline: 0;
}
.soat_list ul li.on > button{
    box-shadow: 0 3px 0 rgba(0, 0, 0, .15);
}

/* 全て */
.soat_list ul li.all > button{
    border-color: #E16E4E;
    color: #E16E4E;
}
.soat_list ul li.all > button:hover,
.soat_list ul li.all.on > button{
    background-color: #E16E4E;
    color: #fff;
}

/* 株 */
.soat_list ul li.kabu > button{
    border-color: #5e76a7;
    color: #5e76a7;
}
.soat_list ul li.kabu > button:hover,
.soat_list ul li.kabu.on > button{
    background-color: #5e76a7;
    color: #fff;
}

/* 不動産 */
.soat_list ul li.fudo > button{
    border-color: #44a1c5;
    color: #44a1c5;
}
.soat_list ul li.fudo > button:hover,
.soat_list ul li.fudo.on > button{
    background-color: #44a1c5;
    color: #fff;
}

/* FX
起業・独立*/
.soat_list ul li.fx > button,
.soat_list ul li.specialist > button{
    border-color: #c36380;
    color: #c36380;
}
.soat_list ul li.fx > button:hover,
.soat_list ul li.fx.on > button,
.soat_list ul li.specialist > button:hover,
.soat_list ul li.specialist.on > button{
    background-color: #c36380;
    color: #fff;
}

/* 投信
経済・会計 */
.soat_list ul li.mf > button,
.soat_list ul li.economy > button{
    border-color: #8a9f55;
    color: #8a9f55;
}
.soat_list ul li.mf > button:hover,
.soat_list ul li.mf.on > button,
.soat_list ul li.economy > button:hover,
.soat_list ul li.economy.on > button{
    background-color: #8a9f55;
    color: #fff;
}

/* 家計・保険・マイホーム */
.soat_list ul li.kyouyou > button{
    border-color: #7e678d;
    color: #7e678d;
}
.soat_list ul li.kyouyou > button:hover,
.soat_list ul li.kyouyou.on > button{
    background-color: #7e678d;
    color: #fff;
}

/* 老後・年金 */
.soat_list ul li.retire > button{
    border-color: #e16f4e;
    color: #e16f4e;
}
.soat_list ul li.retire > button:hover,
.soat_list ul li.retire.on > button{
    background-color: #e16f4e;
    color: #fff;
}

/* 税金・確定申告 */
.soat_list ul li.tax > button{
    border-color: #D1B53F;
    color: #D1B53F;
}
.soat_list ul li.tax > button:hover,
.soat_list ul li.tax.on > button{
    background-color: #D1B53F;
    color: #fff;
}

@media screen and (max-width: 599px) {
    .soat_list ul li > button{ font-size: 12px;}
}

/* 一覧 */
.school_list{
    clear: both;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 10px;
    height: auto !important;
}
.school_list + .school_list{ margin-top: 20px;}
.school_list .item{
    padding-bottom: 20px;
    border: 1px solid #1c236d;
    border-radius: 5px;
    overflow: hidden;
    box-sizing: border-box;
    position: static !important;
    height: auto !important;
}

.school_list.seminar .item{ border-color: #E16E4E;}
.school_list .item > * + *{
    padding-left: 10px;
    padding-right: 10px;
    margin-top: 10px;
}
.school_list .box_ttl{
    background: #f7f7f7;
    padding: 5px;
    text-align: left;
    color: #1c236d;
}
.school_list.seminar .box_ttl{ color: #E16E4E;}
.school_list .box_ttl .ttl{
    font-size: 16px;
    line-height: 1.3;
    letter-spacing: 0;
    padding-right: 50px;
    min-height: 50px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background-position: right top;
    background-size: 50px;
    background-repeat: no-repeat;
}
.school_list .icn_school .box_ttl .ttl{ background-image: url(/school/category/images/soat/icn_school.svg);}
.school_list .icn_zemi .box_ttl .ttl{ background-image: url(/school/category/images/soat/icn_zemi.svg);}
.school_list .icn_advance .box_ttl .ttl{ background-image: url(/school/category/images/soat/icn_advance.svg);}
.school_list .icn_seminar .box_ttl .ttl{ background-image: url(/school/category/images/soat/icn_seminar.svg);}
.school_list .box_ttl .ttl .txt_l{ font-size: 30px;}


.school_list .box_ttl .catch{
    font-size: 12px;
    margin: 0;
}

.school_list .tags{
    text-align: left;
    padding: 0 10px;
}
.school_list .tags li {
    display: inline-block;
    font-size: 13px;
    color: #45A1C5;
    border: 1px solid;
    background: #fff;
    padding: .3em .8em;
    border-radius: 1.5em;
    margin: 2px 0;
}
.school_list .tags .tag_warning{
    color: #fff;
    border-color: #C36280;
    background-color: #C36280;
}

.school_list .price{
    text-align: left;
    font-size: 16px;
}
.school_list .txt{
    text-align: left;
    font-size: 12px;
    margin-bottom: 0;
}

.school_list .teacher{
    text-align: left;
    display: flex !important;
    align-items: flex-start;
}
.school_list .teacher .photo{
    flex: 0 0 100px;
    margin-right: 1em;
}
.school_list .teacher .name{
    font-size: 14px;
    letter-spacing: 0;
    margin-bottom: .5em;
}

.school_list .btn{
    box-sizing: border-box;
    background: #5E76A7 url(/images/common/arrow02.svg) 98% center/1.1em no-repeat;
    color: #fff;
    padding: 5px 15px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10px 10px 0;
    border-radius: 5px;
    box-shadow: 0 3px 0 rgb(0 0 0 / 15%);
    font-size: 11px;
}
.school_list.seminar .btn{ background-color: #C36280;}

.school_list .wrap_btn .flex{ width: calc(100% - 20px);}
.school_list .wrap_btn .flex .btn{
    margin: 0;
    width: 48.5%;
}





/* -----------------------------------
カリキュラムマップ
----------------------------------- */
#map {
    width: 1024px;
    height: 652px;
    margin: 65px auto 0;
    position: relative;
    line-height: 0;
    overflow: hidden;
}

#map .panel {
    text-align: left;
    line-height: 1.5em;
    position: absolute;
    text-decoration: none;
    color: #000;
    background: #FFF;
    border: 1px solid #DDD;
    border-radius: 5px;
    font-size: 14px;
    box-shadow:0px 2px 3px 2px rgba(0,0,0,0.1);	
    -webkit-transition:all 0.3s;
    -moz-transition:all 0.3s;
    -ms-transition:all 0.3s;
    -o-transition:all 0.3s;
    transition:all 0.3s;
    width: 210px;
    z-index: 1;
    padding: 10px 12px 12px !important;
}
#map .panel .circle {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    border: solid 1px;
    padding: 10px;
    box-sizing: border-box;
    text-align: center;
    position: relative;
}
#map .panel h3 {
    width: 100%;
    text-align: center;
    margin: 0;
}
#map .btn_a {
	-webkit-transition:all 0.3s;
	-moz-transition:all 0.3s;
	-ms-transition:all 0.3s;
	-o-transition:all 0.3s;
	transition:all 0.3s;
}
.dot_under{ border-bottom: dotted 2px #87CEFA;}
#c_map .btn_red {
    transition: all 0.2s ease;
    position: relative;
    width: 150px;
    display: block;
    background-color: #d70032;
    color: #FFF;
    text-decoration: none;
    text-align: center;
    padding: 3px 0 3px;
    margin: 10px auto 0;
	border-radius: 3px;
}

/* 00 お金の教養講座 */
#map #btn00 {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX( -50% ) translateY( -50% );
}
#btn00 a{ display: block;}

/* pcのみ適用 */
@media screen and (min-width: 1025px) {
    #map #link01 > .panel {
        left: 220px;
        top: 120px;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: center 10%;
    }
    
    #map #link02 > .panel {
        left: 10px;
        top: 10px;
        padding: 10px 12px 12px;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: 60px 35px;
    }
    
    #map #link03 > .panel {
        left: 83px;
        top: 65px;
        padding: 12px !important;
        opacity: 0;
        transform: scale(.5, .35);
        transform-origin: 50% 20%;
    }
    
    #map #link04 > .panel {
        left: 218px;
        top: 18px;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: center 10px;
    }
    
    #map #link05 > .panel {
        left: 76px;
        top: 17px;
        opacity: 0;
        transform: scale(0.12);
        transform-origin: 50% 5%;
    }
    
    #map #link06 > .panel {
        left: 326px;
        top: 18px;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: center 10px;
    }
    
    #map #link07 > .panel {
        left: 394px;
        top: 0;
        padding: 12px  !important;
        opacity: 0;
        transform: scale(0.75,0.5);
        transform-origin: 50% 10%;
    }
    
    #map #link08 > .panel {
        left: 270px;
        top: 60px;
        opacity: 0;
        transform: scale(0.2);
        transform-origin: center;
    }
    
    #map #link09 > .panel {
        left: 505px;
        top: 0;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: center 3px;
    }
    
    #map #link10 > .panel {
        right: 105px;
        top: 110px;
        opacity: 0;
        transform: scale(0.2);
        transform-origin: center;
    }
    
    #map #link11 > .panel {
        left: 261px;
        top: 50px;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: center 30px;
    }
    
    #map #link12 > .panel {
        left: 608px;
        top: 0;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: center 6px;
    }
    
    #map #link14 > .panel {
        left: 723px;
        top: 0;
        padding: 12px !important;
        opacity: 0;
        transform: scale(0.7,.5);
        transform-origin: 50% 8%;
    }
    
    #map #link15 > .panel {
        left: 574px;
        top: 110px;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: center 5%;
    }
    
    #map #link16 > .panel {
        right: 10px;
        top: 0;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: 202px 5px;
    }
    
    #map #link17 > .panel {
        left: 630px;
        top: 35px;
        opacity: 0;
        transform: scale(0.15);
    }
    
    #map #link18 > .panel {
        left: 555px;
        top: 44px;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: center 5%;
    }
    
    #map #link19 > .panel {
        left: 506px;
        top: 244px;
        opacity: 0;
        transform: scale(0.1);
        transform-origin: center 3%;
    }
    
    #map #link20 > .panel {
        left: 556px;
        top: 244px;
        opacity: 0;
        transform: scale(0.1);
        transform-origin: center 3%;
    }
    
    #map #link21 > .panel {
        right: 0px;
        top: 102px;
        opacity: 0;
        transform: scale(0.2);
        transform-origin: 87% 15%;
    }
    
    #map #link22 > .panel {
        left: 647px;
        top: 228px;
        opacity: 0;
        transform: scale(0.12);
        transform-origin: center 90%;
    }
    
    #map #link23 > .panel {
        right: 0;
        bottom: 2px;
        opacity: 0;
        transform: scale(0.12);
        transform-origin: calc(100% - 20px) 67.5%;
    }
    
    #map #link25 > .panel {
        left: 238px;
        bottom: 25px;
        opacity: 0;
        transform: scale(0.13);
        transform-origin: center 51%;
    }
    
    #map #link26 > .panel {
        left: 508px;
        bottom: 28px;
        opacity: 0;
        transform: scale(0.12);
        transform-origin: center calc(100% - 24px);
    }
    
    #map #link27 > .panel {
        left: 142px;
        top: 143px;
        opacity: 0;
        transform: scale(0.14);
        transform-origin: center;
    }
    
    #map #link28 > .panel {
        left: 440px;
        bottom: 30px;
        opacity: 0;
        transform: scale(0.12);
        transform-origin: center calc(100% - 20px);
    }
    
    #map #link29 > .panel {
        left: 472px;
        bottom: 0;
        opacity: 0;
        transform: scale(0.5,0.35);
        transform-origin: center calc(100% - 175px);
    }
    
    #map #link30 > .panel {
        left: 733px;
        bottom: 0;
        opacity: 0;
        transform: scale(0.12);
        transform-origin: center calc(100% - 118px);
    }
    
    #map #link31 > .panel {
        left: 526px;
        top: 110px;
        margin: auto;
        opacity: 0;
        transform: scale(0.75, 0.5);
        transform-origin: center;
    }
    
    #map #link32 > .panel {
        right: 10px;
        bottom: 12px;
        opacity: 0;
        transform: scale(0.13);
        transform-origin: 144px 265px;
    }
    
    #map #link33 > .panel {
        left: 637px;
        bottom: 0;
        opacity: 0;
        transform: scale(0.5,0.35);
        transform-origin: center calc(100% - 180px);
    }
    
    #map #link34 > .panel {
        left: 294px;
        top: 150px;
        opacity: 0;
        transform: scale(0.2);
        transform-origin: center;
    }
    
    #map #link35 > .panel {
        left: 770px;
        bottom: 0;
        opacity: 0;
        transform: scale(0.13);
        transform-origin: center calc(100% - 10px);
    }
    
    #map #link36 > .panel {
        right: 0;
        bottom: 0;
        opacity: 0;
        transform: scale(0.15);
        transform-origin: calc(100% - 102px) calc(100% - 253px);
    }
    
    #map #link37 > .panel {
        left: 346px;
        top: 225px;
        opacity: 0;
        transform: scale(0.2);
        transform-origin: center;
    }
    
    #map #link38 > .panel {
        right: 0;
        bottom: 0;
        opacity: 0;
        transform: scale(0.2);
        transform-origin: calc(100% - 100px) calc(100% - 84px);
    }
    
    #map #link39 > .panel {
        left: 158px;
        top: 0;
        opacity: 0;
        transform: scale(0.13);
        transform-origin: center 73px;
    }
    
    #map #link40 > .panel {
        right: 0;
        bottom: 0;
        opacity: 0;
        transform: scale(0.1);
        transform-origin: calc(100% - 65px) calc(100% - 15px);
    }
    
    #map #link41 > .panel {
        left: 30px;
        top: 0;
        opacity: 0;
        transform: scale(0.11);
        transform-origin: 106px 25px;
    }
    
    #map #link42 > .panel {
        right: 0;
        top: 0;
        opacity: 0;
        transform: scale(0.14);
        transform-origin: 205px 80px;
    }
    
    #map #link43 > .panel {
        right: 43px;
        top: 42px;
        opacity: 0;
        transform: scale(0.12);
        transform-origin: center;
    }
    
    #map #link44 > .panel {
        right: 0px;
        top: 184px;
        opacity: 0;
        transform: scale(0.35);
        transform-origin: 80% 22%;
    }
    
    #map a:hover img{ opacity: 1 !important;}

    #map a[id^="link"]:hover > .panel{
        opacity: 1 !important;
        display: block;
        transform: scale(1.0) !important;	/*画像の拡大率*/
        transition-duration: 0.2s;	/*変化に掛かる時間*/
    }
}

/* タブレット以下 */
@media screen and (max-width: 1024px) {
    #map {
    width: 96%;
    height: inherit;
    overflow: auto;
    margin: 30px auto 0;
    padding: 0;
    position: relative;
    }
    #map::before{
        content: "";
        display: block;
        padding-top: 63%;
    }

    #map .panel h3 img{ width: 50%;}
    #c_map .panel {
        line-height: 1.5em;
        position: absolute;
        text-decoration: none;
        color: #000;
        background: #FFF;
        border: 1px solid #DDD;
        border-radius: 5px;
        font-size: 18px;
        box-shadow: 0px 2px 3px 2px rgba(0,0,0,0.1);
        -webkit-transition: all 0.3s;
        -moz-transition: all 0.3s;
        -ms-transition: all 0.3s;
        -o-transition: all 0.3s;
        transition: all 0.3s;
        width: 80%;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }

    /* ↓↓モーダルに適用 */
    #c_map #map div[id^=panel]{
        transform: scale(0);
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        transform-origin: center center;
        margin: auto;
    }
    #c_map #map div[id^=panel].show {
        top: 100px;
        bottom: auto;
        transform: scale(.85);
        opacity: 1;
        position: fixed;
        z-index: 99;
    }
    #modal-overlay{
        z-index: 1;
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 120%;
        background-color: rgba(0,0,0,0.75);
    }
    #modal-overlay:before{
        content:"";
        position:absolute;
        display:inline-block;
        top:104px;
        right:20px;
        width:2px;
        height:32px;
        border:0;
        margin:0;
        padding:0;
        background-color:white;
        -moz-transform:rotate(45deg);
        -webkit-transform:rotate(45deg);
        transform:rotate(45deg);
    }
    #modal-overlay:after{
        content:"";
        position:absolute;
        display:inline-block;
        top:104px;
        right:20px;
        width:2px;
        height:32px;
        border:0;
        margin:0;
        padding:0;
        background-color:white;
        -moz-transform:rotate(-45deg);
        -webkit-transform:rotate(-45deg);
        transform:rotate(-45deg);
    }
    
    #map #btn00{ display: none;}
}


@media screen and (max-width: 599px) {
    #map .panel h3 img.img_l{ width: 80%;}
}


/* タブレット横にした時のマップ表示 */
@media screen and (max-width: 1024px) and (orientation: landscape){
    #head2{ position: static !important;}
    #c_map #map div[id^=panel].show { top: 0;}
    #map .panel h3 img,
    #map .panel h3 img.img_l{ width: 35%;}
    #modal-overlay:before,
    #modal-overlay:after{ top: 10px;}
}


/********************************************************/
/********************* SVG本体 **************************/
/*******************************************************/
#map svg{
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
}

/**************************************************************/
/********************* 拡大縮小本体 **************************/
/**************************************************************/
#mapScale {
    color: #fff;
    height: 30px;
    text-align: center;
    transition: all 150ms ease 0s;
    width: 90%;
    background-color: #fff;
    margin: 30px auto;
    position: relative;
}
#mapScale.spScale{
    height: 70px;
    width: 263px;
}
@media screen and (min-width: 1025px) {
    #mapScale { display: none;}
}



#mapScale *, #mapScale *::before, #mapScale *::after {
    box-sizing: border-box;
}

/**************************************************************/
/********************* 拡大縮小ボタン **************************/
/**************************************************************/
#mapPlus, #mapMinus {
    -moz-user-select: none;
    border: 4px solid;
    border-radius: 50%;
    color: #9B9B9B;
    cursor: pointer;
    height: 30px;
    top: 0;
    position: absolute;
    transition: all 150ms ease 0s;
    width: 30px;
}
.spScale #mapPlus,
.spScale #mapMinus
{
    border: 4px solid;
    height: 40px;
    width: 40px;
}



#mapPlus{
    /*    top: -2px;*/
    right: 0;
}
#mapMinus {
    /*    bottom: 0;*/
    left: 0;
}
#mapPlus:before {
    content: "";
    border-left: 4px solid;
    color: #9B9B9B;
    height: 20px;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    margin: auto;
    /*    margin-left: -2px;
    margin-top: -6px;*/
}
/*.spScale #mapPlus:before {
border-left: 5px solid;
height: 28px;
top: 27%;
left: 50%;
}*/


#mapPlus:after,
#mapMinus:after {
    content: "";
    color: #9B9B9B;
    border-top: 4px solid;
    width: 20px;
    position: absolute;
    top: 45%;
    height: 0;
    left: 0;
    right: 0;
    margin: auto;
    /*    margin-left: -6px;
    margin-top: -2px;*/
}

/*.spScale #mapPlus:after,
.spScale #mapMinus:after {
border-top: 5px solid;
width: 28px;
left: 30%;
top: 49%;
}*/


#mapPlus:after:hover,
#mapMinus:after:hover {
    color: #4F4F4F;
}


#mapPlus:hover,
#mapMinus:hover {
    color: #4F4F4F;
}
#mapPlus:hover:after,
#mapMinus:hover:after {
    content: "";
    color: #4F4F4F;
    /*    border-top: 4px solid;
    width: 20px;
    position: absolute;
    top: 45%;
    height: 0;
    left: 0;
    margin: auto;*/
    /*    margin-left: -6px;
    margin-top: -2px;*/
}

/*.spScale #mapPlus:hover:after,
.spScale #mapMinus:hover:after {
border-top: 8px solid;
width: 28px;
left: 36%;
top: 49%;
}*/





#mapPlus:hover:before {
    content: "";
    color: #4F4F4F;
    /*    border-left: 4px solid;
    height: 12px;
    left: 50%;
    margin-left: -2px;
    margin-top: -6px;
    position: absolute;
    top: 50%;
    width: 0;*/
}

.spScale #mapPlus:hover:before {
    /*    border-left: 8px solid;
    height: 28px;
    top: 38%;
    left: 46%;*/
}


#mapPlus.off, #mapMinus.off {
    cursor: default;
    opacity: 0.3;
}
#mapPlus.off:hover, #mapMinus.off:hover {
    transition: none 0s ease 0s ;
}
#mapRail {
    background-color: #9B9B9B;
    border-radius: 3px;
    height: 5px;
    top: 40%;
    left: 0;
    right: 0;
    margin: auto;
    position: absolute;
    width: 180px;
}

.spScale #mapRail {
    background-color: #9B9B9B;
    border-radius: 3px;
    /*    margin-left: 0px;
    margin-top: 0px;
    width: 6px;
    left: 44%;
    top:32.5%;*/
    height: 6px;
    width: 60%;
    left: 0;
    right: 0;
    margin: auto;
}




/*******************************************************/
/********************* ルーラー **************************/
/*******************************************************/
#mapRulerBg {
    background-color: #4f4f4f;
    border-radius: 3px;
    bottom: 0;
    height: 7px;
    left: 0;
    position: absolute;
    width: 5px;
    z-index: 1;
}
#mapRuler {
    border-radius: 3px;
    /*    bottom: 0;*/
    top: 11px;
    height: 0;
    left: 0;
    position: absolute;
    width: 5px;
    z-index: 1;
}
#mapHandle {
    -moz-user-select: none;
    background-color: #4f4f4f;
    border-radius: 50%;
    cursor: pointer;
    height: 14px;
    left: 50%;
    margin-left: -7.1px;
    /*    margin-top: -7px;*/
    position: absolute;
    top: -16px;
    width: 14px;
}

.spScale #mapHandle {
    height: 18px;
    width: 18px;
    margin-left:-7.1px;
    /*    top: -11px;
    left:26%;*/
}


#mapHandle:hover {
    background-color: #4f4f4f;
    transform: scale(1.15);
}
