@charset "utf-8";

@media (max-width: 600px) {

}

@media (max-width: 768px) {
	body { padding-top: 70px!important; }

	header {
	    height: 50px;
	}
	header h1 img {
	    height: 50px;
	}
	.inner {
        padding: 20px 12px 30px!important;
    }
	h2 {
	    font-size: 22px;
	}
	.page_head_ttl span{
	    font-size: 22px;
	    line-height: 1.8;
	}

	table th, table td {
	    padding: 7px;
	}
    .page-title {
        font-size: 20px;
    }
}

@media (max-width: 1024px) {
	body { padding-top: 95px ; }

	header {
	padding: 10px 15px;
	}

	/* 右側ボタンを隠す */
	header ul {
	display: none;
	}

	/* ハンバーガー表示 */
	#menu-toggle {
	display: block;
	width: 30px;
	height: 22px;
	border: none;
	background: none;
	}

	#menu-toggle span {
	display: block;
	height: 3px;
	background: #333;
	margin: 5px 0;
	border-radius: 2px;
	}
	.sp-links {
		display: block;
		padding: 15px;
		background: #f5f5f5;
	}

	.sp-links ul {
		display: flex;
		flex-direction: column;
		gap: 10px;
	}

	.sp-links a {
		display: block;
		padding: 12px;
		text-align: center;
	}

	/* ナビを縦メニュー化 */
	#nav {
	display: none;
	position: fixed;
    top: 80px;
    left: 0;
    width: 100%;
    height: calc(100vh - 80px);
    transform: translateY(-100%);
    transition: transform 0.3s ease;
    overflow-y: auto;
	}

	#nav.open {
	display: block;
	transform: translateY(0);
	}

	#nav > ul {
	flex-direction: column;
	background-color: var(--color-white);
	position: relative;
	z-index: 1;
	padding: 15px;
	}

	nav ul li:hover {
		background-image: none;
	}

	nav > ul > li:hover, nav > ul > li:focus-within {
		background-color: unset;
		color: var(--color-primary-accent)!important;
	}

	nav > ul > li:hover > a, nav > ul > li:focus-within > a {
		color: var(--color-primary-accent)!important;
	}

	#nav > ul > li {
		background-image: none;
		border-bottom: 1px solid rgba(255,255,255,0.2);
		padding-top: 15px;
	}

	nav li.has-child {
		text-align: left;
		line-height: 22px;
	}

	nav li.has-no-child a {
		text-align: left;
		line-height: 22px;
	}
	nav li li a {
		text-align: left;
		line-height: 22px;
		border: none;
	}

	/* サブメニューを展開式に */
	.submenu {
		position: static;
		display: block;
		background: none;
		text-align: left;
		padding-left: 18px;
		box-shadow: unset;
	}

	nav ul li ul li {
		padding: 6px 0
	}

	nav li.has-child > a::after, nav li.has-child::after {
		content: none;
	}
}

@media (max-width: 1280px) {
	.inner {
	    width: 97%;
    	padding-right: 1.5%;
    	padding-left: 1.5%;
	    max-width: 1100px;
	    margin: 0 auto;
	}

	.page_head_wrap {
		height: 180px;
	}

	.page_head_ttl {
		left: 2.5%;
	}
}