@charset "UTF-8";
/* =====================================================
						scss設定用ファイル
 =====================================================*/
html {
		font-size: 62.5%;
		-ms-scroll-chaining: none;
		    overscroll-behavior: none;
		scroll-behavior: smooth;
		scroll-padding-top: 70px;
}

@view-transition {
		navigation: auto;
}
body {
		margin: 0;
		overflow-x: hidden;
}
body._open {
		overflow: hidden;
}

main {
		display: block;
}

a {
		background-color: transparent;
}

b,
strong {
		font-weight: bolder;
}

small {
		font-size: 80%;
}

sub,
sup {
		font-size: 75%;
		line-height: 0;
		position: relative;
		vertical-align: baseline;
}

sub {
		bottom: -0.25em;
}

sup {
		top: -0.5em;
}

img {
		border-style: none;
		width: 100%;
		max-width: 100%;
		height: auto;
		-o-object-fit: cover;
		   object-fit: cover;
}

/* Forms
========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
		font-family: inherit; /* 1 */
		font-size: 100%; /* 1 */
		line-height: 1.15; /* 1 */
		margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
input[type=text],
textarea {
		font-size: 1.6rem;
}

button,
input { /* 1 */
		overflow: visible;
}

button,
select { /* 1 */
		text-transform: none;
}

button {
		border-style: none;
		padding: 0;
		background-color: unset;
}

textarea {
		overflow: auto;
}

[type=checkbox],
[type=radio] {
		-webkit-box-sizing: border-box;
		        box-sizing: border-box; /* 1 */
		padding: 0; /* 2 */
}

address {
		font-style: normal;
}

/* ======================================================
	reset
========================================================= */
* {
		-webkit-box-sizing: border-box;
		        box-sizing: border-box;
}

p, ul, ol, h1, h2, h3, h4, h5, dl, dt, dd, figure, div {
		margin: 0;
		padding: 0;
		font-weight: inherit;
		font-style: inherit;
		font-size: 100%;
		text-align: justify;
		word-break: break-all;
		word-wrap: break-word;
		overflow-wrap: break-word;
}

ol, ul {
		list-style: none;
}

a {
		text-decoration: none;
}
a:focus {
		-webkit-box-shadow: none;
		        box-shadow: none;
		outline: none;
}

address {
		font-style: normal;
}

select {
		outline: none;
		text-indent: 0.01px;
		text-overflow: "";
		vertical-align: middle;
		font-size: inherit;
		color: inherit;
		background: none transparent;
}

summary {
		list-style: none;
}
summary::-webkit-details-marker {
		display: none;
}

:root {
		interpolate-size: allow-keywords; /* サイズキーワードによるアニメーションを許可 */
}

details::details-content {
		content-visibility: unset;
		display: block grid;
}
@media (prefers-reduced-motion: no-preference) {
		details::details-content {
				-webkit-transition-duration: 0.5s;
				        transition-duration: 0.5s;
				-webkit-transition-property: grid-template-rows;
				transition-property: grid-template-rows;
				transition-property: grid-template-rows, -ms-grid-rows;
		}
}
details:not([open])::details-content {
		-ms-grid-rows: 0fr;
		grid-template-rows: 0fr;
}
details[open]::details-content {
		-ms-grid-rows: 1fr;
		grid-template-rows: 1fr;
}

dialog {
		position: fixed;
		inset: 0;
		padding: 0;
		margin: 0;
		border: none;
		z-index: 9999;
		opacity: 0;
		-webkit-transition: opacity 0.3s, overlay 0.3s allow-discrete, display 0.3s allow-discrete;
		transition: opacity 0.3s, overlay 0.3s allow-discrete, display 0.3s allow-discrete;
}
dialog::-ms-backdrop {
		opacity: 0;
		-ms-transition: opacity 0.3s, overlay 0.3s allow-discrete, display 0.3s allow-discrete;
		transition: opacity 0.3s, overlay 0.3s allow-discrete, display 0.3s allow-discrete;
}
dialog::backdrop {
		opacity: 0;
		-webkit-transition: opacity 0.3s, overlay 0.3s allow-discrete, display 0.3s allow-discrete;
		transition: opacity 0.3s, overlay 0.3s allow-discrete, display 0.3s allow-discrete;
}
dialog[open]::-ms-backdrop {
		opacity: 1;
}
dialog[open], dialog[open]::backdrop {
		opacity: 1;
}

@starting-style {
		dialog[open]::-ms-backdrop {
				opacity: 0;
		}
		dialog[open],
		dialog[open]::backdrop {
				opacity: 0;
		}
}
@media screen and (max-width: 767px) {
		*:focus {
				outline: none;
		}
}
/* フォント定義域 */
/* よく使う400〜700を定義  variableフォントはなんかバグりやすいのでやめる。うまい書き方が見つかったら試す*/
@font-face {
		font-family: "Noto Serif JP";
		src: url(../fonts/NotoSerifJP-SemiBold.woff2) format("woff2");
		font-weight: 600;
		font-display: swap;
}
@font-face {
		font-family: "Noto Serif JP";
		src: url(../fonts/NotoSerifJP-Bold.woff2) format("woff2");
		font-weight: 700;
		font-display: swap;
}
@font-face {
		font-family: "Noto Serif JP";
		src: url(../fonts/NotoSerifJP-Medium.woff2) format("woff2");
		font-weight: 500;
		font-display: swap;
}
@font-face {
		font-family: "Noto Serif JP";
		src: url(../fonts/NotoSerifJP-Regular.woff2) format("woff2");
		font-weight: 400;
		font-display: swap;
}
@font-face {
		font-family: "Noto Serif JP";
		src: url(../fonts/NotoSerifJP-Light.woff2) format("woff2");
		font-weight: 300;
		font-display: swap;
}
@font-face {
		font-family: "Noto Serif JP";
		src: url(../fonts/NotoSerifJP-ExtraLight.woff2) format("woff2");
		font-weight: 200;
		font-display: swap;
}
body {
		font-family: "Noto Serif JP";
		font-smoothing: antialiased;
		-webkit-font-smoothing: antialiased;
		-moz-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
		font-size: 1.4rem;
		font-weight: 400;
		line-height: 1.5;
		color: #222222;
		background-color: #FAF8F4;
}
@media screen and (min-width: 768px) {
		body {
				font-size: 1.5rem;
		}
}
@media screen and (min-width: 1200px) {
		body {
				font-size: 1.6rem;
		}
}

/* =====================================================
							全ページ共通パーツ用ファイル
 =====================================================*/
#footer {
		border-top: solid 1px #DBD9CD;
}

.footer_inner {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
}
@media screen and (min-width: 768px) {
		.footer_inner {
				-webkit-box-orient: horizontal;
				-webkit-box-direction: normal;
				    -ms-flex-direction: row;
				        flex-direction: row;
				max-width: 1070px;
				margin-inline: auto;
		}
}

.footer_leftblock {
		display: contents;
}
@media screen and (min-width: 768px) {
		.footer_leftblock {
				display: block;
				padding-block: 60px;
				padding-inline: 80px 30px;
				-webkit-box-flex: 1;
				    -ms-flex: 1;
				        flex: 1;
				border-right: solid 1px #DBD9CD;
				max-width: 430px;
		}
}
@media screen and (min-width: 992px) {
		.footer_leftblock {
				padding-inline: 0 90px;
				padding-block: 80px;
		}
}

.footer_infowrap {
		-webkit-box-ordinal-group: 2;
		    -ms-flex-order: 1;
		        order: 1;
		padding-inline: 20px;
		padding-block: 60px;
}
@media screen and (min-width: 425px) {
		.footer_infowrap {
				padding-inline: 30px;
		}
}
@media screen and (min-width: 768px) {
		.footer_infowrap {
				padding-inline: 40px;
		}
}
@media screen and (min-width: 992px) {
		.footer_infowrap {
				padding-inline: 60px;
		}
}
@media screen and (min-width: 768px) {
		.footer_infowrap {
				display: contents;
		}
}

.footer_logo {
		width: 256px;
		-webkit-transition: opacity 0.3s;
		transition: opacity 0.3s;
		display: block;
}
@media screen and (min-width: 768px) {
		.footer_logo {
				width: 218px;
		}
}
@media (hover: hover) and (pointer: fine) {
		.footer_logo:hover {
				opacity: 0.7;
		}
}

.footer_text {
		font-size: 1.5rem;
		line-height: 1.8;
		-webkit-margin-before: 35px;
		        margin-block-start: 35px;
		color: currentColor;
}
@media screen and (min-width: 768px) {
		.footer_text {
				font-size: 1.3rem;
		}
}
.footer_text a {
		color: #222222;
}
@media (hover: hover) and (pointer: fine) {
		.footer_text a:hover {
				pointer-events: none;
		}
}

.footer_address {
		-webkit-margin-before: 15px;
		        margin-block-start: 15px;
		font-size: 1.5rem;
		line-height: 1.8;
}
@media screen and (min-width: 768px) {
		.footer_address {
				font-size: 1.3rem;
				-webkit-margin-before: 5px;
				        margin-block-start: 5px;
		}
}
.footer_address + .footer_text {
		margin: 0;
}
@media screen and (min-width: 992px) {
		.footer_address br {
				display: none;
		}
}

.footer_bottom_block {
		-webkit-box-ordinal-group: 4;
		    -ms-flex-order: 3;
		        order: 3;
		padding-inline: 20px;
		border-top: solid 1px #DBD9CD;
		padding-block: 30px 70px;
}
@media screen and (min-width: 425px) {
		.footer_bottom_block {
				padding-inline: 30px;
		}
}
@media screen and (min-width: 768px) {
		.footer_bottom_block {
				padding-inline: 40px;
		}
}
@media screen and (min-width: 992px) {
		.footer_bottom_block {
				padding-inline: 60px;
		}
}
@media screen and (min-width: 768px) {
		.footer_bottom_block {
				padding: 0;
				border-top: none;
		}
}

.footer_link_list {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		gap: 40px;
}
@media screen and (min-width: 768px) {
		.footer_link_list {
				-webkit-margin-before: 25px;
				        margin-block-start: 25px;
		}
}

.footer_link a {
		position: relative;
		font-size: 1.3rem;
		line-height: 1.5;
		color: #222222;
		display: block;
		-webkit-padding-start: 12px;
		        padding-inline-start: 12px;
		-webkit-transition: color 0.3s, border-color 0.3s;
		transition: color 0.3s, border-color 0.3s;
}
.footer_link a::before {
		content: "";
		position: absolute;
		top: 0.6em;
		left: 0;
		width: 4px;
		height: 4px;
		border-top: solid 1px #222222;
		border-right: solid 1px #222222;
		rotate: 45deg;
		-webkit-transition: border-color 0.3s, translate 0.3s;
		transition: border-color 0.3s, translate 0.3s;
}
@media (hover: hover) and (pointer: fine) {
		.footer_link a:hover {
				color: #008C64;
		}
		.footer_link a:hover::before {
				border-color: #008C64;
				translate: 3px 0;
		}
}

.copyright {
		font-size: 1.3rem;
		line-height: 1.4;
		font-weight: 300;
		-webkit-margin-before: 30px;
		        margin-block-start: 30px;
}

.footer_rightblock {
		-webkit-box-ordinal-group: 3;
		    -ms-flex-order: 2;
		        order: 2;
		padding-inline: 20px;
		border-top: solid 1px #DBD9CD;
		padding-block: 30px;
}
@media screen and (min-width: 425px) {
		.footer_rightblock {
				padding-inline: 30px;
		}
}
@media screen and (min-width: 768px) {
		.footer_rightblock {
				padding-inline: 40px;
		}
}
@media screen and (min-width: 992px) {
		.footer_rightblock {
				padding-inline: 60px;
		}
}
@media screen and (min-width: 768px) {
		.footer_rightblock {
				padding: 60px 30px 60px 30px;
				width: 50%;
				border-top: none;
		}
}
@media screen and (min-width: 992px) {
		.footer_rightblock {
				padding-inline: 90px 0;
				padding-block: 80px;
				max-width: 620px;
				-webkit-box-flex: 1;
				    -ms-flex: 1;
				        flex: 1;
		}
}

.footer_nav_list {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: 1fr 15px 1fr;
		grid-template-columns: repeat(2, 1fr);
		gap: 20px 15px;
}
@media screen and (min-width: 992px) {
		.footer_nav_list {
				gap: 20px;
		}
}

.footer_nav a {
		position: relative;
		display: block;
		font-size: 1.8rem;
		line-height: 1.5;
		padding-bottom: 15px;
		border-bottom: solid 1px #222222;
		color: #222222;
		-webkit-padding-start: 12px;
		        padding-inline-start: 12px;
		-webkit-transition: border-color 0.3s, color 0.3s;
		transition: border-color 0.3s, color 0.3s;
}
@media screen and (min-width: 768px) {
		.footer_nav a {
				font-size: 1.5rem;
				-webkit-padding-after: 10px;
				        padding-block-end: 10px;
		}
}
.footer_nav a::before {
		content: "";
		position: absolute;
		top: 0.8em;
		left: 0;
		width: 4px;
		height: 4px;
		border-top: solid 1px #222222;
		border-right: solid 1px #222222;
		rotate: 45deg;
		-webkit-transition: border-color 0.3s, translate 0.3s;
		transition: border-color 0.3s, translate 0.3s;
}
@media screen and (min-width: 768px) {
		.footer_nav a::before {
				top: 0.6em;
		}
}
@media (hover: hover) and (pointer: fine) {
		.footer_nav a:hover {
				color: #008C64;
				border-color: #008C64;
		}
		.footer_nav a:hover::before {
				border-color: #008C64;
				translate: 3px 0;
		}
}

.footer_contact_btn {
		position: relative;
		display: block;
		border-radius: 100vmax;
		background-color: #222222;
		-webkit-margin-before: 30px;
		        margin-block-start: 30px;
		padding-block: 15px;
		text-align: center;
		border: solid 1px #222222;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
}
@media screen and (min-width: 768px) {
		.footer_contact_btn {
				max-width: 260px;
		}
}
.footer_contact_btn span {
		position: relative;
		text-align: center;
		color: #DBD9CD;
		font-size: 1.5rem;
		line-height: 1.5;
		-webkit-padding-start: 30px;
		        padding-inline-start: 30px;
		-webkit-transition: color 0.3s;
		transition: color 0.3s;
}
.footer_contact_btn span::before {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0px;
		translate: 0% -10%;
		width: 22px;
		height: 20px;
		-webkit-mask-image: url(../img/common/contact_icon.svg);
		        mask-image: url(../img/common/contact_icon.svg);
		background-color: #DBD9CD;
		-webkit-mask-size: cover;
		        mask-size: cover;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
}
@media (hover: hover) and (pointer: fine) {
		.footer_contact_btn:hover {
				background-color: #faf8f4;
		}
		.footer_contact_btn:hover span {
				color: #222222;
		}
		.footer_contact_btn:hover span::before {
				background-color: #222222;
		}
}

#global_nav {
		position: fixed;
		top: 0px;
		z-index: 9999;
		right: 0;
		width: 100%;
		background-color: #FAF8F4;
		translate: 100% 0;
		-webkit-transition: translate 0.3s;
		transition: translate 0.3s;
		height: 100vh;
}
@media screen and (min-width: 768px) {
		#global_nav {
				max-width: 370px;
		}
}
#global_nav::before {
		content: "";
		position: absolute;
		bottom: 20px;
		left: 50%;
		translate: -50% 0;
		width: 100%;
		height: auto;
		aspect-ratio: 390/166;
		background-image: url(../img/common/global_nav_bg.webp);
		background-size: cover;
		background-position: center;
		max-width: 390px;
}
#global_nav._open {
		translate: 0% 0;
}

.global_nav_bg {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(0, 0, 0, 0.5);
		z-index: 9998;
		opacity: 0;
		visibility: hidden;
		-webkit-transition: opacity 0.3s, visibility 0.3s;
		transition: opacity 0.3s, visibility 0.3s;
}
.global_nav_bg._open {
		opacity: 1;
		visibility: visible;
}

.global_nav_inner {
		position: relative;
		width: 100%;
		padding: 125px 40px 150px;
		max-height: calc(100svh + env(safe-area-inset-bottom, 0px));
		overflow-y: auto;
		-ms-scroll-chaining: none;
		    overscroll-behavior: contain;
}
@media screen and (min-width: 768px) {
		.global_nav_inner {
				padding: 125px 50px 150px;
		}
}

.global_nav_list {
		display: -ms-grid;
		display: grid;
		gap: 15px;
}

.global_nav_item a {
		position: relative;
		display: block;
		font-size: 1.6rem;
		line-height: 1.8;
		color: #222222;
		-webkit-transition: color 0.3s;
		transition: color 0.3s;
		border-bottom: solid 1px #222222;
		-webkit-padding-after: 20px;
		        padding-block-end: 20px;
		transition: color 0.3s;
}
.global_nav_item a::before {
		content: "";
		position: absolute;
		top: 0.8em;
		right: 10px;
		width: 6px;
		height: 6px;
		border-top: solid 1px #222222;
		border-right: solid 1px #222222;
		rotate: 45deg;
		-webkit-transition: color 0.3s, translate 0.3s;
		transition: color 0.3s, translate 0.3s;
}
@media (hover: hover) and (pointer: fine) {
		.global_nav_item a:hover {
				color: #008C64;
		}
		.global_nav_item a:hover::before {
				border-color: #008C64;
				translate: 3px 0;
		}
}

.header_contact_button {
		display: block;
		-webkit-margin-before: 20px;
		        margin-block-start: 20px;
		border-radius: 6px;
		background-color: #222222;
		padding-block: 27px;
		width: 100%;
		text-align: center;
		border: solid 1px #222222;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
		max-width: 350px;
		margin-inline: auto;
}
.header_contact_button span {
		position: relative;
		color: #fff;
		font-size: 1.8rem;
		font-weight: bold;
		line-height: 1.5;
		-webkit-padding-start: 24px;
		        padding-inline-start: 24px;
		-webkit-transition: color 0.3s;
		transition: color 0.3s;
		letter-spacing: 0.02em;
}
.header_contact_button span::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		width: 18px;
		height: 20px;
		-webkit-mask-image: url(../img/common/contact_icon.svg);
		        mask-image: url(../img/common/contact_icon.svg);
		-webkit-mask-size: cover;
		        mask-size: cover;
		background-color: #DBD9CD;
		translate: 0 -50%;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
}
@media (hover: hover) and (pointer: fine) {
		.header_contact_button:hover {
				background-color: #FAF8F4;
		}
		.header_contact_button:hover span {
				color: #222222;
		}
		.header_contact_button:hover span::before {
				background-color: #222222;
		}
}

.global_nav_title {
		font-size: 2.4rem;
		font-weight: 500;
		color: #9D9B94;
		text-align: center;
		-webkit-margin-before: 25px;
		        margin-block-start: 25px;
}

.global_nav_text {
		font-size: 1.2rem;
		font-weight: 600;
		text-align: center;
		color: #9D9B94;
}

header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		z-index: 10000;
		padding-block: 25px;
		padding-inline: 25px;
}
@media screen and (min-width: 768px) {
		header {
				padding-inline: 30px;
		}
}

.header_logo {
		width: 148px;
		margin-inline: auto;
		display: block;
}
@media screen and (min-width: 768px) {
		.header_logo {
				-webkit-margin-end: 106px;
				        margin-inline-end: 106px;
		}
}

.hamberger {
		position: absolute;
		top: 30px;
		right: 20px;
		width: 30px;
		height: 22px;
}
.hamberger span {
		position: absolute;
		background-color: #222222;
		width: 30px;
		height: 2px;
		display: block;
		left: 50%;
		translate: -50% 0;
		-webkit-transition: top 0.3s, rotate 0.3s, background-color 0.3s;
		transition: top 0.3s, rotate 0.3s, background-color 0.3s;
}
.hamberger span:nth-of-type(1) {
		top: 0;
}
.hamberger span:nth-of-type(2) {
		top: 50%;
}
.hamberger span:nth-of-type(3) {
		top: 100%;
}
.hamberger._open span:nth-of-type(1) {
		top: 50%;
		rotate: 45deg;
}
.hamberger._open span:nth-of-type(2) {
		opacity: 0;
}
.hamberger._open span:nth-of-type(3) {
		top: 50%;
		rotate: -45deg;
}
@media (hover: hover) and (pointer: fine) {
		.hamberger:hover {
				cursor: pointer;
		}
		.hamberger:hover span {
				background-color: #008C64;
		}
}

/* =====================================================
							TOPのFV専用
 =====================================================*/
#loading {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		-ms-scroll-chaining: none;
		    overscroll-behavior: contain;
		z-index: 9999;
		background-color: #FAF8F4;
		-webkit-transition: opacity 1s, visibility 1s;
		transition: opacity 1s, visibility 1s;
		padding-block: 135px 0;
}
#loading._close {
		opacity: 0;
		visibility: hidden;
}

.loading_text {
		font-size: 2.5rem;
		text-align: center;
		line-height: 2;
		opacity: 0;
}
@media screen and (min-width: 768px) {
		.loading_text {
				font-size: 3.5rem;
		}
}
@media screen and (min-width: 992px) {
		.loading_text {
				font-size: 5rem;
		}
}

.loading_img {
		width: 260px;
		-webkit-margin-before: 30px;
		        margin-block-start: 30px;
		margin-inline: auto;
		opacity: 0;
		-webkit-transition: opacity 0.5s;
		transition: opacity 0.5s;
}
@media screen and (min-width: 768px) {
		.loading_img {
				width: 300px;
		}
}
.loading_img._show {
		opacity: 1;
}

.loading_logo {
		width: 150px;
		-webkit-margin-before: 40px;
		        margin-block-start: 40px;
		margin-inline: auto;
		opacity: 0;
		-webkit-transition: opacity 0.5s;
		transition: opacity 0.5s;
}
@media screen and (min-width: 768px) {
		.loading_logo {
				width: 200px;
		}
}
.loading_logo._show {
		opacity: 1;
}

#toppage {
		position: relative;
		padding-inline: 20px;
		padding-block: 110px calc(15px + env(safe-area-inset-bottom));
		overflow: hidden;
}
@media screen and (min-width: 425px) {
		#toppage {
				padding-inline: 30px;
		}
}
@media screen and (min-width: 768px) {
		#toppage {
				padding-inline: 40px;
		}
}
@media screen and (min-width: 992px) {
		#toppage {
				padding-inline: 60px;
		}
}
@media screen and (min-width: 992px) {
		#toppage {
				padding-block: 12.7314814815vh 0;
				height: 100vh;
		}
}
@media screen and (min-width: 992px) {
		#toppage .top_text_block {
				position: absolute;
				top: 30px;
				left: 30px;
		}
}
#toppage .top_text {
		font-size: 1.5rem;
		line-height: 1.8;
		text-align: center;
}
@media screen and (min-width: 992px) {
		#toppage .top_text {
				font-size: 1.3rem;
				text-align: left;
		}
}
#toppage .top_text + .top_text {
		-webkit-margin-before: 1lh;
		        margin-block-start: 1lh;
}
#toppage .page_title {
		-webkit-margin-before: 40px;
		        margin-block-start: 40px;
}
@media screen and (min-width: 992px) {
		#toppage .page_title {
				-webkit-margin-before: 0;
				        margin-block-start: 0;
		}
}
#toppage .page_title .page_title_en {
		font-size: 4rem;
		font-weight: 500;
		line-height: 1;
		text-align: center;
}
@media screen and (min-width: 768px) {
		#toppage .page_title .page_title_en {
				font-size: 5rem;
		}
}
#toppage .page_title h1 {
		font-size: 1.3rem;
		line-height: 1;
		text-align: center;
		font-weight: 600;
		-webkit-margin-before: 25px;
		        margin-block-start: 25px;
}
@media screen and (min-width: 768px) {
		#toppage .page_title h1 {
				font-size: 1.6rem;
				-webkit-margin-before: 30px;
				        margin-block-start: 30px;
		}
}
#toppage .scroll {
		position: relative;
		text-align: center;
		-webkit-margin-before: 30px;
		        margin-block-start: 30px;
		font-size: 1.6rem;
		-webkit-padding-after: 10px;
		        padding-block-end: 10px;
		width: 100%;
}
@media screen and (min-width: 992px) {
		#toppage .scroll {
				display: none;
		}
}
#toppage .scroll::before {
		content: "";
		position: absolute;
		bottom: 0;
		left: 50%;
		translate: -50% 0%;
		width: 6px;
		height: 6px;
		border-bottom: solid 1px #9D9B94;
		border-left: solid 1px #9D9B94;
		rotate: -45deg;
}

/* =====================================================
						共通パーツ
=====================================================*/
.breadcrumb {
		width: 100%;
		max-width: 100vw;
		position: absolute;
		top: 95px;
		left: 0;
		overflow: hidden;
		padding-inline: 20px;
}
@media screen and (min-width: 425px) {
		.breadcrumb {
				padding-inline: 30px;
		}
}
@media screen and (min-width: 768px) {
		.breadcrumb {
				padding-inline: 40px;
		}
}
@media screen and (min-width: 992px) {
		.breadcrumb {
				padding-inline: 60px;
		}
}
@media screen and (min-width: 992px) {
		.breadcrumb {
				top: 30px;
		}
}
.breadcrumb::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		width: 50px;
		height: 100%;
		background: -webkit-gradient(linear, right top, left top, from(#faf8f4), to(rgba(250, 248, 244, 0)));
		background: linear-gradient(270deg, #faf8f4 0%, rgba(250, 248, 244, 0) 100%);
}
@media screen and (min-width: 992px) {
		.breadcrumb::before {
				display: none;
		}
}

.breadcrumb_list {
		position: relative;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		gap: 5px 15px;
		-ms-flex-wrap: nowrap;
		    flex-wrap: nowrap;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
}

.breadcrumb_sparate {
		display: block;
		width: 4px;
		height: 4px;
		position: relative;
		place-items: center;
		place-content: center;
}
.breadcrumb_sparate::before {
		content: "";
		position: absolute;
		top: 0%;
		left: 0%;
		width: 4px;
		height: 4px;
		border-top: solid 1px #222222;
		border-right: solid 1px #222222;
		rotate: 45deg;
}

.breadcrumb_item {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
}
.breadcrumb_item:last-child {
		-webkit-box-flex: 1;
		    -ms-flex: 1;
		        flex: 1;
}

.breadcrumb_ttl {
		font-size: 1.2rem;
		text-wrap: nowrap;
}

.breadcrumb_link {
		color: #222222;
}

.keyword_button {
		color: #008C64;
		text-decoration: underline;
		-webkit-transition: opacity 0.3s;
		transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
		.keyword_button:hover {
				cursor: pointer;
				opacity: 0.7;
		}
}

.fixed_keyword_box {
		position: fixed;
		top: 100px;
		right: 10px;
		width: 200px;
		display: none;
		padding: 20px 15px;
		border: solid 1px #222222;
		opacity: 0;
}
@media screen and (min-width: 992px) {
		.fixed_keyword_box {
				display: block;
				right: 10px;
		}
}
@media screen and (min-width: 1150px) {
		.fixed_keyword_box {
				right: min(100vw - 435px, 250px);
				translate: 100% 0;
		}
}
@media screen and (min-width: 1300px) {
		.fixed_keyword_box {
				translate: 100% 0;
				right: calc((100vw - 800px) / 2 - 50px);
		}
}
.fixed_keyword_box._open {
		opacity: 1;
}

.close_button {
		position: absolute;
		top: 10px;
		right: 10px;
		width: 15px;
		height: 12px;
}
.close_button::before, .close_button::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		translate: -50% -50%;
		width: 15px;
		height: 1px;
		background-color: #DBD9CD;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
}
.close_button::before {
		rotate: 45deg;
}
.close_button::after {
		rotate: -45deg;
}
@media (hover: hover) and (pointer: fine) {
		.close_button:hover {
				cursor: pointer;
		}
		.close_button:hover::before, .close_button:hover::after {
				background-color: #222222;
		}
}

.keyword_title {
		font-size: 1.4rem;
		font-weight: 700;
}

.keyword_text {
		-webkit-margin-before: 10px;
		        margin-block-start: 10px;
		font-size: 1.4rem;
}

#keyword_modal {
		background-color: transparent;
		padding-inline: 20px;
		padding-block: 120px 60px;
		max-width: unset;
		inset: 0;
		width: 100%;
		height: 100vh;
}
@media screen and (min-width: 425px) {
		#keyword_modal {
				padding-inline: 30px;
		}
}
@media screen and (min-width: 768px) {
		#keyword_modal {
				padding-inline: 40px;
		}
}
@media screen and (min-width: 992px) {
		#keyword_modal {
				padding-inline: 60px;
		}
}
#keyword_modal::-ms-backdrop {
		background-color: rgba(0, 0, 0, 0.5);
}
#keyword_modal::backdrop {
		background-color: rgba(0, 0, 0, 0.5);
}

.keyword_modal_inner {
		position: relative;
		background-color: #ffffff;
		padding: 40px 25px;
		border: solid 1px #222222;
		max-width: 400px;
		width: 100%;
		margin-inline: auto;
}

.keyword_modal_title {
		font-size: 1.6rem;
		font-weight: 700;
		-webkit-padding-after: 10px;
		        padding-block-end: 10px;
		border-bottom: solid 1px #222222;
}

.keyword_modal_text {
		-webkit-margin-before: 15px;
		        margin-block-start: 15px;
		font-size: 1.6rem;
		line-height: 1.8;
}

.keyword_modal_close {
		position: absolute;
		top: 0px;
		right: 0px;
		width: 30px;
		height: 22px;
		translate: 0 calc(-100% - 15px);
}
.keyword_modal_close::before, .keyword_modal_close::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		translate: -50% -50%;
		width: 30px;
		height: 2px;
		background-color: #DBD9CD;
}
.keyword_modal_close::before {
		rotate: 45deg;
}
.keyword_modal_close::after {
		rotate: -45deg;
}

@-webkit-keyframes slide-in {
		from {
				scale: 0.5;
		}
		to {
				scale: 1;
		}
}

@keyframes slide-in {
		from {
				scale: 0.5;
		}
		to {
				scale: 1;
		}
}
@-webkit-keyframes slide-out {
		from {
				scale: 1;
		}
		to {
				scale: 0.5;
		}
}
@keyframes slide-out {
		from {
				scale: 1;
		}
		to {
				scale: 0.5;
		}
}
@view-transition {
		navigation: auto;
}
::view-transition-old(image01) {
		-webkit-animation: slide-out 0.3s ease-out;
		        animation: slide-out 0.3s ease-out;
}

::view-transition-new(image01) {
		-webkit-animation: slide-in 0.3s ease-out;
		        animation: slide-in 0.3s ease-out;
}

.contents_inner {
		margin-inline: auto;
		max-width: 800px;
}

#keyword_nav {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 1000;
		width: 100%;
		translate: 0 var(--keyword-nav-height);
		-webkit-transition: translate 0.3s;
		transition: translate 0.3s;
}
@media screen and (min-width: 768px) {
		#keyword_nav {
				top: 80px;
				translate: -100% 0;
				width: -webkit-fit-content;
				width: -moz-fit-content;
				width: fit-content;
				height: -webkit-fit-content;
				height: -moz-fit-content;
				height: fit-content;
		}
}
@media screen and (min-width: 992px) {
		#keyword_nav {
				top: 110px;
		}
}
#keyword_nav._open {
		translate: 0 0;
}
#keyword_nav._open .keyword_nav_head::before {
		rotate: 180deg;
}
.keyword_nav_head {
		position: relative;
		background-color: #222222;
		padding-block: 20px 15px;
		text-align: center;
		font-size: 1.8rem;
		line-height: 1.8;
		color: #ffffff;
		border-radius: 10px 10px 0 0;
		display: block;
		width: 100%;
		border: solid 1px #222222;
		-webkit-transition: background-color 0.3s, color 0.3s;
		transition: background-color 0.3s, color 0.3s;
}
@media screen and (min-width: 768px) {
		.keyword_nav_head {
				position: absolute;
				bottom: 0;
				right: 0;
				translate: 100% 0;
				padding: 20px 15px;
				-webkit-writing-mode: vertical-rl;
				    -ms-writing-mode: tb-rl;
				        writing-mode: vertical-rl;
				width: -webkit-fit-content;
				width: -moz-fit-content;
				width: fit-content;
				text-orientation: upright;
				border-radius: 0 10px 10px 0;
				letter-spacing: 0.1em;
		}
}
@media screen and (min-width: 992px) {
		.keyword_nav_head {
				bottom: unset;
				top: 0;
		}
}
.keyword_nav_head::before {
		content: "";
		position: absolute;
		width: 10px;
		height: 6px;
		-webkit-mask-image: url("../img/common/radial-arrow.svg");
		        mask-image: url("../img/common/radial-arrow.svg");
		-webkit-mask-size: cover;
		        mask-size: cover;
		background-color: #9D9B94;
		top: 15px;
		left: 50%;
		translate: -50% 0;
		-webkit-transition: rotate 0.3s;
		transition: rotate 0.3s;
}
@media screen and (min-width: 768px) {
		.keyword_nav_head::before {
				display: none;
		}
}
@media (hover: hover) and (pointer: fine) {
		.keyword_nav_head:hover {
				cursor: pointer;
				background-color: #FAF8F4;
				color: #222222;
		}
}

.keyword_nav_body {
		overflow: auto;
		padding: 15px 50px 35px;
		background-color: #FAF8F4;
		max-height: calc(var(--keyword-nav-height) - 60px);
		overflow-y: auto;
		-ms-scroll-chaining: none;
		    overscroll-behavior: contain;
		border: solid 1px #222222;
}
@media screen and (min-width: 768px) {
		.keyword_nav_body {
				padding-inline: 40px;
				max-height: 100vh;
				max-width: 328px;
		}
}

.keyword_nav_item a {
		position: relative;
		font-size: 2rem;
		font-weight: 400;
		line-height: 1.5;
		color: #222222;
		border-bottom: solid 1px #222222;
		display: block;
		padding-block: 15px;
		-webkit-transition: color 0.3s;
		transition: color 0.3s;
		-webkit-padding-end: 20px;
		        padding-inline-end: 20px;
}
@media screen and (min-width: 768px) {
		.keyword_nav_item a {
				font-size: 1.5rem;
		}
}
.keyword_nav_item a::before {
		content: "";
		position: absolute;
		top: 1.5em;
		right: 0;
		width: 6px;
		height: 6px;
		border-bottom: solid 1px #222222;
		border-right: solid 1px #222222;
		rotate: 45deg;
		translate: 0 -50%;
		-webkit-transition: translate 0.3s, border-color 0.3s;
		transition: translate 0.3s, border-color 0.3s;
}
@media (hover: hover) and (pointer: fine) {
		.keyword_nav_item a:hover {
				color: #008C64;
		}
		.keyword_nav_item a:hover::before {
				border-color: #008C64;
				translate: 0 calc(-50% + 3px);
		}
}
/*# sourceMappingURL=style.css.map */