header, footer, nav, section, aside, article{
	box-sizing: border-box;
	display: block;
}

h1,h2,h3,h4,div,a,img,p,form,ul,li,ol,label,button {
	box-sizing: border-box;
	margin:0px;
	padding:0px;
	border:none;
	font-weight: normal;
	list-style-type: none;
	font-style: normal;
	text-decoration: none;
}

th,td {
	box-sizing: border-box;
	margin:0px;
	padding:0px;
}

h1,h2,h3,h4{
    font-weight: 600;
}

div.df{
	box-sizing: border-box;
	display: block;
	overflow: auto;
	margin: 0;
	padding:0;
}

body{
	box-sizing: border-box;
	display: block;
	margin: 0;
	padding: 0;
	font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
	-webkit-text-size-adjust: none;
	color: #000;
	line-height: 1.6;
	overflow-x: hidden;
	overflow-y: auto;
	width: 100%;
    max-width: 100vw;
    letter-spacing: 0.05em;
}

main{
    padding-top: 100px;
}

:root { --header-h: 105px; }
html { scroll-padding-top: var(--header-h); }

/*********************************/
/*  font-size , text-align       */
/*********************************/

.font-10{ font-size: 10px;}
.font-11{ font-size: 11px;}
.font-12{ font-size: 12px;}
.font-13{ font-size: 13px;}
.font-14{ font-size: 14px;}
.font-15{ font-size: 15px;}
.font-16{ font-size: 16px;}
.font-17{ font-size: 17px;}
.font-18{ font-size: 18px;}
.font-19{ font-size: 19px;}
.font-20{ font-size: 20px;}
.font-21{ font-size: 21px;}
.font-22{ font-size: 22px;}
.font-23{ font-size: 23px;}
.font-24{ font-size: 24px;}
.font-25{ font-size: 25px;}
.font-26{ font-size: 26px;}
.font-27{ font-size: 27px;}
.font-28{ font-size: 28px;}
.font-29{ font-size: 29px;}
.font-30{ font-size: 30px;}
.font-31{ font-size: 31px;}
.font-32{ font-size: 32px;}
.font-33{ font-size: 33px;}
.font-34{ font-size: 34px;}
.font-35{ font-size: 35px;}
.font-36{ font-size: 36px;} 


@media all and (max-width:767px) {
	.font-14{ font-size: 14px;}
	.font-15{ font-size: 14px;}
	.font-16{ font-size: 15px;}
	.font-17{ font-size: 17px;}
	.font-18{ font-size: 18px;}
	.font-19{ font-size: 19px;}
	.font-20{ font-size: 20px;}
	.font-21{ font-size: 21px;}
	.font-22{ font-size: 22px;}
	.font-23{ font-size: 23px;}
	.font-24{ font-size: 23px;}
	.font-25{ font-size: 24px;}
	.font-26{ font-size: 24px;}
	.font-27{ font-size: 24px;}
	.font-28{ font-size: 24px;}
	.font-29{ font-size: 24px;}
	.font-30{ font-size: 24px;}
	.font-31{ font-size: 25px;}
	.font-32{ font-size: 25px;}
	.font-33{ font-size: 25px;}
	.font-34{ font-size: 25px;}
	.font-35{ font-size: 25px;}
	.font-36{ font-size: 25px;}
}


/*********************************/
/*  material                     */
/*********************************/
.anime{
    opacity: 0;
}

.con-width{
    width: 90%;
    max-width: 1280px;
    margin: auto;
}

.sp-none{
    display: block;
}

.pc-none{
    display: none;
}

.text_link a,
.text_link_red a{
    color: #1a1862;
    position: relative;
    display: block;
    padding: 5px 10px 5px 20px;
    transition: 0.2s;
    text-align: left;
}

.text_link a:hover{
    background-color: #e0edf5;
}

.text_link a::before,
.text_link_red a::before{
    content: '';
    position: absolute;
    border: solid 6px transparent;
    border-left: solid 9px #003b91;
    top: 0.6rem;
    left: 0px;
    transition: 0.3s;
}

.text_link a:hover::before,
.text_link_red a:hover::before{
    left: 3px;
}

.text_link_red a{
    color: #ad0000;
}

.text_link_red a::before{
    border-left: solid 12px #ff0000;
}

.div_img,
a .div_img{
    display: block;
    overflow: hidden;
}

.div_img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

a .div_img img{
    transition: 0.3s;
}

a:hover .div_img img{
    transform: scale(1.05);
}

.t_l{ text-align: left;}
.t_c{ text-align: center;}
.t_r{ text-align: right;}

.t_red{    color: #fd0013;}
.t_orange{   color: #ff9900;}
.t_blue{   color: #0004eb;}

.t_strong{ font-weight: 600; font-size: 1.3rem;}

.for_top_btn{
    position: fixed;
    bottom: 10px;
    right: 5px;
    background-color: #fff;
    border: solid 2px #1a1862;
    border-radius: 10px;

    font-size: 13px;
    text-align: center;
    line-height: 15px;
    z-index: 100;
    transition: 0.4s;
    opacity: 0.8;
}

.for_top_btn:hover{
    bottom: 13px;
    opacity: 1;
}

.for_top_btn::before{
    content: '';
    position: absolute;
    border: solid 10px transparent;
    border-bottom: solid 10px #1a1862;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
}

.for_top_btn a{
   color: #1a1862;
   font-weight: 600; 
   display: block;
   padding: 10px 15px;
}

.file_pdf::after,a.file_pdf::after,
.file_word::after,a.file_word::after,
.file_excel::after,a.file_excel::after{
    color: #fff;
    font-size: 0.6rem;
    padding: 3px 5px;
    border-radius: 5px;
    margin-bottom: 3px;
    margin-left: 10px;
    text-wrap: nowrap;
}

.file_pdf::after,a.file_pdf::after{
    content: "PDF";
    background-color: #b30c00;
}

.file_word::after,a.file_word::after{
    content: "Word";
    background-color: #1757b7;
}

.file_excel::after,a.file_excel::after{
    content: "Excel";
    background-color: #0f6835;  
}

.link_gaibu::after,a.link_gaibu::after{
    content: url(../img/icon_gaibu.png);
    margin-left: 10px;
}

/* flex要素 */

.flex{
    display: flex;
}

.flex-2,
.flex-2r,
.flex-3,
.flex-4{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    margin: 15px auto;
    justify-items: center;
}

.flex-2r{
    flex-direction: row-reverse;
}

.flex_div{
    padding: 10px 5px;
}

.flex-2 .flex_div,
.flex-2r .flex_div{
    width: calc( ( 100% - 15px ) / 2 );
    margin-right: 15px;
    margin-bottom: 15px;
}

.flex-3 .flex_div{
    width: calc( ( 100% - 30px ) / 3 );
    margin-right: 15px;
    margin-bottom: 15px;
}

.flex-4 .flex_div{
    width: calc( ( 100% - 45px ) / 4 );
    margin-right: 15px;
}

.flex-2 .flex_div:nth-child(2n),
.flex-2r .flex_div:nth-child(2n-1),
.flex-3 .flex_div:nth-child(3n),
.flex-4 .flex_div:nth-child(4n){
    margin-right: 0;
}

.flex-2 .flex_div.flex1,
.flex-3 .flex_div.flex1{
   width:100%;
   margin-bottom: 0;
}

/*********************************/
/*  ヘッダー                      */
/*********************************/
#header_div{
    position: fixed;
    top: 0;
    width: 100%;
    background-color: #fff;
    z-index: 100;
}

#header_div .logo_flex{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#header_div .logo_flex a.btn_logo{
    display: block;
    width: 30%;
    max-width: 270px;
}

#header_div .logo_flex a.btn_logo img{
    display: block;
    margin-right: auto;
    width: 100%;
    height: 100%;
    max-height: 45px;
    object-fit: contain;
}

#header_div .pc_ac-menu{
    flex: 1;
    width: 80%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

#header_div .icon_flex{
    display: flex;
    align-items: flex-end;
    margin-right: 10px;
}

#header_div .logo_flex .icon_flex a{
    text-align: center;
    font-size: 0.75rem;
    margin: 0 5px;
    line-height: 1;
    color: #666;
}

#header_div .logo_flex .icon_flex a img{
    width: auto;
    height: auto;
    max-height: 25px;
}

#header_div .pc_ac-menu form{
    display: flex;
    border: solid 1px #666;
    border-radius: 3px;
    padding: 0;
    margin:0 5px;
    align-items: stretch;
}

#header_div .pc_ac-menu .kensaku_form{
    padding: 5px;
    border: none;
    max-width: 150px;
}

#header_div .pc_ac-menu .kensaku_btn{
    background-color: #1a1862;
    padding: 0 5px;
    border: none;
    color: #fff;
}

#header_div .moji_btn_flex{
    display: flex;
}

#header_div .moji_btn_flex p{
    display: inline-block;
    margin-right: 5px;
    font-size: .9rem;
    color: #000;
}

#header_div .moji_btn_flex button{
    border-radius: 50%;
    border: 1px solid #888;
    background-color: #fff;
    height: 25px;
    width: 25px;
    margin-right: 4px;
    font-size: 11px;
    display: flex;
    justify-content: center;
    align-items: center;
}

#header_div .hd_pc_menu{
    width: 100%;
    background-color: #1a1862;
    border-bottom: #eee;
}

#header_div .pc_menu_flex{
    display: flex;
    justify-content: center;
    align-items: stretch;
    width: 100%;
    max-width: 1280px;
    margin: auto;
    background-color: #1a1862;
    position: relative;
}

#header_div .pc_menu_flex li.pc_menu_main{
    width: calc( 100% / 5 );
    text-align: center;
    transition: 0.3s;
    border-right: solid 1px #fff;
}

#header_div .pc_menu_flex li.pc_menu_main:nth-child(1){
    border-left: solid 1px #fff;
}

#header_div .pc_menu_flex li a{
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    padding: 15px 5px;
    color: #ffffff;
    background-color: #1a1862;
    transition: 0.3s;
}

#header_div .pc_menu_flex li a:hover{
    background-color: rgb(36, 65, 190);
}

#header_div .pc_menu_flex li ul{
	box-sizing: border-box;
	overflow: auto;
}

#header_div .pc_menu_flex li.pc_menu_main a{
    position: relative;
}

#header_div .pc_menu_flex li.pc_menu_main a::after{
    content: "";
    width: 20px;
    height: 2px;
    background-color: #fff;
    position: absolute;
    bottom: 0.7em;
    left: 50%;
    translate: -50% 0;
}

#header_div .pc_menu_flex li.pc_menu_main .pc_menu_sub{
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: linear-gradient(to bottom, rgba(5, 116, 186 ,0.95) ,rgba(44, 57, 140,0.95)) ;
    padding: 10px 15px 30px;
    border: solid 1px #fff;

    height: auto;
    max-height: calc(100vh - 100px );
    overflow-y: auto;
}

#header_div .pc_menu_flex li.pc_menu_main .pc_menu_sub h4{
    text-align: left;
    color: #fff;
    padding: 2px;
    border-bottom: dotted 1px #fff;
    margin: 20px 0px 5px;
}

#header_div .pc_menu_flex li.pc_menu_main .pc_menu_sub h4:nth-child(1){
    margin: 5px 0px 5px;    
}

#header_div .pc_menu_flex .pc_menu_sub ul{
    display: flex;
    flex-wrap: wrap;
}
#header_div .pc_menu_flex .pc_menu_sub li{
    width: calc( 100% / 3 );
    padding-right: 10px;
    margin-bottom: 3px;
}

#header_div .pc_menu_flex li.pc_menu_main .pc_menu_sub a::after{
    content: none;
}

#header_div .pc_menu_flex .pc_menu_sub li a{
    padding: 2px 5px 2px 20px;
    justify-content: flex-start;
    align-items: flex-start;
    color: #ffffff;
    background-color: transparent;
    margin-right: 3px;
}

#header_div .pc_menu_flex .pc_menu_sub li a::before{
    border-left: solid 10px #ffffff;
    top: 0.5rem;
}

#header_div .pc_menu_flex .pc_menu_sub li a:hover{
    background-color: rgba(255, 255, 255, 0.3);
}

#header_div .pc_menu_flex li.pc_menu_main:hover .pc_menu_sub{
    display: block;
}

#header_div .pc_menu_flex li.pc_menu_main:hover .pc_menu_sub::after{
    content: "";
    position: absolute;
    bottom: 100%;
    border: solid 8px transparent;
    border-bottom: solid 12px #fff;
}

#header_div .pc_menu_flex li.pc_menu_main:hover .pc_menu_sub.sub_1::after{ left: 10%;}
#header_div .pc_menu_flex li.pc_menu_main:hover .pc_menu_sub.sub_2::after{ left: 30%;}
#header_div .pc_menu_flex li.pc_menu_main:hover .pc_menu_sub.sub_3::after{ left: 50%;}
#header_div .pc_menu_flex li.pc_menu_main:hover .pc_menu_sub.sub_4::after{ left: 70%;}
#header_div .pc_menu_flex li.pc_menu_main:hover .pc_menu_sub.sub_5::after{ left: 90%;}


/* header sp*/
#header_div #hd_sp_menu{
    display: none;
    overflow: auto;
}

#header_div #hd_sp_menu .menubtn{
    position: absolute;
    top: 2px;
    right: 3px;
    width: 45px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 90;
    background-color: #ffffff;

    font-size: 8px;
    color: #1a1862;
}


#header_div #hd_sp_menu .menubtn p{
    position: absolute;
    bottom: 0px;
}

#header_div #hd_sp_menu .menubtn span,
#header_div #hd_sp_menu .menubtn span::before,
#header_div #hd_sp_menu .menubtn span::after{
    content: "";
    position: absolute;
    display: block;
    width: 25px;
    height: 3px;
    background-color: #1a1862;
    transition: 0.2s;
}

#header_div #hd_sp_menu .menubtn span{    margin-bottom: 10px;}
#header_div #hd_sp_menu .menubtn span::before{    bottom: 8px;}
#header_div #hd_sp_menu .menubtn span::after{    top: 8px;}

#header_div #hd_sp_menu #hmenu-btn:checked ~ .menubtn span{
    background-color: rgba(0, 69, 157,0);
}

#header_div #hd_sp_menu #hmenu-btn:checked ~ .menubtn span::before{
    bottom: 0px;
    transform: rotate(135deg);
} 

#header_div #hd_sp_menu #hmenu-btn:checked ~ .menubtn span::after{
    top: 0px;
    transform: rotate(-135deg);
}

#header_div #hd_sp_menu .hd_sp-contents{
    width: 100%;
    height: calc(100vh - 45px);
    position: fixed;
    background-color: #eee;
    z-index: 100;
    top: 45px;
    left: 100%;
    transition: 0.3s;
}

#header_div #hd_sp_menu .hd_sp-contents .menu_li li{
    border: solid 1px #eee;
}

#header_div #hd_sp_menu .hd_sp-contents .menu_li li a,
#header_div #hd_sp_menu .hd_sp-contents .menu_li li a:visited{
    background-color: #1a1862;
    display: block;
    padding: 20px 15px;
    color: #ffffff;
    font-weight: 600;
}

#header_div #hd_sp_menu .hd_sp-contents .text_link a::before{
    border-left: solid 9px #ffffff;
    top: 50%;
    left: auto;
    right: 10px;
    transform: translateY(-50%);
}

#header_div #hd_sp_menu form{
    width: 96%;
    margin: 15px auto;
    border: solid 1px #666;
    border-radius: 5px;
    padding: 0;

    display: flex;
    align-items: stretch;
}

#header_div #hd_sp_menu .kensaku_form{
    flex: 1;
    padding: 5px 8px;
    border: none;
}

#header_div #hd_sp_menu .kensaku_btn{
    background-color: #1a1862;
    color: #fff;
    border: 0;
    padding: 13px 15px 10px;
}

#header_div #hd_sp_menu .icon_flex{
    padding: 10px 0px;
    width: 100%;
}

#header_div #hd_sp_menu .icon_flex a{
    display: block;
    width: calc(50% - 10px);
    margin: 5px;
    padding: 5px;
    text-align: center;

    border: solid 2px #191c60;
    background-color: #fff;
    border-radius: 10px;
}

#header_div #hd_sp_menu #hmenu-btn:checked ~ .hd_sp-contents{
    left: 0;
    opacity: 1;
  }

#header_div #hd_sp_menu #hmenu-btn{
    display: none;
}

/*****************************************/
/* トップページ */
/*****************************************/

.top_title{
    text-align: center;
    margin: 30px auto 50px;
}

#top0{
    overflow: hidden;
    height: 75vh;
    min-height: 450px;
    position: relative;
    background-color: #000;
}

#top0 .slide_top,
#top0 .slide_top .slick-slide{
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
}

#top0 .slide_top img{
    width: 100%;
    height: 100%;
    opacity: 0.9;
    object-fit: cover;
    object-position: center 80%;
}

.slick-list.draggable,
.slick-track{
    height: 100%;
}

#top0 .top_coment{
    position: absolute;
    right: 10%;
    top: 15%;

    width: 40%;
    max-width: 250px;
    writing-mode: vertical-rl;

    color: #fff;
    font-size: clamp(1.7rem, calc(2vw + 1.3rem), 2.8rem);
    font-weight: 600;
    text-shadow: 0 0 8px #000;
}

#top-live,#news-area,#top-bunner{
    padding: 30px 0 50px;
}

.camera_title{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.camera_title img{
    display: block;
    width: 20%;
    height: auto;
    max-width: 50px;
    margin-right: 10px;
}
.camera_title h2{
    margin-right: 20px;
    color: #2d358f;
}

.camera_title a{
    display: inline-block;
    padding: 5px 10px;
    color: #fff;
    font-weight: 600;
    background-color: #2d358f;
    border-radius: 5px;
    margin: 0px 10px;
} 

.camera_area{
    background-color: #e7e7e7;
    padding:30px 2px 50px;
}

.camera_area .camera_list{
    padding: 0px 25px;
    width: 90%;
    max-width: 1280px;
    margin: auto;
}

.camera_area .camera_list a{
    display: block;
    padding: 5px;
    background-color: #fff;
    margin: 5px;
    width: calc(( 100% - 40px ) / 4 );
}

.camera_area .camera_list a .div_img{
    aspect-ratio: 4/3;
}

.camera_area .camera_list a p{
    padding: 10px 0;
    color: #003b91;
    text-align: center;
    font-weight: 600;
}

.camera_area .camera_list .slide-prev,
.camera_area .camera_list .slide-next{
    position: absolute;
    top: 50%;
    display: block;
    transform: translate(0, -50%);
    width: 25px;
    height: 25px;
    background-color: #fff;
    border-radius: 50%;
}
.camera_area .camera_list .slide-prev:hover,
.camera_area .camera_list .slide-next{
    cursor: pointer;
}

.camera_area .camera_list .slide-prev{    left: -3px;}
.camera_area .camera_list .slide-next{    right: -3px;}

.camera_area .camera_list .slide-prev::before,
.camera_area .camera_list .slide-next::before{
    position: absolute;
    content: '';
    border: solid 8px transparent;
    top: 50%;
    transform: translateY(-50%);
}

.camera_area .camera_list .slide-prev::before{
    border-right: solid 10px #2d358f;
    left: -5%;
}

.camera_area .camera_list .slide-next::before{
    border-left: solid 10px #2d358f;
    left: 36%;
}

.camera_area .camera_list .slick-dots{
    left: 50%;
    translate: -50%;
}

.news_div{    border: solid 1px #2385c0;}
.topic_div{    border: solid 1px #45c7cc;}

.news_h3{
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #fff;
}

#news-area .flex_div{
    padding: 0;
    margin-bottom: 30px;
}

.news_div .news_h3{
    background:  url(../img/news_back.png) , linear-gradient( to bottom , #2c3790 , #096bb4);
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: cover;
    padding: 10px 15px 15px;
}

.topic_div .news_h3{
    background:  url(../img/news_back.png) , linear-gradient( to bottom , #247b7c , #22a7b4);
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: cover;
    padding: 15px;
}

.news_h3 a{
    padding: 7px 10px 5px;
    background-color: #fff;
    border-radius: 10px;
    color: #2c3790;
    font-weight: 600;
    font-size: 0.9rem;
}

.news_con{
    height: 350px;
    padding: 3px 3px 0;
    overflow-y: scroll;

}

.new-link{
    display: block;
    border-bottom: dotted 1px #ddd;
    padding: 8px 10px;
    color: #000;
}

.new-link:hover{
    background-color: #e9f7ff;
}

.new-link .new-info{
    display: flex;
    align-items: flex-end;
    margin-bottom: 5px;
}

.new-link .new-day{
    width: 125px;
    margin-right: 10px;
    color: #000;
    font-weight: 600;
}

.new-category{
    padding: 2px 10px 1px;
    margin-bottom: 3px;
    border-radius: 5px;
    color: #fff;
    font-size: 0.8rem;
    min-width: 100px;
    text-align: center;
}

.new-category.new-cat_news{ background-color: #d5f0fe;    color: #41210d;}
.new-category.new-cat_kisya{ background-color: #ffe47a;    color: #41210d;}
.new-category.new-cat_koji{ background-color: #2d358f;}
.new-category.new-cat_tushin{ background-color: #195664;}
.new-category.new-cat_bassai{ background-color: #08673a;}

#top-pickup{
    padding: 25px 0 10%;
    background: url(../img/top_back.png) no-repeat;
    background-position: 0 100%;
    background-size: contain;
}

#top-pickup .pic-title{
    display: flex;
    width: 100%;
    flex-direction: row-reverse;
    position: relative;
}

#top-pickup .pic-title .pic_right{
    width: 50%;
    max-width: 640px;
    margin-left: auto;
    padding: 20px 10px 20px 0;
    position: relative;
}

#top-pickup .pic-title .pic_right h2{
    color: #2d358f;
    margin-bottom: 50px;
    position: relative;
    z-index: 20;
}

#top-pickup .pic-title .pic_right h2 span{
    display: block;
    color: #999;
    font-size: 15px;
    margin-top: 5px;
}

#top-pickup .pic-title .pic_right h2::after{
    content: "";
    width: 100%;
    height: 1px;
    background-color: #ccc;

    position: absolute;
    top: 1.55em;
    left: 0;
}

#top-pickup .pic-title .pic_right h2,
#top-pickup .pic-title .pic_right p{
    margin-left: 5%;
}

#top-pickup .pic-title .pic_left{
    width: 50%;
    margin-left: 20px;
    border-top-left-radius: 15px;
    border-bottom-left-radius: 15px;
    overflow: hidden;
    min-height: 450px;
}

#top-pickup .pic-title .pic_left img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#top-pickup .pic-title .blu-en{
    position: absolute;
    display: block;
}

#top-pickup .pic-title .blu-en.en01{
    top: -5%;
    left: 3%;
    width: 20%;
    max-width: 60px;
    translate: 0 -100%;
}

#top-pickup .pic-title .blu-en.en02{
    top: 0;
    left: -1%;
    width: 10%;
    max-width: 30px;
}

#top-pickup .pic-title .blu-en.en03{
    top: 70%;
    right: 57%;
    width: 10%;
    max-width: 100px;
    translate: 100% 0%;
}

#top-pickup .pic-title .blu-en.en04{
    top: 96%;
    right: 44%;
    width: 5%;
    max-width: 50px;
    translate: 0 0%;
}

.pickup_bnr{
    margin: 50px auto;
}

.pickup_bnr li:hover{
    background-color: #e9f7ff;
}

.pickup_bnr a{
    display: block;
}

.pickup_bnr .div_img{
    display: block;
    width: 100%;
    aspect-ratio: 6/4;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-bottom: solid 3px #2d358f;
}

.pickup_bnr p{
    padding: 8px 0;
    color: #1a1862;
    font-weight: 600;
}

#top-bunner h2{
    margin: 50px auto 10px;
    text-align: center;
    color: #2d358f;
}


.bnr_list{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
}

.bnr_list a{
    display: block;
    width: calc(( 100% - 40px ) / 4  );
    margin: 5px;
    height: auto;
}

.bnr_list a img{
    width: 100%;
    height: 100%;
    object-fit: contain;
    max-height: 75px;
}

.bnr_list a:hover img{
    opacity: 0.7;
}


/*********************************/
/*  カテゴリ・詳細ページ           */
/*********************************/

.cate_title{
    height: 250px;
    overflow: hidden;
    position: relative;
}

.cate_title img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 75%;
}

.cate_title .cate_name{
    position: absolute;
    width: 90%;
    max-width: 1280px;
    bottom: 0;
    left: 50%;
    translate: -50%;

}

.cate_title .cate_name p{
    display: inline;
    padding: 1rem 3.5rem;
    background-color: #fff;
    color: #2c398c;
    width: 75%;
    max-width: 500px;
    text-align: center;
    font-weight: 600;

    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
}

#pankuzu{
    display: flex;
    width: 90%;
    max-width: 1280px;
    margin: 15px auto;
    font-size: .75rem;
    overflow-x: auto;
}

#pankuzu a{
    text-wrap: nowrap;
    color: #2385c0;
}

#pankuzu a:hover{
    background-color: #e0edf5;
}

#pankuzu a::after{
    content: "＞";
    margin:  0 5px;
}

#pankuzu a:nth-last-child(1)::after{
    content: none;
}

#page_con{
    width: 90%;
    max-width: 1280px;
    margin: 20px auto 100px;
}

#page_con h2,#page_con h3,
#page_con h4,#page_con h5{
    margin: 40px auto 15px;
}

#page_con h1.page_title{
    padding: 10px 0;
    border-bottom: solid 1px #003b91;
    margin-bottom: 30px;
}

#page_con h1.page_title span{
    position: relative;
}

#page_con h1.page_title span::after{
    content: "";
    position: absolute;
    width: 100%;
    height: 5px;
    background-color: #003b91;
    bottom: -0.6em;
    left: 0;
}

#page_con h2{
    color: #1a1862;
    padding: 15px 10px;
    border-left: solid 20px #5084b3;
    background-color: #f2f2f2;
    position: relative;
}

#page_con h2::after{
    content: "";
    width: 20px;
    height: 50%;
    background-color: #2465a0;
    position: absolute;
    top: 0;
    left: -20px;
}

#page_con h3{
    color: #21529b;
    padding: 8px 10px;
    border-bottom: solid 1px #7f9bce;
    border-left: solid 15px #4d7abf;
}

#page_con h4{
    color: #4d9bb9;
    padding: 5px 10px;
    border-left: solid 15px #4d9bb9;   
}

#page_con h5{
    color: #444;
    background-color: #f0f0f0;
    padding: 8px 25px;  
}

#page_con p{
    margin-bottom: 3px;
}

#page_con p a{
    padding: 2px 5px;
}

#page_con a{
    color: #0b8284;
}

#page_con a:hover{
    background-color: #e0edf5;
}

#page_con button{
    display: inline-block;
    background-color: #fff;
    border: none;
    margin: 10px 5px 15px 0;
    font-size: 0.95rem;
    text-align: left;
}

#page_con button a{
    display: block;
    padding: 12px 15px 12px 35px;
    border: solid 2px #0b8284;
    position: relative;
    transition: 0.3s;
    font-weight: 600;
}

#page_con button a::before{
    content: "";
    border: solid 8px transparent;
    border-left: solid 11px #0b8284;
    position: absolute;
    top: 50%;
    left: 12px;
    transform: translateY(-50%);
    transition: 0.3s;
}

#page_con button a:hover::before{
    left: 14px;   
}

#page_con button a.act_btn{
    background-color: #0b8284;
    border: solid 2px #0b8284;
    color: #fff;
}

#page_con button a.act_btn::before{
    border-left: solid 11px #fff;   
}

#page_con a.a-link{
    padding: 5px 5px 5px 20px;
    position: relative;
    display: block;
    margin: 2px 0;
}

#page_con a.a-link::before{
    content: "";
    border: solid 7px transparent;
    border-left: solid 10px #003e8e;
    position: absolute;
    top: 0.53em;
    left: 0;
    transition: 0.3s;
}

#page_con a.a-link:hover::before{
    left: 3px;
}

#page_con ul,
#page_con ol{
    padding: 10px 10px 10px 25px;
    margin: 10px auto 20px;
}

#page_con ul li{
    list-style: disc;
    padding: 3px 0;
}

#page_con ol li{
    list-style: decimal;
    padding: 3px 0;
}

#page_con table{
    width: 100%;
    border-collapse:  collapse;
    margin: 15px 0 30px;
}

#page_con th,
#page_con td {
    border: solid 1px #666; 
    padding: 5px 15px;
}

#page_con thead{
    border-bottom: solid 2px #666;
}

#page_con th{
    background-color: #e0edf5;
}

#page_con .tbl_yoko{
    overflow-x: auto;
}

#page_con .tbl_yoko table{
    width: 100%;
    min-width: 680px;
    margin: 15px 0;
}

#page_con td ul,
#page_con td ol{
    margin: 0;
}

#page_con .flex_div img{
    max-width: 100%;
    height: auto;
}

#page_con .back_color{
    padding: 10px 15px;
    border-radius: 5px;
    margin-bottom: 10px;
    background-color: #d5f0ff;
}

#page_con img{
    max-width: 100%;
    height: auto;
    margin: 15px 0 30px;
}

#page_con .img_big_link{
    text-align: center;
}

#page_con .img_big_link img{
    width: auto;
    max-height: 600px;
    object-fit: contain;
}

#page_con .img_big_link img:hover{
    opacity: 0.8;
}

#page_con .flex-button{
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

#page_con .flex-button button{
    display: block;
    width: calc((100% - 40px) / 4 );
    margin: 5px;
    min-width: 150px;
}

#page_con .btn_100 button{
    display: block;
    width: 100%;
}

#page_con p.img-cap{
    font-size: 0.8rem;
    color: #666;
    margin-top: -20px;
}

/*カテゴリ用*/

#page_con .cate-btn{
    margin-bottom: 50px;
}

#page_con .cate-btn .flex_div{
    margin-bottom: 25px;
}

#page_con .cate-btn a{
    display: block;
    color: #fff;
    background-color: #003b91;
    border-radius: 15px;
    padding: 15px 25px 15px 15px;
    font-size: 1.2rem;
    font-weight: 600;
    position: relative;
    margin-bottom: 20px;
    box-shadow: 2px 2px 8px #ccc;
    transition: .3s;
}

#page_con .cate-btn a:hover{
    background-color: #1757b7;
    box-shadow: 0px 0px 5px #ccc;  
}

#page_con .cate-btn a::after{
    content: "";
    border: solid transparent 7px;
    border-left: solid 10px #fff;

    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    transition: .3s;
}

#page_con .cate-btn a:hover::after{
    right: 7px;
}

.mb_15,#page_con .mb_15{margin-bottom: 15px;}
.mb_25,#page_con .mb_25{margin-bottom: 25px;}
.mb_30,#page_con .mb_30{margin-bottom: 30px;}
.mb_50,#page_con .mb_50{margin-bottom: 50px;}
.mb_75,#page_con .mb_75{margin-bottom: 75px;}
.mb_100,#page_con .mb_100{margin-bottom: 100px;}

.mt_15,#page_con .mt_15{margin-top: 15px;}
.mt_25,#page_con .mt_25{margin-top: 25px;}
.mt_30,#page_con .mt_30{margin-top: 30px;}
.mt_50,#page_con .mt_50{margin-top: 50px;}
.mt_75,#page_con .mt_75{margin-top: 75px;}
.mt_100,#page_con .mt_100{margin-top: 100px;}


/*********************************/
/*  ニュース一覧ページ            */
/*********************************/

#contents_main .news_con{
    height: auto;
    overflow-y: auto;
    border: none;
    padding: 10px;
}

/*********************************/
/* footer                        */
/*********************************/

#footer{
    margin-top: 50px;
    border-top: solid 10px #eee;
}

.footer_area{
    width: 90%;
    max-width: 1280px;
    

    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.footer_area a.ft_logo{
    display: block;
    width: 100%;
    max-width: 300px;
}

.footer_area a.ft_logo img{
    width: 100%;
    object-fit: contain;
}

#footer .footer_copy{
    padding: 5px 10px;
    background-color: #191c60;
    text-align: center;
    color: #fff;
}


/*****************************************/
/* 緊急情報 */
/*****************************************/

#kinkyu{
    background-color: #be252f;
    padding: 10px 0;
}

#kinkyu h4{
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    color: #fff;
    margin: 5px auto;
}

#kinkyu h4 a{
    display: block;
    padding: 2px 8px;
    background-color: #fff;
    color: #be252f;
    border-radius: 5px;
    font-weight: 600;
    font-size: .9rem;
}

#kinkyu ul{
    background-color: #fff;
    padding: 5px 10px;
}


#kinkyu ul li{
    border-bottom: solid 1px #ddd;
}

#kinkyu ul li:nth-last-child(1){
    border-bottom: none;
}

#kinkyu ul li a{
    display: block;
    padding: 5px;
    color: #000;
}

#kinkyu ul li a:hover{
    background-color: #ffbebe;
}


#kinkyu.no-kinkyu{
    background-color: #95c4eb;
}

#kinkyu.no-kinkyu h4 a{
    color: #000;
}

#kinkyu.no-kinkyu ul{
    border: solid 1px #5aa4d1;
}

#kinkyu.no-kinkyu ul p{
    color: #000;
}


/*******************************/
/* レスポンシブ                 */
/*******************************/
@media all and (max-width:900px){
    .bnr_list a{
        width: calc(( 100% - 30px ) / 3  );
    }
    
}

@media all and (max-width:767px) {

    main{
        padding-top: 45px;
    }

    .sp-none{
        display: none;
    }
    
    .pc-none{
        display: block;
    }

    .flex-2,
    .flex-2r,
    .flex-3{
        display: block;
    }
    
    .flex-2 .flex_div,
    .flex-2r .flex_div,
    .flex-3 .flex_div{
        width:100%;
        margin: auto auto 0;
        padding: 15px 0;
    }

    .flex-2r .flex_div:nth-child(2n-1){
        margin-right: auto;
    }

    .flex-4 .flex_div{
        width: calc( ( 100% - 15px ) / 2 );
    }
    
    .flex-4 .flex_div:nth-child(3n){
        margin-right: 15px;
    }

    .flex-4 .flex_div:nth-child(2n){
        margin-right: 0;
    }

    .to_up_btn{
        bottom: 8px;
        right: 8px;
    }

    .flex-2 a.flex_div,
    .flex-2r a.flex_div,
    .flex-3 a.flex_div{
        padding: 15px 20px;
    }

    #header_div{
        height: 45px;
        padding: 2px 5px;
    }

    #header_div .pc_ac-menu,
    #header_div .hd_pc_menu{
        display: none;
    }

    #header_div #hd_sp_menu{
        display: block;
    }

    #header_div .logo_flex a.btn_logo{
        width: 50%;
        max-width: auto;
    }

    #header_div .logo_flex a.btn_logo img{
        max-height: 40px;
    }

    #top0{
        height: auto;
        background-color: #000;
    }

    #top0 .slide_top{
        height: 55vh;
        min-height: 500px;
        position: relative;
        z-index: auto;
    }

    #top-pickup .pic-title{
        display: block
    }

    #top-pickup .pic-title .pic_right{
        width: 100%;
        max-width: 100%;
        padding: 20px 5%;
    }

    #top-pickup .pic-title .pic_left{
        width: 80%;
        margin-left: auto;
        height: 280px;
    }

    #top-pickup .pic-title .pic_right h2,
    #top-pickup .pic-title .pic_right p{
        margin-left: 0%;  
    }

    #top-pickup .pic-title .blu-en.en03{
        top: 95%;
        right: 15%;
    }
    #top-pickup .pic-title .blu-en.en04 {
        top: 104%;
        right: 2%;
    }

    .bnr_list a{
        width: calc(( 100% - 20px ) / 2  );
    }

    .cate_title .cate_name p{
        padding: 1rem 2rem;
    }

    #page_con{
        padding: 5px 10px 15px;
        margin-bottom: 30px;
    }

    #page_con table.tbl_sp th,
    #page_con table.tbl_sp td{
        display: block;
        width: auto;
    }
    #page_con table.tbl_sp td{
        padding: 10px 15px;
    }

    #page_con table.tbl_sp th,
    #page_con table.tbl_sp td{
        border-bottom: none;
    }

    #page_con table.tbl_sp tr:nth-last-child(1) td{
        border-bottom: solid 1px #666; 
    }

    #page_con .flex-button button{
        width: calc((100% - 20px) / 2 );
        margin: 5px 5px 10px 0;
    }

    
    #footer .flex_info span{
        display: block;
    }

    #footer .text_link{
        width: 100%;
    }
    
}