@charset "utf-8";
/* CSS Document */

@media (min-width: 641px) and (max-width: 1024px) {
	body, .nav_wrap.fixed, #mainvisual, header, footer {
		min-width: 1300px;
  }
}

@media screen and (max-width:640px) {
	body {
		font-size: 14px;
	}

	body, .nav_wrap.fixed, #mainvisual, header, footer {
		min-width: 100%;
	}

	/* ナビ展開時スクロール禁止処理 */
	body.nav-open {
    overflow: hidden !important;
  }

	/*============================================================================

		header

	============================================================================*/
	header {
		display: none;
	}


/*============================================================================

		nav

	============================================================================*/
	.nav_wrap {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 10000;
		width: 100%;
		background: #fff;
	}

	.nav_wrap .sp_logo {
		width: calc(100% - 55px);
	}

	.nav_wrap .sp_logo a {
		display: flex;
		flex-direction: column;
		justify-content: center;
		width: 100%;
		height: 55px;
		padding: 5px;
		color: #0661ab;
		font-family: 'Noto Sans JP', sans-serif;
		font-weight: 700;
		font-size: 30px;
		letter-spacing: 0.05em;
		line-height: 1.2;
	}

	.nav_wrap .sp_logo a span {
		font-weight: 400;
		font-size: 45%;
	}

  /* ------- ハンバーガーボタン ------- */
  .menu_btn {
    position: relative;
    right: 0;
    width: 55px;
    margin: 0;
		padding: 0;
    border: none;
		background: #fff;
    text-align: center;
    transition: right 0.6s cubic-bezier(.19, 1, .22, 1);
  }

  .menu_btn i {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 5px;
    margin: auto;
		color: #0661ab;
    font-family: 'Noto Sans JP', sans-serif;
		font-weight: 500;
		font-style: normal;
    font-size: 12px;
    letter-spacing: 0.1em;
  }

  .menu_btn span {
		display: block;
		opacity: 1;
    position: absolute;
    left: 0;
    right: 0;
    width: 35px;
    height: 2px;
		margin: auto;
    background: #0661ab;
    transition: all 0.6s cubic-bezier(.19, 1, .22, 1);
  }

  .menu_btn span:nth-of-type(1) {
    top: 10px;
  }

  .menu_btn span:nth-of-type(2) {
    top: 20px;
  }

  .menu_btn span:nth-of-type(3) {
    top: 30px;
  }

  /* 押下時 */
  .menu_btn.active {
    right: 16.25rem;
		background: #0661ab;
  }
	
	.menu_btn.active span {
		background: #fff;
	}

  .menu_btn.active span:nth-of-type(1) {
    top: 20px;
    transform: rotate(225deg);
  }

  .menu_btn.active span:nth-of-type(2) {
    opacity: 0;
  }

  .menu_btn.active span:nth-of-type(3) {
    top: 20px;
    transform: rotate(-225deg);
  }
	
	.menu_btn.active i {
		color: #fff;
	}

  /* ------- スライドメニュー ------- */
  .menu_list_box {
		position: fixed;
    top: 0;
    right: -16.25rem;
    z-index: 2;
    width: 16.25rem;
    height: 100%;
		padding: 15px;
		overflow: hidden;
    background: #0661ab;
    transition: right 0.6s cubic-bezier(.19, 1, .22, 1);
  }

  /* 展開時 */
  body.nav-open .menu_list_box {
    overflow-y: scroll;
    overscroll-behavior-y: none;
    right: 0;
  }

  .menu_list_box {
    color: #fff;
  }

  .menu_list_box a {
    display: block;
		color: #fff;
  }

  .nav_menu > li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  }

  .nav_menu > li:first-child {
    border-top: 1px solid rgba(255, 255, 255, 0.5);
  }

  .nav_menu .nav_menu_tit,
  .nav_menu .parent_menu {
    padding: 15px 10px;
		font-family: 'Noto Sans JP', sans-serif;
		font-weight: 500;
		font-style: normal;
		font-size: 14px;
    letter-spacing: 0.1em;
    line-height: 1.5;
  }
  
  /* ------- 下層のあるメニュー ------- */
  .nav_menu .child_menu {
    padding-left: 15px;
    padding-bottom: 10px;
  }

  .nav_menu .child_menu a {
    padding: 5px 10px 5px 1.2em;
		font-family: 'Noto Sans JP', sans-serif;
		font-weight: 400;
		font-style: normal;
		font-size: 14px;
    letter-spacing: 0.1em;
    line-height: 1.5;
    text-indent: -1.2em;
  }

  /*.nav_menu .child_menu a::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f105";
    margin-right: 10px;
  }*/

  /* アコーディオンやメガでない時に、展開中に含まれる扉ページのリンクを非表示 */
  .nav_menu .nav_menu_btn:not(.is_accord) .child_menu a.sp:first-of-type {
    display: none!important;
  }

  /* アコーディオン&メガメニュー */
  .nav_menu_btn.is_accord {
    cursor: pointer;
  }

  .nav_menu_btn.is_accord .parent_menu {
    position: relative;
  }

  .nav_menu_btn:not(.is_accord) .parent_menu:not(.nav_menu_tit) {
    display: none;
  }

  .nav_menu_btn.is_accord .parent_menu::before {
		display: flex;
    align-items: center;
		position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
		width: auto;
    height: auto;
		border: none;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
		content: "\f067";
  }

  .nav_menu_btn.is_accord > p.nav_menu_tit {
    display: none;
  }

  .nav_menu_btn.is_accord .child_menu {
    display: none;
    opacity: 0;
    visibility: hidden;
    transition: height 0.5s cubic-bezier(.19, 1, .22, 1);
  }

  /* アコーディオン&メガメニュー展開時 */
  .nav_menu_btn.is_accord.active .parent_menu::before {
    content: "\f068";
  }

  .nav_menu_btn.is_accord.active .child_menu {
    visibility: visible;
		opacity: 1;
  }

  /* ヘッダー固定ボタンエリア */
  .sp_btn_box {
    width: 100%;
  }

  .sp_btn_box ul {
    display: flex;
    background: #fff;
    padding: 5px 2.5px;
  }

  .sp_btn_box li.btn {
    width: 100%;
    margin: 0 2.5px;
  }

  .sp_btn_box li.btn a {
    display: flex;
    justify-content: center;
		align-items: center;
		position: relative;
    width: 100%;
    height: 100%;
		padding: 10px 2%;
		background: #0661ab;
    color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
		font-style: normal;
		text-align: center;
  }

  .sp_btn_box li.btn a i {
    width: 15px;
    margin-right: 5px;
  }

  .sp_btn_box li:last-child a {
    background: #68a7de;
  }

  /* ナビ展開時の後ろの背景 */
  .nav_overlay {
    display: none;
    visibility: hidden;
		opacity: 0;
    z-index: 10;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgb(0 0 0 / 0.2);
  }

  body.nav-open .nav_overlay {
    display: block;
		visibility: visible;
    opacity: 1;
  }
	
	/*============================================================================

		footer

	============================================================================*/
	.footer_info_detail {
		display: block;
		width: 100%;
		padding: 50px 5% 50px;
	}

	.footer_info_left,
	.footer_info_right {
		width: 100%;
	}

	.footer_logo {
		margin-bottom: 40px;
	}

	.footer_logo a {
		font-size: 32px;
	}

	.footer_logo a span {
		font-size: 18px;
	}

	.info_tel {
		margin-bottom: 28px;
	}

	.info_tel a {
		padding: 0 0 0 30px;
		font-size: 18px;
	}

	.info_tel a::before {
		width: 20px;
		height: 22px;
	}

	.info_add {
		margin-bottom: 40px;
	}

	.info_add p {
		padding: 0 0 0 30px;
		font-size: 16px;
	}

	.info_add p span {
		line-height: 1.5;	
	}

	.info_add p::before {
		position: absolute;
		top: 0;
		left: 0;
		width: 20px;
		height: 22px;
		background: url("../images/map_icon.svg") no-repeat;
		content: "";
	}

	.footer_nav_wrap {
		position: relative;
		padding: 40px 0 40px;
	}

	.footer_nav_wrap::before {
		right: 0;
		margin: auto;
		width: 100%;
	}

	.footer_nav_wrap ul {
		display: flex;
		flex-wrap: wrap;
		margin-bottom: 20px;
	}

	.footer_nav_wrap ul li {
		margin-bottom: 20px;
	}

	.footer_nav_wrap ul:first-child li:last-child {
		margin-bottom: 0;
	}

	.footer_nav_wrap ul a {
		padding: 0 30px 0 0;
		font-size: 15px;
		line-height: 1.5;
	}

	.footer_nav_wrap ul a:hover {
		color: #014d8e;
	}

	.footer_nav_wrap ul:nth-of-type(2) {
		display: flex;
		flex-wrap: wrap;
	}

	.footer_nav_wrap ul:nth-of-type(2) li {
		margin-bottom: 0;
	}

	.footer_nav_wrap ul:nth-of-type(2) li:nth-of-type(2) a,
	.footer_nav_wrap ul:nth-of-type(2) li:nth-of-type(3) a {
		font-weight: 300;
	}

	.footer_info_map {
		width: 100%;
		height: 300px;
		margin: 0 auto 30px;
	}

	.copy_wrap {
		padding: 30px 5% 30px;
	}

	.copy_txt {
		line-height: 1.75;
	}

	/*============================================================================

		#mainvisual

	============================================================================*/
	#mainvisual {
		height: 280px!important;
	}

	#mainvisual .inner {
		width: 100%;
	}

	/* SCROLL */
	.mainvisual_scroll {
		position: absolute;
		bottom: 50px;
		left: 0;
		right: 0;
		margin: auto;
	}

	.mainvisual_scroll p {
		text-align: center;
	}

	.mainvisual_scroll p::before {
		height: 30px;
	}

	.mainvisual_catch {
		padding-top: 100px;	
	}
	
	.mainvisual_catch_ja {
		font-size: 20px;
	}

	/*============================================================================

		.box

	============================================================================*/
	.box1 {
		width: 100%;
	}

	.box2 {
		width: 100%;
		padding: 40px 5% 0;
	}

	.company_contents .box2 {
		padding: 50px 5% 0;
	}

	#contents {
		padding: 0;
	}

	.text {
		text-align: center;
	}

	.text p {
		text-align: left;
	}

	/*============================================================================

		タイトル（共通）

	============================================================================*/
	.tit_box {
		margin-bottom: 40px!important;
	}

	.tit01 {
		padding: 10px 0 0;
		font-size: 28px;
	}

	.tit03 {
		font-size: 20px;
	}

	.tit03 span {
		display: block;
		margin-left: 0;
	}

	.tit_en {
		font-size: 20px;
	}

	/*============================================================================

		レイアウト（共通）

	============================================================================*/
	.table_style02 table th {
		width: 22%;
	}
	
	.table_style02 table td:last-child {
		width: auto;
	}
	
	/* 横スクロール */
	.scroll_tb{
		margin-bottom: 20px;
		overflow-x: scroll;
	}

	.scroll_tb table {
		width: 816px;
	}

	.scroll_tb table th {
		position: sticky;
		left: 0;
	}

	.scroll_tb table th::before {
		position: absolute;
		top: -1px;
		left: -1px;
		width: calc(100% + 2px);
		height: calc(100% + 2px);
		border: 1px solid #c9e1fc;
		content: "";
	}

	.list01 li {
		text-align: left;
	}

	.list03 {
		padding: 20px;	
	}
	
	.list03_02 {
		padding: 30px 30px 15px 30px;
	}

	.list03_03 {
		padding: 0 30px 30px 30px;
	}

		.layout01 .layout01_box .layout01_title p {
			text-align: center;
		}

	/*============================================================================

		.top_company

	============================================================================*/
	.top_company {
	}

	.top_company .inner::before {
		width: 100%;
		height: 127px;
		background: url("../images/company_bg_illust_sp.png") no-repeat;
	}

	.top_company .box1 {
		padding: 50px 5% 50px!important;
	}

	.top_company .text {
		padding: 0;
	}

	/*============================================================================

		.top_work

	============================================================================*/
	.top_work {
	}

	.top_work .inner::before {
		width: 100%;
	}

	.top_work .box1 {
		display: block;
		padding: 50px 5% 50px!important;
	}

	.work_left .tit_box::before {
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		margin: auto;
		width: 300px;
		height: 39px;
		background: url("../images/work_tit_bg_sp.png") no-repeat;
		content: "";
	}

	.work_left .tit_box .tit01 {
		font-size: 20px;
	}

	.work_left,
	.work_right {
		width: 100%;
	}

	.work_left {
		margin-bottom: 60px;
	}

	.work_left .text {
		margin-bottom: 50px;
	}

	.work_right {
		padding: 0;
	}

	/*============================================================================

		.top_service

	============================================================================*/
	.top_service {
	}

	.top_service .box1 {
		padding: 50px 5% 50px!important;
	}

	.service_wrap01 {
		margin-bottom: 70px;
	}

	.service_wrap01::before {
		top: 10px;
		right: -10px;
		width: 100%;
		height: 100%;
	}

	.service_wrap02::before {
		top: 10px;
		left: auto;
		right: -10px;
		width: 100%;
		height: 100%;
	}

	.service_flex {
		display: block;
		width: 100%;
	}

	.service_right {
		position: relative;
		margin-top: 0;
		padding: 20px;
		width: 100%;
		height: auto;
		background-color: rgba(6,97,171,0.50);
		box-shadow: 0px 0px 8.3px 1.7px rgba(0,0,0,0.14);
	}

	.service_wrap .service_left figure {
		position: static;
		top: 0;
		z-index: -1;
	}

	.service_wrap01 .service_detail {
		padding: 30px 20px;
	}

	.service_wrap02 .service_detail {
		padding: 30px 20px;
	}

	.service_detail h3 {
		margin-bottom: 30px;
		font-size: 24px;
	}

	.service_detail .text {
		padding: 0;
		font-size: 15px;
	}

	.service_wrap01 .service_detail .text {
		margin-bottom: 30px;
	}

	.service_wrap02 .service_detail .text {
		margin-bottom: 30px;
	}

	/*============================================================================

		.service（下層）

	============================================================================*/
	.sub_service .box2 {
		padding: 40px 5% 0;
	}

	/*============================================================================

		.top_faq

	============================================================================*/
	.top_faq {
	}

	.top_faq .box1 {
		padding: 50px 5% 80px!important;
	}

	.top_faq .text {
		margin-bottom: 50px;
		padding: 0;
	}

	.qa01 dl dt,
	.qa01 dl dd {
		text-align: left;
	}

	/*============================================================================

		.top_inquiry

	============================================================================*/
	.top_inquiry {
		background: #eff6fc;
	}

	.inquiry_bg {
		width: 100%;
		height: 250px;
		background: url("../images/inquiry_img01.jpg") no-repeat;
		background-size: cover;
	}

	.top_inquiry .box1 {
		padding: 50px 5% 50px!important;
	}

	.top_inquiry .inner::before {
		display: none;
	}

	.top_inquiry .inner::after {
		display: none;
	}

	.inquiry_detail {
		width: 100%;
		margin: auto;
		padding: 0;
		background: #eff6fc;
	}

	.inquiry_detail .tit_box {
		margin-bottom: 40px;
	}

	.inquiry_detail .tit_box .tit01 {
		text-align: center;
	}

	.inquiry_detail .tit_box .tit_en {
		text-align: center;
	}

	.inquiry_detail .text {
		margin-bottom: 50px;
	}

	.inquiry_detail .btn01 {
		text-align: center;
	}

	.caution_list {
		text-align: left;
	}

	.inquiry_tb td, .inquiry_tb th {
		padding: 12px;
	}

	.inquiry_tb th span {
		font-size: 13px;
	}

	.inquiry_tb tbody tr th,
	.inquiry_tb tbody tr td {
		display: block;
		width: 100%;
	}

	.table_note {
		font-size: 90%;
		padding-top: 40px;
	}

	.table_note li {
		line-height: 1.8;
	}

	.table_note li:before{
		top:10px;
	}

	.inquiry_tb .tr_spelling input {
		width: auto;
		height: auto;
		margin-right: 5px;
	}

	.inquiry_tb input {
		height: 28px;
		width: 100%;
	}

	.inquiry_tb .contact_radio input{
		margin-right: 20px;
		height: auto;
		width: auto;
	}

	.inquiry_tb {
		margin-bottom: 50px;
	}

	.inquiry_caution {
		text-align: center;
	}

	form textarea {
			border: 1px solid #ccc;
			width: 100%;
	}
	.submit_btn{
		padding-top: 40px;
		text-align: center;
		font-size: 16px;
	}

	.submit_btn input[type="reset"]{
		width: 200px;
		height: 44px;
		margin: 0 auto 20px;
	}

	.submit_btn input[type="reset"]:hover {
		background-color: #0661ab;
		color: #fff;
		transition: ease-in-out 0.3s;
	}

	.submit_btn input[type="submit"] {
		width: 200px;
		height: 44px;
		margin: 0 auto;
	}

	.submit_btn input[type="submit"]:hover{
		background-color: #509fd0;
		color: #fff;
		transition: ease-in-out 0.3s;
	}

	.required {
		margin-left: 20px;
		padding: 3px 7px;
		background-color: #0661ab;
		color: #fff;
	}

	/*============================================================================

		.doctor

	============================================================================*/
	.greeting_flex {
		display: block;
	}

	.greeting_left {
		width: 100%;
		margin-bottom: 30px;
	}

	.greeting_right {
		width: 100%;
	}

	/*============================================================================

		.common

	============================================================================*/
	.pc{display:none!important}.sp{display:block!important}.pc_inline{display:none!important}.sp_inline{display:inline!important}.pc_table{display:table!important}.sp_table{display:table!important}img{max-width:100%;height:auto}.sp_mb00{margin-bottom:0!important}.sp_mr00{margin-right:0!important}.sp_ml00{margin-left:0!important}.sp_mt00{margin-top:0!important}.sp_pb00{padding-bottom:0!important}.sp_pr00{padding-right:0!important}.sp_pl00{padding-left:0!important}.sp_pt00{padding-top:0!important}.sp_center{text-align:center}
	}

@media screen and (max-width:320px) {
	.main_open {
		position: absolute;
		top: auto;
		bottom: 50px;
		right: 0;
		left: 0;
		width: 50%;
		margin: auto;
	}

	.sp_inline_iP {
		display:inline!important
	}
}

