
html {
	font-size:62.5%;
}


body {
	font-size:1.6em;
	font-family: 'Noto Sans JP', sans-serif;
	color:#000;
	font-weight: 400;
}

* {
	box-sizing: border-box;
}

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 {
	font-size:1.6rem;
}


 /* --------------------------

基本サイズ10px
3rem = 30px
1.6rem = 16px

--------------------*/

.mincho {
	font-family: 'Noto Serif JP', serif;
}

.en,
.h_title {
	font-family: 'Cinzel', serif;
}

.yugothic,
.btn_blue span {
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
	font-weight:bold;
}

.vwriting {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}

#wrap,
section,
article,
main {
	width:100%;
	position:relative;
	overflow:hidden;
}

#wrap {
	opacity:0;
	/* transition:all 2s; */
}

.display_on {
	opacity:1!important;
}



main {
	width:calc(100% - 230px);
	margin:0 0 0 auto;
	display:block;
	padding-bottom:180px;
}


.inner {
	width:100%;
	max-width:920px;
	margin:0 auto;
	padding:0 70px;
}


img {
	max-width:100%;
	vertical-align:bottom;
}

.obf_cover {
	width:100%;
}

.obf_cover img {
	width:100%;
	height:100%;
	object-fit: cover;
	font-family: 'object-fit: cover;';
}

a {
	color:#333;
	transition:all .4s;
	cursor: pointer;
}

a:hover {
	opacity:0.8;
}

p {
	font-size:1.4rem;
	line-height:2.35em;
	letter-spacing: 0.1rem;
}

h1,h2,h3,h4,h5,h6,dt,dd {
	line-height:1.2em;
}

small {
	line-height:1.2em;
}


/* --- 複数行対応 3点リーダー css common.js内 --- */

/* --- 2行のときは height: calc(1.63em * 2 ); ---*/
  .js-text-overflow{
	overflow: hidden;
	height: calc(1.83em * 1);
	width: 100%;
	/* white-space: nowrap;
	text-overflow: ellipsis; */
  }

/* --- btn --- */

.btn_blue {
	width:240px;
	height:46px;
	line-height:46px;
	border-radius: 28px;
	text-align:center;
	display: block;
	margin:0 auto;
	position:relative;
}

.btn_blue span {
	font-size:1.8rem;
}

.btn_blue:hover {
	opacity: 1;
}
.btn_blue::before {
	content: "";
    background-color: rgba(255,255,255,0.5);
    height: 100%;
    width: 4.5em;
    display: block;
    position: absolute;
    top: 0;
    left: -5.5em;
    transform: skewX(-45deg) translateX(0);
    transition: none;
	overflow: hidden;
}

.btn_blue:hover::before {
	transform: skewX(-45deg) translateX(21.5em);
     transition: all 0.3s ease-in-out;
}


.more_btn {
	font-size:2rem;
	display: block;
	width:64px;
	letter-spacing: 0.2rem;
	text-align:right;
	margin:0 0 0 auto;
	position:relative;
	padding-left:0.2em;
}

.more_btn::before {
	content:"";
	display: block;
	width:82px;
	height:5px;
	background:url(../images/more_arrow.svg) no-repeat center / contain;
	position:absolute;
	bottom:2px;
	right:120%;
	transition:all .2s;
}

.more_btn:hover::before {
	right:100%;
}



/* --- flex --- */

.d_flex {
	display:-webkit-box;
  	display:-ms-flexbox;
	display:flex;
}

.fle_wra {
	-webkit-flex-wrap:wrap;
	-ms-flex-wrap:wrap;
	flex-wrap:wrap;
}

.nowrap {
	-webkit-flex-wrap:nowrap;
	-ms-flex-wrap:nowrap;
	flex-wrap:nowrap;
}

.jus_ce {
	-webkit-justify-content:center;
	-ms-flex-pack:center;
	justify-content:center;
}

.jus_sb {
	-webkit-justify-content:space-between;
	-ms-flex-pack:justify;
	justify-content:space-between;
}
.jus_ar {
	-webkit-justify-content:space-around;
	-ms-flex-pack:distribute;
	justify-content:space-around;
}
.jus_end {
	-webkit-justify-content:flex-end;
	-ms-flex-pack:end;
	justify-content:flex-end;
}

.ali_ce {
	-webkit-align-items:center;
	-ms-flex-align:center;
	align-items:center;
}
.ali_st {
	-webkit-box-align: start;
	-ms-flex-align:start;
	align-items:flex-start;
}

.ali_end {
	-webkit-align-items:flex-end;
	-ms-flex-align:end;
	align-items: flex-end;
}

/* --- flex space-between対策 3block --- */

.sb_cp {
	position:relative;
}

.sb_cp::after {
	content:"";
	display: block;
	width:30%;
}


.pc_none {
	display:none;
}

.tex_ce {
	text-align:center;
}

.tex_ri {
	text-align:right;
}

.fw_bold {
	font-weight:700;
}
.fw_normal {
	font-weight:400;
}
.fw_medium {
	font-weight:500;
}
.fw_semibold {
	font-weight:600;
}

/* --- color --- */

.white {
	color:#fff;
}

.gray,
.h_title span {
	color:#717171;
}

.blue,
.h_title {
	color:#008ba5;
}

.bg_blue {
	background:#e6f2f5;
}


.bg_white {
	background:#fff;
}

.bg_gradation,
.btn_blue {
	background: #528ba5; /* Old browsers */
	background: -moz-linear-gradient(-90deg,  #528ba5 0%, #00adba 100%); /* FF3.6-15 */
	background: -webkit-linear-gradient(-90deg,  #528ba5 0%,#00adba 100%); /* Chrome10-25,Safari5.1-6 */
	background: linear-gradient(to bottom,  #528ba5 0%,#00adba 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#528ba5', endColorstr='#00adba',GradientType=0 ); /* IE6-9 */
}


.bg_warch {
	position:relative;
}
.bg_warch::after {
	content:"";
	display: block;
	width:100%;
	min-height: 200px;
  border-top-right-radius: 1000px 100px;
  border-top-left-radius: 1000px 100px;
  margin-left: -100px;
  margin-right: -100px;
  padding-left: 100px;
  padding-right: 100px;
  position:absolute;
  left:0;
  top:86%;
  background:#fff;
}
/*
.bg_warch::after {
	content:"";
	display: block;
	width:100%;
	height:45px;
	background:url(../images/archi.svg) no-repeat center bottom / cover;
	position:absolute;
	bottom:-1px;
	left:0;
	z-index:10;
}
*/

.bg_barch {
	width:100%;
	height:330px;
	padding-bottom:1em;
	background:url(../images/bg_barch.svg) no-repeat center bottom / cover;
}

/* --- fontawesome --- */

/* --- h_title --- */

.h_title {
	font-size:6rem;
	line-height:1.25em;
	position:relative;
	font-weight:400;
	text-align:center;
	letter-spacing: 0.2rem;
}

.h_title span {
	font-size:1.8rem;
	display: block;
	line-height:1em;
	text-align:center;
	letter-spacing: 0.2rem;
}

.h_title.h_title_border span {
	padding-top:1em;
	position:relative;
}

.h_title.h_title_border span::before {
	content:"";
	width:30px;
	height:2px;
	background:#008ba5;
	position:absolute;
	top:0;
	left:0;
	right:0;
	margin:0 auto;
}

/* --- kome --- */

.kome {
	position:relative;
	padding-left:1.2em;
}

.kome::before {
	content:"※";
	display: block;
	width:1em;
	height:1em;
	font-size:1em;
	position:absolute;
	left:0;
	top:0;
}




/* --- blog cate time --- */



/* ---------  header ------------ */

header {
	position:fixed;
	left:0;
	top:0;
	width:230px;
	height:100%;
	background:#fff;
	z-index:30;
}

.header_inner {
	width:100%;
	padding:50px 45px;
	transition:all .4s;
}

.header_logo a:hover {
	opacity:1;
}

.header_logo {
	text-align:center;
	width:80px;
	height:157px;
	margin:0 auto 80px;
}
/* ---------  Nav ------------ */

.top_nav li {
	text-align:center;
}

.top_nav li:not(:last-of-type) {
	margin-bottom:2.25em;
}

.top_nav li a {
	color:#008ba5;
	font-size:1.6rem;
	cursor: pointer;
	position:relative;
	letter-spacing: 0.2em;
}

.top_nav li a::after {
	content:"";
	display: block;
	width:110%;
	height:1px;
	background:#008ba5;
	position:absolute;
	left:-5%;
	top:1px;
	bottom:0;
	margin:auto 0;
	transition:transform .2s;
	transform:scale(0,1);
	transform-origin: right top;
}

.top_nav:hover li a:not(:hover) {
	opacity:0.3;
}
/*
.top_nav li a:hover::after {
	transform-origin: left top;
	transform:scale(1,1);
}
*/

.btn_contact {
	display: block;
	width:100%;
	max-width:140px;
	padding:2em 1em;
	text-align:center;
	font-weight:300;
	border-radius: 10px;
	position:relative;
	margin-top:120px;
	transition:all .2s;
	overflow: hidden;
}

.btn_contact span {
	font-size:1.5rem;
	line-height:1.4em;
	letter-spacing: 0.2rem;
	display: block;
	position:relative;
}

.btn_contact span::after {
	content:"";
	display: block;
	width:24px;
	height:31px;
	background:url(../images/icon_phonemail.svg) no-repeat center / contain;
	position:absolute;
	left:-4px;
	bottom:-24px;
}

.btn_contact:hover {
	opacity: 1;
}

.btn_contact::before {
	content: "";
    background-color: rgba(255,255,255,0.5);
    height: 100%;
    width: 4.5em;
    display: block;
    position: absolute;
    top: 0;
    left: -7.5em;
    transform: skewX(-45deg) translateX(0);
    transition: none;
}

.btn_contact:hover::before {
	transform: skewX(-45deg) translateX(21.5em);
     transition: all 0.3s ease-in-out;
}



/* --- IE のみ --- */
@media all and (-ms-high-contrast: none) {
  /* ここに書く */

}


/* --- hamburger --- */
.hamburger {
  display : none;
  position: relative;
  z-index : 99;
  width : 10.75vw;
  height: 10.75vw;
  cursor: pointer;
  text-align: center;
  background:none;
	background: #528ba5; /* Old browsers */
	background: -moz-linear-gradient(top,  #528ba5 0%, #00adba 100%); /* FF3.6-15 */
	background: -webkit-linear-gradient(top,  #528ba5 0%,#00adba 100%); /* Chrome10-25,Safari5.1-6 */
	background: linear-gradient(to bottom,  #528ba5 0%,#00adba 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#528ba5', endColorstr='#00adba',GradientType=0 ); /* IE6-9 */
  border-radius: 2.5vw;
  margin-left:auto;
}
.hamburger span {
  display : block;
  position: absolute;
  width   : 6.3675vw;
  height  : 0.5vw;
  left    : 2.25vw;
  background : #fff;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition   : 0.3s ease-in-out;
  transition        : 0.3s ease-in-out;
}
.hamburger span:nth-child(1) {
  top: 2.75vw;
}
.hamburger span:nth-child(2) {
  top: 5.25vw;
}
.hamburger span:nth-child(3) {
  top: 7.75vw;
}

/* ナビ開いてる時のボタン */
.hamburger.active span:nth-child(1) {
  top :5vw;
  background :#fff;
  -webkit-transform: rotate(-45deg);
  -moz-transform   : rotate(-45deg);
  transform        : rotate(-45deg);
}

.hamburger.active span:nth-child(2),
.hamburger.active span:nth-child(3) {
  top :5vw;
  background :#fff;
  -webkit-transform: rotate(45deg);
  -moz-transform   : rotate(45deg);
  transform        : rotate(45deg);
}
/* --- page top --- */

#page-top {
	position: fixed;
	bottom:20px;
	right:30px;
	z-index:30;
	opacity:0;
	visibility: hidden;
	transform:translateY(40px);
}

#page-top:hover {
	opacity:1;
}

#page-top.on {
	opacity:1;
	visibility: visible;
	transform:translateY(0px) ;
}


@media screen and (min-width:769px){
#page-top:hover {
	opacity:0.7;
}

}

/* ---------  footer ------------ */

footer {
	width:calc(100% - 230px);
	margin-left:auto;
}

footer .inner {
	max-width: 100%;
	position:relative;
	margin:0 auto;
	background:#f5f4f4;
	padding:80px 7% 30px;
}

.footer_info {
	width:40%;
	max-width:410px;
	min-width:392px;
}

.footer_nav {
	width:50%;
	max-width:430px;
}

.footer_logo {
	width:260px;
}

.footer_info h1 span {
	font-size:1.4rem;
	line-height:2.2em;
	display: block;
	margin-top:1em;
}

footer .b_hours {
	margin:0.5em 0 1em;
}

footer .b_hours dt {
	font-size:1.2rem;
	background:#ababab;
	border-radius: 8px;
	padding:0em 1em;
	line-height:1.4em;
	margin-right:1em;
}

footer .b_hours dd {
	font-size:1.7rem;
	letter-spacing: 0.1rem;
}



.footer_tel,
.footer_tel span {
	color:#008ba5;
}

.footer_tel {
	font-size:5rem;
	line-height:1em;
}

.footer_tel span {
	font-size:3.4rem;
	margin-right:0.2em;
	line-height:1em;
}

.footer_info .footer_address {
	font-size:1.3rem;
	line-height:1.5em;
}

.footer_nav_list > li {
	margin-right:7%;
}


.footer_nav_list a {
	font-size:1.3rem;
	line-height:1.5em;
	margin-bottom:1em;
	display: block;
}

.footer_nav_list a:hover {
	color:#008ba5;
	opacity:1;
}

.footer_nav_child a {
	padding-left:1em;
	position:relative;
}

.footer_nav_child a::before {
	content:"−";
	width:0.5em;
	height:1.5em;
	display:block;
	position:absolute;
	left:0;
	top:0;
}

.negative_ma {
	margin-top:-2em;
}

.footer_bottom {
	margin-top:100px;
}

.footer_link {
	width: 40%;
    max-width: 410px;
    min-width: 392px;
}

.footer_link a {
	font-size:1.3rem;
	display: block;
	padding:0 0.5em;
	letter-spacing: 0.1rem;
	border-left:1px solid #000;
}

.footer_link li:last-of-type a {
	border-right:1px solid #000;
}

.copy {
	display: block;
	letter-spacing: 0.1rem;
	font-size:1rem;
	width: 50%;
    max-width: 430px;
}

@media screen and (max-width:1230px){


.footer_nav,
.copy {
	padding-left:20px;
}
.negative_ma {
	margin-top:0em;
}

.footer_nav_list > li {
	width:46%;
	margin-right:2%;
}

}

@media screen and (max-width:960px){

	.footer_wrap,
	.footer_bottom {
		-webkit-flex-wrap:wrap;
		flex-wrap:wrap;
	}
	.footer_info,
	.footer_nav,
	.footer_link,
	.copy {
		width:100%;
		max-width:100%;
	}

	.footer_nav,
	.copy {
			padding-left:0;
	}
	.footer_nav_list {
		margin-top:60px;
		-webkit-justify-content: space-between;;
		justify-content: space-between;
	}

	.footer_bottom {
		-webkit-justify-content: space-between;;
		justify-content: space-between;
	}

	.footer_nav_list > li {
		width:auto;
	}

	.copy {
		margin-top:3em;
		text-align:right;
	}
}

/* ---------  footer ここまで ------------ */

/* --- news --- */

.news_wrap {
	margin-top:5em
}

.news_line {
	padding:0;
	border-top:1px solid #ababab;
}

.news_line:last-of-type {
	border-bottom:1px solid #ababab;
}

.news_line a {
	padding:2em 10%;
	width:100%;
	margin:0 auto;
}

.news_line time,
.news_detail time {
	font-size:1.8rem;
	letter-spacing: 0.2rem;
	line-height:1.525em;
	margin-right:10%;
}

.news_line h2 {
	font-size:1.5rem;
	line-height:1.83em;
	letter-spacing: 0.2rem;
}

/* ---------  Scroll Fadein --------- */


.fadein {
    opacity : 0;
    transition : transform 0.8s, opacity 0.8s;
    transform : translate(-50px,0);
}
.rightin {
	opacity:0;
    transition : transform 0.8s, opacity 0.8s;
	transform:translate(50px,0);
}

.bottomin {
	opacity:0;
    transition : transform 0.8s, opacity 0.8s;
	transform:translate(0,50px);
}

.delay2 {
	transition-delay:0.3s;
}
.delay3 {
	transition-delay:0.6s;
}
.delay4 {
	transition-delay:0.9s;
}

.delay5 {
	transition-delay:1.2s;
}

.fadein.scrollin ,
.rightin.scrollin,
.bottomin.scrollin {
    opacity : 1;
    transform : translate(0, 0);
}







/* ---------  ver.SmartPhone ------------ */

/* font-size ---

if : window size = 750px 


*/


@media screen and (max-width:768px){

div,
span,
object,
iframe,
h1, h2, h3, h4, h5, h6,
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 {
	font-size:4vw; /* font 1.6rem */
}

.pc_none,
.hamburger {
	display:block;
}

.sp_none {
	display:none;
}

.inner {
	width:100%;
	margin:0 auto;
	padding:0 6.5vw;
}

main {
	width:100%;
	margin:0;
	padding-bottom:25vw;
}

p {
	font-size:3.5vw; /* font 1.4rem */
}


/* --- flex --- */

.d_flex {
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}

/* --- btn --- */

.btn_blue {
	width:60vw;
	height:11.5vw;
	line-height:11.5vw;
	border-radius: 7vw;
}

.btn_blue span {
	font-size:4vw;
}

.more_btn {
	font-size:4vw;
	width:16vw;
}

.more_btn::before {
	width:20.5vw;
	height:1.25vw;
	bottom:0.5vw;
}

/* --- main --- */

/* --- header --- */

header {
	width:100%;
	height:20vw;
	transform:translateY(0)!important;
	background:none;
}

.header_inner {
	height:100%;
	padding:4.5vw 5vw;
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content:space-between;
	justify-content: space-between;
}

.header_logo {
	width:25vw;
	height:11.0625vw;
	margin:0;
}
.header_logo img {
	width:25vw;
	height:11.0625vw;
}

/* --- header fin --- */

/* --- nav --- */

.header_nav {
	background:#fff;
	position:fixed;
	left:-100%;
	top:0;
	width:100%;
	overflow-y:auto;
	padding:10vw 10vw;
	height:100vh;
	visibility: hidden;
	opacity:0;
	transition:all .4s;
	z-index:80;
}

.header_nav.leftin {
	left:0;
	visibility: visible;
	opacity:1;
}

.nav_logo {
	width:15vw;
	height:29.73vw;
	margin:0 auto 10vw;
}

.top_nav li {
	text-align:left;
	margin-bottom:0!important;
}

.top_nav li a {
	font-size:4vw;
	padding-bottom:0.5em;
	display: block;
}
.top_nav li a::after {
	width:100%;
	left:0;
	top:auto;
	bottom:0;
	margin:0;
	background: #528ba5; /* Old browsers */
	background: -moz-linear-gradient(right,  #528ba5 0%, #00adba 100%); /* FF3.6-15 */
	background: -webkit-linear-gradient(right,  #528ba5 0%,#00adba 100%); /* Chrome10-25,Safari5.1-6 */
	background: linear-gradient(to right,  #528ba5 0%,#00adba 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#528ba5', endColorstr='#00adba',GradientType=0 ); /* IE6-9 */
	transform:scale(1,1);
}

.top_nav li:not(:first-of-type) a {
	padding-top:2.25em;
}

.btn_contact {
	max-width:100%;
	border-radius:2.5vw;
	margin:10vw auto 0;
	width:35vw;
}

.btn_contact span {
	font-size:3.75vw;
}

.btn_contact span::after {
	width:6vw;
	height:7.75vw;
	left:-1vw;
	bottom:-6vw;
}


/* --- nav fin --- */

/* --- btn --- */




/* --- footer --- */

footer {
	width:100%;
	margin:0 auto;
}

footer .inner {
	padding:15vw 6.5vw 20vw;
}

.footer_info {
	min-width:auto;
}

.footer_logo {
	width:50vw;
}

.footer_info h1 span {
	font-size:3.5vw;
}

.footer_tel {
	font-size:10vw;
}

.footer_tel span {
	font-size:6vw;
}

footer .b_hours dt {
	font-size:3vw;
	border-radius:2vw;
}

footer .b_hours dd {
	font-size:4vw;
}

.footer_info .footer_address {
	font-size:3.5vw;
}

.footer_nav_list {
	margin-top:10vw;
}

.footer_nav_list > li {
	width:100%;
	margin-right:0;
}

.footer_nav_child {
	display: flex;
	display:-webkit-flex;
	flex-wrap:wrap;
	-webkit-flex-wrap:wrap;
	padding-left:1em;
	margin-bottom:1em;
}

.footer_nav_child li:not(:last-of-type) {
	margin-right:1em;
}

.footer_nav_child li a {
	margin-bottom:0.5em;
}

.footer_nav_list > li > a {
	margin-bottom:0.5em;
}
.negative_ma {
	margin-top:0;
}

/* --- 変更前 ---

.footer_nav li {
	width:31%;
	margin-right:0;
}

.negative_ma {
	margin-top:-3.5em;
}

------------------- */

.footer_nav_list a,
.footer_link a {
	font-size:3.25vw;
}

.footer_bottom {
	margin-top:8vw;
}


.copy {
	display: block;
	width:100%;
	text-align:left;
	font-size:2.5vw;
}

/* --- footer fin --- */



/* --- google map --- */


/* --- page top --- */
#page-top {
	width:12.5vw;
	height:12.5vw;
	right:6.5vw;
	bottom:6.5vw;
}

#page-top img {
	width:12.5vw;
	height:12.5vw;
}

/* --- h_title --- */


.h_title {
	font-size:10vw;
	text-align:center;
}

.h_title span {
	font-size:4vw;
	position:relative;
	text-align:center;
}

.h_title.h_title_border span::before {
	width:7.5vw;
}


/* --- blog cate time --- */

.news_wrap {
	margin-top:15vw;
}

.news_line {
	padding:0;
}

.news_line a {
	width:100%;
	margin:0;
	padding:5vw 0;
}

.news_line time,
.news_detail time {
	font-size:3.5vw;
}

.news_line h2 {
	font-size:3.5vw;
}

/* --- fade in --- */

.fadein {
    transform : translate(-12.5vw,0);
}
.rightin {
	transform:translate(12.5vw,0);
}

.bottomin {
	transform:translate(0,12.5vw);
}



@media screen and (max-width:380px) {


.copy br.pc_none {
	display:block;
}

.copy {
	line-height:2.185em;
}


}

}
/* ---------  ver.SmartPhone fin ------------ */

