#main_cont_part {
    width: 960px;
    margin: 10px auto 30px;
}


/* エリアから探す */
#area_search_area {
    width: 936px;
    height: 450px;
    margin: 0 auto;
    border: 1px solid #dcdcdc;
    border-radius: 8px;
    padding: 10px;
}
#area_search_area:hover {
    border: 1px solid #00479d;
}
#area_search_area h2 {
    background-image: url(/img/icon_jpn_map.svg);
    background-repeat: no-repeat;
    background-size: 25px;
    padding: 0 38px;
    font-size: 14px;
    height: 25px;
    font-weight: bold;
    line-height: 25px;
}
/*東京/大阪マップ*/
#tokyo_osaka_map {
    width: 350px;
    float: left;
    margin: 20px 0 0 30px;
}
/*切り替えボタン*/
.switch_item {
    width: 100px;
    margin: -2px;
    padding: 3px 15px;
    border-radius: 2px;
    color: #afafaf;
    border: 1px solid #afafaf;
}
.switch_item:hover {
    opacity: 0.75;
}
/*ラジオボタンを消す*/
input[name="switch_item"] {
    display: none;
}
/*切り替えコンテンツ*/
.switch_content {
    display: none;
    padding: 5px;
    clear: both;
    overflow: hidden;
}
/*選択されたボタンのコンテンツを表示*/
#tokyo:checked ~ #tokyo_content,
#osaka:checked ~ #osaka_content {
    display: block;
}
/*選択されたボタンのスタイル*/
#tokyo_osaka_map input:checked + .switch_item {
    width: 100px;
    margin: -3px;
    padding: 3px 15px;
    border-radius: 2px;
    background-color: #00479d;
    color: #fff;
    border: 1px solid #00479d;
    font-weight: bold;
}
#tokyo_content {
    background-image: url(/img/map_tokyo.svg);
    background-size: 350px;
    background-repeat: no-repeat;
    position: relative;
    height: 350px;
}
#osaka_content {
    background-image: url(/img/map_osaka.svg);
    background-size: 350px;
    background-repeat: no-repeat;
    position: relative;
    height: 350px;
}
.cty_name {
    width: 58px;
    text-align: center;
    border: 1px solid #ec2552;
    border-radius: 6px;
    background-color: #fff;
    box-shadow: 4px 4px 10px #c5c2c2;
    font-size: 12px;
}
.cty_name a {
    width: 60px;
    margin: -1px;
    padding: 1px;
    text-decoration: none;
    color: #002853;
    display: block;
}
.cty_name:hover {
    background-color: #ec2552;
}
.cty_name a:hover {
    color: #fff;
}
.t1 {
    margin: 20px 0 0 200px;
}
.t2 {
    margin: 7px 0 0 270px;
}
.t3 {
    margin: 50px 0 0 280px;
}
.t4 {
    margin: -80px 0 0 195px;
}
.t5 {
    margin: 10px 0 0 240px;
}
.t6 {
    margin: 40px 0 0 240px;
}
.t7 {
    margin: -85px 0 0 175px;
}
.t8 {
    margin: 40px 0 0 175px;
}
.t9 {
    margin: -120px 0 0 120px;
}
.t10 {
    margin: 51px 0 0 150px;
}
.t11 {
    margin: 45px 0 0 120px;
}
.t12 {
    margin: 10px 0 0 150px;
}
.t13 {
    margin: 20px 0 0 140px;
}
.t14 {
    margin: 40px 0 0 130px;
}
.t15 {
    margin: -300px 0 0 50px;
}
.t16 {
    margin: 15px 0 0 90px;
}
.t17 {
    margin: 50px 0 0 90px;
}
.t18 {
    margin: -90px 0 0 10px;
}
.t19 {
    margin: 10px 0 0 60px;
}
.t20 {
    margin: 45px 0 0 60px;
}
.t21 {
    margin: 30px 0 0 85px;
}
.t22 {
    margin: -90px 0 0 0px;
}
.t23 {
    margin: 75px 0 0 30px;
}
.o1 {
    margin: 40px 0 0 190px;
}
.o2 {
    margin: 7px 0 0 110px;
}
.o3 {
    margin: 30px 0 0 20px;
}
.o4 {
    margin: -60px 0 0 240px;
}
.o5 {
    margin: 0 0 0 180px;
}
.o6 {
    margin: 7px 0 0 150px;
}
.o7 {
    margin: -20px 0 0 85px;
}
.o8 {
    margin: 10px 0 0 30px;
}
.o9 {
    margin: -70px 0 0 270px;
}
.o10 {
    margin: 7px 0 0 240px;
}
.o11 {
    margin: -5px 0 0 170px;
}
.o12 {
    margin: -20px 0 0 105px;
}
.o13 {
    margin: 10px 0 0 50px;
}
.o14 {
    margin: -45px 0 0 240px;
}
.o15 {
    margin: 0 0 0 180px;
}
.o16 {
    margin: -22px 0 0 115px;
}
.o17 {
    margin: 10px 0 0 70px;
}
.o18 {
    margin: -30px 0 0 230px;
}
.o19 {
    margin: -17px 0 0 135px;
}
.o20 {
    margin: 7px 0 0 180px;
}
.o21 {
    margin: 0 0 0 250px;
}
.o22 {
    margin: -10px 0 0 180px;
}
.o23 {
    margin: 7px 0 0 150px;
}
.o24 {
    margin: -70px 0 0 70px;
}
#all_map {
    background-image: url(/img/map_all.svg);
    background-size: 480px;
    background-repeat: no-repeat;
    float: right;
    width: 520px;
    position: relative;
}
#all_map p {
    margin: 18px 0 0 50px;
    width: 70px;
    padding: 3px 0;
    border-radius: 2px;
    background-color: #00479d;
    text-align: center;
    font-size: 12px;
    color: #fff;
    border: 1px solid #00479d;
    font-weight: bold;
}
.p1 {
    margin: 30px 0 0 270px;
}
.p2 {
    margin: 40px 0 0 420px;
}
.p3 {
    margin: 40px 0 0 420px;
}
.p4 {
    margin: -20px 0 0 355px;
}
.p5 {
    margin: 7px 0 0 380px;
}
.p6 {
    margin: 7px 0 0 350px;
}
.p7 {
    margin: -40px 0 0 285px;
}
.p8 {
    margin: 7px 0 0 285px;
}
.p9 {
    margin: -20px 0 0 220px;
}
.p10 {
    margin: 7px 0 0 220px;
}
.p11 {
    margin: -47px 0 0 155px;
}
.p12 {
    margin: 7px 0 0 155px;
}
.p13 {
    margin: -30px 0 50px 85px;
}
.p14 {
    margin: -40px 0 50px 40px;
}
.p15 {
    margin: -20px 0 50px 70px;
}



/*3つの特徴*/
#three_features_area {
    margin-top: 30px;
}
#three_features_area h2 {
    color: #002853;
    border-left: solid 5px #002853;
    font-size: 16px;
    padding: 0 0 0 5px;
	font-weight: bold;
}
#three_features_area .three_features {
    margin-top: 10px;
}
.three_features .cassette {
    width: 270px;
    margin: 0 24px;
    height: auto;
    border: 1px solid #dcdcdc;
    text-align: center;
    display: block;
    float: left;
}
.three_features .cassette h3 {
    margin: 10px 0;
    font-size: 14px;
    color: #ec2552;
    border: none;
    font-weight: bold;
}
.three_features .cassette p {
    font-size: 11px;
    margin: 10px auto;
}
.three_features .cassette img {
	width: 250px;
	height: 140px;
	margin: 6px 0;
}



/* お知らせエリア */
.notice_message_area {
	width: max-content;;
    height: 30px;
    border-radius: 8px;
    margin-top: -38px;
    margin-right: 1px;
    float: right;
    border: 1px solid #00479d;
    position: relative;
    background-image: url(/img/icon_notice.svg);
    background-size: 14px;
    background-repeat: no-repeat;
    background-position-x: 10px;
    background-position-y: 8px;
}
.notice_message_area:hover {
    color: #ec2552;
}
.notice_message_area:after {
    content: "";
    display: block;
    position: absolute;
    top: 7px;
    right: 15px;
    width: 8px;
    height: 8px;
    transform: rotate(45deg);
    border-bottom: 2px solid #00479d;
    border-right: 2px solid #00479d;
}
.notice_message {
    line-height: 30px;
    margin: 0 40px 0 35px;
}
/* モーダル */
.modal_overlay {
	position: fixed;
    display: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0,0,0,0.5);
    z-index: 2;
}
.modal_window {
	width: 820px;
	height: auto;
    border: 3px solid #00479d;
    border-radius: 6px;
    background-color: #fff;
    margin: 300px auto;
}
.modal_close {
    padding: 5px 10px;
    background-color: #00479d;
    float: right;
    font-size: 16px;
    color: #fff;
    border-bottom-left-radius: 5px;
    cursor: pointer;
}
.modal_content {
	padding: 20px;
	font-size: 14px;
	color: #00479d;
}
.modal_header {
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    text-decoration: underline;
    padding: 15px;
}
.modal_main {
    padding: 20px 15px;
    color: #333;
}
.modal_footer {
    text-align: right;
    font-size: 14px;
    font-weight: bold;
    text-decoration: underline;
    padding: 15px;
}