@charset "utf-8";
/* CSS Document */
@media (max-width: 1199px) {
  nav#gnav {
		grid-template-columns: 250px 1fr;
    width: 980px;
    margin: 0 10px;
  }
  nav#gnav li div.gnav_sub_menu div { width: 980px; }
}
@media (max-width: 428px) {
  body.no-scroll {
    overflow: hidden;
    height: 100vh; /* iOS対策 */
    position: fixed; /* スクロール位置固定 */
    width: 100%;
  }
  /* header ---------------------------------------- */
  header {
    display: flex;
    align-items: center;
  }
  nav#gnav {
    display: block;
    width: auto;
  }
  .drawer_open {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 10px;
    right: 10px;
    height: 40px;
    width: 40px;
    z-index: 100;
    cursor: pointer;
    background: #FFFFFF;
		border-radius: 6px;
  }
  .drawer_open span,
  .drawer_open span:before,
  .drawer_open span:after {
    content: '';
    display: block;
    height: 3px;
    width: 25px;
    border-radius: 3px;
    background: #BA0000;
    transition: 0.5s;
    position: absolute;
  }
  .drawer_open span:before { bottom: 8px; }
  .drawer_open span:after { top: 8px; }
  #drawer_input:checked ~ .drawer_open span { background: rgba(255, 255, 255, 0); }
  #drawer_input:checked ~ .drawer_open span::before {
    bottom: 0;
    transform: rotate(45deg);
  }
  #drawer_input:checked ~ .drawer_open span::after {
    top: 0;
    transform: rotate(-45deg);
  }
  #drawer_input:checked ~ #gnav_list {
    display: block;
    position: absolute;
    top: 69px;
    left: 0;
    width: 100vw;
    height: calc(100dvh - 69px);
    padding-bottom: env(safe-area-inset-bottom, 20px); /* iPhoneのホームバー対策 */
    overflow-y: auto;
    z-index: 1000;
    background: #FFFFFF;
  }
  #gnav_list { display: none; }
  nav#gnav ul { display: block; }
  nav#gnav ul li { border-top: 1px solid #DED9D9; }
  nav#gnav ul li a {
    display: block;
    padding: 15px 10px;
  }
  header.change-color nav#gnav ul li a { color: #000000; }
  nav#gnav ul li:has(a + div.gnav_sub_menu):hover ,
  nav#gnav ul li a:has(div.gnav_sub_menu):hover {
    background: none;
    border-bottom: none;
  }
  nav#gnav li div.gnav_sub_menu {
    position: relative;
    left: 0;
    top: 0;
    z-index: 4;
    width: auto;
    padding: 0 20px 20px 20px;
    background: none;
    visibility: visible;
    opacity: 1;
    transition: none;
  }
  nav#gnav li div.gnav_sub_menu div {
    display: block;
    width: auto;
  }
  nav#gnav li div.gnav_sub_menu div section { padding: 10px 0; }
  nav#gnav li div.gnav_sub_menu ul {
    display: block;
    width: auto;
    margin: 0 auto;
  }
  nav#gnav li div.gnav_sub_menu ul li {
		padding: 0px 0 0px 15px;
    border-top: none;
    text-align: left;
  }
  nav#gnav li div.gnav_sub_menu ul li::before { top: 1.6em; }
  nav#gnav li div.gnav_sub_menu ul li:last-child { border-bottom: none; }
  nav#gnav li div.gnav_sub_menu ul li a { padding: 10px 0; }
	/* top ---------------------------------------- */
	#top_main_img {
		height: 500px;
		padding-top: 70px;
	}
	#top_main_img h1 {
		top: 50%;
		font-size: 130%;
	}
	#top_contents {
		display: flex;
		flex-direction: column;
		width: auto;
		margin: -50px 10px 30px 10px;
		padding: 20px 10px;
	}
	#top_contents h2 {
		order: 1;
		font-size: 130%;
	}
	#top_contents #main_photo {
		order: 3;
		float: none;
		width: auto;
		margin: 0 0 20px 0;
	}
	#top_contents .main_txt {
		order: 2;
		padding: 30px 0 0 0;
	}
	#top_contents .sub_txt {
		order: 4;
		padding: 0;
	}
	#top_contents .main_txt p ,
	#top_contents .sub_txt p {
		font-size: 100%;
		line-height: 1.6;
	}
	#news_info { padding: 40px 10px; }
	#news_info #news ,
	#news_info #information {
		width: auto;
		padding: 10px;
		margin: 10px 0;
	}
	#news_info #news ul {
		list-style: none;
		font-size: 90%;
	}
	#news_info #news ul li {	padding: 10px; }
	#news_info #information dl {
		display: block;
		font-size: 90%;
	}
	#news_info #information dl dt ,
	#news_info #information dl dd {
		padding: 10px 10px;
		border-bottom: 1px dotted #CCCCCC;
	}
	#news_info #information dl dt {
		padding: 10px 10px 0px 10px;
		border-bottom: none;
	}
	#top_contents_link {
		width: 100%;
		padding: 30px 20px;
	}
	#top_contents_link h2 {
		padding: 0 10px 10px 10px;
		font-size: 140%;
		text-align: center;
	}
	#top_contents_link ul { display: block; }
	#top_contents_link ul li { margin: 10px 0; }
	
	/* bread_crumb ---------------------------------------- */
	#bread_crumb { display: none; }
	/* contents ---------------------------------------- */
	#contents {
		width: auto;
		margin: 80px 10px 70px 10px;
		padding: 10px;
		background: #FFFFFF;
	}
	#contents h1 { font-size: 130%; }
	#contents h2 { font-size: 130%; }
	#contents h3 { font-size: 100%; }
	#contents .latest_date ,
	#contents .alphabet_order {	font-size: 90%; }
	#contents .col-2 { display: block; }
	#contents .col-3 { display: block; }
	#contents .col-4 { display: block; }
	#contents .col-2 section ,
	#contents .col-3 section ,
	#contents .col-4 section { margin: 0; }
	#contents .col-2 .photo_area { height: auto; }
	#contents .col-3 .photo_area { height: auto; }
	#contents .col-4 .photo_area { height: auto; }
	#contents .shadow-box section {
		margin: 10px 0 20px 0;
		padding: 10px;
	}
	#contents .shadow-box section div.company_data { display: block; }
	#contents .shadow-box section div.company_data > div {
		height: 230px;
		margin-right: 0;
	}
	#contents .shadow-box section div.company_data div img { max-height: 230px; }
	#contents .shadow-box section p.member_name { padding: 10px 0; }
	#contents table {
		width: 100%;
		margin-bottom: 20px;
		border: 1px solid #cccccc;
		border-collapse: collapse;
		font-size: 90%;
	}
  /* 428px以下でスマホ用のtableを表示するスタイル */
	#contents table.pc_none {
        display: table;
    }
	#contents div.pc_none {
        display: table;
    }
  /* 428px以下でPC用のtableを隠すスタイル */
	#contents table.sp_none {
        display: none;
    }
	#contents div.sp_none {
        display: none;
    }
	/* page_top ---------------------------------------- */
	#contents #page_top {
		margin-top: 20px;
		font-size: 90%;
	}
	/* footer ---------------------------------------- */
	footer #footer_link { display: none; }
	footer #footer_contents {
		width: auto;
		padding: 10px;
		font-size: 90%;
		text-align: center;
	}
	footer #footer_contents #footer_menu { display: block; }
	footer #footer_contents #footer_menu div {
		padding-bottom: 20px;
		font-family: "Noto Serif JP";
		font-weight: 500;
		font-size: 120%;
	}
	footer #footer_contents #footer_menu div span {
		display: block;
		font-size: 80%;
	}
	footer #footer_contents #footer_menu address {
		font-size: 100%;
		font-style: normal;
		line-height: 1.6;
	}
	footer #footer_contents p#copyright { font-size: 80%; }
	.pc { display: none; }
	.sp { display: inline; }
}