/*-------------------- mobile --------------------*/
@media screen and (max-width: 768px) {
	.mobile{
		display:block;
	}

	body {
		background: #fff;
	}
	
	.mb_120{
		margin-bottom:60px !important;
	}

	.top_mv {
		display: none;
	}
	.scroll-indicator {
		display: none;
	}
	.center-text {
		display: none;
	}
	
	.main_header{
		position:relative;
		height:70px;
		opacity:1 !important;
	}
	.main_header_logo img{
		width: 240px;
		height: auto;
	}
/* 	.header-mobile {
		background-color: #595757;
		background-size: cover;
		object-fit: cover;
		width: 100%;
		height: 100px;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 100;
	} */
	
	.main_header_hamburger{
		display:block;
		position:absolute;
		top:25px;
		right:20px;
		width:30px;
		height:20px;
		margin-bottom:1px;
		cursor:pointer;
		z-index:100;
	}
	.main_header_hamburger span{
		position:absolute;
		left:0;
		width:100%;
		height:1px;
		background-color:#ffffff;
		animation-duration:0.3s;
		animation-iteration-count:1;
		animation-timing-function:linear;
	}
	.main_header_hamburger span.top{
		top:0;
		transform:rotate(0deg);
	}
	.main_header_hamburger span.middle{
		top:50%;
		transform:rotate(0deg);
	}
	.main_header_hamburger span.bottom{
		top:100%;
		transform:rotate(0deg);
	}
	.main_header_nav{
		display:block;
		position:fixed;
		top:70px;
		left:0;
		bottom:0;
		width:100%;
		overflow:auto;
		opacity:0;
		visibility:hidden;
		z-index:100;
	}
	.main_header_nav nav{
		display:grid;
		background-color:#595757;
		border-top:1px solid #716f6f;
	}
	.main_header_nav nav a{
		display:block;
		padding:20px;
		font-size:16px;
		color:#ffffff;
		background-image:url('images/header_mb_cursor_w.png');
		background-position:center right 22px;
		background-repeat:no-repeat;
		background-size:auto 10px;
		border-bottom:2px solid #716f6f;
	}
	.main_header_nav nav .header_toggle_mobile{
		display:block;
		padding:20px;
		font-size:16px;
		border-bottom:2px solid #dfe3e3;
		background-image:url('images/header_mb_plus.png');
		background-position:center right 20px;
		background-repeat:no-repeat;
		background-size:auto 10px;
	}
	.main_header_nav nav .header_toggle_mobile.open{
		background-image:url('images/header_mb_minus.png');
		background-size:10px;
	}
	.main_header_nav nav .menu{
		display:none;
	}
	.main_header_nav nav .menu a{
		padding:20px 20px 20px 48px;
		font-size:16px;
		background-color:#dfe3e3;
		border-bottom:2px solid #ffffff;
		background-image:url('images/header_right_cursor.png');
		background-position:center right 20px;
		background-repeat:no-repeat;
		background-size:16px;
	}

	/*---------- mobile-nav > open ----------*/
	body.nav_open{
		overflow:hidden !important;
	}
	body.nav_open .main_header_nav{
		opacity:1;
		visibility:visible;
	}
	body.nav_open .main_header_hamburger span.top{
		top:50%;
		transform:rotate(30deg);
	}
	body.nav_open .main_header_hamburger span.middle{
		opacity:0;
	}
	body.nav_open .main_header_hamburger span.bottom{
		top:50%;
		transform:rotate(-30deg);
	}
	body.nav_open .main_header_nav{
		display:block;
	}
	/*---------- hamburger-animation ----------*/
	@keyframes nav_open_top{
		0%{
			top:0;
			transform:rotate(0deg);
		}
		50%{
			top:50%;
			transform:rotate(0deg);
		}
		100%{
			top:50%;
			transform:rotate(30deg);
		}
	}
	@keyframes nav_open_middle{
		0%{
			opacity:1;
		}
		50%{
			opacity:0;
		}
		100%{
			opacity:0;
		}
	}
	@keyframes nav_open_bottom{
		0%{
			top:100%;
			transform:rotate(0deg);
		}
		50%{
			top:50%;
			transform:rotate(0deg);
		}
		100%{
			top:50%;
			transform:rotate(-30deg);
		}
	}
	@keyframes nav_close_top{
		0%{
			top:50%;
			transform:rotate(30deg);
		}
		50%{
			top:50%;
			transform:rotate(0deg);
		}
		100%{
			top:0;
			transform:rotate(0deg);
		}
	}
	@keyframes nav_close_middle{
		0%{
			opacity:0;
		}
		50%{
			opacity:0;
		}
		100%{
			opacity:1;
		}
	}
	@keyframes nav_close_bottom{
		0%{
			top:50%;
			transform:rotate(-30deg);
		}
		50%{
			top:50%;
			transform:rotate(0deg);
		}
		100%{
			top:100%;
			transform:rotate(0deg);
		}
	}

	.top_mv_mobile {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.mobile-section {
		position: relative;
		width: 100%;
		height:350px;
		overflow: hidden;
	}

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

	.mobile-section .text-overlay {
		position: absolute;
		bottom: 30px;
		left: 50%;
		transform: translateX(-50%);
		color: white;
		/* text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); */
		white-space: nowrap;
		text-align: center;
	}

	.mobile-section .text-overlay h2{
		margin:0 0 15px;
		font-size: 24px;
		line-height:1;
	}

	.mobile-section .text-overlay p{
		margin:0 0 20px;
		font-size: 20px;
		line-height:1;
	}

	.circle-button {
		width: 30px;
		height: 30px;
		border: none;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
		margin:0 auto;
		cursor: pointer;
		transition: transform 0.3s ease-out, background-color 0.3s;
	}

	.blue-button {
		background-color: #006FBA;
	}

	.red-button {
		background-color: #DC3545;
	}

	.circle-button img {
		width: 10px;
		height: 10px;
	}

	.content-section {
		width: 100% !important;
		overflow: hidden;
		padding-top: 0;
		position: relative;
		left: 0 !important;
		transform: none !important;
		-webkit-transform: none !important;
		-moz-transform: none !important;
		-ms-transform: none !important;
		-o-transform: none !important;
	}

	.sticky_area{
		height:auto;
	}
	
	.sticky_content{
		position:relative;
		top:auto !important;
	}
	.sticky_box{
		position:relative;
		left:auto;
		transform:none;
	}

	.content-slogan {
		gap:30px;
		margin-top: 100px;
	}

	.content-slogan p{
		font-size:22px;
	}
	
	.content-70th{
		margin-top:80px;
	}
	.content-70th img{
		width:150px;
	}

	.content-box {
		width: 100%;
		margin-top: 90px;
	}

	.content-box p {
		font-size: 16px;
	}

	.content-gradient{
		height:160px;
		background: linear-gradient(to bottom, #ffffff, #dfe3e3);
	}

	.content-earth img{
		width: 120px;
	}

	.scrolled .content-section {
		width: 100% !important;
		opacity: 1 !important;
		transform: none !important;
	}

	.news-title{
		margin-bottom:80px;
	}
	
	.news-title .content-oshirase {
		font-size: 25px;
	}
	
	.news-title .content-oshirase h2{
		font-size:34px;
	}
	
	.news-title h3{
		font-size: 20px;
		margin:50px auto 0;
	}

	.news-grid {
		grid-template-columns: 1fr;
		padding: 0 20px;
	}

	.item-date {
		gap:20px;
	}

	.news-tag {
		font-size:12px;
	}

	.news-description {
		font-size: 14px;
	}

	.site-footer {
		padding:50px 0 20px;
	}
	
	.site-footer img {
		width: 150px;
	}
	
	.copyright {
		margin: 30px 0 0;
		padding:0 10px;
		font-size: 12px;
		text-align:center;
	}


	/*-------------------- footer --------------------*/
	.footer_wrap{
		padding:24px 25px 15px;
		border-top:2px solid #23231e;
	}
	.footer_top{
		margin-bottom:30px;
	}
	.footer_top .return{
		margin-bottom:35px;
		padding-bottom:24px;
		text-align:center;
	}
	.footer_top .nav{
		flex-direction:column;
		justify-content:flex-start;
		gap:15px;
	}
	.footer_bottom{
		flex-direction:column-reverse;
		align-items:center;
		gap:60px;
		margin-bottom:30px;
	}
	.footer_bottom .logo img{
		width:110px;
	}
	.footer_bottom .youtube{
		flex-direction:column-reverse;
		gap:15px;
	}
	.footer_bottom .youtube img{
		width:60px;
	}
	.footer_copy p{
		font-size:11px;
		text-align:center;
	}
	.footer_top_return{
/* 		display:none; */
		right: 10px;
		bottom: 70px;
		left: auto;
		transform: none;
		width: auto;
	}
	
	
	/*-------------------- 共通 --------------------*/
	.common_wrap{
		padding:80px 25px 120px;
	}
	.common_title{
		margin-bottom:70px;
		padding-bottom:22px;
	}
	.common_title h1{
		font-size:28px;
	}
	.common_container{
		gap:60px;
	}
	.common_box .headline{
		margin-bottom:48px;
		font-size:21px;
	}
	.common_box > h2{
		margin-bottom:30px;
		font-size:21px;
	}
	.common_box > p{
		font-size:16px;
	}
	.common_box > ul{
		gap:5px;
	}
	.common_box > ul li{
		font-size:16px;
	}
	.common_box > ol{
		gap:40px;
	}
	.common_box > ol li{
		font-size:16px;
	}
	.common_box .list{
		gap:25px;
		margin-top:45px;
	}
	.common_box .list h3{
		margin-bottom:10px;
		padding-bottom:10px;
		font-size:17px;
	}
	.common_box .list p{
		font-size:16px;
	}
	.common_box .list ul li{
		margin-top:10px;
		font-size:16px;
	}
	.common_box .line{
		margin-top:30px;
		padding:20px 0;
		font-size:18px;
		text-decoration:underline;
		border-top:2px dotted #23231e;
		border-bottom:2px dotted #23231e;
	}
	.common_box .cookie{
		gap:42px;
		margin-top:42px;
	}
	.common_box .cookie h3{
		margin-bottom:22px;
		font-size:20px;
	}
	.common_box .cookie h3 span{
		font-size:18px;
	}
	.common_box .cookie p{
		font-size:16px;
		line-height:34px;
	}
	.common_box .cookie ul{
		margin:20px 0 0;
	}
	.common_box .cookie ul li{
		padding:16px 0;
		font-size:16px;
	}

	.common_memo{
		margin-top:45px;
	}
	.common_memo p{
		font-size:16px;
	}
	.privacy_common_memo{
		margin-top:20px;
		font-size:16px;
	}
	.common_link_container{
		gap:30px;
		padding:0;
		border:none;
	}
	.common_link{
		padding-bottom:25px;
		border-bottom:2px dotted #23231e;
	}
	.common_link h2{
		margin-bottom:22px;
		font-size:16px;
	}
	.common_link a{
		font-size:16px;
	}
	
	
	/*-------------------- news --------------------*/
	.news_wrap{
		padding:80px 25px;
	}
	.news_section{
		padding-bottom:80px;
	}
	.news_title{
		margin-bottom:80px;
	}
	.news_title h1{
		margin-bottom:25px;
		font-size:90px;
	}
	.news_title p{
		font-size:20px;
	}
	.news_category{
		display:grid;
		grid-template-columns:repeat(2, 1fr);
		gap:12px 15px;
		margin-bottom:60px;
	}
	.news_category a{
		width:100%;
		padding:10px;
		font-size:17px;
		box-sizing:border-box;
	}
	.news_lists{
		margin-bottom:80px;
	}
	.news_box{
		padding:32px 0 23px;
	}
	.news_box > img{
		display:block;
		position:static;
		top:auto;
		right:auto;
		transform:none;
		margin-left:auto;
	}
	.news_content{
		margin-bottom:25px;
	}
	.news_content .info time{
		font-size:16px;
	}
	.news_content h2{
		font-size:16px;
	}
	.news_paginate{
		flex-wrap:wrap;
	}
	.news_paginate a{
		padding:8px 12px;
		font-size:16px;
	}
	.news_return{
		justify-content:center;
	}
	.news_return a{
		width:225px;
		font-size:14px;
	}
	.news_return a img{
		width:15px;
	}
	.news_contact_wrap{
		padding:37px 25px 32px;
		border-top:1px solid #23231e;
	}
	.news_contact_box{
		flex-direction:column-reverse;
		justify-items:stretch;
		align-items:normal;
		gap:15px;
		height:auto;
		border:none;
	}
	.news_contact_box .icon{
		position:static;
		top:auto;
		left:auto;
		width:60px;
		height:60px;
		margin-left:auto;
	}
	.news_contact_box .icon img{
		width:18px;
	}
	.news_contact_box .title{
		flex-direction:column;
		align-items:flex-start;
		gap:20px;
	}
	.news_contact_box .title h3{
		font-size:42px;
		line-height:1;
	}
	.news_contact_box .title p{
		font-size:18px;
	}
	
	
	/*-------------------- お知らせ記事 --------------------*/
	.news_detail_article{
		margin-bottom:80px;
	}
	.news_detail_head{
		margin-bottom:42px;
		padding-bottom:42px;
	}
	.news_detail_head .date{
		gap:25px;
		margin-bottom:32px;
	}
	.news_detail_head .date time{
		font-size:16px;
	}
	.news_detail_head .date .category{
		padding:3px 20px;
		font-size:16px;
	}
	.news_detail_head h1{
		font-size:21px;
		line-height:38px;
	}
	.news_detail_body{
		margin-bottom:80px;
	}
	.news_detail_body p{
		margin-bottom:42px;
		font-size:16px;
		line-height:34px;
	}
	.news_detail_body img{
		margin-bottom:42px;
	}
	
	/*-------------------- パンくずリスト --------------------*/
	.breadcrumb{
		display:none;
	}
	
	
	/*---------- contact-list ----------*/
	.contact_list{
		padding:0 20px;

		.box{
			margin-bottom:25px;

			&.first{
				margin-bottom:40px;
			}
			p{
				margin-bottom:10px;
				font-size:15px;
			}
			a{
				padding:25px 40px;
				font-size:17px;
				background-position:center right 30px;
				background-size:27px;
			}
		}
	}

	/*---------- contact-form ----------*/
	.contact_field{
		padding:0 20px;
	}
	.contact_area{
		.check{
			margin-bottom:48px;

			dl{
				margin:0 0 42px;
				padding-bottom:42px;

				dt{
					p{
						flex-direction:column;
						align-items:flex-start;
						margin-bottom:18px;

						.title{
							margin-bottom:14px;
							padding:5px 14px;
							font-size:19px;
							line-height:24px;
							border-left:7px solid #0075c2;
						}
						.kome{
							font-size:16px;
						}	
					}
				}
				dd{
					.wpcf7-checkbox{
						grid-template-columns:1fr;
						gap:16px 0;

						label{
							gap:8px;
							font-size:16px;
							line-height:24px;

							input{
								width:21px;
								height:21px;
							}
						}
					}
				}
			}
		}
		.form{
			margin-bottom:40px;
			padding-bottom:80px;

			dl{
				margin:0 0 25px;

				dt{
					margin-bottom:15px;

					p{
						font-size:15px;

						span{
							padding:6px 10px;
							font-size:12px;
						}
					}
				}
				dd{
					input[type="text"], input[type="email"], input[type="tel"]{
						padding:15px;
						font-size:14px;
						border-radius:5px;
					}
					textarea{
						padding:15px;
						font-size:14px;
						border-radius:5px;
					}
					.file_area{
						padding:10px;
						border-radius:5px;
					}
					.memo{
						margin-top:15px;
						font-size:16px;
						line-height:31px;
					}
				}
			}
		}
		.text{
			h3{
				margin-bottom:20px;
			}
			ol{
				li{
					margin-bottom:15px;
				}
			}
			.tx{
				font-size:16px;
			}
		}
		.post{
			.btn{
				input{
					width:100%;
				}
			}
		}
	}
}