@charset "utf-8";

/*--------------------------------------------------------
★レスポンシブ■ヘッダ部分
--------------------------------------------------------*/
@media screen and (min-width: 769px) {
	.pc_none{
		display: none!important;
	}
}
@media screen and (max-width: 768px) {
	.sp_none{
		display: none!important;
	}
}

/*--------------------------------------------------------
★レスポンシブ■コンテンツ部分
--------------------------------------------------------*/
@media screen and (max-width: 768px) {
	body {
		min-width: 320px;
	}
	.wrapper{
		width: 100%;
		padding: 0 5%;
	}
	.caution{
		font-size: 1.4rem;
		line-height: 1.7;
	}
	a[href*="tel:"] {
		pointer-events: auto;
		cursor: pointer;
	}

	/* Header
	------------------------------ */
	.header_inner {
		border-top: none;
		padding: 0 0 15px;
		box-shadow: 2px 2px 3px #d8d8d8;
	}
	.header_inner.header_fixed {
		border-top: none;
		padding: 0 0 15px;
	}
	.header_logo {
		width: 180px;
		margin-top: 18px;
	}
	.header_menu {
		display: none;
	}
	/* ハンバーガーメニュー */
	.hamburger {
        display: block;
		overflow: hidden;
	}
	#hamburger_toggle {
		overflow: hidden;
	}
	.hamburger_open, 
	.hamburger_close {
		cursor: pointer;
		position: absolute;
		top: 0;
		right: 0;
	}
	.hamburger_open{
		z-index: 101;
		width: 60px;
		height: 60px;
		color: #fff;
		background: #056BBC;
		font-size: 1.6em;
		text-align: center;
		-webkit-transition: background-color 0.6s,-webkit-transform 0.6s;
		transition: background-color 0.6s,transform 0.6s;
	}
	#hamburger_toggle:checked+.hamburger_open {
		color: #056BBC;
		background-color: #fff;
		-webkit-transform: translateX(-250px);
		transform: translateX(-250px);
	}
    .hamburger_bars {
        position: relative;
        display: block;
    }
    .hamburger_bar {
        position: absolute;
        display: block;
		width: 25px;
		height: 2px;
        left: 50%;
        transform: translateX(-50%);
        background: #fff;
    }
    #hamburger_toggle:checked+.hamburger_open .hamburger_bar {
        background: #056BBC;
    }
	.hamburger_bar:nth-of-type(1) {
		top: 14px;
	}
	.hamburger_bar:nth-of-type(2) {
		top: 22px;
	}
	.hamburger_bar:nth-of-type(3) {
		top: 30px;
	}
	.hamburger_title{
		position: relative;
		display: block;
		font-size: 1.2rem;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0;
		padding-top: 40px;
	}
	.hamburger_close {
		pointer-events: none;
		z-index: 1;
		width: 100%;
		height: 100%;
		transition: background-color 0.6s;
	}
	#hamburger_toggle:checked~.hamburger_close {
		pointer-events: auto;
		background-color: rgba(0,0,0,.3);
		height: 100vh;
		z-index: 2;
	}
	.hamburger_nav{
		position: fixed;
		overflow: auto;
		top: 0;
		right: 0;
		width: 250px;
		height: 100%;
		background: #fff;
		transform: translateX(100%);
		-webkit-transition: -webkit-transform 0.6s;
		transition: transform 0.6s;
		box-sizing: border-box;
		z-index: 200;
        padding: 50px 10px 10px;
	}
	#hamburger_toggle:checked~.hamburger_nav {
		-webkit-transform: translateX(0);
		transform: translateX(0);
	}
	.hamburger_lists {
		padding: 0;
	}
	.hamburger_list {
		position: relative;
		border-bottom: 1px solid #056BBC;
	}
	.hamburger_list a {
        color: #3C3C3C;
		display: block;
		padding: 10px 15px;
	}
	main {
		margin-top: 60px;
	}
	/* main_view
	------------------------------ */
	.main_view_pic img {
		width: 100%;
		max-height: 380px;
		object-fit: cover;
	}
	.main_view_message {
		width: 80%;
		max-width: 400px;
		left: 5%;
		top: 50%;
		transform: translateY(-50%);
	}

	/* greeting
	------------------------------ */
	.greeting::before {
		height: 60px;
		top: -30px;
	}
	.greeting_inner {
		padding: 50px 0;
	}
	.greeting_title {
		font-size: 2.4rem;
	}
	.greeting_text {
		line-height: 1.6;
		text-align: left;
		margin-top: 20px;
	}

	/* company
	------------------------------ */
	.company {
		margin-top: 50px;
	}
	.company_business_title {
		font-size: 2.4rem;
	}
	.company_business_text {
		margin-top: 20px;
	}
	.company_wrapper {
		display: block;
	}
	.company_business {
		max-width: 100%;
		border-right: none;
		padding-top: 0;
		padding-right: 0;
	}
	.company_business_construction {
		margin-top: 20px;
	}
	.company_business_construction_title {
		font-size: 1.8rem;
	}
	.company_business_construction_item {
		margin-top: 10px;
	}
	.company_business_construction_subtitle {
		font-size: 1.7rem;
		padding-left: 15px;
	}
	.company_business_construction_subtitle::before {
		width: 10px;
		height: 10px;
		top: 10px;
	}
	.company_business_construction_images {
		display: block;
	}
	.company_business_construction_image {
		width: 100%;
	}
	.company_business_construction_image img {
		width: 100%;
	}
	.company_business_construction_image:nth-of-type(n + 2) {
		margin-top: 15px;
	}
	.company_business_construction_table table {
		margin-top: 5px;
	}
	.company_business_construction_table th {
		font-size: 13px;
		padding: 5px 2px;
	}
	.company_business_construction_table td {
		font-size: 13px;
		padding: 5px 2px;
	}
	.company_business_control {
		margin-top: 30px;
	}
	.company_business_control_title {
		font-size: 1.8rem;
	}
	.company_business_control_images {
		display: block;
		margin-top: 15px;
	}
	.company_business_control_image {
		width: 100%;
	}
	.company_business_control_image:nth-of-type(n + 2) {
		margin-top: 15px;
	}
	.company_business_control_image img {
		width: 100%;
	}
	.company_business_control_image_title {
		padding: 10px 5px;
	}
	.company_business_control_message {
		font-size: 2rem;
		margin-top: 30px;
	}
	.company_summary {
		max-width: 100%;
		padding-top: 0;
		padding-left: 0;
		margin-top: 50px;
	}
	.company_summary_title {
		font-size: 2.4rem;
	}
	.company_summary_image {
		margin-top: 20px;
	}
	.company_summary_figure dl {
		display: block;
	}
	.company_summary_figure dt {
		width: 100%;
		padding: 10px 0;
	}
	.company_summary_figure dd {
		width: 100%;
		padding: 0 0 10px;
	}
	.company_summary_map {
		margin-top: 30px;
	}
	.company_summary_banners {
		display: block;
		margin-top: 30px;
	}
	.company_summary_banner {
		width: 100%;
	}
	.company_summary_banner:nth-of-type(n + 2) {
		margin-top: 20px;
	}

	/* banner
	------------------------------ */
	.banner {
		margin: 50px 0 0;
	}
	.banner_wrapper {
		display: block;
	}
	.banner_img {
		max-width: 100%;
	}
	.banner_img img {
		width: 100%;
	}
	.banner_content {
		width: 100%;
		padding: 20px 15px;
	}
	.banner_message {
		font-size: 1.7rem;
	}

	/* footer
	------------------------------ */
	.footer {
		margin-top: 0;
	}
	.footer_inner {
		padding: 15px 0 160px;
	}
	.copyright small {
		font-size: 1.2rem;
	}
	.footer_action {
		display: block;
		position: fixed;
		width: 100%;
		left: 0;
		bottom: 0;
		box-shadow: 0 -3px 10px #cbcbcb;
	}
	.footer_action_tel {
		display: block;
		font-weight: 700;
		color: #0055a0;
		background: #fff;
		text-align: center;
		padding: 20px 0 30px;
	}
	.footer_action_tel span {
		position: relative;
		display: inline-block;
		padding-left: 40px;
	}
	.footer_action_tel span::before {
		position: absolute;
		content: "";
		width: 34px;
		height: 34px;
		left: 0;
		top: 50%;
		transform: translateY(-50%);
		background: url(../images/icon_tel.png) no-repeat center center / contain;
	}

	/* Page Top
	------------------------------ */
	.pagetop{
		position: fixed;
		-webkit-transition: all .4s;
		-moz-transition: all .4s;
		-ms-transition: all .4s;
		-o-transition: all .4s;
		transition: all .4s;
		opacity: 0;
		z-index: 10;
		box-sizing: border-box;
	}
	.pagetop.show{
		opacity: 1;
		bottom: 90px;
		right: 5%;
		width: 54px;
		height: 54px;
	}
	.pagetop span{
		position: relative;
		display: block;
		font-size: 0;
		line-height: 0;
	}
	.pagetop::before{
		content: "";
		position: absolute;
		width: 20px;
		height: 20px;
		transform: rotate(45deg);
		background: none;
		left: 0;
		right: 0;
		margin: 0 auto;
		top: 21px;
		transition: .25s;
	}
	.pagetop:hover::before{
		width: 20px;
	}
}

