@charset "UTF-8";

[data-animation^=fade-in]:not(.animated) {
	opacity: 0;
}

.js-has-pseudo [csstools-has-2j-2s-2p-38-2p-19-34-2p-36-2p-30-30-2p-3c-2l-1m-32-33-38-14-2j-2s-2p-38-2p-19-34-2p-36-2p-30-30-2p-3c-19-33-3a-2t-36-2u-30-33-3b-1p-38-36-39-2t-2l-15-1m-2w-2p-37-14-1q-w-2x-31-2v-15]:not(.does-not-exist):not(does-not-exist) {
	overflow: hidden;
}

[data-parallax]:not([data-parallax-overflow=true]):has(> img) {
	overflow: hidden;
}

@keyframes fade-in {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes fade-in-left {
	0% {
		opacity: 0;
		transform: translateX(12px);
	}

	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes fade-in-right {
	0% {
		opacity: 0;
		transform: translateX(-12px);
	}

	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes fade-in-up {
	0% {
		opacity: 0;
		transform: translateY(8px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

:root {
	--font-fallback: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	--font-base: "Zen Kaku Gothic New", var(--font-fallback);
	--font-heading: var(--font-base);
	--font-english: "Inter", var(--font-base);
	--font-icon: "icomoon";
	--font-size-xxs: 1rem;
	--font-size-xs: 1.2rem;
	--font-size-sm: 1.4rem;
	--font-size-md: 1.6rem;
	--font-size-lg: 1.8rem;
	--font-size-xl: 2.1rem;
	--font-size-xxl: 2.8rem;
	--font-size-xxxl: 3.2rem;
	--font-weight-regular: 400;
	--font-weight-bold: 700;
}

@media (max-width: 525px) {
	:root {
		--font-size-xs: 1.1rem;
		--font-size-sm: 1.3rem;
		--font-size-md: 1.4rem;
		--font-size-lg: 1.6rem;
		--font-size-xl: 1.9rem;
		--font-size-xxl: 2.5rem;
		--font-size-xxxl: 3rem;
	}
}

:root {
	--ease-in-sine: cubic-bezier(0.47, 0, 0.745, 0.715);
	--ease-out-sine: cubic-bezier(0.39, 0.575, 0.565, 1);
	--ease-in-out-sine: cubic-bezier(0.445, 0.05, 0.55, 0.95);
	--ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
	--ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
	--ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
	--ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
	--ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
	--ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
	--ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
	--ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
	--ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
	--ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
	--ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
	--ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
	--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-in-out-expo: cubic-bezier(1, 0, 0, 1);
	--ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335);
	--ease-out-circ: cubic-bezier(0.075, 0.82, 0.165, 1);
	--ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86);
	--ease-in-back: cubic-bezier(0.6, -0.28, 0.735, 0.045);
	--ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);
	--ease-in-out-back: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

:root {
	--z-index-header: 3;
	--section-gap-xl: clamp(120px, 35vw, 200px);
	--section-gap-lg: clamp(80px, 25vw, 160px);
	--section-gap-md: clamp(50px, 20vw, 120px);
	--section-gap-sm: clamp(36px, 11vw, 80px);
	--section-gap-xs: clamp(26px, 6vw, 46px);
	--section-gap: var(--section-gap-md);
	--header-gap-lg: clamp(36px, 11vw, 80px);
	--header-gap-md: clamp(26px, 6vw, 46px);
	--header-gap-sm: clamp(20px, 5vw, 36px);
	--header-gap-xs: clamp(17px, 2vw, 24px);
	--header-gap: var(--header-gap-md);
	--radius-md: 5px;
	--radius-lg: 15px;
}

/* -----------------------------
 ブレークポイント
----------------------------- */
:root {
	--breakpoint-xs: 360;
	--breakpoint-xs-px: 360px;
	--breakpoint-sm: 525;
	--breakpoint-sm-px: 525px;
	--breakpoint-md: 768;
	--breakpoint-md-px: 768px;
	--breakpoint-lg: 1024;
	--breakpoint-lg-px: 1024px;
	--breakpoint-xl: 1280;
	--breakpoint-xl-px: 1280px;
	--breakpoint-sp: 525;
	--breakpoint-sp-px: 525px;
	--breakpoint-tablet: 768;
	--breakpoint-tablet-px: 768px;
	--breakpoint-pc: 1024;
	--breakpoint-pc-px: 1024px;
	--breakpoint-wide: 1280;
	--breakpoint-wide-px: 1280px;
}

/* -----------------------------
 カラーパレット
----------------------------- */
:root {
	--color-noir: #47331e;
	--color-noir-rgb: 71, 51, 30;
	--color-taupe: #47331e;
	--color-taupe-rgb: 71, 51, 30;
	--color-hippie-blue: #319955;
	--color-hippie-blue-rgb: 49, 153, 85;
	--color-white: #fff;
	--color-white-rgb: 255, 255, 255;
	--color-pearl: #e2e0db;
	--color-pearl-rgb: 226, 224, 219;
	--color-milk: #bccf51;
	--color-milk-rgb: 188, 207, 81;
}

/* -----------------------------
 テーマ色
----------------------------- */
:root {
	--color-primary: var(--color-hippie-blue);
	--color-primary-rgb: var(--color-hippie-blue-rgb);
	--color-secondary: var(--color-milk);
	--color-secondary-rgb: var(--color-milk-rgb);
	--color-secondary-alt: var(--color-pearl);
	--color-secondary-alt-rgb: var(--color-pearl-rgb);
	--color-bg: rgb(249, 247, 237);
	--color-bg-rgb: var(--color-white-rgb);
	--color-heading: var(--color-noir);
	--color-heading-rgb: var(--color-noir-rgb);
	--color-text: var(--color-taupe);
	--color-text-rgb: var(--color-taupe-rgb);
	--color-text-contrast: var(--color-white);
	--color-text-contrast-rgb: var(--color-white-rgb);
}

html {
	font-size: 62.5%;
	overflow-y: scroll;
	scroll-behavior: smooth;
}

body {
	width: 100%;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: var(--font-size-md);
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.1em;
	color: var(--color-text);
	background: var(--color-bg);
}

img {
	display: inline-block;
	max-width: 100%;
	height: auto;
}

em,
address {
	font-style: normal;
}

.wow {
	animation-duration: 1.15s;
	animation-delay: 0.1s;
	animation-fill-mode: forwards;
}

.wow.fadeIn {
	opacity: 0;
}

.slick-slide {
	outline: none;
}

.simplebar-content-wrapper {
	outline: none;
}

.l-breadcrumb {
	--arrow-size: 0.37em;
	--arrow-border-width: 1px;
}

.l-breadcrumb__list {
	display: flex;
	align-items: center;
	padding-left: 0.75em;
}

.l-breadcrumb__item {
	display: flex;
	align-items: center;
}

.l-breadcrumb__item:nth-child(n+2)::before {
	display: inline-block;
	padding: calc(var(--arrow-size) / 2);
	margin-top: 0.15em;
	margin-right: 1.2em;
	margin-left: 0.9em;
	content: "";
	border: solid var(--color-text);
	border-width: 0 var(--arrow-border-width) var(--arrow-border-width) 0;
	transform: rotate(-45deg);
}

.l-breadcrumb__item a {
	color: var(--color-primary);
	transition: opacity 0.2s;
}

.l-breadcrumb__item a:hover {
	opacity: 0.7;
}

.l-common__intro-bg {
	--progress: 0;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	opacity: calc(var(--progress) * 0.75);
	-webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent);
	mask-image: linear-gradient(to bottom, #000 70%, transparent);
}

.l-common__intro-bg > video {
	width: 100%;
	height: auto;
	max-height: 900px;
	object-fit: cover;
}

:root {
	--container-width: 1420px;
	--container-width-md: 1320px;
	--container-width-lg: 1620px;
	--container-padding: 120px;
	--container-padding-left: var(--container-padding);
	--container-padding-right: var(--container-padding);
}

@media (max-width: 1024px) {
	:root {
		--container-padding: 64px;
	}
}

@media (max-width: 768px) {
	:root {
		--container-padding: 42px;
	}
}

@media (max-width: 525px) {
	:root {
		--container-padding: 20px;
	}
}

.l-container {
	width: var(--container-width);
	max-width: 100vw;
	padding-right: var(--container-padding-right);
	padding-left: var(--container-padding-left);
	margin-right: auto;
	margin-left: auto;
}

.l-container--full {
	width: unset;
}

.l-container--md {
	width: var(--container-width-md);
}

.l-container--lg {
	width: var(--container-width-lg);
}

:root {
	--header-height: 90px;
}

h1,
h2,
h3,
h4,
h5,
h6,
strong,
th {
	font-weight: normal;
}

a {
	color: #47331e;
	outline: none;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	text-decoration: none;
}

a:visited {
	color: #47331e;
}

a:hover {
	color: #47331e;
	text-decoration: none;
}

a:active {
	color: #47331e;
}

::-moz-selection {
	color: #fff;
	background: #319955;
}

::selection {
	color: #fff;
	background: #319955;
}

::-moz-selection {
	color: #fff;
	background: #319955;
}

/* ---------------------------------------------------------
 *	Common
 *---------------------------------------------------------- */

.clear {
	clear: both;
}

.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

#link_01,
#link_02,
#link_03,
#link_04,
#link_05,
#link_06,
#link_07,
#link_08,
#link_09,
#link_10 {
	margin-top: -120px;
	padding-top: 120px;
}

@media screen and (min-width: 481px) {
	.pc_none {
		display: none;
	}

	.sp_none {
		display: block;
	}
}

@media screen and (max-width: 480px) {
	.pc_none {
		display: block !important;
	}

	.sp_none {
		display: none !important;
	}

#link_01,
#link_02,
#link_03,
#link_04,
#link_05,
#link_06,
#link_07,
#link_08,
#link_09,
#link_10 {
	margin-top: -70px;
	padding-top: 70px;
}
}

/* ---------------------------------------------------------
 *	Side nav
 *---------------------------------------------------------- */

#sideNav {
	position: fixed;
	right: -410px;
	top: calc(50% - 307.5px);
	z-index: 5;
}

#sideNav ul li a {
	color: #fff;
	font-size: 18px;
	font-family: "Zen Maru Gothic", serif;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-align: center;
	writing-mode: vertical-rl;
	text-orientation: upright;
	display: block;
	width: 60px;
	height: 175px;
	line-height: 60px;
	border-radius: 10px 0 0 10px;
	transition: 0.3s ease;
}

#sideNav ul li a:hover {
	opacity: 0.8;
}

#sideNav ul li.web a {
	background: #319955;
	margin-bottom: 10px;
	margin-left: 0;
}

#sideNav ul li.web a span {
	background: url(../../assets_top/image/ico_sp_01.svg) no-repeat center top;
	background-size: 16px;
	padding-top: 38px;
}

#sideNav ul li.web.interview a span {
	background: url(../../assets_top/image/ico_note_01.svg) no-repeat left 4px top;
	background-size: 22px;
	padding-top: 34px;
}

#sideNav ul li.time {
	display: flex;
	position: relative;
	right: 0;
	transition: 0.3s ease;
}

#sideNav ul li.time.active {
	right: 400px;
	z-index: 2;
}

#sideNav ul li.time a {
	background: #bccf51;
}

#sideNav ul li.time a span {
	background: url(../../assets_top/image/ico_hours_01.svg) no-repeat center top;
	background-size: 26px;
	padding-top: 36px;
}

#sideNav ul li.time .schedule {
	color: #fff;
	background: #bccf51;
	width: 410px;
	height: 265px;
	padding: 10px;
}

#sideNav ul li.time .schedule table {
	text-align: center;
	width: 100%;
	margin-bottom: 10px;
}

#sideNav ul li.time .schedule table th {
	padding: 5px;
}

#sideNav ul li.time .schedule table td {
	padding: 5px;
}

#sideNav ul li.time .schedule table thead {
	border-radius: 5px 5px 0 0;
}

#sideNav ul li.time .schedule table thead th {
	letter-spacing: 0.15em;
	padding: 5px;
}

#sideNav ul li.time .schedule table thead th:first-child {
	border-radius: 5px 0 0 0;
}

#sideNav ul li.time .schedule table thead th:last-child {
	border-radius: 0 5px 0 0;
}

#sideNav ul li.time .schedule table tbody {
	border-radius: 0 0 5px 5px;
}

#sideNav ul li.time .schedule table tbody tr:first-child th {
	padding: 5px 5px 0 5px;
}

#sideNav ul li.time .schedule table tbody tr:last-child th {
	border-radius: 0 0 0 5px;
}

#sideNav ul li.time .schedule table tbody tr:first-child td {
	padding: 5px 5px 0 5px;
}

#sideNav ul li.time .schedule dl {
	display: flex;
}

#sideNav ul li.line {
	position: relative;
	z-index: 1;
}

#sideNav ul li.line a {
	background: url(../../assets_top/image/ico_line_01.svg) no-repeat center center, #319955;
	background-size: 26px;
	margin-top: -80px;
	height: 60px;
}

@media screen and (max-width: 480px) {
	#sideNav {
		display: none;
	}
}

/* ---------------------------------------------------------
 *	SP nav
 *---------------------------------------------------------- */

#spNavArea {
	display: block;
	position: fixed;
	width: 100%;
	top: 0;
	left: 0;
	user-select: none;
	z-index: 9998;
}

#spNavArea div#spNavBody {
	transition: 0.3s ease;
	overflow: auto;
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	z-index: 9998;
	background: #f4f0db;
	padding: 165px 20px 20px;
	pointer-events: none;
}

#spNavArea .logo {
	width: 404px;
	position: absolute;
	left: 30px;
	top: 15px;
}

#spNavArea div#spNavBody nav ul {
	font-family: "Zen Maru Gothic", serif;
	font-weight: 500;
	margin-bottom: 30px;
	display: flex;
	flex-wrap: wrap;
}

#spNavArea div#spNavBody nav ul li {
	margin-bottom: 10px;
	width: 50%;
}

#spNavArea div#spNavBody nav ul li a {
	display: block;
	transition: 0.3s ease;
}

#spNavArea.navOpen div#spNavBody {
	opacity: 1;
	pointer-events: auto;
}

#spNavArea div#spNavBody .inner {
	max-width: 560px;
	margin: 0 auto;
}

#spNavArea .navBtn {
	opacity: 0;
	position: absolute;
	cursor: pointer;
	z-index: 9999;
	width: 60px;
	height: 60px;
	top: 30px;
	right: 30px;
	transition: 0.3s ease;
	pointer-events: none;
	background: #319955;
	padding: 20px 0 0 15px;
}

#spNavArea .navBtn span {
	display: block;
	height: 2px;
	width: 100%;
	background: #fff;
	transition: all .3s ease-in-out;
	width: 30px;
}

#spNavArea.navOpen .navBtn span:nth-of-type(1) {
	transform: translateY(8px) translateX(0) rotate(45deg);
}

#spNavArea.navOpen .navBtn span:nth-of-type(2) {
	opacity: 0;
}

#spNavArea.navOpen .navBtn span:nth-of-type(3) {
	transform: translateY(-10px) translateX(0) rotate(-45deg);
}

#spNavArea .navBtn span:nth-of-type(2) {
	margin-top: 7px;
}

#spNavArea .navBtn span:nth-of-type(3) {
	margin-top: 7px;
}

#spNavArea address {
	letter-spacing: 0.05em;
	margin-bottom: 30px;
}

#spNavArea .tel_web {
	text-align: center;
	margin-bottom: 40px;
}

#spNavArea .tel_web .tel {
	font-size: 34px;
	font-family: "Jost", sans-serif;
	font-weight: 400;
	letter-spacing: 0.05em;
}

#spNavArea .tel_web .tel em {
	font-size: 32px;
}

#spNavArea .tel_web .tel small {
	font-size: 20px;
}

#spNavArea .tel_web .button_01 a {
	color: #fff;
	font-size: 18px;
	font-family: "Zen Maru Gothic", serif;
	font-weight: 500;
	letter-spacing: 0.12em;
	width: 180px;
	height: 46px;
	line-height: 46px;
	border-radius: 23px;
	display: block;
	background: #319955;
	box-shadow: 0px 0px 15px 0px #319955;
	margin: 0 auto;
	transition: 0.3s ease;
}

#spNavArea .tel_web .button_01 a:hover {
	box-shadow: 0px 0px 20px 0px #319955, 0px 0px 20px 0px #319955;
}

#spNavArea .schedule table {
	text-align: center;
	width: 100%;
	margin-bottom: 10px;
}

#spNavArea .schedule table th {
	padding: 10px;
}

#spNavArea .schedule table td {
	color: #319955;
	padding: 10px;
}

#spNavArea .schedule table thead {
	background: #bccf51;
	border-radius: 10px 10px 0 0;
}

#spNavArea .schedule table thead th {
	color: #fff;
	letter-spacing: 0.15em;
	padding: 10px;
}

#spNavArea .schedule table thead th:first-child {
	border-radius: 10px 0 0 0;
}

#spNavArea .schedule table thead th:last-child {
	border-radius: 0 10px 0 0;
}

#spNavArea .schedule table tbody {
	background: #ecf0d2;
	border-radius: 0 0 10px 10px;
}

#spNavArea .schedule table tbody tr:first-child th {
	padding: 10px 10px 0 10px;
}

#spNavArea .schedule table tbody tr:last-child th {
	border-radius: 0 0 0 10px;
}

#spNavArea .schedule table tbody tr:first-child td {
	padding: 10px 10px 0 10px;
}

#spNavArea .schedule table tbody tr:last-child td:last-child {
	border-radius: 0 0 10px 0;
}

#spNavArea .schedule p {
	font-size: 14px;
}

#spNavArea .schedule dl {
	display: flex;
}

#spNavArea .schedule dt {
	font-weight: normal;
	white-space: nowrap;
}

#spNavArea .accessBtn {
	display: none;
}

@media screen and (min-width: 1301px) {
	#spNavArea.navOpen div#spNavBody {
		opacity: 0;
		pointer-events: none;
	}
}

@media screen and (max-width: 1300px) {
	#spNavArea .navBtn {
		opacity: 1;
		pointer-events: auto;
	}
}

@media screen and (max-width: 560px) {
	#spNavArea .logo {
		width: 300px;
		top: 26.5px;
	}
}

@media screen and (max-width: 480px) {
	#spNavArea div#spNavBody {
		padding: 90px 20px 20px;
	}

	#spNavArea .logo {
		width: 220px;
		left: 10px;
		top: 10px;
	}

	#spNavArea .navBtn {
		width: 50px;
		height: 50px;
		top: 10px;
		right: 10px;
		padding: 17px 0 0 12px;
	}

	#spNavArea .navBtn span {
		width: 26px;
	}

	#spNavArea .navBtn span:nth-of-type(2) {
		margin-top: 5px;
	}

	#spNavArea .navBtn span:nth-of-type(3) {
		margin-top: 5px;
	}

	#spNavArea.navOpen .navBtn span:nth-of-type(1) {
		transform: translateY(7px) translateX(0) rotate(45deg);
	}

	#spNavArea.navOpen .navBtn span:nth-of-type(3) {
		transform: translateY(-7px) translateX(0) rotate(-45deg);
	}

	#spNavArea .schedule table thead th {
		padding: 5px;
	}

	#spNavArea .schedule table tbody tr:first-child th {
		padding: 5px 5px 0 5px;
	}

	#spNavArea .schedule table td {
		padding: 5px;
	}

	#spNavArea .schedule table tbody tr:first-child td {
		padding: 5px 5px 0 5px;
	}

	#spNavArea .accessBtn {
		display: block;
		position: absolute;
		right: 80px;
		top: 10px;
	}

	#spNavArea .accessBtn a {
		display: block;
		width: 26px;
		height: 50px;
		background: url(../../assets_top/image/ico_pin_01.svg) no-repeat center top;
		background-size: auto 32px;
		position: relative;
	}

	#spNavArea .accessBtn a span {
		color: #319955;
		font-size: 12px;
		font-family: "Zen Maru Gothic", serif;
        font-weight: 500;
		letter-spacing: -0.05em;
		line-height: 1;
		white-space: nowrap;
		position: absolute;
		left: -10px;
		bottom: 0;
	}
}

@media screen and (max-width: 400px) {
	#spNavArea .schedule table {
		font-size: 12px;
	}
}

@media screen and (max-width: 360px) {
	#spNavArea div#spNavBody nav ul {
		display: block;
	}
}

/* ---------------------------------------------------------
 *	Header
 *---------------------------------------------------------- */

h1 {
	color: #3c372e;
	font-size: 14px;
	position: absolute;
	left: 30px;
	top: 20px;
	z-index: 3;
}

#header {
	color: #fff;
	height: 120px;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 5;
	width: 100%;
	background: rgba(255, 255, 255, 0);
	transition: 0.3s ease;
	opacity: 1;
}

body.fixed #header {
	color: #073b66;
	background: rgba(255, 255, 255, 0.8);
}

#header .inner {
	height: 120px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

#header a {
	color: #47331e;
	transition: 0.3s ease;
}

#header .logo {
	width: 404px;
	position: absolute;
	left: 30px;
	top: 15px;
	transition: 0.3s ease;
}

#header .logo img {
	transition: 0.3s ease;
}

#header nav {
	margin-right: 40px;
}

#header nav ul {
	display: flex;
	align-items: center;
}

#header nav ul li {
	margin-right: 30px;
}

#header nav ul li:last-child {
	margin-right: 0;
}

#header nav ul li a {
	font-family: "Zen Maru Gothic", serif;
	font-weight: 500;
}

@media screen and (max-width: 1500px) {
	#header nav ul li {
		font-size: 14px;
		margin-right: 20px;
	}
}

@media screen and (max-width: 1300px) {
	#header nav {
		display: none;
	}

	h1 {
		font-size: 12px;
		padding-right: 120px;
	}
}

@media screen and (max-width: 768px) {
	h1 {
		top: 10px;
	}
}

@media screen and (max-width: 560px) {
	#header .logo {
		width: 300px;
		left: 30px;
		top: 26.5px;
	}
}

@media screen and (max-width: 480px) {
	h1 {
		font-size: 10px;
		padding-right: 70px;
		top: 6px;
		left: 10px;
	}

	#header {
		height: 70px;
	}

	#header .logo {
		width: 220px;
		left: 10px;
		top: 10px;
	}
}

@media screen and (max-width: 360px) {
    #header .logo {
        width: calc(100vw - 140px);
    }
 }

/* ---------------------------------------------------------
 *	Footer
 *---------------------------------------------------------- */

#footer .bg_01 {
	background: #f9f7ed;
	padding: 100px 0;
}

#footer .bg_02 {
	text-align: center;
	background: #fff;
	padding: 70px 0 40px;
}

#footer .inner {
	max-width: 1150px;
	margin: 0 auto;
}

#footer .bg_01 ul {
	display: flex;
	justify-content: space-between;
}

#footer .bg_01 ul li:nth-child(1) {
	max-width: 530px;
}

#footer .bg_01 ul li:nth-child(2) {
	max-width: 560px;
}

#footer .bg_01 .logo {
	max-width: 404px;
	margin-bottom: 30px;
}

#footer .bg_01 address {
	letter-spacing: 0.05em;
	margin-bottom: 30px;
}

#footer .bg_01 .tel_web {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 40px;
}

#footer .bg_01 .tel_web .tel {
	font-size: 34px;
	font-family: "Jost", sans-serif;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1;
}

#footer .bg_01 .tel_web .tel p {
	margin-top: 5px;
}

#footer .bg_01 .tel_web .tel small {
	font-size: 20px;
}

#footer .bg_01 .tel_web .button_01 a {
	color: #fff;
	font-size: 18px;
	text-align: center;
	width: 180px;
	height: 46px;
	line-height: 46px;
	border-radius: 23px;
	background: #319955;
	box-shadow: 0px 0px 10px 0px #319955;
	display: block;
}

#footer .bg_01 .tel_web .button_01 a:hover {
	box-shadow: 0px 0px 15px 0px #319955, 0px 0px 15px 0px #319955;
}

#footer .bg_01 .schedule {
	margin-bottom: 40px;
}

#footer .bg_01 .schedule table {
	text-align: center;
	width: 100%;
	margin-bottom: 10px;
}

#footer .bg_01 .schedule table th {
	padding: 10px;
}

#footer .bg_01 .schedule table td {
	color: #319955;
	padding: 10px;
}

#footer .bg_01 .schedule table thead {
	background: #bccf51;
	border-radius: 10px 10px 0 0;
}

#footer .bg_01 .schedule table thead th {
	color: #fff;
	letter-spacing: 0.15em;
	padding: 10px;
}

#footer .bg_01 .schedule table thead th:first-child {
	border-radius: 10px 0 0 0;
}

#footer .bg_01 .schedule table thead th:last-child {
	border-radius: 0 10px 0 0;
}

#footer .bg_01 .schedule table tbody {
	background: #ecf0d2;
	border-radius: 0 0 10px 10px;
}

#footer .bg_01 .schedule table tbody tr:first-child th {
	padding: 10px 10px 0 10px;
}

#footer .bg_01 .schedule table tbody tr:last-child th {
	border-radius: 0 0 0 10px;
}

#footer .bg_01 .schedule table tbody tr:first-child td {
	padding: 10px 10px 0 10px;
}

#footer .bg_01 .schedule table tbody tr:last-child td:last-child {
	border-radius: 0 0 10px 0;
}

#footer .bg_01 p {
	font-size: 14px;
}

#footer .bg_01 .schedule dl {
	display: flex;
}

#footer .bg_01 .schedule dt {
	font-weight: normal;
	white-space: nowrap;
}

#footer .bg_01 .frame_01 {
	background: #f4f0db;
	margin-bottom: 40px;
	padding: 40px;
	border-radius: 10px;
}

#footer .bg_01 .frame_01 dt {
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-align: center;
	margin-bottom: 20px;
}

#footer .bg_01 .frame_01 dd {
	font-size: 14px;
	padding-left: 30px;
	margin-bottom: 1em;
	position: relative;
}

#footer .bg_01 .frame_01 dd:before {
	content: "";
	position: absolute;
	left: 0;
	top: 10px;
	width: 8px;
	height: 8px;
	background: #bccf51;
	border-radius: 4px;
}

#footer .bg_01 .frame_02 {
	background: #fff;
	margin-bottom: 10px;
	padding: 30px;
	border-radius: 10px;
}

#footer .bg_01 .frame_02 dt {
	color: #89653f;
	font-size: 18px;
	font-weight: 700;
	text-align: center;
	border-bottom: 1px solid #89653f;
	margin-bottom: 30px;
	padding-bottom: 10px;
}

#footer .bg_01 .frame_02 dd img {
	display: block;
	max-width: 368px;
	width: 100%;
	margin: 0 auto;
}

#footer .bg_01 ul li:nth-child(2) iframe {
	margin-bottom: 40px;
}

#footer .bg_02 {
	color: #89653f;
}

#footer .bg_02 nav ul {
	display: flex;
	justify-content: space-between;
	margin-bottom: 60px;
}

#footer .bg_02 nav ul li a {
	color: #89653f;
	font-size: 18px;
	font-family: "Zen Maru Gothic", serif;
	font-weight: 500;
}

#footer .copyright {
	font-size: 14px;
}

#footer #schedule {
	margin-top: -120px;
	padding-top: 120px;
}

#pagetop {
	width: 80px;
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: 3;
}

#footerBtn {
	display: none;
}

@media screen and (max-width: 1190px) {
	#footer .inner {
		margin: 0 20px;
	}

	#footer .bg_01 ul {
		display: block;
	}

	#footer .bg_01 ul li:nth-child(1) {
		max-width: 560px;
		margin-bottom: 40px;
	}

	#footer .bg_01 ul li {
		margin: 0 auto;
	}

	#footer .bg_02 nav ul {
		flex-wrap: wrap;
	}

	#footer .bg_02 nav ul li {
		width: 25%;
	}
}

@media screen and (max-width: 768px) {
	#footer .bg_02 nav ul li {
		width: 50%;
	}
}

@media screen and (max-width: 600px) {
	#footer .bg_01 .tel_web {
		display: block;
		text-align: center;
	}

	#footer .bg_01 .tel_web .tel {
		margin-bottom: 20px;
	}

	#footer .bg_01 .tel_web .button_01 a {
		margin: 0 auto;
	}
}

@media screen and (max-width: 480px) {
	#footer .bg_01 .schedule table thead th {
		padding: 5px;
	}

	#footer .bg_01 .schedule table tbody tr:first-child th {
		padding: 10px;
	}

	#footer .bg_01 .schedule table td {
		padding: 5px;
	}

	#footer .bg_01 .schedule table tbody tr:first-child td {
		padding: 5px 5px 0 5px;
	}

	#footer .bg_01 .frame_01 {
		padding: 20px;
	}

	#footer .bg_02 {
		padding: 70px 0 70px;
	}

	#pagetop {
		display: none;
	}

	#footerBtn {
		width: 100%;
		height: 50px;
		text-align: center;
		position: fixed;
		left: 0;
		bottom: 0;
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		z-index: 3;
		transition: 0.3s ease;
		pointer-events: none;
		opacity: 0;
	}

	body.fixed #footerBtn {
		pointer-events: auto;
		opacity: 1;
	}

	#footerBtn div {
		width: 25%;
	}

	#footerBtn a {
		color: #fff;
		font-size: 2.666vw;
		font-family: "Zen Maru Gothic", serif;
		font-weight: 500;
		letter-spacing: 0.15em;
		line-height: 1;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	#footerBtn a span {
		line-height: 50px;
		height: 50px;
	}

	#footerBtn .tel a {
		font-family: "Jost", sans-serif;
		font-weight: 400;
		letter-spacing: 0.05em;
		background: url(../../assets_top/image/ico_tel_01.svg) no-repeat center center, #faa51a;
		background-size: 4vw;
	}

	#footerBtn .tel a strong {
		display: none;
	}

	#footerBtn .tel a span {
		font-size: 2.133vw;
		display: block;
	}

	#footerBtn .tel a small {
		font-size: 2.133vw;
	}

	#footerBtn .tel a em {
		font-size: 3.466vw;
	}

	#footerBtn .web a {
		background: #319955;
	}

	#footerBtn .web.interview a {
		background: #bccf51;
	}

	#footerBtn .web a span {
		background: url(../../assets_top/image/ico_sp_01.svg) no-repeat left center;
		background-size: 3.333vw;
		padding-left: 6.25vw;
	}

	#footerBtn .web.interview a span {
		background: url(../../assets_top/image/ico_note_01.svg) no-repeat left center;
		background-size: 5vw;
		padding-left: 7vw;
	}

	#footerBtn .time a {
		background: #bccf51;
	}

	#footerBtn .time a span {
		background: url(../../assets_top/image/ico_hours_01.svg) no-repeat left center;
		background-size: 5.416vw;
		padding-left: 7.5vw;
	}

	#footerBtn .line a {
		background: url(../../assets_top/image/ico_line_01.svg) no-repeat center center, #319955;
		background-size: 5.416vw;
	}

	#footer #schedule {
		margin-top: -60px;
		padding-top: 60px;
	}

	#footer .copyright {
		font-size:
			2.916vw;
	}
}

@media screen and (max-width: 400px) {
	#footer .bg_01 .schedule table {
		font-size: 12px;
	}
}

@media screen and (max-width: 340px) {
	#footer .bg_02 nav ul {
		display: block;
	}

	#footer .bg_02 nav ul li {
		width: 100%;
	}
}

.l-image-section {
	--direction: row;
	--align: flex-start;
	--image-width: 530px;
	--row-gap: 2em;
	--column-gap: 4cqw;
	--row-header-shift-top: -1em;
	--row-header-shift-left: calc((var(--column-gap) + 1em) * -1);
	--row-header-shift-right: calc((var(--column-gap) + 1em) / 2);
	--column-header-shift-top: calc((var(--row-gap) + 1em) * -1);
	--column-header-shift-left: max(calc(var(--container-padding) / -2), -1.5em);
	--column-header-shift-right: 1em;
	--header-shift-top: var(--row-header-shift-top);
	--header-shift-left: var(--row-header-shift-left);
	--header-shift-right: var(--row-header-shift-right);
	container-type: inline-size;
	container-name: image-section;
}

.l-image-section--reverse {
	--direction: row-reverse;
	--header-shift-left: var(--row-header-shift-right);
	--header-shift-right: var(--row-header-shift-left);
}

.l-image-section__inner {
	position: relative;
	display: flex;
	flex-direction: var(--direction);
	gap: var(--row-gap) var(--column-gap);
	align-items: flex-start;
}

.l-image-section__inner:where(:not(.l-image-section--md, .l-image-section--sm, .l-image-section--xs) > *) {
	--image-width: min(530px, 45%);
}

@container image-section (width <=850px) {
	.l-image-section__inner:where(:not(.l-image-section--md, .l-image-section--sm, .l-image-section--xs) > *) {
		--image-width: min(520px, 100%);
		--direction: column;
		--header-shift-top: var(--column-header-shift-top);
		--header-shift-left: var(--column-header-shift-left);
		--header-shift-right: var(--column-header-shift-right);
	}
}

.l-image-section__inner:where(.l-image-section--md > *) {
	--image-width: min(420px, 40%);
}

@container image-section (width <=750px) {
	.l-image-section__inner:where(.l-image-section--md > *) {
		--image-width: min(380px, 100%);
		--direction: column;
		--header-shift-top: var(--column-header-shift-top);
		--header-shift-left: var(--column-header-shift-left);
		--header-shift-right: var(--column-header-shift-right);
	}
}

.l-image-section__inner:where(.l-image-section--sm > *) {
	--image-width: min(320px, 35%);
}

@container image-section (width <=650px) {
	.l-image-section__inner:where(.l-image-section--sm > *) {
		--image-width: min(320px, 100%);
		--direction: column;
		--header-shift-top: var(--column-header-shift-top);
		--header-shift-left: var(--column-header-shift-left);
		--header-shift-right: var(--column-header-shift-right);
	}
}

@container image-section (width <=360px) {
	.l-image-section__inner:where(.l-image-section--sm > *) {
		--image-width: 100%;
	}
}

.l-image-section__inner:where(.l-image-section--xs > *) {
	--image-width: min(230px, 35%);
}

@container image-section (width <=550px) {
	.l-image-section__inner:where(.l-image-section--xs > *) {
		--image-width: min(280px, 100%);
		--direction: column;
		--header-shift-top: var(--column-header-shift-top);
		--header-shift-left: var(--column-header-shift-left);
		--header-shift-right: var(--column-header-shift-right);
	}
}

.l-image-section__main {
	position: relative;
	z-index: 1;
	flex: 1;
	order: 1;
	width: 100%;
}

.l-image-section__header {
	padding: 0.85em 1.5em 0.8em;
	margin: var(--header-shift-top) var(--header-shift-right) var(--header-gap-sm) var(--header-shift-left);
	background-color: var(--color-secondary);
}

.l-image-section__image {
	position: relative;
	z-index: 0;
	order: -1;
	width: 100%;
	max-width: var(--image-width);
	margin-inline: auto;
}

.l-image-section__image__main {
	display: block;
	width: 80%;
}

.l-image-section__image__sub {
	display: block;
	width: 55%;
	margin-top: -12%;
	margin-left: auto;
}

:root {
	--mv-width: 70%;
}

@media (max-width: 525px) {
	:root {
		--mv-width: 75%;
	}
}

.l-mv {
	--height: 500px;
	--font-size: 4.5rem;
	position: relative;
	z-index: 0;
	padding-right: var(--container-padding-right);
	padding-left: var(--container-padding-left);
}

@media (max-width: 525px) {
	.l-mv {
		--font-size: 3rem;
	}
}

.l-mv__inner {
	container-type: inline-size;
	position: relative;
}

.l-mv__body {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: min(100%, var(--mv-width) + 2.6em);
	height: var(--height);
	padding-top: 150px;
	font-family: var(--font-heading);
	font-size: var(--font-size);
	font-weight: bold;
	line-height: 1.55;
	color: var(--color-heading);
	/* letter-spacing: 0.3em; */
}

.l-mv__title {
	opacity: 0;
}

.l-mv__title__text {
	writing-mode: vertical-rl;
	text-orientation: upright;
font-family: "Zen Maru Gothic", serif;
    font-weight: 500;
}

.l-mv__visual {
	position: relative;
	z-index: 0;
	width: var(--mv-width);
	margin-left: auto;
	opacity: 0;
}

.l-mv__visual__inner {
	height: var(--height);
	margin-right: calc(50cqw - 50vw);
	overflow: hidden;
	border-top-left-radius: var(--radius-lg);
	border-bottom-left-radius: var(--radius-lg);
}

.l-mv__visual__footer {
	margin-top: 2em;
}

.l-mv__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.l-schedule {
	--padding-x: 0.5em;
	--padding-y: 1.4em;
	container-type: inline-size;
}

.l-schedule > table {
	width: 100%;
}

@container (width < 500px) {
	.l-schedule > table {
		font-size: var(--font-size-sm);
	}
}

@container (width < 380px) {
	.l-schedule > table {
		font-size: var(--font-size-xs);
	}
}

.l-schedule > table th,
.l-schedule > table td {
	font-weight: normal;
	line-height: 1;
	text-align: center;
}

.l-schedule > table th:first-child,
.l-schedule > table td:first-child {
	width: 23%;
	text-align: left;
	white-space: nowrap;
}

.l-schedule > table th:not(:first-child),
.l-schedule > table td:not(:first-child) {
	padding-right: var(--padding-x);
	padding-left: var(--padding-x);
	text-align: center;
}

.l-schedule > table thead {
	--border-width: 2px;
	--dot-gap-ratio: 2;
	background: radial-gradient(circle farthest-side, currentcolor, currentcolor calc(100% / (var(--dot-gap-ratio) + 1)), transparent calc(100% / (var(--dot-gap-ratio) + 1)));
	background-repeat: repeat-x;
	background-position: left bottom;
	background-size: calc(var(--border-width) * (var(--dot-gap-ratio) + 1)) var(--border-width);
}

.l-schedule > table thead th:first-child {
	font-size: 1.2em;
	font-weight: bold;
	letter-spacing: 0.25em;
}

.l-schedule > table thead th:not(:first-child) {
	padding-bottom: var(--padding-y);
}

.l-schedule > table tbody tr th,
.l-schedule > table tbody tr td {
	padding-top: var(--padding-y);
}

.l-schedule__note {
	padding-top: 1em;
}

@container (width < 500px) {
	.l-schedule__note {
		font-size: var(--font-size-sm);
	}
}

.l-side-sns {
	position: fixed;
	top: var(--header-height);
	bottom: 0;
	left: 0;
	z-index: 2;
	padding-bottom: calc(var(--side-button-size) + 20px);
	padding-left: calc((var(--container-padding-right) - var(--side-button-size)) / 2);
	font-size: 30px;
	opacity: 0;
}

@media (max-width: 1024px) {
	.l-side-sns {
		display: none;
	}
}

.l-side-sns .l-sns {
	display: flex;
	flex-direction: column;
	gap: 0.35em;
	align-items: center;
	justify-content: center;
	width: var(--side-button-size);
	height: 100%;
}

.l-side-sns .l-sns__link {
	display: block;
	transition: color 0.3s ease;
}

.l-side-sns .l-sns__link:hover {
	color: var(--color-primary);
}

.l-side-sns .l-sns__text {
	display: none;
}

:root {
	--side-button-size: 90px;
}

@media (max-width: 1024px) {
	:root {
		--side-button-size: 90px;
	}
}

@media (max-width: 768px) {
	:root {
		--side-button-size: 80px;
	}
}

@media (max-width: 525px) {
	:root {
		--side-button-size: 66px;
	}
}

.l-side {
	position: fixed;
	z-index: 2;
	opacity: 0;
}

@media (min-width: 1025px) {
	.l-side {
		--row-gap: 1em;
		--column-gap: 10px;
		--side-button-size: min(90px, calc(var(--container-padding-right) * 0.95));
		top: var(--header-height);
		right: 0;
		bottom: 0;
		padding-right: calc((var(--container-padding-right) - var(--side-button-size)) / 2);
		padding-bottom: 20px;
	}
}

@media (max-width: 1024px) {
	.l-side {
		--space-around: 12px;
		--row-gap: 1em;
		--column-gap: 0.75em;
		right: var(--space-around);
		bottom: var(--space-around);
		left: var(--space-around);
	}
}

@media (max-width: 525px) {
	.l-side {
		--space-around: 8px;
		--row-gap: 1em;
		--column-gap: 0.3em;
	}
}

.l-side__list {
	display: flex;
	gap: var(--row-gap) var(--column-gap);
	font-size: var(--font-size-xs);
}

@media (min-width: 1025px) {
	.l-side__list {
		flex-direction: column;
		align-items: flex-end;
		justify-content: center;
		height: 100%;
	}
}

@media (max-width: 1024px) {
	.l-side__list {
		justify-content: flex-end;
	}
}

@media (max-width: 525px) {
	.js-has-pseudo [csstools-has-1a-30-19-37-2x-2s-2t-2n-2n-30-2x-37-38-1m-2w-2p-37-14-1a-30-19-37-2x-2s-2t-2n-2n-2x-38-2t-31-1m-32-38-2w-19-2r-2w-2x-30-2s-14-1h-15-15]:not(.does-not-exist):not(.does-not-exist) {
		justify-content: center;
	}

	.l-side__list:has(.l-side__item:nth-child(5)) {
		justify-content: center;
	}
}

.l-side__item {
	--button-bg-color: var(--color-bg);
	--button-text-color: var(--color-text);
	--button-border-color: rgba(var(--color-text-rgb), 20%);
	--button-hover-bg-color: var(--color-primary);
	--button-hover-text-color: var(--color-text-contrast);
	--button-hover-border-color: var(--color-primary);
	position: relative;
	width: var(--side-button-size);
	height: var(--side-button-size);
}

@media (min-width: 1025px) {
	.l-side__item:first-child {
		margin-top: auto;
	}

	.l-side__item:nth-child(2):is(.l-side__item--tel + *) {
		margin-top: auto;
	}

	.l-side__item:where(.l-side.is-contrast *) {
		--button-border-color: transparent;
	}
}

.l-side__item--tel {
	order: -1;
}

@media (min-width: 769px) {
	.l-side__item--tel {
		display: none;
	}
}

.l-side__item--schedule {
	flex-grow: 0;
	width: var(--side-button-size);
}

.l-side__item--top {
	--button-bg-color: var(--color-secondary-alt);
	--button-text-color: var(--color-text);
	--button-border-color: transparent;
}

@media (min-width: 1025px) {
	.l-side__item--top {
		margin-top: auto;
	}
}

.l-side__button {
	position: relative;
	z-index: 0;
	display: grid;
	grid-template-rows: 1fr;
	grid-template-columns: 1fr;
	width: 100%;
	max-width: var(--side-button-size);
	aspect-ratio: 1/1;
	overflow: hidden;
	color: var(--button-text-color);
	background-color: var(--button-bg-color);
	border: 1px solid var(--button-border-color);
	transition: background 0.35s ease, color 0.15s ease, border 0.45s ease;
	container-type: inline-size;
}

@media (min-width: 1025px) {
	.l-side__button {
		border-radius: 50%;
	}
}

@media (max-width: 1024px) {
	.l-side__button {
		border-radius: var(--radius-md);
	}

	.l-side__button:is(.l-side__item--top > *) {
		border-radius: 50%;
	}
}

.l-side__button:hover {
	color: var(--button-hover-text-color);
	background-color: var(--button-hover-bg-color);
	border-color: var(--button-hover-border-color);
}

.l-side__button__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	grid-row: 1/2;
	grid-column: 1/2;
	gap: 0.6em;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 0.5em;
	line-height: 1.35;
}

.l-side__button__inner:is(.l-side__item--schedule.is-open *):nth-child(1) {
	visibility: hidden;
	opacity: 0;
}

.l-side__button__inner:is(.l-side__item--schedule:not(.is-open) *):nth-child(2) {
	visibility: hidden;
	opacity: 0;
}

.l-side__button__icon {
	font-size: min(2.25em, 40cqw);
}

.l-side__button__text {
	text-align: center;
}

@container (width <=86px) {
	.l-side__button__text {
		font-size: var(--font-size-xxs);
	}

	.l-side__button__text__extra {
		display: none;
	}
}

.l-side__schedule:is(.l-side__item--schedule.is-open > *) {
	--progress: 1;
	visibility: visible;
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
	opacity: 1;
}

.l-side__schedule:is(.l-side__item--schedule:not(.is-open) > *) {
	--progress: 0;
	visibility: hidden;
	opacity: 0;
}

@media (min-width: 1025px) {
	.l-side__schedule {
		position: absolute;
		top: 50%;
		right: calc(100% + var(--column-gap));
		transform: translateY(-50%) translateX(calc((1 - var(--progress)) * 10px));
	}
}

@media (max-width: 1024px) {
	.l-side__schedule {
		position: fixed;
		right: 0;
		bottom: calc(100% + var(--row-gap));
		width: 100%;
		max-width: 600px;
	}
}

.l-side__schedule__table {
	position: relative;
	padding: 1.5em 2em;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	background-color: rgba(var(--color-bg-rgb), 85%);
	border: 1px solid rgba(var(--color-text-rgb), 15%);
	border-radius: var(--radius-md);
}

@media (min-width: 1025px) {
	.l-side__schedule__table {
		min-width: 35em;
	}
}

@media (max-width: 1024px) {
	.l-side__schedule__table {
		width: 100%;
	}
}

.l-side__schedule__table > .l-schedule {
	max-width: 740px;
	margin-inline: auto;
}

.c-button01 {
	--padding-x: 1.5em;
	position: relative;
	z-index: 0;
	display: flex;
	gap: 1.25em;
	align-items: center;
	width: -moz-fit-content;
	width: fit-content;
	min-width: 16em;
	max-width: 100%;
	min-height: 4.2rem;
	padding: 0.6em var(--padding-x);
	line-height: 1.3;
	color: #fff !important;
	background-color: var(--color-primary);
	border-radius: var(--radius-md);
	transition: opacity 0.3s, color 0.3s;
}

.c-button01::before {
	position: relative;
	font-family: var(--font-icon);
	font-size: 1.15em;
	content: "\e906";
	transition: transform 0.25s ease;
}

.c-button01:hover::before {
	transform: translateX(20%);
}

.c-button01:where(:not(.c-button01--outline)):hover {
	opacity: 0.8;
}

.c-button01:where(.c-button01--outline) {
	color: unset;
	background-color: unset;
	border: 1px solid;
}

.c-button01:where(.c-button01--outline)::after {
	position: absolute;
	inset: 0;
	z-index: -1;
	content: "";
	background-color: var(--color-primary);
	border: inherit;
	opacity: 0;
	transition: opacity 0.3s;
}

.c-button01:where(.c-button01--outline):hover {
	color: var(--color-primary);
}

.c-button01:where(.c-button01--outline):hover::after {
	opacity: 0.1;
}

.c-button01:where(.c-button01--thin) {
	min-height: 3.6rem;
	padding: 0.34em var(--padding-x) 0.37em;
}

.c-button01:where(.c-button01--fit) {
	min-width: unset;
}

.c-button01:where(.c-button01--full) {
	width: 100%;
}

.c-button01__text {
	display: block;
	flex-grow: 1;
	font-size: var(--font-size-sm);
	text-align: center;
    font-family: "Zen Maru Gothic", serif;
    font-weight: 500;
}

@media (max-width: 480px) {
	.c-button01__text {
    	font-size: 2.5vw;
    	white-space: nowrap;
	}
}

.c-card__image {
	display: block;
	width: 100%;
	aspect-ratio: var(--image-aspect-ratio, 1/0.73);
	margin-bottom: 1.5em;
	object-fit: cover;
}

.c-card__content {
	margin-top: 0.5em;
}

.c-career {
	--date-width: 4em;
	--row-gap: 0.5em;
	container-type: inline-size;
}

.c-career__heading {
	position: relative;
	display: block;
	margin-bottom: 1em;
	font-size: var(--font-size-xl);
	color: var(--heading-color, var(--color-heading));
	letter-spacing: 0.15em;
}

.c-career__item {
	display: grid;
	grid-template-columns: auto 1fr;
	line-height: 1.7;
}

.c-career__item span {
	color: #319955;
}

.p-carrer__body span {
	color: #319955;
}

@container (width <=360px) {
	.c-career__item {
		display: block;
	}
}

.c-career__item:where(.c-career__item + *) {
	margin-top: var(--row-gap);
}

.c-career__date {
	grid-column: 1;
	min-width: var(--date-width);
	margin-right: 1em;
}

.c-career__content {
	display: block;
	grid-column: 2;
}

.c-detect-scroll {
	--gradation-size-y: 2.5em;
	--gradation-size-x: 1.5em;
	--top-gradation: 0%;
	--right-gradation: 0%;
	--bottom-gradation: 0%;
	--left-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=y] {
	--top-gradation: var(--gradation-size-y);
	--bottom-gradation: var(--gradation-size-y);
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=y][data-scroll-state*=top] {
	--top-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=y][data-scroll-state*=bottom] {
	--bottom-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=x] {
	--right-gradation: var(--gradation-size-x);
	--left-gradation: var(--gradation-size-x);
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=x][data-scroll-state*=right] {
	--right-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=x][data-scroll-state*=left] {
	--left-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper:is([data-scrollable*=x], [data-scrollable*=y]) {
	-webkit-mask-composite: source-out, source-over, source-over, source-over;
	mask-composite: subtract, add, add, add;
	-webkit-mask-image: linear-gradient(to right, #000, #000 100%), linear-gradient(to bottom, #000, transparent var(--top-gradation)), linear-gradient(to top, #000, transparent var(--bottom-gradation)), linear-gradient(to left, #000, transparent var(--right-gradation)), linear-gradient(to right, #000, transparent var(--left-gradation));
	mask-image: linear-gradient(to right, #000, #000 100%), linear-gradient(to bottom, #000, transparent var(--top-gradation)), linear-gradient(to top, #000, transparent var(--bottom-gradation)), linear-gradient(to left, #000, transparent var(--right-gradation)), linear-gradient(to right, #000, transparent var(--left-gradation));
}

.c-heading01 {
	--min-size: 2.7rem;
	--mid-size: 7vw;
	--max-size: 3.8rem;
	font-size: clamp(var(--min-size), var(--mid-size), var(--max-size));
    font-family: "Zen Maru Gothic", serif;
    font-weight: 500;
	color: var(--color-heading);
	letter-spacing: 0.1em;
}

.c-heading01--md {
	--min-size: 2.3rem;
	--mid-size: 5.2vw;
	--max-size: 3rem;
}

.c-heading01--sm {
	--min-size: 2rem;
	--mid-size: 2.7vw;
	--max-size: 2.6rem;
}

.c-heading01--xs {
	--min-size: 1.9rem;
	--mid-size: 2.5vw;
	--max-size: 2.3rem;
}

.c-image {
	border-radius: var(--radius-md);
}

.c-image--full {
	width: 100%;
}

.c-image--cover {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.c-image--no-radius {
	border-radius: unset;
}

.c-image--square {
	aspect-ratio: 1/1;
	object-fit: cover;
}

.c-keep-word {
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.c-list {
	--prefix: "・";
	--padding: 1.3em;
	--row-gap: 0.15em;
	--prefix-color: currentcolor;
	list-style: none;
}

.c-list--note {
	--prefix: "※";
}

.c-list--ordered {
	--prefix: counter(list) ".";
	counter-reset: list;
}

.c-list--ordered:where(.c-list--note) {
	--prefix: "※"counter(list);
	--padding: 2.3em;
}

.c-list--check {
	--prefix: "";
	--padding: 1.75em;
}

.c-list__item {
	position: relative;
	padding-left: var(--padding);
}

.c-list__item:where(.c-list--ordered > *) {
	counter-increment: list;
}

.c-list__item::before {
	position: absolute;
	top: 0;
	left: 0;
	color: var(--prefix-color);
	content: var(--prefix);
}

.c-list__item:where(.c-list--check > *)::before {
	font-family: var(--font-icon);
}

.c-list__item:where(:nth-of-type(n + 2)) {
	margin-top: var(--row-gap);
}

.c-paragraph {
	line-height: 2;
}

.c-paragraph--sparse {
	line-height: 2.4;
}

.c-paragraph:where(.c-paragraph + *) {
	margin-top: 1em;
}

.c-signature {
	--position-size: var(--font-size-lg);
	--name-size: var(--font-size-xxl);
	--ruby-size: var(--font-size-xs);
	display: flex;
	align-items: baseline;
	letter-spacing: 0.25em;
}

.c-signature__position {
	margin-right: 1em;
	font-size: var(--position-size);
}

.c-signature__name {
	font-size: var(--name-size);
}

.c-signature__name ruby {
	position: relative;
	padding-top: calc(var(--ruby-size) * 1.2);
}

.c-signature__name ruby::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	margin: auto;
	margin-right: -0.75em;
	font-size: 0.5em;
	font-size: var(--ruby-size);
	text-align: center;
	letter-spacing: 0.75em;
	white-space: nowrap;
	content: attr(data-ruby);
}

.c-signature__name rt {
	display: none;
}

.c-step-list {
	--number-size: min(6rem, 11vw);
	display: grid;
	row-gap: calc(var(--number-size) * 0.2);
	counter-reset: step-list;
	container: step-list/inline-size;
}

.c-step-list__item {
	display: flex;
	column-gap: 4cqw;
	counter-increment: step-list;
}

.c-step-list__item__header {
	position: relative;
	display: flex;
	column-gap: 0.5em;
}

.c-step-list__item__header::before {
	position: relative;
	display: block;
	font-size: min(var(--font-size-xl), 4.3vw);
	font-weight: bold;
	line-height: 1.15;
	color: var(--color-heading);
	text-transform: uppercase;
	content: "Step";
}

.c-step-list__item__header::after {
	--border-top-position: calc(var(--number-size) + 0.35em);
	display: block;
	width: -moz-fit-content;
	width: fit-content;
	font-size: var(--number-size);
	font-weight: bold;
	line-height: 1;
	color: var(--color-primary);
	letter-spacing: 0.1em;
	content: counter(step-list, decimal-leading-zero);
}

.c-step-list__item__header:where(:not(.c-step-list__item:last-child) > *)::after {
	background-image: linear-gradient(to bottom, transparent var(--border-top-position), currentcolor var(--border-top-position));
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 1px 100%;
}

@container step-list (width > 800px) {
	.c-step-list__item__header::before {
		align-self: flex-start;
		margin-top: calc(var(--number-size) / 2);
		transform: translateY(-0.3em);
	}
}

@container step-list (width <=800px) {
	.c-step-list__item__header {
		flex-direction: column;
		align-items: center;
	}

	.c-step-list__item__header::after {
		flex: 1;
	}
}

.c-step-list__item__body {
	flex: 1;
	padding-top: 0.5em;
}

.c-step-list__item__body:where(:not(.c-step-list__item:last-child) > *) {
	padding-bottom: var(--section-gap-xs);
}

.c-table {
	--border-color: rgba(var(--color-text-rgb), 30%);
	--header-bg-color: var(--color-secondary);
	min-width: 100%;
	margin-bottom: 2px;
}

.c-table th,
.c-table td {
	border-bottom: 1px solid var(--border-color);
}

.c-table th {
	position: relative;
	padding: 0.85em 1em;
	font-size: var(--font-size-lg);
	font-weight: bold;
	text-align: center;
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.c-table th:first-child {
	width: 7em;
	min-width: 10em;
}

.c-table > thead > tr > th {
	color: var(--color-heading);
	background-color: var(--header-bg-color);
}

.c-table > tbody > tr > th {
	color: var(--color-primary);
	letter-spacing: 0.2em;
	vertical-align: middle;
}

.c-table > tbody > tr > td {
	min-width: min(20em, 85vw);
	padding: 1.25em 1.5em;
}

.c-term-list {
	display: grid;
	container-type: inline-size;
}

.c-term-list__item {
	display: grid;
	grid-template-columns: var(--term-width, 5.25em) 1fr;
	gap: 0.15em 3em;
	padding-top: 0.5em;
	padding-bottom: 0.5em;
}

@container (width < 500px) {
	.c-term-list__item {
		grid-template-columns: auto;
	}
}

.c-term-list__item:where(.c-term-list--border > *) {
	padding-top: 0.85em;
	padding-bottom: 0.9em;
	border-bottom: 1px solid currentcolor;
}

.c-term-list__term {
	font-size: var(--term-font-size, 1em);
	font-weight: normal;
	text-align: center;
}

@container (width < 500px) {
	.c-term-list__term {
		font-weight: bold;
		text-align: left;
	}
}

.c-text-link {
	text-decoration: underline;
	text-decoration-style: dotted;
	text-underline-offset: 0.15em;
	transition: opacity 0.2s;
}

.c-text-link:hover {
	opacity: 0.65;
}

.c-text-link--no-border {
	text-decoration: none;
}

.c-tile {
	display: flex;
	flex-wrap: wrap;
	gap: var(--row-gap, 1em) var(--column-gap, 1em);
}

.c-tile__item {
	width: calc((100% - var(--column-gap, 1em) * (var(--column-count, 3) - 1)) / var(--column-count, 3));
}

.ms-auto {
	margin-left: auto !important;
}

.my-5 {
	margin-top: 3rem !important;
	margin-bottom: 3rem !important;
}

.ms-0 {
	margin-left: 1rem !important;
}

.ms-1 {
	margin-left: 1rem !important;
}

.ms-2 {
	margin-left: 1rem !important;
}

.ms-3 {
	margin-left: 1rem !important;
}

.ms-4 {
	margin-left: 1.5rem !important;
}

.ms-5 {
	margin-left: 5rem !important;
}

.mb-auto {
	margin-bottom: auto !important;
}

.mb-0 {
	margin-bottom: 0 !important;
}

.mb-1 {
	margin-bottom: 0.25rem !important;
}

.mb-2 {
	margin-bottom: 0.5rem !important;
}

.mb-3 {
	margin-bottom: 1rem !important;
}

.mb-4 {
	margin-bottom: 1.5rem !important;
}

.mb-5 {
	margin-bottom: 3rem !important;
    text-align: justify;
}

.mt-auto {
	margin-top: auto !important;
}

.mt-0 {
	margin-top: 0 !important;
}

.mt-1 {
	margin-top: 0.25rem !important;
}

.mt-2 {
	margin-top: 0.5rem !important;
}

.mt-3 {
	margin-top: 1rem !important;
}

.mt-4 {
	margin-top: 1.5rem !important;
}

.mt-5 {
	margin-top: 3rem !important;
}

.text-center {
	text-align: center;
}

.text-bold {
	font-weight: bold;
}

.layout_01 {
	background: #fff;
	border-radius: 10px;
	padding: 30px;
}

.layout_01.color1 {
	background: #ecf0d2;
}

.layout_01.color2 {
	background: #ecf0d2;
}

.layout_01.color3 {
	background: #f4f0db;
}

.layout_02 .p-pattern11__list {
	width: 100%;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
}

.layout_02 .p-pattern11__body {
	margin-bottom: var(--section-gap-sm);
}

.layout_02 .p-pattern11__body:last-child {
	margin-bottom: 0;
}

.layout_02 .p-pattern11__list li {
	width: 50%;
	padding-right: 1em;
}

.layout_02 .p-pattern11__list.three li {
	width: 33%;
}

.layout_03 {
	margin-top: var(--section-gap-xs);
}

@media (max-width: 1024px) {
	.layout_02 .p-pattern11__list {
		display: block;
	}

	.layout_02 .p-pattern11__list.three {
		display: flex;
	}

	.layout_02 .p-pattern11__list li {
		width: 100%;
		padding-right: 0;
	}

	.layout_02 .p-pattern11__list.three li {
		width: 50%;
	}
}

@media (max-width: 768px) {
	.layout_02 .p-pattern11__list.three {
		display: block;
	}

	.layout_02 .p-pattern11__list.three li {
		width: 100%;
	}
}
