@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700&family=Noto+Sans+JP:wght@400..700&display=swap');

/* ------------------------
	var
------------------------ */
:root {
	--f08:0.5rem;--f09:0.5625rem;--f10:0.625rem;--f11:0.6875rem;--f12:0.75rem;--f13:0.8125rem;--f14:0.875rem;--f15:0.9375rem;--f16:1.0rem;--f17:1.0625rem;--f18:1.125rem;--f19:1.1875rem;--f20:1.25rem;--f21:1.3125rem;--f22:1.375rem;--f23:1.4375rem;--f24:1.5rem;--f25:1.5625rem;--f26:1.625rem;--f27:1.6875rem;--f28:1.75rem;--f29:1.8125rem;--f30:1.875rem;--f31:1.9375rem;--f32:2.0rem;--f33:2.0625rem;--f34:2.125rem;--f35:2.1875rem;--f36:2.25rem;--f37:2.3125rem;--f38:2.375rem;--f39:2.4375rem;--f40:2.5rem;--f41:2.5625rem;--f42:2.625rem;--f43:2.6875rem;--f44:2.75rem;--f45:2.8125rem;--f46:2.875rem;--f47:2.9375rem;--f48:3.0rem;--f49:3.0625rem;--f50:3.125rem;--f51:3.1875rem;--f52:3.25rem;--f53:3.3125rem;--f54:3.375rem;--f55:3.4375rem;--f56:3.5rem;--f57:3.5625rem;--f58:3.625rem;--f59:3.6875rem;--f60:3.75rem;--f66:4.125rem;
	--c01:#3E1F78;
}

/* ------------------------
	reset
------------------------ */
header, footer, nav, section, aside, article {
	display: block;
}
body, div, pre, p, blockquote, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, th, td, figure {
	margin: 0;
	padding: 0;
}
input, textarea {
	margin: 0;
	font-size: 100%;
}
label {
	cursor: pointer;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
	font-size: 100%;
}
fieldset, img {
	border: 0;
}
img {
	vertical-align: top;
	max-width: 100%;
}
address, caption, cite, code, dfn, em, th, var {
	font-style: normal;
	font-weight: normal;
}
ol, ul {
	list-style: none;
}
caption, th {
	text-align: left;
}
h1, h2, h3, h4, h5, h6 {
	font-size: 100%;
	font-weight: normal;
}
q::after, q::before {
	content: '';
}
a, input, select, textarea, button {
	outline: none;
}
abbr, acronym {
	border: 0;
}
input[type=text],
input[type=password],
input[type=email],
input[type=tel],
input[type=number],
input[type=reset],
input[type=button],
input[type=submit],
button[type=submit],
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
input[type=reset],
input[type=button],
input[type=submit],
button[type=submit] {
	cursor: pointer;
}
select,
input[type=radio],
input[type=checkbox] {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
* {
	box-sizing: border-box;
}

/* ------------------------
	elements
------------------------ */
html {
	font-size: 100%;
}
body {
	font-family: "Zen Old Mincho", serif;
	font-optical-sizing: auto;
	font-size: var(--f16);
	-webkit-text-size-adjust: none;
	line-height: 1.8;
	font-weight: 400;
	font-style: normal;
	color: #000;
	padding: 0 0 0 120px;
	position: relative;
	background: #fff;
	max-width: 1920px;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
	body {
		font-size: var(--f13);
		padding: 60px 0 0;
	}
}
a {
	-webkit-tap-highlight-color: rgba(200,200,555,.6);
}
a:link {
	color: var(--c01);
	text-decoration: none;
}
a:visited {
	color: var(--c01);
	text-decoration: none;
}
a:hover {
	color: var(--c01);
	text-decoration: none;
}
img {
	border: none;
	width: auto;
	max-width: 100%;
	height: auto;
}
p {
	margin: 0 0 15px;
}
hr{
	clear: both;
	border-top: 1px solid #ccc;
	margin: 2em 0;
}
.clearfix::after {
	content: "";
	display: block;
	clear: both;
}
.mb0 {
	margin-bottom: 0 !important;
}
.mb05 {
	margin-bottom: 5px !important;
}
.mb10 {
	margin-bottom: 10px !important;
}
.mb15 {
	margin-bottom: 15px !important;
}
.mb20 {
	margin-bottom: 20px !important;
}
.mb30 {
	margin-bottom: 30px !important;
}
.mb40 {
	margin-bottom: 40px !important;
}
.mb50 {
	margin-bottom: 50px !important;
}
.mb60 {
	margin-bottom: 60px !important;
}
.mt05 {
	padding-top: 5px;
}
.mt10 {
	padding-top: 10px;
}
.mt15 {
	padding-top: 15px;
}
.mt20 {
	padding-top: 20px;
}
.mt30 {
	padding-top: 30px;
}
.mt40 {
	padding-top: 40px;
}
.mt50 {
	padding-top: 50px;
}
.small {
	font-size: 0.8em;
}
.big {
	font-size: 1.2em;
}
.textright {
	text-align: right;
}
.textcenter {
	text-align: center;
}
.textleft {
	text-align: left;
}
.alignleft {
	float: left;
	margin: 0 15px 15px 0;
}
.alignright {
	float: right;
	margin: 0 0 15px 15px;
}
.aligncenter {
	display: block;
	text-align: center;
	margin: 0 auto 15px;
}
.clear {
	clear: both;
}
.clearleft {
	clear: left;
}
.clearright {
	clear: right;
}
table.table_border,
table.table_border_scroll {
	clear: both;
	width: 100%;
	border: none;
	border-bottom: 1px solid #666;
	border-right: 1px solid #666;
	color: #000;
}
table.table_border tbody tr th,
table.table_border_scroll tbody tr th {
	background: none;
	background: #efefef;
	border: none;
	padding: 10px 20px;
	vertical-align: top;
	text-align: left;
	border-top: 1px solid #666;
	border-left: 1px solid #666;
	font-weight: 400;
	white-space: nowrap;
	box-sizing: border-box;
	width: 15%;
	position: relative;
}
table.table_border tbody tr td,
table.table_border_scroll tbody tr td {
	background: none;
	background: #fff;
	border: none;
	padding: 10px 20px;
	vertical-align: top;
	text-align: left;
	border-top: 1px solid #666;
	border-left: 1px solid #666;
	box-sizing: border-box;
}
table.table_border tbody tr td .tel,
table.table_border_scroll tbody tr td .tel {
	color: #000 !important;
}
table.table_noborder {
	clear: both;
	width: 100%;
	border: none;
	margin: 0;
}
table.table_noborder tbody tr th {
	background: none;
	border: none;
	padding: 0 0 15px;
	vertical-align: top;
	text-align: left;
	font-weight: 400;
	white-space: nowrap;
	box-sizing: border-box;
	width: 25%;
}
table.table_noborder tbody tr td {
	background: none;
	border: none;
	padding: 0 0 15px 10px;
	vertical-align: top;
	text-align: left;
	box-sizing: border-box;
}
table tbody tr th small,
table tbody tr td small {
	display: block;
	padding: 2px 0 0;
	font-size: 0.8em;
	font-weight: 400;
}
ul.ulist > li {
	list-style: disc;
}
ol.olist > li {
	list-style: decimal;
}
ul.ulist > li,
ol.olist > li {
	margin: 0 0 0 25px;
}
dl.dlist dt {
	font-weight: 700;
	font-size: 1.2em;
	margin: 0 0 2px;
}
dl.dlist dd {
	margin: 0 0 5px 12px;
}
.display_pc {
	display: inline-block;
}
.display_tb {
	display: none;
}
.display_sp {
	display: none;
}
a.tel {
	pointer-events: none;
	color: #fff !important;
}
a.link {
	text-decoration: underline;
}
.line {
	position: relative;
	box-shadow: inset 0 -0.4rem 0 0 #ccc;
}
@media screen and (max-width: 1024px) {
	.display_tb {
		display: inline-block;
	}
	.hidden_tb {
		display: none;
	}
}
@media screen and (max-width: 767px) {
	.alignleft,
	.alignright,
	.aligncenter {
		display: block;
		float: none;
		margin: 0 auto 10px;
		text-align: center;
		width: auto !important;
		height: auto !important;
	}
	.alignleft img,
	.alignright img,
	.aligncenter img,
	img.alignleft,
	img.alignright,
	img.aligncenter {
		display: block;
		margin: 0 auto 10px;
		width: auto;
		max-width: 100%;
		height: auto;
	}
	table.table_border tbody tr th {
		display: block;
		padding: 8px;
		width: auto;
		position: relative;
	}
	table.table_border tbody tr th br {
		display: none;
	}
	table.table_border tbody tr td {
		display: block;
		padding: 8px;
		border-top: none;
	}
	table.table_noborder tbody tr th {
		padding: 0 0 12px;
	}
	table.table_noborder tbody tr td {
		padding: 0 0 12px;
	}
	.display_pc {
		display: none;
	}
	.display_sp {
		display: inline-block;
	}
	a.tel {
		pointer-events: inherit;
		text-decoration: underline;
	}
}
@media screen and (min-width: 768px) {
	a:hover,
	input[type=button]:hover,
	input[type=submit]:hover,
	button[type=submit]:hover {
		opacity: 0.8;
	}
	a,
	input[type=button],
	input[type=submit],
	button[type=submit] {
		transition: all 0.2s ease;
	}
}

/* ------------------------
	header
------------------------ */
body.noscroll {
	overflow: hidden;
}
#header {
	width: 120px;
	height: 100vh;
	height: 100dvh;
	z-index: 100;
	position: fixed;
	top: 0;
	left: 0;
}
#header_logo {
	width: 50px;
	position: absolute;
	top: 30px;
	right: 34px;
	z-index: 1000;
}
#header_logo a {
	display: block;
}
#header_link {
	position: absolute;
	top: 315px;
	left: 35px;
	z-index: 1000;
}
#header_link ul {
	display: block;
}
#header_link ul li {
	display: block;
	margin: 12px 0 0;
}
#header_link ul li a {
	display: block;
	writing-mode: vertical-rl;
	font-size: var(--f14);
	color: #000;
	line-height: 50px;
}
#header_button {
	display: block;
	width: 60px;
	height: 60px;
	padding: 19px 10px 0;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
	-ms-touch-action: manipulation;
	touch-action: manipulation;
	cursor: pointer;
	position: absolute;
	bottom: 0;
	right: 30px;
	z-index: 1001;
	background: #fff;
}
#header_button span {
	display: block;
	width: 100%;
	text-align: center;
	font-size: var(--f10);
	line-height: 20px;
	position: absolute;
	bottom: 0;
	left: 0;
}
.header_button_icon {
	text-align: center;
	position: absolute;
	top: 10px;
	left: 50%;
	margin: 0 0 0 -1px;
}
.header_button_icon, .header_button_icon:before, .header_button_icon:after {
	display: block;
	width: 2px;
	height: 30px;
	background-color: #000;
	transition-property: background-color, transform;
	transition-duration: 0.4s;
}
.header_button_icon:before, .header_button_icon:after {
	position: absolute;
	content: "";
	top: 0;
}
.header_button_icon:before {
	left: -10px;
}
.header_button_icon:after {
	left: 10px;
}
#header_button.active {
}
#header_button.active .header_button_icon {
	background-color: transparent;
}
#header_button.active .header_button_icon:before, #header_button.active .header_button_icon:after {
	background-color: #000;
}
#header_button.active .header_button_icon:before {
	transform: translateX(10px) rotate(-45deg);
}
#header_button.active .header_button_icon:after {
	transform: translateX(-10px) rotate(45deg);
}
#header_menu {
	position: fixed;
	top: 0;
	left: -100vw;
	background: #fff;
	width: 100vw;
	padding: 40px 0 40px;
	box-sizing: border-box;
	transition: all 0.2s ease;
	overflow-y: auto;
	height: auto;
	height: 100vh;
	height: 100dvh;
	z-index: 100;
	display: flex;
	flex-flow: column nowrap;
	justify-content: space-around;
}
#header_menu.active {
	left: 0;
}
#header_nav {
	display: flex;
	flex-flow: row-reverse wrap;
	justify-content: center;
	align-items: center;
	padding: 0 0 0 120px;
	position: relative;
}
#header_nav dl {
	display: flex;
	flex-flow: row-reverse nowrap;
	justify-content: space-between;
	flex: none;
	padding: 0 0 0 15px;
}
#header_nav dl a {
	display: block;
	writing-mode: vertical-rl;
	color: #000;
	line-height: 40px;
	white-space: nowrap;
}
#header_nav dl dt {
	margin: 0 30px 0 0;
	display: block;
	width: 40px;
}
#header_nav dl dt a {
	font-size: var(--f14);
}
#header_nav dl dt:nth-of-type(1) a {
	width: 50px;
}
#header_nav dl dd {
	padding: 30px 0 0;
	display: block;
	width: 40px;
}
#header_nav dl dd a {
	font-size: var(--f12);
	position: relative;
	padding: 25px 0 0;
}
#header_nav dl dd a::before {
	display: block;
	content: "";
	width: 1px;
	height: 20px;
	background: #a5a5a5;
	position: absolute;
	top: 0;
	left: 50%;
}
#header_nav p {
	width: min(30%, 340px);
	margin: 0;
}
#header_nav small {
	font-size: var(--f10);
	width: 100%;
	max-width: 955px;
	text-align: right;
	padding: 0 30px 0 0;
}
@media screen and (max-width: 767px) {
	#header {
		width: 100%;
		height: 60px;
		background: #fff;
	}
	#header_logo {
		width: 242px;
		top: 15px;
		left: 15px;
	}
	#header_link {
		display: none;
		overflow: hidden;
	}
	#header_button {
		bottom: 0;
		right: 0;
	}
	#header_menu {
		padding: 60px 0 15px;
		display: block;
	}
	#header_nav {
		display: block;
		padding: 0;
		text-align: center;
	}
	#header_nav dl {
		display: inline-block;
		padding: 0;
	}
	#header_nav dl a {
		display: block;
		writing-mode: inherit;
		text-align: left;
	}
	#header_nav dl dt:nth-of-type(1) {
		display: none;
	}
	#header_nav dl dt {
		margin: 15px 0 0;
	}
	#header_nav dl dd {
		padding: 0;
	}
	#header_nav dl dd a {
		padding: 0 0 0 25px;
	}
	#header_nav dl dd a::before {
		width: 20px;
		height: 1px;
		top: 50%;
		left: 0;
	}
	#header_nav p {
		width: 200px;
		margin: 30px auto 30px;
	}
	#header_nav small {
		display: block;
		width: 100%;
		text-align: left;
		padding: 0 30px;
	}
}

/* ------------------------
	main
------------------------ */
#main {
	clear: both;
	display: block;
	width: auto;
	margin: 0 auto;
	position: relative;
	overflow: hidden;
	padding: 0 0 80px;
}
.contents {
	padding: 80px 0 80px;
	position: relative;
	margin: 0 auto;
}
.contents_box {
	max-width: 990px;
	margin: 0 auto;
	padding: 0 15px;
	position: relative;
}
.top120 {
	padding-top: 120px !important;
}
.top100 {
	padding-top: 100px !important;
}
.top80 {
	padding-top: 80px !important;
}
.top60 {
	padding-top: 60px !important;
}
.top40 {
	padding-top: 40px !important;
}
.top0 {
	padding-top: 0 !important;
}
.bottom120 {
	padding-bottom: 120px !important;
}
.bottom100 {
	padding-bottom: 100px !important;
}
.bottom80 {
	padding-bottom: 80px !important;
}
.bottom60 {
	padding-bottom: 60px !important;
}
.bottom40 {
	padding-bottom: 40px !important;
}
.bottom0 {
	padding-bottom: 0 !important;
}
@media screen and (max-width: 767px) {
	#main {
		padding: 0 0 40px;
	}
	.contents {
		padding: 40px 0 40px;
	}
	.top120 {
		padding-top: 60px !important;
	}
	.top100 {
		padding-top: 50px !important;
	}
	.top80 {
		padding-top: 45px !important;
	}
	.top60 {
		padding-top: 40px !important;
	}
	.top40 {
		padding-top: 35px !important;
	}
	.bottom120 {
		padding-bottom: 60px !important;
	}
	.bottom100 {
		padding-bottom: 50px !important;
	}
	.bottom80 {
		padding-bottom: 45px !important;
	}
	.bottom60 {
		padding-bottom: 40px !important;
	}
	.bottom40 {
		padding-bottom: 35px !important;
	}
}

/* ------------------------
	footer
------------------------ */
#footer {
	padding: 700px 3vw 50px;
	position: relative;
}
#footer::before {
	display: block;
	content: "";
	width: 100%;
	height: 650px;
	background: url("../images/common/footer_back01.jpg") no-repeat center center / cover;
	position: absolute;
	top: 0;
	left: 0;
}
#footer_frame {
	position: relative;
	min-height: 267px;
}
#footer_contact {
	font-size: var(--f14);
}
#footer_contact dl dt {
	margin: 0 0 10px;
}
#footer_address {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	flex-flow: row-reverse nowrap;
	justify-content: flex-start;
}
#footer_address h1 {
	width: 50px;
	margin: 0 0 0 15px;
}
#footer_address h1 a {
	display: block;
}
#footer_address p {
	writing-mode: vertical-rl;
	font-size: var(--f14);
}
#footer_address p strong {
	font-weight: 400;
}
#footer_address dl {
	writing-mode: vertical-rl;
}
#footer_address dl dt {
	font-size: var(--f20);
	margin: 0 30px 0 0;
}
#footer_address dl dd {
	font-size: var(--f14);
}
#footer_link {
	position: absolute;
	bottom: 40px;
	left: 0;
	font-size: var(--f14);
}
#footer_link ul li {
	display: inline-block;
	margin: 0 15px 0 0;
}
#footer small {
	display: inline-block;
	font-size: var(--f10);
	position: absolute;
	bottom: 0;
	left: 0;
}
#footer_pagetop {
	position: fixed;
	bottom: 15px;
	right: 15px;
	z-index: 99;
	display: none;
}
#footer_pagetop a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 100%;
	background: var(--c01);
}
#footer_pagetop a img {
	width: 20px;
}
@media screen and (max-width: 767px) {
	#footer {
		padding: 430px 15px 30px;
	}
	#footer::before {
		height: 400px;
	}
	#footer_frame {
		min-height: inherit;
	}
	#footer_contact {
		line-height: 1.5;
		margin: 0 0 30px;
	}
	#footer_address {
		position: relative;
		top: auto;
		right: auto;
		justify-content: center;
	}
	#footer_address h1 {
		width: 50px;
		margin: 0 0 0 15px;
	}
	#footer_address h1 a {
		display: block;
	}
	#footer_address p {
		writing-mode: vertical-rl;
		font-size: var(--f14);
	}
	#footer_address p strong {
		font-weight: 400;
	}
	#footer_address dl {
		writing-mode: vertical-rl;
	}
	#footer_address dl dt {
		font-size: var(--f20);
		margin: 0 30px 0 0;
	}
	#footer_address dl dd {
		font-size: var(--f14);
	}
	#footer_link {
		position: absolute;
		bottom: 40px;
		left: 0;
		font-size: var(--f14);
	}
	#footer_link ul li {
		display: inline-block;
		margin: 0 15px 0 0;
	}
	#footer small {
		padding: 30px 0 0;
		width: 100%;
		display: block;
		position: relative;
		bottom: auto;
		left: auto;
	}
}

/* ------------------------
	contents
------------------------ */
.title_main *,
.title01 *,
.title02 *,
.title03 * {
	transition: all 0.2s ease;
}
.title_main {
	height: 800px;
	padding: 0 655px 0 0;
	background-repeat: no-repeat;
	background-position: right center;
	background-size: 655px auto;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	margin: 0 0 80px;
}
.title_main::before {
	display: block;
	content: "";
	width: 502px;
	height: 139px;
	position: absolute;
	bottom: -80px;
	right: 470px;
	z-index: 2;
	background: url("../images/common/title_cloud.svg") center center / cover no-repeat;
}
.title_main h2 {
	writing-mode: vertical-rl;
	font-size: var(--f30);
	letter-spacing: 0.75rem;
	font-weight: 400;
}
.title01 {
	display: flex;
	flex-direction: row-reverse;
	justify-content: flex-start;
	position: relative;
}
.title01.title01_re {
	flex-direction: row;
}
.title01 strong {
	display: block;
	writing-mode: vertical-rl;
	font-size: var(--f66);
	font-weight: 400;
	color: var(--c01);
	white-space: nowrap;
	line-height: 1.5;
}
.title01 span {
	display: block;
	writing-mode: vertical-rl;
	font-size: var(--f14);
	line-height: 1.5;
	padding: 15px 5px 0 0;
}
.title01.title01_re span {
	padding: 15px 0 0 5px;
}
.title02 {
	font-size: var(--f40);
	line-height: 1.5;
	font-weight: 500;
	color: var(--c01);
	margin: 0 0 15px;
	position: relative;
}
.title03 {
	color: var(--c01);
	font-size: var(--f20);
	font-weight: 500;
	line-height: 1.5;
	margin: 40px 0 0;
}
.button_more_box {
	margin: 30px 0 0;
}
.buttom_more,
a.buttom_more {
	display: inline-block;
	color: #000;
	font-size: var(--f16);
	line-height: 1.3;
	text-decoration: underline;
	text-decoration-color: #ccc;
	padding: 0 30px 0 0;
	position: relative;
}
.buttom_more::before,
a.buttom_more::before {
	display: block;
	content: "";
	width: 22px;
	height: 22px;
	background: url("../images/common/icon_right.svg") no-repeat center center / cover;
	position: absolute;
	top: 0x;
	right: 0;
}
@media screen and (max-width: 1024px) {
	.title_main {
		height: 50vw;
		min-height: 330px;
		padding: 0 48% 0 0;
		background-size: auto 100%;
		margin: 0 0 40px;
	}
	.title_main::before {
		width: 251px;
		height: 70px;
		bottom: -35px;
		right: 37%;
	}
	.title_main h2 {
		font-size: var(--f20);
	}
	.title01 {
	}
	.title01 strong {
		font-size: var(--f35);
	}
	.title01 span {
		font-size: var(--f10);
		line-height: 1.5;
		padding: 10px 5px 0 0;
	}
	.title01.title01_re span {
		padding: 10px 0 0 5px;
	}
	.title02 {
		font-size: var(--f30);
	}
	.title03 {
		font-size: var(--f20);
		margin: 30px 0 0;
	}
	.button_more_box {
		margin: 30px 0 0;
	}
	.buttom_more,
	a.buttom_more {
		font-size: var(--f14);
	}
}
@media screen and (max-width: 767px) {
	.title_main {
		height: 330px;
		padding: 0 270px 0 0;
	}
	.title_main::before {
		width: 195px;
		height: 54px;
		bottom: -26px;
		right: 170px;
	}
}

/* ------------------------
	index
------------------------ */
body.index #main {
	background: url("../images/index/main_letter01.svg") no-repeat calc(100% + 40px) 1150px;
}
body.index .contents_box {
	max-width: inherit;
	padding: 0;
}
.index_first {
	height: 800px;
	background: url("../images/index/first_back.jpg") no-repeat 60% center / cover;
	position: relative;
	margin: 0 0 80px;
}
.index_first_back {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.index_first_catch {
	position: absolute;
	bottom: -10px;
	left: 6%;
}
.index_about .contents_box {
	min-height: 900px;
}
.index_about_box {
	display: flex;
	flex-flow: row-reverse nowrap;
	justify-content: space-between;
}
.index_about_title {
	flex: none;
	padding: 0 0 0 26%;
}
.index_about_image {
	width: min(47%, 600px);
	position: relative;
}
.index_about_image::before {
	display: block;
	content: "";
	width: 502px;
	height: 139px;
	background: url("../images/index/main_cloud01.svg") no-repeat center center / cover;
	position: absolute;
	top: -80px;
	right: -340px;
	z-index: -1;
}
.index_about_image img {
	border-radius: 10px;
}
.index_about_text {
	display: inline-block;
	position: absolute;
	bottom: 0;
	left: 52%;
}
.index_about_text .title02 img {
	position: absolute;
	top: -165px;
	left: -30px;
	z-index: -1;
}
.index_fujisanhachigome_catch {
	min-height: 700px;
	position: relative;
	z-index: 2;
}
.index_fujisanhachigome_box {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	width: 82%;
}
.index_fujisanhachigome_image {
	width: min(36%, 380px);
	position: relative;
}
.index_fujisanhachigome_image::before {
	display: block;
	content: "";
	width: 543px;
	height: 145px;
	background: url("../images/index/main_cloud02.svg") no-repeat center center / cover;
	position: absolute;
	bottom: -75px;
	left: -240px;
	z-index: -1;
}
.index_fujisanhachigome_image img {
	border-radius: 10px;
}
.index_fujisanhachigome_title .title01 small {
	position: absolute;
	top: -150px;
	left: 225px;
	z-index: -1;
	width: 128px;
}
.index_fujisanhachigome_text {
	position: absolute;
	bottom: 0;
	left: 30%;
}
.index_fujisanhachigome_wrap {
	width: 95%;
	margin: -280px auto 200px;
	position: relative;
}
.index_fujisanhachigome_wrap div:nth-of-type(1) {
	width: min(30%, 440px);
	margin: 0 0 80px auto;
}
.index_fujisanhachigome_wrap div:nth-of-type(1) img,
.index_fujisanhachigome_wrap div:nth-of-type(3) img {
	border-radius: 10px;
}
.index_fujisanhachigome_wrap div:nth-of-type(3) {
	width: min(42%, 470px);
	position: relative;
	z-index: -1;
}
.index_fujisanhachigome_wrap div:nth-of-type(3)::before {
	display: block;
	content: "";
	width: 607px;
	height: 140px;
	background: url("../images/index/main_cloud03.svg") no-repeat center center / cover;
	position: absolute;
	bottom: -110px;
	left: -100px;
	z-index: -1;
}
.index_fujisanhachigome_wrap div:nth-of-type(2) {
	width: min(30%, 360px);
	position: absolute;
	bottom: 4%;
	left: 28%;
}
.index_fujisanhachigome_wrap div:nth-of-type(2) img {
	mix-blend-mode: multiply;
	transform: translate3d(0,0,0);
}
.index_fujisanhachigome_view {
	height: 950px;
	background: url("../images/index/fujisanhachigome_image04.jpg") no-repeat center center / cover;
	position: relative;
}
.index_fujisanhachigome_view div {
	width: min(24%, 300px);
	position: absolute;
	bottom: 800px;
	right: 3%;
}
.index_fujisanhachigome_view div img {
	mix-blend-mode: multiply;
	transform: translate3d(0,0,0);
}
.index_news {
	position: relative;
}
.index_news::before {
	display: block;
	content: "";
	width: 591px;
	height: 180px;
	background: url("../images/index/main_cloud04.svg") no-repeat center center / cover;
	position: absolute;
	top: -80px;
	left: 50px;
	z-index: -1;
}
.index_news::after {
	display: block;
	content: "";
	width: 746px;
	height: 172px;
	background: url("../images/index/main_cloud05.svg") no-repeat center center / cover;
	position: absolute;
	bottom: -100px;
	right: -60px;
	z-index: -1;
}
.index_news_box {
	display: flex;
	justify-content: space-between;
}
.index_news_title {
	width: 180px;
	flex: none;
}
.index_news_title .title01 {
	flex-direction: column;
	align-items: center;
}
.index_news_title .title01 strong {
	font-size: var(--f40);
	letter-spacing: 0.75rem;
}
.index_news_title .title01 span {
	padding: 30px 0 0;
}
.index_news_title .title01 small {
	position: absolute;
	top: -45px;
	left: 90px;
	z-index: -1;
}
.index_news_list {
	width: calc(100% - 180px);
}
.index_news_list .news_post {
	width: 320px;
	padding: 0 10px;
}
.index_news_list .news_post a {
	padding: 0 0 30px;
	background: url("../images/common/icon_right.svg") no-repeat left bottom / 22px auto;
}
.slick-prev, .slick-next {
	top: 190px !important;
	width: 60px !important;
	height: 60px !important;
	margin: 0 !important;
}
.slick-prev {
	left: -20px !important;
}
.slick-next {
	right: 15px !important;
}
.slick-prev:before, .slick-next:before {
	content: "" !important;
	display: block !important;
	width: 60px !important;
	height: 0 !important;
	padding: 60px 0 0 !important;
	overflow: hidden !important;
	background: url("../images/common/icon_left.svg") no-repeat center center / cover;
	transition: all 0.2s ease;
}
.slick-next:before {
	background: url("../images/common/icon_right.svg") no-repeat center center / cover;
}
.index_news_list .button_more_box {
	width: 85%;
	margin: 0 auto;
	text-align: right;
}
@media screen and (max-width: 1024px) {
	body.index #main {
		background: url("../images/index/main_letter01.svg") no-repeat calc(100% + 40px) 650px / 200px auto;
	}
	.index_first {
		height: 380px;
		background: url("../images/index/first_back01.jpg") no-repeat 50% center / cover;
		margin: 0 0 40px;
	}
	.index_first_catch {
		width: 60%;
	}
	.index_first_catch img {
		max-height: 300px;
	}
	.index_about .contents_box {
		min-height: inherit;
	}
	.index_about_title {
		padding: 0;
	}
	.index_about_image {
		width: calc(100% - 170px);
	}
	.index_about_image::before {
		width: 223px;
		height: 62px;
		top: -50px;
		right: -100px;
	}
	.index_about_text {
		display: block;
		position: relative;
		bottom: auto;
		left: auto;
		padding: 110px 15px 0;
	}
	.index_about_text .title02 img {
		width: 40px;
		top: -95px;
		left: -10px;
		z-index: -1;
	}
	.index_fujisanhachigome_catch {
		min-height: inherit;
	}
	.index_fujisanhachigome_box {
		align-items: flex-end;
		width: auto;
		padding: 0 0 100px 15px;
	}
	.index_fujisanhachigome_image {
		width: calc(100% - 170px);
		position: relative;
		bottom: -40px;
	}
	.index_fujisanhachigome_image::before {
		width: 273px;
		height: 73px;
		bottom: -40px;
		left: -140px;
	}
	.index_fujisanhachigome_title .title01 small {
		width: 48px;
		top: -55px;
		left: 120px;
	}
	.index_fujisanhachigome_text {
		position: relative;
		bottom: auto;
		left: auto;
		padding: 0 15px 80px;
	}
	.index_fujisanhachigome_wrap {
		width: auto;
		margin: auto;
		padding: 0 15px;
		margin: 0 0 75vw;
	}
	.index_fujisanhachigome_wrap div:nth-of-type(1) {
		width: 70%;
		margin: 0 0 55vw auto;
	}
	.index_fujisanhachigome_wrap div:nth-of-type(3) {
		width: 80%;
	}
	.index_fujisanhachigome_wrap div:nth-of-type(3)::before {
		width: 388px;
		height: 89px;
		bottom: -80px;
		left: -110px;
	}
	.index_fujisanhachigome_wrap div:nth-of-type(2) {
		width: 50%;
		bottom: 55vw;
		left: 25px;
	}
	.index_fujisanhachigome_view {
		height: 440px;
		background: url("../images/index/fujisanhachigome_image04.jpg") no-repeat 65% center / cover;
	}
	.index_fujisanhachigome_view div {
		width: 40%;
		bottom: 350px;
		right: 3%;
	}
	.index_news::before {
		width: 388px;
		height: 118px;
		top: 25px;
		left: 55px;
	}
	.index_news::after {
		width: 447px;
		height: 103px;
		bottom: -60px;
		right: -170px;
	}
	.index_news_box {
		display: block;
	}
	.index_news_title {
		width: auto;
	}
	.index_news_title .title01 {
		display: block;
		padding: 0 15px 30px;
	}
	.index_news_title .title01 strong {
		font-size: var(--f30);
		writing-mode: inherit;
	}
	.index_news_title .title01 span {
		padding: 5px 0 0;
		writing-mode: inherit;
	}
	.index_news_title .title01 small {
		width: 30px;
		top: -40px;
		left: 75px;
		z-index: -1;
	}
	.index_news_list {
		width: auto;
		padding: 0 0 0 5px;
	}
	.slick-prev, .slick-next {
		top: 190px !important;
		width: 40px !important;
		height: 40px !important;
	}
	.slick-prev {
		left: 0 !important;
	}
	.slick-next {
		right: 5px !important;
	}
	.slick-prev:before, .slick-next:before {
		width: 40px !important;
		padding: 40px 0 0 !important;
	}
	.index_news_list .button_more_box {
		width: auto;
		padding: 0 15px;
	}
}

/* ------------------------
	about
------------------------ */
body.about #main {
	background: url("../images/about/main_letter01.svg") no-repeat calc(100% + 40px) 800px;
}
body.about .title_main {
	background-image: url("../images/about/title_back.jpg");
}
.feaature_box {
	display: flex;
	justify-content: space-between;
	position: relative;
}
.feaature_box.feaature_box_re {
	flex-direction: row-reverse;
}
.feature_title {
	flex: 0 0 auto;
	max-width: 290px;
	display: flex;
	flex-flow: column nowrap;
	align-items: center;
}
.feature_title div {
	margin: 80px 0 0;
}
.feature_title div img {
	margin: 30px 0 0;
	border-radius: 10px;
}
.feature_text {
	max-width: 550px;
	padding: 0 0 0 30px;
}
.feaature_box_re .feature_text {
	padding: 0 30px 0 0;
}
.about_shinto::before {
	display: block;
	content: "";
	width: 543px;
	height: 145px;
	background: url("../images/about/main_cloud01.svg") no-repeat center center / cover;
	position: absolute;
	bottom: -75px;
	left: calc(50% - 270px);
	z-index: -1;
}
.about_fujisanshinko .feaature_box::before {
	display: block;
	content: "";
	width: 607px;
	height: 140px;
	background: url("../images/about/main_cloud02.svg") no-repeat center center / cover;
	position: absolute;
	top: 1500px;
	right: -120px;
	z-index: -1;
}
.about_fujisanshinko_view {
	height: 950px;
	background: url("../images/about/fujisanshinko_image03.jpg") no-repeat center center / cover;
	position: relative;
	margin: 160px 0 0;
}
.about_fujisanshinko_view div {
	width: min(24%, 300px);
	position: absolute;
	bottom: 900px;
	right: 3%;
}
.about_fujisanshinko_view div img {
	mix-blend-mode: multiply;
	transform: translate3d(0,0,0);
}
.about_history .feaature_box::before {
	display: block;
	content: "";
	width: 746px;
	height: 172px;
	background: url("../images/about/main_cloud03.svg") no-repeat center center / cover;
	position: absolute;
	top: -130px;
	right: -320px;
	z-index: -1;
}
.about_history::before {
	display: block;
	content: "";
	width: 284px;
	height: 1190px;
	background: url("../images/about/main_letter02.svg") no-repeat center center / cover;
	position: absolute;
	top: -330px;
	left: calc(50% - 570px);
	z-index: -1;
}
@media screen and (max-width: 1024px) {
	body.about #main {
		background: url("../images/about/main_letter01.svg") no-repeat calc(100% + 40px) 400px / 200px auto;
	}
	.feaature_box {
		display: block;
	}
	.feature_title {
		max-width: 320px;
		display: flex;
		flex-flow: row nowrap;
		justify-content: space-between;
		align-items: flex-start;
		margin: 0 auto 30px;
	}
	.feaature_box_re .feature_title {
		flex-flow: row-reverse nowrap;
	}
	.feature_title div {
		width: 160px;
		margin: 0;
	}
	.feature_title div img {
		margin: 0 0 15px;
	}
	.feature_text {
		max-width: inherit;
		padding: 0 !important;
	}
	.about_shinto::before {
		width: 380px;
		height: 101px;
		bottom: -75px;
		left: calc(50% - 270px);
	}
	.about_fujisanshinko .feaature_box::before {
		width: 432px;
		height: 100px;
		top: auto;
		bottom: -120px;
		right: auto;
		left: -100px;
	}
	.about_fujisanshinko_view {
		height: 440px;
		margin: 360px 0 0;
	}
	.about_fujisanshinko_view div {
		width: 230px;
		bottom: 350px;
		right: 3%;
	}
	.about_history .feaature_box::before {
		width: 360px;
		height: 83px;
		top: -80px;
		right: auto;
		left: calc(50% - 80px);
	}
	.about_history::before {
		width: 196px;
		height: 821px;
		top: 240px;
		left: -15px;
	}
}

/* ------------------------
	fujisanhachigome
------------------------ */
body.fujisanhachigome #main {
	background: url("../images/fujisanhachigome/main_letter01.svg") no-repeat calc(100% + 40px) 800px;
}
body.fujisanhachigome .title_main {
	background-image: url("../images/fujisanhachigome/title_back.jpg");
}
.fujisanhachigome_text:nth-of-type(2) {
	margin: 120px 0 0;
}
.fujisanhachigome_text img {
	border-radius: 10px;
}
.fujisanhachigome_text#tenhaigu p {
	position: relative;
}
.fujisanhachigome_text#tenhaigu p:nth-of-type(1)::before {
	display: block;
	content: "";
	width: 543px;
	height: 145px;
	background: url("../images/fujisanhachigome/main_cloud01.svg") no-repeat center center / cover;
	position: absolute;
	top: 800px;
	left: -280px;
	z-index: -1;
}
.fujisanhachigome_text#karasuboushi::before {
	display: block;
	content: "";
	width: 607px;
	height: 140px;
	background: url("../images/fujisanhachigome/main_cloud02.svg") no-repeat center center / cover;
	position: absolute;
	bottom: -100px;
	right: -200px;
	z-index: -1;
}
@media screen and (max-width: 1024px) {
	body.fujisanhachigome #main {
		background: url("../images/fujisanhachigome/main_letter01.svg") no-repeat calc(100% + 40px) 400px / 200px auto;
	}
	body.fujisanhachigome .feature_title {
		max-width: inherit;
		justify-content: center;
	}
	.fujisanhachigome_text:nth-of-type(2) {
		margin: 60px 0 0;
	}
	.fujisanhachigome_text#tenhaigu p:nth-of-type(1)::before {
		width: 270px;
		height: 72px;
		top: auto;
		bottom: -50px;
		left: -30px;
	}
	.fujisanhachigome_text#karasuboushi::before {
		width: 300px;
		height: 69px;
		bottom: -50px;
		right: -30px;
	}
}

/* ------------------------
	post
------------------------ */
body.news #main {
	background: url("../images/news/main_letter01.svg") no-repeat calc(100% + 40px) 400px;
}
body.news #main::after {
	display: block;
	content: "";
	width: 502px;
	height: 139px;
	background: url("../images/common/footer_cloud.svg") no-repeat center center / cover;
	position: absolute;
	bottom: -50px;
	right: -180px;
	z-index: -1;
}
body.news .title_main {
	height: 500px;
	margin: 0;
}
.news_wrap {
	padding-top: 40px;
}
.news_box {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}
.news_box::after{
	content: "";
	display: block;
	width: 31.25%;
}
.news_post {
	width: 31.25%;
	margin: 0 0 30px;
}
.news_post a {
	display: block;
	line-height: 1.5;
	position: relative;
	color: #000;
}
.news_post a div {
	margin: 0 0 10px;
}
.news_post a div img {
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 15/19;
	border-radius: 10px;
}
.news_post a dl dt:nth-of-type(1) {
	font-size: var(--f12);
}
.news_post a dl dt:nth-of-type(2) {
	margin: 5px 0;
}
.news_post a dl dd:nth-of-type(1) {
	font-size: var(--f12);
}
.news_post a dl dd:nth-of-type(2) {
	display: inline-block;
	padding: 15px 30px 0 0;
	text-decoration: underline;
	text-decoration-color: #ccc;
	position: relative;
	background: url("../images/common/icon_right.svg") no-repeat right bottom / 22px auto;
}
.title_date {
	font-size: var(--f14);
}
.title_news {
	font-size: var(--f30);
	line-height: 1.3;
	font-weight: 400;
	margin: 0 0 30px;
}
.news_contents {
	max-width: 820px;
	margin: 0 auto;
}
@media screen and (max-width: 1024px) {
	body.news #main {
		background: url("../images/news/main_letter01.svg") no-repeat calc(100% + 40px) 200px / 200px auto;
	}
	body.news #main::after {
		width: 250px;
		height: 69px;
		bottom: -23px;
		right: -85px;
	}
	body.news .title_main {
		height: 250px;
		min-height: 250px;
	}
	.news_wrap {
		padding-top: 0;
	}
	.title_date {
		font-size: var(--f12);
	}
	.title_news {
		font-size: var(--f20);
	}
}
@media screen and (max-width: 767px) {
	.news_post {
		width: min(100%, 460px);
		margin: 0 auto 30px;
	}
	.title_post {
		font-size: var(--f22);
		margin: 0 0 30px;
	}
}

/* ------------------------
	access
------------------------ */
body.access #main {
	background: url("../images/access/main_letter01.svg") no-repeat calc(100% + 40px) 400px;
}
body.access #main::after {
	display: block;
	content: "";
	width: 502px;
	height: 139px;
	background: url("../images/common/footer_cloud.svg") no-repeat center center / cover;
	position: absolute;
	bottom: -50px;
	right: -180px;
	z-index: -1;
}
body.access .title_main {
	height: 500px;
	margin: 0;
}
.access_wrap {
	padding-top: 40px;
}
.access_box {
	max-width: 820px;
	margin: 0 auto;
}
.access_address dl dt {
	font-size: var(--f40);
	font-weight: 400;
	color: var(--c01);
	line-height: 1.3;
	margin: 30px 0 5px;
}
.access_image {
	max-width: 550px;
	margin: 80px auto 0;
}
.access_image img {
	border-radius: 10px;
}
@media screen and (max-width: 1024px) {
	body.access #main {
		background: url("../images/access/main_letter01.svg") no-repeat calc(100% + 40px) 200px / 200px auto;
	}
	body.access #main::after {
		width: 250px;
		height: 69px;
		bottom: -23px;
		right: -85px;
	}
	body.access .title_main {
		height: 250px;
		min-height: 250px;
	}
	.access_wrap {
		padding-top: 0;
	}
	.access_map iframe {
		height: 250px;
	}
	.access_address dl dt {
		font-size: var(--f30);
		margin: 15px 0 5px;
	}
	.access_image {
		margin: 40px 0 0;
	}
}

/* ------------------------
	animation
------------------------ */
.fadein_blur {
	opacity: 0;
	transition: opacity 0.5s, transform 0.5s;
	filter: blur(5px);
}
.fadein_blur.show {
	opacity: 1 !important;
	animation: fadein_blur 0.5s both ease-in;
}
@keyframes fadein_blur {
	from {
		filter: blur(5px);
	}
	to {
		filter: blur(0);
	}
}
.fadein_up {
	opacity: 0;
	transform: translate(0, 20px);
	transition: opacity 1.0s, transform 1.0s;
}
.fadein_up.show {
	transform: translate(0, 0) !important;
	opacity: 1 !important;
}
.fadein_left {
	opacity: 0;
	transform: translate(-20px, 0);
	transition: opacity 1.0s, transform 1.0s;
}
.fadein_left.show {
	transform: translate(0, 0) !important;
	opacity: 1 !important;
}
.fadein_right {
	opacity: 0;
	transform: translate(20px, 0);
	transition: opacity 1.0s, transform 1.0s;
}
.fadein_right.show {
	transform: translate(0, 0) !important;
	opacity: 1 !important;
}
.fadein_text {
	opacity: 0;
}
.fadein_text span {
	opacity: 0;
}
.inview[data-delay="s000"] {
	transition-delay: 0s;
}
.inview[data-delay="s025"] {
	transition-delay: 0.25s;
}
.inview[data-delay="s050"] {
	transition-delay: 0.5s;
}
.inview[data-delay="s075"] {
	transition-delay: 0.75s;
}
.inview[data-delay="s100"] {
	transition-delay: 1.0s;
}
.inview[data-delay="s125"] {
	transition-delay: 1.25s;
}
@media screen and (max-width: 1024px) {
	.inview[data-delay="s025"],
	.inview[data-delay="s050"],
	.inview[data-delay="s075"],
	.inview[data-delay="s100"],
	.inview[data-delay="s125"] {
		transition-delay: 0s;
	}
}



/* ------------------------
	会員アイコン
------------------------ */
#header_member {
	display: block;
	width: 60px;
	height: 60px;
	position: absolute;
	bottom: 70px;
	right: 30px;
	z-index: 1001;
	background: #fff;
}
#header_member a {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
	color: #000;
}
#header_member svg {
	display: block;
	width: 26px;
	height: 26px;
	fill: #000;
	position: absolute;
	top: 11px;
	left: 50%;
	transform: translateX(-50%);
}
#header_member span {
	display: block;
	width: 100%;
	text-align: center;
	font-size: var(--f10);
	line-height: 20px;
	position: absolute;
	bottom: 0;
	left: 0;
}
@media screen and (max-width: 767px) {
	#header_member {
		bottom: 0;
		right: 60px;
	}
}
/* 低い画面高では縦ナビが会員・メニューと重なるため畳む（リンクは開閉メニュー内にあり） */
@media screen and (min-width: 768px) and (max-height: 680px) {
	#header_link {
		display: none;
	}
}

/* ===== 過去のお知らせ（アーカイブ一覧） ===== */
.archive_lead {
	margin: 0 0 30px;
	line-height: 1.9;
}
.archive_years {
	margin: 0 0 50px;
	padding: 18px 20px;
	background: #f7f6f3;
	line-height: 2.2;
}
.archive_years a {
	color: #3E1F78;
	text-decoration: none;
	white-space: nowrap;
}
.archive_years a:hover {
	text-decoration: underline;
}
.archive_year {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 50px 0 14px;
	padding: 0 0 10px;
	border-bottom: 1px solid #ddd;
	font-size: var(--f22);
	font-weight: normal;
	scroll-margin-top: 100px;
}
.archive_year span {
	font-size: var(--f12);
	color: #888;
}
.archive_list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.archive_list li {
	border-bottom: 1px solid #eee;
}
.archive_list a {
	display: flex;
	gap: 24px;
	padding: 16px 4px;
	color: #000;
	text-decoration: none;
	line-height: 1.7;
}
.archive_list a:hover {
	background: #faf9f6;
}
.archive_list time {
	flex: none;
	width: 8.5em;
	color: #888;
	font-size: var(--f14);
}
.news_detail .news_contents img {
	max-width: 100%;
	height: auto;
}
.news_detail .news_contents figure {
	margin: 20px 0;
}
.news_detail .news_contents .wp-caption-text {
	font-size: var(--f12);
	color: #666;
	margin: 6px 0 0;
}
@media screen and (max-width: 767px) {
	.archive_year {
		margin: 36px 0 10px;
		scroll-margin-top: 70px;
	}
	.archive_list a {
		display: block;
		padding: 14px 2px;
	}
	.archive_list time {
		display: block;
		width: auto;
		margin: 0 0 3px;
	}
}

/* ===== フッターの「過去のお知らせ」 ===== */
#footer_nav {
	margin: 22px 0 0;
	font-size: var(--f14);
}
#footer_nav a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0 0 4px;
	color: #000;
	text-decoration: none;
	border-bottom: 1px solid #ccc;
}
#footer_nav a::after {
	content: "";
	width: 18px;
	height: 18px;
	background: url("../images/common/icon_right.svg") no-repeat center center / contain;
}
#footer_nav a:hover {
	border-bottom-color: #3E1F78;
}
@media screen and (max-width: 767px) {
	#footer_nav {
		margin: 18px 0 0;
	}
}
