/* CSS Document */
/*LOADING*/
.c-pageloadingWrap{position:fixed;top:0;left:0;width:100%;height:100%;height:100svh;background:#ed6c00;text-align:center;display:flex;justify-content:center;align-items:center;z-index:999;}
.c-pageloadingContainer{position:relative;max-width:150px; opacity:0;transition:opacity .5s ease-out;}
.c-pageloadingContainer img{position:relative;width:100%;height:auto;}

.c-pageloadingWrap.is--hide{opacity:0; transition:all .2s ease-out;}
.c-pageloadingWrap.is--off{display:none;}
.c-pageloadingContainer.is--show{opacity:1;}

/*BASE*/
main {
	font-family: "Noto Serif JP", serif;
	font-weight:500;
}
section {
	position:relative;
}

.content-box {
	max-width:1800px;
	margin:auto;
}
.container.partition::after {
	content:"";
	display:block;
	width:100%;
	height:1px;
	border-top:solid 1px rgba(218, 218, 218, 1);
}
.title-box_floating {
	display:flex;
	flex-direction:column;
	align-self:flex-start;
	color:#ed6c00;
	writing-mode:vertical-rl;
	position:sticky;
}
.title-box_floating h1 {
	font-size: 14px;
	font-weight:700;
	line-height:1.4;
	letter-spacing:.1em;
}
.title-box_floating p {
	font-size: 10px;
    font-weight: 700;
	line-height:1;
	text-indent:3em;
}
/*BASE ANIME*/
.title-anime {position:relative; letter-spacing:0.025em; display:inline-block; margin-bottom:60px;}
.title-anime::after{content:'';position:absolute;bottom:-12px;left:0;width:0;height:1px;background-color:#000;display:inline-block; transition:all .6s cubic-bezier(0.97, 0.01, 0.58, 1);}
.is--active .title-anime::after { width:100%;}

/*NEWS*/
#news .title-box {
	text-align:center;
}
#news .news-box {
	max-width:1200px;
	width:calc(100% - 8vw);
	margin:auto;
	text-align:center;
}
#news .blogFeed ul {
	padding:0 2vw;
}
#news .blogFeed ul li:not(:last-child) {
	border-bottom:solid 1px #FFF;
}
#news .blogFeed ul li a {
	color:#333;
}
#news .blogFeed ul li a .data {
	white-space:nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media screen and (max-width: 767.98px) {
/*BASE*/
.container {
	padding:0 2rem;
}
.container.partition::after {
	margin-top:2rem;
}
.title-box_floating {
	top:40px;
	left:1vw;
	transform:scale(.6);
}
/*BASE ANIME*/
.title-anime {
	font-size:20px;
}

/*MainVisual*/
#mainvisual {
	padding:0 0 1rem;
}
#mainvisual .content-box {
	width:100%;
	height:auto;
	aspect-ratio:1 / 1;
	position:relative;
	overflow:clip;
}
#mainvisual img.img-box {
	width: 200%;
	height:100%;
	object-fit: cover;
	position:absolute;
	top:0;
	left: 50%;
	transform: translateX(-50%);
}
#mainvisual .txt-box {
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:flex-start;
	width:100%;
	height:100%;
	padding-left:2rem;
	position:absolute;
	top:0;
	left:0;
}
#mainvisual .txt-box h1 {
	color:#FFF;
	font-size:5vw;
	font-weight:700;
	letter-spacing:.025em;
	text-indent:0.1em;
	margin-bottom:.5em;
	text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.18);
}
#mainvisual .txt-box p {
	color:#dadada;
    font-size:2vw;
    letter-spacing:.025em;
	text-indent:.5em;
    line-height:1;
    font-weight:900;
    font-style:italic;
}

/*ABOUT*/
#about .content-box {
	display:flex;
	flex-direction:column-reverse;
	align-items:center;
}
#about .img-box img {
	width:100%;
}
#about .txt-box {
	margin-bottom:1rem;
}
#about .txt-box h2 {
	font-size:4vw;
	text-align:center;
}

/*NEWS*/
#news .blogFeed ul li {
	border-bottom-color:#CCC !important;
}
#news .blogFeed ul li a {
	display:block;
	padding: 1rem;
	font-size:14px;
}
#news .blogFeed ul li a .time,
#news .blogFeed ul li a .data {
	display:block;
}
#news .blogFeed ul li a .time {
	font-size:12px;
	margin-bottom:.5rem;
}

/*SERVICE*/
#service .title-box {
	text-align:center;
}
#service .service {
}
#service .service > li:not(:last-child) {
	margin-bottom:60px;
}
#service .service .banner {
	display:block;
	color:#333;
	background-color:rgba(255,255,255,1);
	box-shadow:0 0 6px rgba(0,0,0,.2);
}
#service .service .img-box {
	width:100%;
	display:flex;
	justify-content:center;
	align-items:center;
	padding:1.5rem 2rem;
}
#service  .service .img-box img {
	width:100%;
	max-width:120px;
}
#service .service .txt-box {
	padding:1.5rem 2rem;
}
#service .service .txt-box h3 {
	font-size:18px;
	text-align:center;
	margin-bottom:1rem;
}

/*MEMBER*/
#member {
	padding:2rem 0;
}
#member .title-box {
	width:100%;
	height:auto;
	aspect-ratio:150 / 33;
	max-width:1200px;
	margin:auto;
	position:relative;
}
#member .title-box img.img-box {
	width:100%;
	height:auto;
	position:absolute;
	top:0;
	left:0;
}
#member .title-box h1.txt-box {
	color:#FFF;
	position:absolute;
	bottom:1rem;
	left:2rem;
}
#member .content-box {
	padding:1rem 0 0;
}
#member .content-box ul.member {
	display:table;
	border-collapse:separate;
	border-spacing:1rem 1.5rem;
	margin:auto;
}
#member .content-box ul.member > li {
	display:table-row;
}
#member .content-box ul.member > li > span {
	display:table-cell;
	text-align:left;
	vertical-align:bottom;
	line-height:1;
}
#member .content-box ul.member > li > .ja {
	font-size:16px;
}
#member .content-box ul.member > li > .en {
	font-size:10px;
}

/*PROFILE*/
#profile {
	background-color:#FFF;
	padding:2rem 0;
}
#profile .title-box {
	text-align:center;
}
#profile .content-box dl.profile {
	text-align: center;
}
#profile .content-box dl.profile > dt {
	font-weight:700;
	margin-bottom:.5rem;
}
#profile .content-box dl.profile > dd:not(:last-of-type) {
	margin-bottom:2rem
}

/*CONTACT*/
#contact {
	padding:2rem 0 0;
}
#contact .title-box {
	width:100%;
	height:auto;
	aspect-ratio:150 / 33;
	max-width:1200px;
	margin:auto;
	position:relative;
}
#contact .title-box img.img-box {
	width:100%;
	height:auto;
	position:absolute;
	top:0;
	left:0;
}
#contact .title-box h1.txt-box {
	color:#FFF;
	position:absolute;
	bottom:.5rem;
	left:2rem;
}
#contact .attention-box {
	font-size:12px;
	text-align:center;
	color:#000;
	max-width:800px;
	margin: 2rem auto 2rem;
}
#contact .attention-box li:not(:last-child) {
	margin-bottom:1rem;
}
}


@media screen and (min-width: 768px) {
/*BASE*/
.container {
	padding:0 6vw;
}
.container.partition::after {
	margin-top:80px;
}
.title-box_floating {
	height:0px;
	top:calc( 50% - 40px );
	left:1.6vw;
	transform: scale(0.8) translateY(calc(-50% - 80px));
	overflow:visible;
	white-space:nowrap;
}
/*BASE ANIME*/
.title-anime {
	font-size:24px;
}

/*MainVisual*/
#mainvisual {
	padding-bottom:40px;
}
#mainvisual .content-box {
	width:100%;
	height:auto;
	aspect-ratio:180 / 97;
	position:relative;
}
#mainvisual img.img-box {
	width:100%;
	height:auto;
	position:absolute;
	top:0;
	left:0;
}
#mainvisual .txt-box {
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:flex-start;
	width:100%;
	height:100%;
	padding-left:60px;
	position:absolute;
	top:0;
	left:0;
}
#mainvisual .txt-box h1 {
	color:#FFF;
	font-size:32px;
	font-weight:700;
	letter-spacing:.025em;
	text-indent:0.1em;
	margin-bottom:10px;
	text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.18);
}
#mainvisual .txt-box p {
	color:#dadada;
    font-size:16px;
    letter-spacing:.025em;
	text-indent:.5em;
    line-height:1;
    font-weight:900;
    font-style:italic;
}

/*ABOUT*/
#about {
	padding-top:60px;
	padding-bottom:60px;
}
#about .content-box {
	display:flex;
	flex-direction:row-reverse;
	align-items:center;
}
#about .img-box {
	flex:1;
}
#about .img-box img {
	width:100%;
}
#about .txt-box {
	width:480px;
}
#about .txt-box h2 {
	font-size:24px;
}

/*NEWS*/
#news {
	padding-top:60px;
	padding-bottom:60px;
}
#news .blogFeed ul li {
	max-width:800px;
	margin:auto;
}
#news .blogFeed ul li a {
	display: grid;
	grid-template-columns:auto 1fr;
	gap:2rem;
	padding:1.5rem;
	font-size:16px;
	background-color:rgba(255,255,255,0);
	box-shadow:0 0 6px rgba(0,0,0,0);
	transition:ease-in .5s;
}
#news .blogFeed ul li a:hover {
	background-color:rgba(255,255,255,1);
	box-shadow:0 0 6px rgba(0,0,0,.2);
}
#news .blogFeed ul li a .data {
	text-align:left;
}

/*SERVICE*/
#service {
	padding-top:60px;
	padding-bottom:60px;
}
#service .title-box {
	text-align:center;
}
#service .service {
	max-width:1200px;
	margin:auto;
}
#service .service > li:not(:last-child) {
	margin-bottom:60px;
}
#service .service .banner {
	display:flex;
	color:#333;
	background-color:rgba(255,255,255,0);
	box-shadow:0 0 6px rgba(0,0,0,0);
	transition:ease-in .2s;
}
#service .service .banner:hover {
	background-color:rgba(255,255,255,1);
	box-shadow:0 0 6px rgba(0,0,0,.2);
}
#service .service .img-box {
	width:32%;
	display:flex;
	justify-content:center;
	align-items:center;
}
#service  .service .img-box img {
	width:100%;
	max-width:300px;
}
#service .service .txt-box {
	flex:1;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:flex-start;
	padding:1rem 2rem;
}
#service .service .txt-box h3 {
	font-size:24px;
	margin-bottom:1rem;
}

/*MEMBER*/
#member {
	padding-top:60px;
	padding-bottom:60px;
}
#member .title-box {
	width:100%;
	height:auto;
	aspect-ratio:150 / 33;
	max-width:1200px;
	margin:auto;
	position:relative;
}
#member .title-box img.img-box {
	width:100%;
	height:auto;
	position:absolute;
	top:0;
	left:0;
}
#member .title-box h1.txt-box {
	color:#FFF;
	position:absolute;
	bottom:20px;
	left:60px;
}
#member .content-box {
	padding:40px 0 0;
}
#member .content-box ul.member {
	display:table;
	border-collapse:separate;
	border-spacing:1rem 1.5rem;
	margin:auto;
}
#member .content-box ul.member > li {
	display:table-row;
}
#member .content-box ul.member > li > span {
	display:table-cell;
	text-align:left;
	vertical-align:bottom;
	line-height:1;
}
#member .content-box ul.member > li > .ja {
	font-size:20px;
}
#member .content-box ul.member > li > .en {
	font-size:10px;
}

/*PROFILE*/
#profile {
	background-color:#FFF;
	padding-top:60px;
	padding-bottom:60px;
}
#profile .title-box {
	text-align:center;
}
#profile .content-box dl.profile {
	display:grid;
	grid-template-rows:auto;
	grid-template-columns:1fr auto;
	gap:2rem 4rem;
	width: max-content;
	margin:auto;
}
#profile .content-box dl.profile > dt {
	text-align:justify;
	text-align-last:justify;
}

/*CONTACT*/
#contact {
	padding-top:60px;
	padding-bottom:60px;
}
#contact .title-box {
	width:100%;
	height:auto;
	aspect-ratio:150 / 33;
	max-width:1200px;
	margin:auto;
	position:relative;
}
#contact .title-box img.img-box {
	width:100%;
	height:auto;
	position:absolute;
	top:0;
	left:0;
}
#contact .title-box h1.txt-box {
	color:#FFF;
	position:absolute;
	bottom:20px;
	left:60px;
}
#contact .attention-box {
	text-align:center;
	color:#000;
	max-width:800px;
	margin: 2rem auto 2rem;
}
#contact .attention-box li:not(:last-child) {
	margin-bottom:1rem;
}
#contact .attention-box .tel {
	font-size:24px;
}
}