/*
Theme Name: consttemp
Template: twentytwenty
Version: 1.02
*/
@charset "utf-8";
/** 初期設定 ******************************************************************/
/** ヘッダーフッター背景カラー設定 **/
.basecolor {
	background-color: #393939;
}
/** リンク背景カラー設定 **/
.linkcolor {
	background-color: #EDD200;
}
/** スマホアイコンカラー設定 **/
.linkcolor a svg {
	fill:#000;
}
/** ボタン文字・スマホアイコンカラー設定 **/
.linkcolor a {
	color:#000;
}
/** svg safari対応 **/
.linkcolor svg {
	width:100%;
}
/********************************************************************/
.rgba_bk30 {
	background-color: rgba(0,0,0,0.3);
}
.rgba_bk40 {
	background-color: rgba(0,0,0,0.4);
}
.rgba_bk50 {
	background-color: rgba(0,0,0,0.5);
}
.rgba_bk60 {
	background-color: rgba(0,0,0,0.6);
}
.rgba_bk70 {
	background-color: rgba(0,0,0,0.7);
}
/********************************************************************/

/* reset-------------------------------------- */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 62.5%; /* -> 10px */
	font-weight: normal;
	vertical-align: baseline;
	background: transparent;
	scroll-behavior: smooth;
}
/* フォントサイズの拡大を防ぐ */
html {
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	font-feature-settings: "palt";
	letter-spacing: 0.1em;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
	overflow: visible
}
ul, dl {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}
a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	text-decoration: none;
	color :#333;
	outline: none;
	cursor: pointer;
}
a:hover {
	opacity: 0.7;
}
a:focus {
	outline: none;
}
a[href^="tel:"] {
	color: #333;
}
ins {
	text-decoration: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
input, select {
	vertical-align: middle;
}
/* inputやbuttonなどのfontは継承 */
input,
button,
textarea,
select {
	font: inherit;
}
/* rows属性のないtextareasが小さくならないようにする */
textarea:not([rows]) {
	min-height: 5rem;
}

/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="reset"],
input[type="button"] {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="reset"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}
input[type="submit"]::focus,
input[type="reset"]::focus,
input[type="button"]::focus {
	outline-offset: -2px;
}
select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	outline: none;
	border-radius: 0;
	background: transparent;
}
button,
input[type="submit"],
input[type="reset"],
input[type="date"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding: 0;
	border: none;
	outline: none;
	background: transparent;
}
input[type="radio"] {
	display: none;
}
input[type="radio"]:checked + label {
	background: #ff0000;
}

/* common */
body {
	font-family: 'Noto Sans JP', sans-serif;
	-webkit-text-size-adjust: 100%;
}
.w100 {font-weight: 100;}
.w200 {font-weight: 200;}
.w300 {font-weight: 300;}
.w400 {font-weight: 400;}
.w500 {font-weight: 500;}
.w700 {font-weight: 700;}
.w900 {font-weight: 900;}
.hide{ display: none;}
.btn{ display: block;}
.sp_only{ display: block;}
.sp_only_strong{ display: block;}
.tb_only{ display: block;}
.pc_only{ display: none!important;}
.ma_c{margin: 0 auto!important;}


/* 404 */
p.error {
	text-align: center;
	margin: 124px auto;
	font-size: 2em;
}

h1,h2,h3,h4,h5,h6,p,span,dl,dt,dd,ul,li,a,th,td {
	font-size: 1.6rem;
}

img {
	width: 100%;
}
section {
	width: 95%;
	margin: 0 auto 5rem;
}


/* PC・TBでは電話リンク解除 ---------------------------- */
@media (min-width: 751px) {
	a[href*="tel:"] {
		pointer-events: none;
	}
}


/* common ------------------------------------------------------- */
.section_title {
	width: max-content;
	text-align: center;
	margin: 0 auto 3rem;
	letter-spacing: 0.3rem;
}
.section_title p {
	font-size: calc(2.6rem + 1.2 *(100vw - 32rem)/118);
	font-weight: bold;
}
.section_title span {
	font-size: 1.6rem;
}
.section_text {
	margin: 0 auto 2rem;
	text-align: center;
	line-height: 3rem;
}

/* 画像のフィルター */
.filter {
	position: relative;
}
.filter::after {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	background-color: rgba(0,0,0,0.5);
}
.filter_01::after {
	content: "";
	background-color: rgba(0,0,0,0.5);
}
.filter_02::after {
	content: "";
	background-color: rgba(0,0,0,0.7);
}

/* 一覧へのボタン */
.list_button {
	width: 18.5rem;
	height: 5.4rem;
	margin: 0 auto;
	border: 2px solid #333;
	border-radius: 1rem;
}
.list_button a {
	font-size: 1.5rem;
	display: block;
	width: 100%;
	height: 100%;
	line-height: 5.4rem;
	text-align: center;
}

/* view moreのボタン */
.view_more {
	width: fit-content;
	margin: 0 auto;
	font-size: 1rem;
	color: #fff;
	border: 1px solid #fff;
	border-radius: 2rem;
	text-align: center;
	padding: 0.5rem 1rem;
}

/* flex_contaierの基礎指定 */
.flex_container {
	max-width: 130rem;
	margin: 0 auto;
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
}
.box_title p {
	font-size: calc(2.1rem + 0.4 *(100vw - 32rem)/118);
	color: #fff;
}
.box_title span {
	color: #fff;
	font-size: calc(1.3rem + 0.6 *(100vw - 32rem)/118);
	font-weight: 500;
	color: #fff;
}
.box_text {
	color: #fff;
}
.flex_container dt,
.flex_container dd {
	position: relative;
	z-index: 1;
}

/* article_boxの基礎指定 */
.article_box {
	width: 30rem;
	margin: 0 1.5rem 5rem;
}
.article_box .article_title {
	margin: 0 0 1rem 0;
	font-size: 1.8rem;
	font-weight: bold;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	overflow: hidden;
	text-align: center;
}
.article_box dd:first-child {
	margin: 0 0 1rem 0;
}
.article_box dd:first-child img {
	object-fit: cover;
	height: 180px;
}
.article_box dd:nth-child(2) {
	margin: 0 0 1rem 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.article_box .article_text {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}
.article_tag,
.address_tag {
	width: max-content;
	font-size: 1.4rem;
	padding: 0.1rem 2rem;
	text-align: center;
	border-radius: 5rem;
	box-sizing: border-box;
}
.article_box .address_tag {
	border: 1px solid #333;
}
.article_tag {
	color: #fff;
	background-color: #555555;
}
.article_detailed p {
	margin: 0 0 2rem 0;
}
.article_detailed img {
	width: auto;
	max-width: 100%;
}
.article_detailed img:nth-of-type(1) {
	margin: 0 0 3rem 0;
}
.page_article {
	width: 95%;
	max-width: 130rem;
	margin: 0 auto 14rem;
	display: flex;
	justify-content: space-between;
}
.page_article .prev,
.page_article .next {
	width: 35%;
	max-width: 30rem;
}
.page_article .notice_box {
	display: flex;
	flex-flow: column nowrap;
}
.page_article .notice_box span {
	width: 100%;
}
.page_article .notice_box .notice_date {
	text-align: left;
}
/* サンキュー・404ページ */
.confirm {
	width: fit-content;
	margin: 7rem auto 5rem;
	text-align: center;
}


/* header ------------------------------------------------------- */
header {
	width: 100%;
	height: 5rem;
	padding: 0 1.5rem 0 1.5rem;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	box-sizing: border-box;
	background-color: transparent;
	transition: 1s;/*１秒かけてアニメーション*/
}
header.fixed {
	background-color: rgba(0, 0, 0, 0.5);
	transition: 1s;/*１秒かけてアニメーション*/
}
header h1 {
	height: inherit;
	display: flex;
	align-items: center;
	position: relative;
	z-index: 1;
}
header h1 a {
	color: #fff;
}
header h1 img {
	width: 14rem;
	height: inherit;
}
header h1 p {
	display: none;
}
.headback {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.headback img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    vertical-align: top;
}
/*ナビゲーション設定*/
.active{ display: block!important;}
.navToggle{
	width: 2rem;
	height: inherit;
	text-align: center;
	position: absolute;
	top: 50%;
	right: 1.5rem;
	transform: translateY(-50%);
	z-index: 1000;
	background-color: transparent;
}
.navToggle span {
	width: inherit;
	height: 0.2rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: block;
	background: #fff;
	transition: all 300ms 0s ease;
}
.navToggle span:first-child {
	top: 40%;
}
.navToggle span:last-child {
	top: 60%;
}
/* active時 */
.navToggle.active span:first-child {
	top: 50%;
	transform: rotate(-30deg);
}
.navToggle.active span:nth-child(2) {
	display: none;
}
.navToggle.active span:last-child{
	top: 50%;
	transform: rotate(30deg);
}

.main_nav { display: none;}
.main_nav {
	width: 100%;
	height: 100vh;
	color: #fff;
	position: absolute;
	top: 0;
	left: 0;
	text-align: center;
	background-color: #151515d1;
	z-index: 999;
}
.main_nav a {
	color: #fff;
}
.main_nav a:hover {
	color: #1AA2E0;
}
.main_nav nav,
.nav_icon_box,
.nav_contact_box,
.bottom_nav {
	position: relative;
	z-index: 1;
}
.main_nav nav {
	max-width: 25rem;
	margin: 7vh auto 4rem;
	display: flex;
	flex-flow: row nowrap;
	justify-content: space-between;
}
.main_nav ul {
	width: fit-content;
	height: fit-content;
}
.main_nav li {
	width: fit-content;
	margin: 0 0 3vh 0;
}
.main_nav li:nth-child(4n) {
	margin: 0;
}
.main_nav li a {
	color: #fff;
}
.nav_icon_box {
	width: 55%;
	max-width: 22rem;
	margin: 0 auto 3rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.nav_icon_box a {
	width: 3rem;
	text-align: center;
	display: block;
}
.nav_icon_box img {
	vertical-align:top;
}
.contact_tel {
	margin: 0 0 2rem 0;
}
.contact_tel p {
	font-size: 2rem;
	font-weight: bold;
}
.contact_tel a {
	font-size: 4.3rem;
	font-weight: bold;
}
.contact_mail {
	width: fit-content;
	margin: 0 auto 2rem;
}
.contact_mail > p {
	font-size: 2.4rem;
	margin: 0 0 1rem 0;
}
.contact_mail a {
	height: 7rem;
	line-height: 7rem;
	display: block;
	border: 2px solid #fff;
	border-radius: 0.8rem;
}
.contact_mail a p {
	width: max-content;
	margin: 0 auto;
	padding: 0 0 0 4rem;
	font-size: 2rem;
	position: relative;
}
.contact_mail a p::before {
	content: "";
	width: 3rem;
	height: 3rem;
	background: url(images/icon_mail_01.png) no-repeat center / contain;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
.nav_annotation {
	font-size: 1.4rem;
}
.bottom_nav {
	width: 100%;
	height: 5rem;
	background-color: #B50000;
	position: fixed;
	left: 0;
	bottom: -8rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#bottom_nav {
	transition: 1s;
}
#bottom_nav.fixed2 {
	display: flex;
	transition: 1s;
	bottom: 0;
}
.bottom_nav a {
	color: #fff;
}
.bottom_nav .bottom_tel {
	width: 21vw;
	max-width: 13rem;
	height: inherit;
	position: relative;
}
.bottom_nav .bottom_tel p {
	display: none;
}
.bottom_nav .bottom_tel a::before {
	content: "";
	width: 3rem;
	height: 3rem;
	background: url(images/icon_tel.png) no-repeat center / contain;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.bottom_nav .bottom_tel .btteltext {
	position: absolute;
	top: 1.2rem;
	left: 6.4rem;
	font-size: 1.6rem;
	width: max-content;
	font-weight: 500;
}
.bottom_nav .bottom_mail {
	width: auto;
	padding: 1.6vw 10vw;
	border: 2px solid #fff;
	box-sizing: border-box;
}
.bottom_nav .bottom_mail a {
	display: block;
}
.bottom_nav .bottom_mail a {
	position: relative;
}
.bottom_nav .bottom_mail a::before {
	content: "";
	width: 2rem;
	height: 2rem;
	background: url(images/icon_mail_02.png) no-repeat center / contain;
	position: absolute;
	top: 50%;
	left: -3rem;
	transform: translateY(-50%);
}
.bottom_nav .bottom_mail a::after {
	content: "";
	width: 2rem;
	height: 2rem;
	background: url(images/arrow_right.png) no-repeat center / contain;
	position: absolute;
	top: 50%;
	right: -3rem;
	transform: translateY(-50%);
}
.bottom_nav .bottom_mail span {
	display: none;
}
.bottom_nav .bottom_mail p {
	font-weight: bold;
}
.bottom_nav .bottom_line {
	width: 21vw;
	max-width: 13rem;
	height: inherit;
	background-color: #25B15D;
	position: relative;
}
.bottom_nav .bottom_line a {
	height: inherit;
	display: block;
}
.bottom_nav .bottom_line a::before {
	content: "";
	width: 3rem;
	height: 3rem;
	background: url(images/icon_line.png) no-repeat center / contain;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.bottom_nav .bottom_line p {
	display: none;
}


/* main_visual -------------------------------------------------- */
.main_visual {
	width: 100%;
	height: 100vh;
	margin: 0 auto 1rem;
	position: relative;
}
.main_visual_box {
	height: inherit;
	max-height: inherit;
	text-align: center;
	color: #fff;
}
.main_visual_box img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.main_visual_text {
	width: 95%;
	position: absolute;
	top: 15vh;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
}
.main_visual_text img {
	width: 19rem;
	margin: 0 0 4rem 0;
}
.main_visual_text > p {
	width: max-content;
	margin: 0 auto;
	font-size: calc(2.1rem + 1.3 *(100vw - 32rem)/118);
	font-weight: bold;
}
.main_visual_text p:nth-child(2) {
	margin: 0 auto 2rem;
}
.visual_text_box ul {
	max-width: 35rem;
	margin: 0 auto;
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;i
}
.visual_text_box li {
	max-width: 90%;
	width: 45%;
	margin: 0 auto 1rem;
	padding: 2vw 3vw 2vw 3vw;
	font-size: calc(1.4rem + 0.9 *(100vw - 32rem)/118);
	background-color: rgba(255,255,255,0.2);
	border: 1px solid #fff;
	border-radius: 0.5rem;
	box-sizing: border-box;
}
.information {
	width: 95%;
	max-width: 49rem;
	margin: 0 auto;
	color: #fff;
	position: absolute;
	left: 50%;
	bottom: 2vh;
	transform: translateX(-50%);
}
.information  a {
	color: #fff;
}
.information > p {
	font-size: 1.9rem;
	font-weight: bold;
	margin: 0 0 1rem 0;
}
.information_title {
	font-size: calc(1.5rem + 0.9 *(100vw - 32rem)/118);
	font-weight: bold;
	margin: 0 0 1rem 0;
}
.information dt,
.tag_box {
	margin: 0 0 1rem 0;
}
.tag {
	margin: 0 1rem 0 0;
	padding: 0 1.5rem;
	border: 1px solid #fff;
	border-radius: 2rem;
}
.tag,
.date {
	display: inline-block;
	font-size: 1.4rem;
}
.information_text {
	font-size: 1.5rem;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}
.nav_icon_pc {
	display: none;
}

/* greeting ------------------------------------------------------- */
.greeting {
	max-width: 130rem;
	display: flex;
	flex-flow: column nowrap;
	justify-content: center;
	align-items: flex-start;
	flex-direction: column-reverse;
}
.greeting_box {
	max-width: 65rem;
	margin: 0 auto;
}
.greeting_box p {
	margin: 0 auto 1rem;
}
.greeting_title {
	font-size: calc(1.8rem + 0.3 *(100vw - 32rem)/118);
	font-weight: bold;
	margin: 5rem auto;
}
.greeting_text {
	margin: 0 auto 1rem;
}
.greeting_box img {
	object-fit: cover;
}

/* service ---------------------------------------------------- */
.service {
	width: 100%;
	max-width: 130rem;
	position: relative;
}
.service_container a {
	width: calc(100% / 2);
}
.service_box {
	padding: 2rem;
	box-sizing: border-box;
}
.service_title {
	margin: 0 0 2rem 0;
	text-align: center;
}
.service_title p {
	font-size: 1.7rem;
	font-weight: 800;
}
.service_title span {
	font-size: calc(1.3rem + 0.6 *(100vw - 32rem)/118);
	font-weight: 500;
}
.service_text {
	margin: 0 auto 2rem;
}
.service_text p {
	font-size: 1.4rem;
	line-height: 2rem;
	text-align: center;
	max-width: 195px;
	margin: 0 auto;
}
dd.service_back {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}
dd.service_back img {
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* reason ------------------------------------------------------ */
.reason {
	margin: 0 auto;
}
.reason_box {
	width: 50%;
	padding: 4rem 0 4rem 0;
	box-sizing: border-box;
}
.reason_title {
	margin: 0 0 3rem 0;
}
.reason_title p {
	font-size: 1.7rem;
	font-weight: 800;
}
.reason_text {
	width: 85%;
	max-width: 26rem;
	margin: 0 auto;
}
.reason_text p {
	font-size: 1.4rem;
	line-height: 2rem;
	text-align: left;
	max-width: 195px;
	margin: 0 auto;
}
.reason_title {
	text-align: center;
}
dd.reason_back {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -1;
}
dd.reason_back img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* work -------------------------------------------------------- */
.work {
	width: 100%;
	padding: 4rem 0 5rem 0;
	background-color: #F7F7F7;
}
.work .section_title {
	margin: 0 auto 8rem;
}
.work_tag {
	display: grid;
	place-items: center;
	grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	gap: 1rem;
	margin: 0 0 3rem 0;
}
.work_tag .article_tag {
	padding: 0.1rem 1.5rem;
}
.work_tag .article_tag a {
	font-size: 1.4rem;
	color: #fff;
}
.work_container {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
}

/* voc ---------------------------------------------------------- */
.voc {
	width: 100%;
	max-width: 130rem;
}
.voc .section_title {
	margin: 0 auto 8rem;
}
.work_container {
    display: flex;
    flex-wrap: unset;
    flex-direction: unset;
    overflow: auto;
}

/* flow --------------------------------------------------------- */
.flow {
	width: 100%;
	margin: 0 auto;
	padding: 6rem 0 16rem 0;
	color: #fff;
}
.flow .section_title {
	margin: 0 auto 5rem;
}
.flow .section_title,
.flow_container {
	position: relative;
	z-index: 1;
}
.flow_container {
	width: 90%;
	max-width: 90rem;
	margin: 0 auto;
	display: flex;
	flex-flow: column nowrap;
	justify-content: space-evenly;
}
.flow_container dl {
	width: 80%;
	max-width: 30rem;
	margin: 0 auto 2rem;
	padding: 2rem;
	background-color: rgba(255, 255, 255, 0.3);
	border: 1px solid #fff;
	box-sizing: border-box;
}
.flow_container dt {
	margin: 0 0 1rem 0;
}
.flow_container dd {
	line-height: 2.5rem;
}
.flowback {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.flowback img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    vertical-align: top;
}
/* footer ----------------------------------------------------- */
footer {
	position: relative;
}
.round_display {
	width: 17rem;
	height: 17rem;
	color: #03849B;
	background-color: #fff;
	text-align: center;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%,-50%);
	border-radius: 20rem;
	display: grid;
	place-content: center;
	place-items: center;
}
.round_display p {
	font-weight: bold;
}
.round_display p:nth-child(1) {
	font-size: 1.2rem;
}
.round_display p:nth-child(2) {
	font-size: 2.4rem;
}
.round_display p:nth-child(3) {
	font-size: 3rem;
}
.support_container {
	text-align: center;
	color: #fff;
	display: flex;
	flex-flow: column-reverse nowrap ;
}
.support_box:nth-child(1) {
	padding: 3rem 0 3rem 0;
	background-color: #03849B;
	position: relative;
}
.support_box p,
.support_list {
	position: relative;
}
.support_box:nth-child(1)::before {
	content: "";
	width: 90%;
	max-width: 48rem;
	height: 90%;
	max-height: 48rem:;
	background: url(images/area_back.png) no-repeat center / contain;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.support_box:nth-child(2) {
	padding: 12rem 0 3rem 0;
	background-color: #0F93AA;
}
.support_box:nth-child(2) a {
	color: #fff;
}
.support_box p {
	font-weight: bold;
	margin: 0 0 2rem 0;
}
.support_list li {
	font-weight: bold;
	margin: 0 0 1rem 0;
}
.support_list {
	width: 80%;
	max-width: 28rem;
	margin: 0 auto;
	display: flex;
	flex-flow: row nowrap;
	justify-content: space-around;
	align-items: baseline;
	text-align: left;
}
.map {
	width: 100%;
	height: 50vh;
	max-height: 50rem;
}
.footer_link {
	padding: 7rem 0 7rem 0;
	color: #fff;
}
.footer_link a {
	color: #fff;
}
.footer_box,
.footer_nav,
small {
	position: relative;
	z-index: 1;
}
.footer_box {
	text-align: center;
	margin: 0 0 6rem 0;
	display: flex;
	flex-flow: column-reverse nowrap;
	justify-content: center;
	align-items: center;
}
.footer_box address img {
	width: 20rem;
}
.footer_box address p {
	line-height: 3rem;
}
.footer_box address p:nth-child(2) {
	margin: 0 0 2rem 0;
}
.footer_information {
	margin: 0 0 9rem 0;
}
.footer_information p {
	margin: 0 0 2rem 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-weight: 600;
}
.footer_information p span {
	font-weight: bold;
	color: #333;
	background-color: #fff;
	padding: 0.1rem 2rem;
	border-radius: 3rem;
	font-size: 1.2rem;
}
.footer_information ul {
	margin: 0 0 5rem;
}
.footer_information li {
	margin: 0 0 1rem 0;
	text-align: left;
}
.footer_nav {
	width: 100%;
	margin: 0 auto 6rem;
}
.footer_nav ul {
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;
}
.footer_nav li {
	margin: 0 0 1rem 0;
}
.footer_nav li:nth-of-type(2),
.footer_nav li:nth-of-type(3),
.footer_nav li:nth-of-type(5),
.footer_nav li:nth-of-type(6) {
	position: relative;
}
.footer_nav li:nth-of-type(2)::before,
.footer_nav li:nth-of-type(3)::before,
.footer_nav li:nth-of-type(4)::before,
.footer_nav li:nth-of-type(5)::before,
.footer_nav li:nth-of-type(6)::before,
.footer_nav li:nth-of-type(7)::before {
	content: "/";
	padding: 0.5rem;
}
.footback {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.footback img {
	object-fit: cover;
	width: 100%;
	height: 100%;
	vertical-align: top;
}
small {
	font-size: calc(1.2rem + 0.2 *(100vw - 32rem)/118);
	text-align: center;
	display: block;
}
address {
	font-style: normal;
}
address p.permission {
	font-size: 1.2rem;
	line-height: 2rem;
}
/* 下層ページここから */
/* common ------------------------------------------------------- */
/* lower_visual */
.lower_visual {
	width: 100%;
	height: 40vw;
	max-height: 28rem;
	margin: 0 0 1rem 0;
	position: relative;
}
.lower_visual .section_title {
	color: #fff;
	position: absolute;
	top: 55%;
	left: 50%;
	transform:translate(-50%,-50%);
	z-index: 1;
}
/* パンくずリスト */
.breadcrumb {
	max-width: 130rem;
	margin: 0 auto 4rem;
	font-size: 1.4rem;
}
.breadcrumb span {
	font-size: 1.2rem;
}
/* 下層のアーカイブ用基礎指定 */
.archive_list {
	margin: 0 auto 14rem;
}
.archive_list .article_container {
margin: 0 auto;
}
.archive_list .article_box {
	margin: 0 auto 5rem;
}
.page_list {
	width: 80%;
	max-width: 39rem;
	margin: 0 auto;
}
.page_list ul{
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.page_list li {
	width: auto;
	min-width: 3rem;
	height: 3rem;
	line-height: 3rem;
	text-align: center;
	background-color: #333;
	border-radius: 0.5rem;
	color: #fff;
	padding: 0 1rem;
	box-sizing: border-box;
}
.page_list a {
	color: #fff;
	display: block;
}
.page_list a:hover {
	background-color: #777;
}
/* 下層のfooter */
/* 下層articleの基礎指定 */
.article_wrap {
	max-width: 65rem;
	margin: 0 auto 5rem;
}
.base_article .article_box {
	width: 100%;
	margin: 0 0 3rem 0;
}
.base_article .article_box dd:nth-child(2) {
	justify-content: flex-start;
}
.base_article .article_box .address_tag {
	margin: 0 2rem 0 0;
}
.base_article .article_box .article_title {
	width: 80%;
	margin: 3rem auto;
	line-height: 3rem;
	-webkit-line-clamp: 2;
}
.base_article .article_text {
	display: initial;
}
.page_article .article_box {
	margin: 0;
}
.page_article .article_box dd:nth-child(2) {
	flex-flow: column nowrap;
	align-items: flex-start;
}
.page_article .article_box .address_tag {
	margin: 0 0 1rem 0;
}
.page_article .article_box .article_title {
	font-size: 1.6rem;
	margin: 0 0 1rem 0;
	line-height: initial;
	text-align: left;
	width: 100%;
}
.page_article .article_text {
	display: -webkit-box;
	font-size: 1.3rem;
}
/* 下層のフッタ調整 */
.footer {
	margin: 13rem 0 0 0;
}

/* tableの基本指定 */
.base_table {
	width: 85%;
	max-width: 90rem;
	margin: 0 auto;
}
.base_table th,
.base_table td {
	display: block;
	box-sizing: border-box;
	vertical-align: top;
	display: block;
}
.base_table th {
	width: 100%;
	margin: 0 1rem 0 0;
	padding: 1rem;
	text-align: left;
	color: #fff;
	background-color: #0F93AA;
}
.base_table td {
	width: auto;
	margin: 0 0 1rem 0;
	padding: 1rem;
	background-color: #F5F5F5;
}

/* work_list ---------------------------------------------------- */
.work_list .work_tag {
	width: 95%;
	max-width: 55rem;
	margin: 0 auto 5rem;
	display: grid;
}

/* information_list --------------------------------------------- */
.information_list {
	margin: 0 auto 14rem;
}
.information_list_wrap {
	margin: 0 0 5rem 0;
}
.information_list_wrap dl {
	max-width: 90rem;
	margin: 0 auto 3rem;
	padding: 2rem 1rem 2rem 1rem;
}
.information_list_wrap dl:nth-child(2n){
	background:#F4F4F4;
}
/* information_article ------------------------------------------ */
.information_article .tag {
	border: 1px solid #333;
}
.information_article_img {
	margin: 0 0 1rem 0;
}
.information_article_img img {
	object-fit: cover;
	height: 180px;
}

/* about -------------------------------------------------------- */
.about .greeting {
	margin: 0 auto 5rem;
}
.about .greeting img {
	width: 60%;
	max-width: 33rem;
	margin: 0 auto;
}

/* inquiry ---------------------------------------------------------- */
.mail_form_back {
	width: 80%;
	max-width: 60rem;
	margin: 0 auto 6rem;
	padding: 5rem 2rem 5rem 2rem;
	background-color: #0F93AA;
	box-sizing: border-box;
	border-radius: 1rem;
}
.mail_form form {
	text-align: center;
}
.mail_form table {
	width: 90%;
	max-width: 32rem;
	margin: 0 auto 2rem;
}
.mailform tr {
	width: 32rem;
}
.mail_form th,
.mail_form td {
	font-size: 1.6rem;
	display: block;
	margin: 0 0 1rem 0;
}
.mail_form td {
	background-color: #fff;
	width: 100%;
	height: auto;
	min-height: 4rem;
	box-sizing: border-box;
	border: none;
	border-radius: 0.4rem;
	text-align: left;
	align-items: center;
	display: flex;
}
.mail_form tr:last-child td {
	margin: 0;
}
.mail_form th {
	text-align: left;
	color: #fff;
}
.mail_form input {
	width: 100%;
	height: 3rem;
	box-sizing: border-box;
	border: none;
	border-radius: 0.4rem;
}
.mail_form textarea {
	width: 100%;
	height: 100%!important;
	border: none;
	background-color: transparent;
	box-sizing: border-box;
	line-height: 2.5rem;
}
.mail_form .submit {
	width: 17rem;
	margin: 0 auto;
	padding: 0.5rem 0 0.5rem 0;
	font-size: 1.7rem;
	font-weight: 500;
	background-color: #fff;
	border-radius: 0.4rem;
}
.mail_form .submit input {
	color: #0F93AA;
	font-weight: 600;
}

/* service_content ---------------------------------------------- */
.service_content {
	max-width: 130rem;
}
.service_about {
	margin: 0 0 5rem 0;
}
.service_about_box {
	display: flex;
	flex-flow: column nowrap;
	justify-content: center;
	align-items: center;
}
.service_about_box:first-child {
	margin: 0 auto 5rem;
}
.service_about_box img {
	width: 90vw;
	max-width: 60rem;
}
.service_about_text {
	max-width: 65rem;
	margin: 0 auto 3rem;
}

/* recruit ------------------------------------------------------ */
.recruit .greeting {
	margin: 0 auto 3rem;
}
.recruit_content {
	margin: 0 auto 3rem;
}


@media screen and (min-width: 700px) {
/* common ------------------------------------------------------- */
.sp_only{ display: none;}
.sp_only_strong{ display: none;}
section {
	margin: 0 auto 7rem;
}
.section_title {
	margin: 0 auto 5rem;
}

/* header ------------------------------------------------------- */
header {
	height: 7rem;
	padding: 0 2rem 0 2rem;
}
header h1 img {
	width: 16rem;
}
header h1 a {
	display: flex;
	align-items: center;
}
header h1 p {
	font-size: 1.3rem;
	display: block;
	margin: 0 0 0 2rem;
}
.navToggle {
	right: 2rem;
}
.bottom_nav .bottom_tel {
	width: fit-content;
	max-width: fit-content;
}
.bottom_nav .bottom_tel p {
	padding: 0 0 0 6rem;
	display: block;
	width: max-content;
}
.bottom_nav .bottom_tel p:first-child {
	font-size: 1.2rem;
}
.bottom_nav .bottom_tel p:last-child {
	font-size: 2.2rem;
	font-weight: bold;
}
.bottom_nav .bottom_tel a::before {
	left: 2rem;
	transform: translateY(-50%);
}
.bottom_nav .bottom_mail {
	padding: 0.7rem 7rem;
}
.bottom_nav .bottom_line {
	max-width: 100%;
}
/* main_visual -------------------------------------------------- */
.main_visual {
	margin: 0 auto 7rem;
}
.main_visual_text {
	top: 42%;
	transform: translate(-50%,-50%);
}
.visual_text_box ul {
	max-width: 45rem;
	justify-content: space-around;
}
.visual_text_box li {
	padding: 1.5rem 1rem;
	margin: 0 0 2rem 0;
}
.information {
	left: 2rem;
	bottom: 2rem;
	transform: initial;
}

/* greeting ------------------------------------------------------- */
.greeting_box {
	margin: 0 auto 5rem;
}

/* service ----------------------------------------------------- */

/* reason ------------------------------------------------------ */
.reason_box {
	width: 50%;
	padding: 6rem 0 6rem 0;
}
.reason_text p {
	font-size: 1.6rem;
	max-width: 240px;
	line-height: 2.6rem;
}
/* work -------------------------------------------------------- */
.work {
	padding: 5rem 0 6rem 0;
}

/* flow -------------------------------------------------------- */
.flow_container {
	flex-flow: row wrap;
}
.flow_container dl {
	margin: 0 0 3rem 0;
}


/* 下層ページここから --------------------------------------------- */
/* common ------------------------------------------------------ */
.archive_list .article_container {
	width: 90%;
	margin: 0 auto 7rem;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-evenly;
	align-items: flex-start;
}
/* 下層articleの基礎指定 */
.page_article .article_box dd:nth-child(2) {
	flex-flow: row nowrap;
	justify-content: space-between;
}
/* tableの基本指定 */
.base_table th,
.base_table td {
	display: table-cell;
	border: 0.8rem solid #fff;
}
.base_table th {
	width: 18rem;
}

/* work_list --------------------------------------------------- */

/* information_list --------------------------------------------- */
.information_list_wrap dl {
	width: 80%;
}
/* about -------------------------------------------------------- */

/* inquiry ------------------------------------------------------ */
.mail_form_back {
	padding: 6rem 0rem 6rem 0;
}
.mail_form table {
	margin: 0 auto 3rem;
}
.mail_form input {
	height: 4rem;
}
.mail_form td {
	margin: 0 0 3.5rem 0;
}
.mail_form textarea {
	height: 18rem;
}

/* recruit ------------------------------------------------------ */
.recruit .greeting {
	margin: 0 auto 5rem;
}
.recruit_content {
	margin: 0 auto 5rem;
}

}


@media screen and (min-width: 1024px) {
/* common ------------------------------------------------------- */
.tb_only{ display: none;}
.pc_only{ display: block;}
section {
	margin: 0 auto 8rem;
}
.section_title {
	margin: 0 auto 7rem;
}
/* article_containerの基礎指定 */
.article_container {
	max-width: 130rem;
	margin: 0 auto;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: flex-start;
}
.article_container a {
	width: calc(90% / 4);
	margin: 0 1rem 0 1rem;
}
.article_box {
	width: 100%;
	margin: 0 0 3rem 0;
}

/* header ------------------------------------------------------- */
header {
	display: flex;
	justify-content: space-between;
}
.navToggle {
	display: none;
}
.main_nav {
	width: initial;
	height: inherit;
	display: block;
	position: initial;
	background: initial;
	display: flex;
	align-items: center;
}
.main_nav nav {
	max-width: fit-content;
	margin: 0;
}
.main_nav ul {
	display: flex;
	align-items: center;
}
.main_nav ul:nth-child(1) {
	/*margin: 0 2rem 0 0;*/
}
/*.main_nav ul:nth-child(1) li:nth-child(1),
.main_nav ul:nth-child(1) li:nth-child(2),
.main_nav ul:nth-child(2) li:nth-child(3),*/
.nav_icon_box,
.nav_contact_box,
.main_nav.filter_01::after {
	display: none;
}
.main_nav li {
	margin: 0 2rem 0 0;
}
.main_nav li a {
	font-size: 1.5rem;
}
.main_nav ul:nth-child(2) li:nth-child(3) a,
.main_nav ul:nth-child(2) li:nth-child(4) a {
	font-size: 1.7rem;
	border: 1px solid #fff;
	padding: 0.1vw 2vw;
	border-radius: 1rem;
	box-sizing: border-box;
}
.bottom_nav {
	width: max-content;
	height: 8rem;
	left: 50%;
	transform: translateX(-50%);
}
.bottom_nav .bottom_tel p:first-child {
	font-size: 1.4rem;
	margin: 0.8rem 0 0 0;
	padding: 0 0 0 2rem;
}
.bottom_nav .bottom_tel p:nth-child(2) {
	font-size: 3.9rem;
	margin: -0.8rem 0 0 0;
}
.bottom_nav .bottom_tel a::before {
	width: 3.5rem;
	height: 3.5rem;
	top: 3.5rem;
	transform: initial;
}
.bottom_nav .bottom_mail {
	width: 24rem;
	height: 6.5rem;
	margin: 2rem;
}
.bottom_nav .bottom_mail span {
	width: max-content;
	font-size: 1.5rem;
	display: block;
	position: absolute;
	top: 0;
	left: -5rem;
}
.bottom_nav .bottom_mail p {
	width: max-content;
	font-size: 2rem;
	position: absolute;
	top: 2rem;
	left: -2rem;
}
.bottom_nav .bottom_mail a::before {
	top: 3.5rem;
	left: -5rem;
}
.bottom_nav .bottom_mail a::after {
	top: 1.4rem;
	right: -6rem;
	transform: initial;
}
.bottom_nav .bottom_line {
	width: 20rem;
	height: 6.5rem;
	margin: 0 2rem 0 0;
	border-radius: 0.8rem;
}
.bottom_nav .bottom_line a::before {
	width: 5rem;
	height: 5rem;
	left: 1.5rem;
	transform: translateY(-50%);
}
.bottom_nav .bottom_line p {
	font-size: 1.8rem;
	font-weight: bold;
	display: block;
	position: absolute;
	top: 50%;
	right: 1.5rem;
	transform: translateY(-50%);
}

/* main_visual -------------------------------------------------- */
.main_visual {
	height: 100vh;
	max-height: 90rem;
}
.main_visual_text {
	width: fit-content;
}
.main_visual_text img {
	width: 22rem;
}
.main_visual_text > p {
	font-size: 3rem;
}
.visual_text_box li {
	font-size: 1.8rem;
}
.nav_icon_pc,
.nav_icon_pc .nav_icon_box {
	display: block;
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-end;
	align-items: flex-end;
	margin: 0;
}
.nav_icon_pc .nav_icon_box {
	width: 22rem;
	margin: 0 0 1rem 0;
	justify-content: space-between;
}
.nav_icon_pc {
	width: 47%;
	max-width:49rem;
	position: absolute;
	right: 2rem;
	bottom: 1rem;
	color: #fff;
}
.nav_icon_pc p {
	font-size: 3.7rem;
	text-align: right;
	margin: 0 0 0 2rem;
}
.nav_icon_pc p span {
	font-size: 1.2rem;
	display: block;
}

/* greeting -------------------------------------------------------- */
.greeting {
	flex-flow: row-reverse nowrap;
}
.greeting_title {
	font-size: 2rem;
	margin: 0 0 2rem 0;
}
.greeting_box {
	margin: 0 0 0 5rem;
}
.greeting_box p {
	line-height: 3rem;
}
.greeting img {
	width: 50%;
	max-width: 60rem;
}

/* service ------------------------------------------------------ */
.service_container a {
	width: calc(100% / 3);
}
.service_text p {
	font-size: 1.6rem;
	max-width: 240px;
	line-height: 2.6rem;
}
/* reason ------------------------------------------------------- */
.reason {
	width: 100%;
}
.reason_container {
	max-width: 150rem;
}
.reason_box {
	width: 25%;
	padding: 10rem 0 10rem 0;
}
.reason_title {
	margin: 0 0 5rem 0;
}
.reason_title p {
	margin: 0 0 2rem 0;
	font-size: 2.4rem;
	font-weight: 800;
}

/* work -------------------------------------------------------- */
.work_tag {
	width: fit-content;
	margin: 0 auto 4rem;
	display: grid;
	place-items: center;
	grid-template-columns: repeat(5, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap: 1.5rem 2rem;
}
.work_tag li {
	margin: 0;
	padding: 0.3rem 2.6rem;
}

/* voc --------------------------------------------------------- */
.voc_container {
	margin: 0 0 6rem 0;
}

/* flow -------------------------------------------------------- */
.flow {
	padding: 8rem 0 20rem 0;
}
.flow_container dl {
	margin: 0 auto;
	background-color: initial;
	border: initial;
	border-right: 2px solid #7B7B7B;
}
.flow_container dl:nth-of-type(3n) {
	border-right: initial;
}
.flow_container dl:nth-of-type(-n+3) {
	border-bottom: 2px solid #7B7B7B;
	padding: 3rem 0 0 0;
}
.flow_container dl:nth-of-type(1) {
	padding: 0 3rem 3rem 0;
}
.flow_container dl:nth-of-type(2) {
	padding: 0 3rem 3rem 3rem;
}
.flow_container dl:nth-of-type(3) {
	padding: 0 0 3rem 3rem;
}
.flow_container dl:nth-of-type(4) {
	padding: 3rem 3rem 0 0;
}
.flow_container dl:nth-of-type(5) {
	padding: 3rem 3rem 0 3rem;
}
.flow_container dl:nth-of-type(6) {
	padding: 3rem 0 0 3rem;
}
.flow_container dt {
	margin: 0 0 4rem 0;
	font-weight: 600;
}
.flow_container dd {
	line-height: 3rem;
}

/* footer ------------------------------------------------------- */
.round_display {
	width: 27rem;
	height: 27rem;
	z-index: 1;
}
.round_display p:nth-child(1) {
	font-size: 2.1rem;
}
.round_display p:nth-child(2) {
	font-size: 3.9rem;
}.round_display p:nth-child(3) {
	font-size: 4.8rem;
}
.support_container {
	flex-flow: row nowrap;
	justify-content: center;
	align-items: flex-start;
	background: linear-gradient(90deg, #03849B 0%, #03849B 50%, #0F93AA 50%, #0F93AA 100%);
}
.support_box {
	width: 50%;
	max-width: 65rem;
}
.support_box:nth-child(1),
.support_box:nth-child(2) {
	background-color: initial;
	padding: 17rem 0 8rem 0;
}
.support_container .contact_tel {
	margin: 0 0 3rem 0;
}
.support_container .contact_tel p {
	line-height: 3.3rem;
}
.support_container .contact_mail {
	margin: 0 auto 3rem;
}
.footer_link {
	padding: 8rem 0 11rem 0;
}
.footer_box {
	max-width: 130rem;
	margin: 0 auto;
	flex-flow: row wrap;
	justify-content: center;
	align-items: flex-start;
}
.footer_box address {
	width: fit-content;
	text-align: left;
	margin: 0 auto 8rem;
}
.footer_information {
	width: 86rem;
	margin: 0 auto 8rem;
	display: flex;
    justify-content: space-around;
	align-items: flex-start;
	flex-flow: row nowrap;
}
.footer_information ul {
	margin: 0;
}
.footer_nav {
	width: 100%;
	margin: 0 auto 3rem;
}

/* 下層ページここから --------------------------------------------- */
/* common ------------------------------------------------------ */
.breadcrumb {
	margin: 0 auto 7rem;
}
/* 下層のアーカイブ用基礎指定 */
.archive_list {
	margin: 0 auto 25rem;
}
.archive_list .article_container {
	width: 100%;
	justify-content: space-between;
}
/* 下層の記事用基礎指定 */
.article_wrap {
	margin: 0 auto 10rem;
}
.page_article {
	margin: 0 auto 21rem;
}
.article_detailed p {
	margin: 0 0 5rem 0;
}
.article_detailed img:nth-of-type(1) {
	margin: 0 0 5rem 0;
}
/* 下層のフッタ調整 */
.footer {
	margin: 21rem 0 0 0;
}

/* about ------------------------------------------------------- */
.about .greeting img {
	margin: 0;
}

/* inquiry ----------------------------------------------------- */
.mail_form {
	margin: 10rem 0 0 0;
}

/* service_content ---------------------------------------------- */
.service_about {
	margin: 0 0 8rem 0;
}
.service_about_box:nth-child(1) {
	flex-flow: row-reverse nowrap;
	justify-content: space-between;
}
.service_about_box:nth-child(2) {
	flex-flow: row nowrap;
	justify-content: space-between;
}
.service_about_text,
.service_about_text p {
	margin: 0;
}
.service_about_text,
.service_about_box img {
	width: 48%;
}
.service_about_box:first-child {
	margin: 0 auto 13rem;
}

/* recruit ------------------------------------------------------ */
.recruit .greeting {
	margin: 0 auto 8rem;
}
.recruit_content {
	margin: 0 auto 8rem;
}

}


@media screen and (min-width: 1440px) {

/* common ------------------------------------------------------- */
.section_title p {
	font-size: 3.8rem;
}
/* header ------------------------------------------------------- */
header h1 p {
	font-size: 1.5rem;
}
.main_nav ul:nth-child(2) li:nth-child(2) a,
.main_nav ul:nth-child(2) li:nth-child(4) a {
	padding: 0.5rem 5rem 0.5rem 5rem;
}
.information_title {
	font-size: 2.4rem;
}

}





