/* =================================================

    * responsive

================================================= */
@media screen and (max-width: 1200px){
	.btn-top-menu{
		right: 0;
	}
}
@media screen and (max-width: 768px){
    #header{
        padding: 0;
        background: #000;
    }
    .header-logo{
        display: block;
        width: 100%;
        padding: 15px;
        background-color: #fff;
    }
    .header-logo h1{
        width: 180px;
        height: 32px;
        margin-bottom: 0;
        background-image: url('../images/h1_logo_color.png');
        background-size: 100%;
    }
    .header-text{
        margin: 0;
        padding: 45px 15px 55px;
        background-repeat: no-repeat;
        background-position: center bottom;
        background-image: url('../images/bg_header_text.png');
        background-size: cover;
        background-color: #d7efff;
    }
    .header-text h2{
        width: 100%;
        max-width: 265px;
    }
    .header-text h2 img{
        width: 100%;
    }
    .header-text p{
        margin-top: 10px;
        padding: 4px 12px; 
        font-size: 12px;
    }

    .util-menu{
        width: auto;
        top: 16px;
        right: 15px;
    }
    .util-menu li:last-child{
        display: none;
    }
    .util-menu li a{
        padding: 0;
        border-radius: 0;
        -webkit-box-shadow: none;
        box-shadow: none;
    }
    .util-menu li a img{
        width: 30px;
        margin: 0;
    }
    .util-menu li a span{
        display: none;
    }

    #gnb{
        position: fixed;
        width: 100%;
		height: 100%;
        background-color: #fff;
        word-break: keep-all;
    }
    .gnb{
        height: calc(100% - 207px);
    }
	.gnb::-webkit-scrollbar{
		width: 5px;
	}
    .gnb-header{
        padding: 20px 50px 15px 15px;
    }
    .gnb-header h1 a{
        width: 215px;
    }
    .gnb-header h1 a img{
        width: 100%;
    }
    .gnb-header p{
        margin-top: 7px;
        padding: 4px 12px;
        font-size: 12px;
    }
    #gnb .btn-link{
        padding: 13px 40px;
        font-size: 14px;
        background-size: 17px, 14px;
        background-position: 15px center, right 20px center;
        line-height: 1.2;
    }
    .btn-link img{
        width: 17px;
        margin-right: 5px;
    }
    .gnb{
        padding: 0 15px;
    }
    .gnb li a{
        padding: 16px 20px;
        font-size: 14px;
        background-position: 0 center, right center;
        background-size: 8px auto, 23px auto;
        line-height: 1.2;
    }
    .gnb-logo{
		position: static;
		bottom: auto;
        padding: 20px 15px;
    }
    .gnb-logo img{
        width: 160px;
    }
    .btn-menu-close{
        top: 35px;
        right: 15px;
        width: 30px;
        height: 30px;
    }
    .btn-menu-close img{
        width: 15px;
    }

    .main-container{
        padding: 0 15px;
    }    
    .main-contents:nth-child(2){
        padding-top: 35px;
    }
    .greeting-conbox{
        position: relative;
        top: -5px;
        padding: 20px 15px;
        background-size: 70px auto, 100px auto;
        font-size: 14px;
        text-align: left;
        word-break: keep-all;
    }
    .greeting-tit-wrap{
        margin-bottom: 20px;
    }
    .greeting-tit{
        padding-left: 20px;
        font-size: 22px;
    }
    .greeting-tit:before{
        top: 6px;
        width: 15px;
        height: 10px;
        background-size: cover;
    }    
    .greeting-con{
        position: relative;
    }
    .greeting-conbox .img-wrap, 
    .greeting-conbox .text-wrap{
        overflow: hidden;
        float: none;
        width: 100%;
    }
    .greeting-conbox .img-wrap{
        position: absolute;
        bottom: 0;
        right: -10px;
        width: 140px;
        height: 130px;
        background-image: url('../images/img_greeting_m.png');
        background-size: cover;
    }
    .greeting-conbox .text-wrap{
        padding: 25px 20px 120px;
        border-radius: 25px 25px 0 25px;
        background-repeat: no-repeat;
        background-position: center 0;
        background-image: url('../images/bg_greeting_text_wrap.png');        
        background-size: cover;
        font-size: 14px;
    }
    .greeting-conbox .text-wrap strong{
        margin-bottom: 25px;
    }
    .greeting-conbox .text-wrap p + p{
        margin-top: 25px;
    }
    .greeting-conbox .greeting-con + p{
        margin-top: 20px;
    }
    .greeting-conbox p + p{
        margin-top: 20px;
    }
    .greeting-conbox .sign{
        margin-top: 45px;
    }
    .greeting-conbox .sign img{
        width: 60px;
    }

    .main-conbox{
        float: none;
        width: 100%;
        height: auto;
        min-height: 120px;
        margin-left: 0;
        margin-top: 30px;
        padding: 30px 15px 20px;
        background-position: right bottom;
        background-size: 90px auto;
    }
    .main-conbox:nth-child(1),
    .main-conbox:nth-child(2),
    .main-conbox:nth-child(7), 
    .main-conbox:nth-child(8){
        height: auto;
    }
    .main-conbox:nth-child(-n+2){
        margin-top: 30px;
    }
    .main-contents:nth-child(3){
        padding-top: 18px;
        padding-bottom: 32px;
    }
    .main-conbox:first-child{
        margin-top: 0;
    }
    .main-conbox:nth-child(5),
    .main-conbox:nth-child(6){
        height: auto;
    }
    /* .main-conbox:nth-child(1){
        background-image: url('../images/bg_main_conbox01_m.png');
    }
    .main-conbox:nth-child(2){
        background-image: url('../images/bg_main_conbox02_m.png');
    }
    .main-conbox:nth-child(3){
        background-image: url('../images/bg_main_conbox03_m.png');
    }
    .main-conbox:nth-child(4){
        background-image: url('../images/bg_main_conbox04_m.png');
    }
    .main-conbox:nth-child(5){
        background-image: url('../images/bg_main_conbox05_m.png');
    }
    .main-conbox:nth-child(6){
        background-image: url('../images/bg_main_conbox06_m.png');
    }
    .main-conbox:nth-child(8){
        background-image: url('../images/bg_main_conbox08_m.png');
    } */
    .main-tit-wrap{
        top: -16px;
    }
    .main-con-tit{
        width: auto;
        height: auto;
        padding: 8px 10px;
        font-size: 16px;
    }
    .main-con-tit:before{
        width: 10px;
        height: 15px;
        background-size: cover;
    }
    .main-conbox p{
        font-size: 14px;
    }
    .main-conbox .name{
        bottom: 20px;
    }
    .main-conbox .list-type li{
        font-size: 14px;
    }
    .list-type-dot li:before{
        top: 9px;
    }
    .main-conbox .cf .img-wrap{
        width: 70px;
        margin-top: -7px;
    }
    .main-conbox .cf .img-wrap img{
        max-width: 100%;
    }
    .main-quick-menu li{
        width: calc((100% - 11px)/2);
        height: 140px;
        margin-left: 10px;
        margin-top: 10px;
        background-size: auto 120px;
    }
    .main-quick-menu li img{
        max-width: none;
        width: 100%;
        height: 100%;
    }
    .main-quick-menu li:nth-child(4n+1){
        margin-left: 10px;
    }
    .main-quick-menu li:nth-child(2n+1){
       margin-left: 0;
    }
    .main-quick-menu li:nth-child(-n+2){
        margin-top: 0;
    }
    .main-quick-menu li:not(:first-child) > a{
        padding: 15px;
    }
    .main-quick-tit{
        font-size: 16px;
    }
    .main-quick-tit br{
        display: block;
    }

    .sponsor-wrap{
        padding: 10px 15px;
    }
    .sponsor-list a{
        margin: 0 5px;
    }
    .sponsor-list .slick-list{
        margin: 0 -5px;
    }

	.btn-top-menu{
		display: none !important;
	}
    #footer{
        padding: 25px 15px 30px;
    }
    .footer-logo{
        margin-bottom: 10px;
        font-size: 14px;
    }
    .footer-con ul li{
        font-size: 12px;
        line-height: 1.2;
    }
    .footer-con ul li + li{
        margin-top: 10px;
    }
    .footer-con ul li span + span{
        padding-left: 7px;
        margin-left: 7px;
    }
    .footer-con ul li span + span:before{
        top: 4px;
        width: 1px;
        height: 6px;
    }
    #footer .copy{
        margin-top: 15px;
        font-size: 12px;
    }
    
    #sub-container{
        padding: 0 15px 60px;
    }
    .sub-con-tit{
        padding-bottom: 5px;
        font-size: 16px;
    }
    .sub-con-tit:before{
        height: 2px;
    }
    .sub-tit-wrap{
        margin-bottom: 15px;
    }
    .sub-tit{
        padding: 10px 20px;
        font-size: 18px;
    }
    .round-tit{
        margin-top: 20px;
        margin-bottom: 10px;
        font-size: 15px;
        background-size: 10px;
		background-position: 0 4px;
    }
	.sub-conbox p + .round-tit{
		margin-top: 20px;
	}	
	.sub-conbox p + .round-tit:nth-of-type(1){
		margin-top: 20px;
	}
    .list-type + .round-tit:nth-of-type(1){
        margin-top: 20px;
    }
    .sub-conbox{
        padding: 15px 15px 30px;
        word-break: keep-all;
    }
    .sub-conbox + .sub-conbox{
        margin-top: 15px;
    }
    .conf-info{
        margin-bottom: 15px;
    }
    .conf-info li{
        padding: 3px 0;
        padding-left: 30px;
        font-size: 14px;
        background-size: 18px auto;
		background-position: 0 1px;
    }
    .conf-info .topic{
        background-position: 2px 1px;
    }
    .conf-info li + li{
        margin-top: 5px;
    }

    .intro-conbox{
        min-height: initial;
        padding: 15px 15px 30px;
    }
    .intro-conbox:before{
        width: 100%;
        height: 100px;
        background-image: url('../images/sub/bg_intro_conbox_m.png');
    }
    .intro-conbox + .intro-conbox{
        margin-top: 20px;
    }
    .intro-tit{
        margin: 0;
        padding: 1px 10px 5px 32px;
    }
    .intro-tit img{
        max-width: 100%;
        max-height: 20px;
    }
    .intro-tit:before{
        width: 28px;
        height: 28px;
        background-size: cover;
    }
    .intro-tit:after{
        top: 9px;
        height: 12px;
    }
    .intro-conbox .cf{
        margin-top: 5px;
    }
    .intro-conbox .img-wrap,
    .intro-conbox .text-wrap{
        float: none;
        width: 100%;
    }
    .intro-conbox .text-wrap{
        padding: 0;
        margin-top: 20px;
        font-size: 14px;
    }

    .name-tit{
        padding: 4px 0 4px 25px;
        margin-bottom: 10px;
        font-size: 14px;
        background-size: 20px;
    }
    .name-tit.men{
        padding: 5px 0 5px 25px;
    }
    .sub-conbox .tit{
        margin-top: 15px;
        margin-bottom: 5px;
        font-size: 15px;
    }
    .sub-conbox p{
        font-size: 14px;
    }
    .sub-conbox p + .img-wrap{
        margin-top: 15px;
    }
    .img-wrap + .img-wrap{
        margin-top: 15px;
    }
    .img-wrap.n2 + .img-wrap,
    .img-wrap.n2 + .img-wrap.n2{
        margin-top: 15px;
    }
    .img-wrap.n2 img{
        max-width: none;
        width: calc((100% - 10px)/2);
    }
    .img-wrap.n2 img + img{
        margin-left: 10px;
    }
    .img-tit-wrap{
        margin-top: 10px;
    }
    .img-tit-wrap .img-tit{
        padding: 0 10px 3px;
        padding: 0 10px;
        font-size: 16px;
        background-size: auto 10px;
    }
    .img-tit:before, 
    .img-tit:after{
        width: 12px;
        height: 10px;
        background-size: 100%;
    }
    .img-tit.type2{
        padding: 0 2px 1px;
        font-size: 14px;
        box-shadow: inset 0 -8px #FFDADA;
    }
    .img-wrap + p{
        margin-top: 20px;
    }
    .img-wrap:has(.img-con){
        display: flex;
        flex-direction: column-reverse;
        justify-content: start;
        text-align: left;
        gap: 20px;
    }
    .img-wrap:has(.img-con) .img{
        flex: initial;
        width: 100%;
    }
    .img-wrap:has(.img-con) img{
        max-width: 100%;
        margin: 0 auto;
    }
    .bg-conbox{
        margin: 20px 0;
        padding: 20px;
    }

    .link-list li a{
        flex-shrink: 1;
        padding: 10px;
        font-size: 16px;
    }
    .link-list li strong{
        display: block;
        padding: 0;
        margin-bottom: 5px;
    }
    .link-list li .btn{
        padding: 10px;
        min-width: inherit;
        font-size: 14px;
    }
    .link-list li img{
        width: 5px;
        margin-top: 3px;
    }
    .link-list li .btn img{
        margin-left: 5px;
    }
    .link-list li:first-child .btn{
        padding: 10px;
    }
    .link-list li:first-child .btn img{
        width: 15px;
        margin-top: 0;
        margin-right: 5px;
    }
    .brief-conbox .tit{
        padding-left: 15px;
        margin-top: 30px;
        margin-bottom: 10px;
        background-size: 10px;
        font-size: 16px;
    }
    .brief-list li + li{
        margin-top: 5px;
    }
    .hobby-conbox .img-wrap{
        padding: 0 20px;
    }
    .hobby-conbox .img-wrap + .img-wrap{
        margin-top: 10px;
    }
    .list-type-num li{
        font-size: 14px;
    }
    .list-type-num span{
       width: 20px;
    }
    .list-type-num span + p{
        width: calc(100% - 25px);
    }
    .list-type-bar li{
        font-size: 14px;
    }
    .list-type-bar li:before{
        top: 9px;
    }
    .list-type-decimal > li{
        font-size: 14px;
    }

    .notice-list li{
        padding: 20px;
        background-position: 0 0, right bottom;
        background-repeat: no-repeat;
        background-image: url('../images/sub/bg_notice_conbox01_m.png'), url('../images/sub/bg_notice_conbox02_m.png');
        background-size: auto 100%;
    }
	.notice-list li + li{
		margin-top: 10px;
	}
    .notice-list li strong{
        margin-bottom: 5px;
        font-size: 20px;
        font-weight: 700;
    }
    .notice-list li strong > span{
        display: block;
        font-size: 16px;
        font-weight: 400;
    }
    .notice-list li p{
        font-size: 14px;
    }
    .notice-list li p > span + span{
        padding-left: 10px;
        margin-left: 6px;
    }
    .notice-list li p > span + span:before{
        height: 7px;
    }
    .notice-list li p .num{
        font-size: 16px;
    }

	.info-box{
		margin-top: 20px;
		padding: 20px;
		padding-left: 90px;
		background-size: 50px;
		background-position: 20px center;
	}
	.info-box > .tit{
		margin-top: 0;
	}
	.info-box ul li{
		font-size: 14px;
	}

    /* table */
    .cst-table th, 
    .cst-table td{
        padding: 10px 5px;
    }
    .cst-table thead th{
		padding: 10px;
        font-size: 14px;
    }
    .cst-table th,
    .cst-table td{
        font-size: 14px;
    }
    .cst-table .name{
        font-size: 14px;
    }
    .cst-table td.name{
        padding: 10px 5px;
    }
    .cst-table td.bg-green p.name{
        margin-top: 0;
    }
    /* .cst-table colgroup col:nth-child(1){
        width: 20% !important;
    }
    .cst-table.col2 colgroup col:nth-child(1){
        width: 80% !important;
    } */
	.cst-table + .cst-table{
		margin-top: 15px;
	}

    /* table */
    .scroll-x{
        overflow-x: auto;
    }
    .scroll-x table{
        width: 768px;
    }

    .touch-help{
		position: relative;
	}
	.touch-help:before{
		display: block;
		content: '';
		color: #fff;
		clear: both;
		position: absolute;
		top: 50%;
		left: 50%;
		z-index: 2;
		width: 100%;
		max-width: 80%;
		height: 100%;
		-webkit-transform: translate(-50%,-50%);
		transform: translate(-50%,-50%);
		background-repeat: no-repeat;
		background-position: center;
		background-size: 100%;
		background-image: url('../images/img_touch_help.png');
	}
	.touch-help.small:before{
		width: 100%;
		max-width: 100%;
		height: 75px;
		background-size: auto 100%;
	}
	.touch-help table{
		position: relative;
	}
	.touch-help table:before{
		display: block;
		content: '';
		clear: both;
		position: absolute;
		top: 0;
		left: 0;
        z-index: 1;
		width: 100%;
		height: 100%;
		background-color: rgba(0,0,0,0.7);
	}

    p + .table-wrap{
        margin-top: 15px;
    }
    .table-wrap + .img-wrap{
        margin-top: 20px;
    }

    .con-wrap{
        flex-direction: column;
    }
    .con-wrap .img-wrap{
        width: 100%;
    }
    .con-wrap .text-wrap{
        font-size: 14px;
    }
    .sub-conbox p + p{
        margin-top: 15px;
    }
}

@media screen and (max-width: 480px){
    .intro-tit:has(picture){
        margin-top: 15px;
    }
    .intro-tit picture img{
        max-height: 35px;
        margin-top: -15px;
    }
}