@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;600&family=Noto+Serif+JP:wght@600;700&family=Poppins:wght@300&display=swap");
* {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	font-size: 17px;
	overflow-y: scroll;
	scroll-behavior: smooth;
}
@media screen and (max-width: 767px) {
	html {
		font-size: 16px !important;
	}
}

:target {
	scroll-margin-top: 0px;
}

body {
	margin: 0px auto;
	padding-right: clamp(100px, 8.5365853659vw, 140px);
	font-size: min(1.328125vw * var(--fontratio, 1), 17px * var(--fontratio, 1));
	line-height: 1;
	font-weight: 600;
	color: #000000;
	font-family: "Noto Serif JP", serif;
	background: #ffffff;
	overflow: clip;
}
@media screen and (max-width: 959px) {
	body {
		font-size: min(1.6585365854vw * var(--fontratio, 1), 13.6px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	body {
		font-size: min(3.8114580516vw * var(--fontratio, 1), 14.2929676935px * var(--fontratio, 1));
	}
}
body.nomenu {
	padding-right: 0px;
}
@media screen and (max-width: 767px) {
	body {
		padding-right: 0px;
	}
}

input, select, textarea, button {
	font: inherit;
}

main {
	position: relative;
	min-height: 50vh;
	z-index: 0;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
	border: 0px;
}

a {
	text-decoration: none;
}

dl, ul, ol {
	margin: 0px;
	padding: 0px;
	list-style: none;
}

p, dt, dd, h1, h2, h3, h4, h5, h6 {
	margin: 0px;
	padding: 0px;
}

.clear {
	clear: both;
}

@media screen and (max-width: 767px) {
	.view_pc {
		display: none !important;
	}
}

.view_sp {
	display: none !important;
}
@media screen and (max-width: 767px) {
	.view_sp {
		display: block !important;
	}
}

.loading * {
	transition: 0ms !important;
}
.loading *:before, .loading *:after {
	transition: 0ms !important;
}

.modal *:not(h1, h2, h3, h4, h5, h6) + .text {
	margin-top: 120px;
}
@media screen and (max-width: 767px) {
	.modal *:not(h1, h2, h3, h4, h5, h6) + .text {
		margin-top: 90px;
	}
}

.modal > div > *:not(h1, h2, h3, h4, h5, h6) + p.error_mes, .modal *:not(h1, h2, h3, h4, h5, h6) + .form {
	margin-top: 40px;
}
@media screen and (max-width: 767px) {
	.modal > div > *:not(h1, h2, h3, h4, h5, h6) + p.error_mes, .modal *:not(h1, h2, h3, h4, h5, h6) + .form {
		margin-top: 30px;
	}
}

#news *:not(h1, h2, h3, h4, h5, h6) + p, .modal > div .text *:not(h1, h2, h3, h4, h5, h6) + p, .modal .form *:not(h1, h2, h3, h4, h5, h6) + textarea {
	margin-top: 20px;
}

header {
	display: block;
	position: fixed;
	width: clamp(100px, 8.5365853659vw, 140px);
	height: 100%;
	top: 0;
	right: 0;
	background: #000;
	z-index: 1000;
	transition: transform 600ms;
}
@media screen and (max-width: 767px) {
	header {
		transform: translateX(100%);
	}
	.menuopen header {
		transform: translateX(0%);
	}
}

#logo {
	position: fixed;
	top: min(70px, 4.2682926829vw);
	right: clamp(50px, 4.2682926829vw, 70px);
	transform: translateX(50%);
}
#logo a {
	display: block;
	width: min(96px, 5.8536585366vw);
	min-width: 80px;
	background: url(../images/logo.svg) no-repeat center center;
	background-size: 100% auto;
	filter: brightness(0) saturate(100%) invert(100%);
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
	aspect-ratio: 800 / 570;
}
#logo a:hover {
	opacity: 0.7;
}
#logo a span {
	position: absolute;
	left: -10000px;
}

#navigation {
	position: absolute;
	top: clamp(175px, 12.5vw, 205px);
	left: 0;
	width: 100%;
	font-size: 12px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
}
#navigation > ul {
	display: flex;
	flex-direction: column;
	gap: clamp(15px, 1.2195121951vw, 20px);
	align-items: center;
}
#navigation > ul > li a {
	color: #fff;
	position: relative;
	display: inline-block;
}
#navigation > ul > li a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0em - 10px);
	right: 55%;
	width: 15%;
	height: 1px;
	background: #fff;
	opacity: 0;
	transform: scaleX(3);
	pointer-events: none;
	transform-origin: right;
	transition: transform 0s 0.3s, bottom 0.3s, right 0s 0.3s, width 0s 0.3s, opacity 0.3s;
	pointer-events: none;
}
#navigation > ul > li a:hover:before {
	opacity: 1;
	right: 0%;
	width: 100%;
	bottom: calc(0em - 5px);
	transition: transform 0.3s 0.1s, bottom 0s, right 0.3s, width 0.3s 0.4s, opacity 0.25s;
	transform: scaleX(1);
}

#menu {
	position: absolute;
	top: 0;
	right: 100%;
	display: none;
}
@media screen and (max-width: 767px) {
	#menu {
		display: block;
	}
}
#menu a {
	position: relative;
	display: block;
	width: 50px;
	height: 50px;
	text-indent: -10000px;
	background: #000;
	overflow: hidden;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
	transition: opacity 0.2s, background 0.2s, height 600ms;
}
#menu a:hover {
	opacity: 0.7;
}
#menu a:before {
	content: "";
	display: block;
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	background: url(../images/menu.svg) no-repeat center center;
	opacity: 1;
	transition: 400ms;
}
@media screen and (max-width: 959px) {
	#menu a:before {
		background-size: 20px auto;
	}
}
#menu a:after {
	content: "";
	display: block;
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	background: url(../images/close.svg) no-repeat center center;
	opacity: 0;
	transition: 400ms;
}
@media screen and (max-width: 959px) {
	#menu a:after {
		background-size: 20px auto;
	}
}
.menuopen #menu a:before {
	opacity: 0;
}
.menuopen #menu a:after {
	opacity: 1;
}

footer {
	position: relative;
	display: block;
	background: #C14103;
}
footer > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 20px 40px;
	display: flex;
	gap: 20px 40px;
	justify-content: space-between;
	align-items: flex-end;
}
@media screen and (max-width: 959px) {
	footer > div {
		padding: 13.3333333333px 20px;
	}
}
@media screen and (max-width: 767px) {
	footer > div {
		padding: 10px 15px;
	}
}
@media screen and (max-width: 767px) {
	footer > div {
		flex-direction: column;
		align-items: center;
	}
}
footer .logo {
	width: clamp(100px, 9.4512195122vw, 155px);
}
footer .logo img {
	width: 100%;
	filter: brightness(0) saturate(100%) invert(100%);
}
footer .copyright {
	font-size: min(1.09375vw * var(--fontratio, 1), 14px * var(--fontratio, 1));
	color: #fff;
}
@media screen and (max-width: 959px) {
	footer .copyright {
		font-size: min(1.3658536585vw * var(--fontratio, 1), 11.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	footer .copyright {
		font-size: min(3.2994700726vw * var(--fontratio, 1), 12.3730127724px * var(--fontratio, 1));
	}
}

#catch > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 70px 40px;
	display: flex;
	align-items: center;
	gap: min(40px, 2.4390243902vw);
	height: calc(100vh - min(220px, 13.4146341463vw));
	min-height: 550px;
}
@media screen and (max-width: 959px) {
	#catch > div {
		padding: 46.6666666667px 20px;
	}
}
@media screen and (max-width: 767px) {
	#catch > div {
		padding: 35px 15px;
	}
}
@media screen and (max-width: 767px) {
	#catch > div {
		gap: 20px;
		height: min(400px, 40vh);
		min-height: 300px;
	}
}
#catch > div > * {
	flex: 1;
}
#catch .logo {
	height: 100%;
}
@media screen and (max-width: 767px) {
	#catch .logo {
		flex: 0 1 33%;
	}
}
#catch .logo img {
	margin: auto;
	width: 100%;
	max-width: 800px;
	height: 100%;
	object-fit: contain;
}
#catch p {
	font-size: clamp(13.5px, 2.4vw, 48px);
	line-height: 1.7;
	font-weight: 700;
}

#intro {
	position: relative;
	margin-top: min(100px, 6.0975609756vw);
	padding-top: min(120px, 7.3170731707vw);
}
@media screen and (max-width: 767px) {
	#intro {
		margin-top: 0;
	}
}
#intro > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 0px 40px 80px;
}
@media screen and (max-width: 959px) {
	#intro > div {
		padding: 0px 20px 40px;
	}
}
@media screen and (max-width: 767px) {
	#intro > div {
		padding: 0px 15px 40px;
	}
}
#intro .image {
	position: absolute;
	top: max(-120px, -7.3170731707vw);
	left: 73%;
	width: calc(50vw + 23%);
	height: 65%;
	z-index: -1;
	transform: translateX(-100%);
	border-top-right-radius: 100px;
	overflow: hidden;
}
#intro .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#intro p {
	width: calc(50% + min(20px, 1.2195121951vw));
	margin-right: 0;
	margin-left: auto;
	padding: min(90px, 5.487804878vw) 0 0 min(40px, 2.4390243902vw);
	font-size: min(24px, 1.17vw);
	line-height: 2;
	background: #fff;
	border-top-left-radius: 4.1666666667em;
}
#intro p span {
	display: inline-block;
}
@media screen and (max-width: 959px) {
	#intro p span {
		display: inline;
	}
}
#intro p.name {
	padding-top: 1em;
	text-align: right;
}
@media screen and (max-width: 959px) {
	#intro p {
		width: calc(75% + min(20px, 1.2195121951vw));
		font-size: clamp(12px, 1.17vw, 24px);
	}
}
@media screen and (max-width: 767px) {
	#intro p {
		padding-left: 20px;
	}
}
#intro .button {
	margin-top: min(60px, 3.6585365854vw);
}
#intro .button a {
	display: flex;
	align-items: center;
	gap: 1em;
	width: fit-content;
	height: 2.5em;
	margin: auto;
	padding: 5px 1.3333333333em;
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	color: #fff;
	background: #C14103;
	border-radius: 1.25em;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
@media screen and (max-width: 959px) {
	#intro .button a {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#intro .button a {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
#intro .button a:hover {
	opacity: 0.7;
}
#intro .button a::after {
	content: "→";
	display: block;
	position: relative;
}

#information {
	background: rgba(193, 65, 3, 0.1);
}
#information > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 80px 40px 40px;
}
@media screen and (max-width: 959px) {
	#information > div {
		padding: 40px 20px 20px;
	}
}
@media screen and (max-width: 767px) {
	#information > div {
		padding: 40px 15px 20px;
	}
}
#information h2 {
	margin-bottom: 25px;
	font-size: min(3.75vw * var(--fontratio, 1), 48px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
}
@media screen and (max-width: 959px) {
	#information h2 {
		font-size: min(4.6829268293vw * var(--fontratio, 1), 38.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#information h2 {
		font-size: min(6.9185073879vw * var(--fontratio, 1), 25.9444027047px * var(--fontratio, 1));
	}
}
#information h3 {
	position: relative;
	padding-top: min(30px, 1.8292682927vw);
	font-size: min(2.5vw * var(--fontratio, 1), 32px * var(--fontratio, 1));
	line-height: 1.4;
	font-weight: 600;
	border-top: 2px solid #C14103;
}
@media screen and (max-width: 959px) {
	#information h3 {
		font-size: min(3.1219512195vw * var(--fontratio, 1), 25.6px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#information h3 {
		font-size: min(5.7514730779vw * var(--fontratio, 1), 21.5680240421px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#information h3 {
		padding-top: 20px;
		margin-bottom: 20px;
	}
}
#information h3::before {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 1px;
	top: 5px;
	background: #C14103;
}
#information h4 {
	margin-top: min(70px, 4.2682926829vw);
	margin-bottom: 20px;
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 600;
}
@media screen and (max-width: 959px) {
	#information h4 {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#information h4 {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
#information .column {
	display: flex;
	gap: 30px min(40px, 2.4390243902vw);
	margin-top: min(50px, 3.0487804878vw);
}
@media screen and (max-width: 767px) {
	#information .column {
		flex-direction: column;
	}
}
#information .column .list {
	flex: 1;
	order: 99;
}
@media screen and (max-width: 767px) {
	#information .column .list {
		order: 0;
	}
}
#information .column .info {
	flex: 1;
}
@media screen and (max-width: 767px) {
	#information .column .info {
		display: contents;
	}
}
#information .list ul {
	display: flex;
	flex-wrap: wrap;
	gap: min(40px, 2.4390243902vw);
}
#information .list li {
	width: calc((100% - min(40px, 2.4390243902vw)) / 2);
	max-width: 300px;
}
#information .list .image {
	border-radius: 23.3333333333%;
	overflow: hidden;
}
#information .list .name {
	margin-top: 15px;
	padding: 0 min(20px, 1.2195121951vw);
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
}
@media screen and (max-width: 959px) {
	#information .list .name {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#information .list .name {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
#information .list .sub {
	margin-top: 10px;
	padding: 0 min(20px, 1.2195121951vw);
	font-size: min(1.09375vw * var(--fontratio, 1), 14px * var(--fontratio, 1));
	line-height: 1.45;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 959px) {
	#information .list .sub {
		font-size: min(1.3658536585vw * var(--fontratio, 1), 11.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#information .list .sub {
		font-size: min(3.2994700726vw * var(--fontratio, 1), 12.3730127724px * var(--fontratio, 1));
	}
}
#information .info h3 {
	margin-top: min(80px, 4.8780487805vw);
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(32px, 2.01vw);
}
@media screen and (max-width: 767px) {
	#information .info h3 {
		margin-bottom: 20px;
		font-size: min(18px, 4.7vw);
	}
}
#information .info .info01 {
	margin-top: -0.75em;
	font-size: min(24px, 1.6vw);
	line-height: 2.5;
}
@media screen and (max-width: 767px) {
	#information .info .info01 {
		margin-top: 0;
		font-size: min(15px, 3.8vw);
		order: -1;
	}
}
#information .info .info01 div {
	display: flex;
}
#information .info .info01 dt {
	white-space: nowrap;
}
#information .info .info01 dt::after {
	content: "：";
	display: inline;
	position: relative;
}
#information .info .info02 {
	position: relative;
	font-size: min(1.25vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	line-height: 1.875;
}
@media screen and (max-width: 959px) {
	#information .info .info02 {
		font-size: min(1.5609756098vw * var(--fontratio, 1), 12.8px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#information .info .info02 {
		font-size: min(3.6458362134vw * var(--fontratio, 1), 13.6718858002px * var(--fontratio, 1));
	}
}
#information .info .info02 p {
	padding-left: 1.3em;
}
#information .info .info02 span {
	position: absolute;
	left: 0;
}
#information .info .info03 p {
	font-size: min(24px, 1.31vw);
	line-height: 2;
}
@media screen and (max-width: 767px) {
	#information .info .info03 p {
		font-size: min(3.7333333333vw * var(--fontratio, 1), 14px * var(--fontratio, 1));
	}
}
#information .info .info03 a {
	color: #000;
	position: relative;
	display: inline-block;
}
#information .info .info03 a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.5em - 10px);
	right: 55%;
	width: 15%;
	height: 1px;
	background: #000;
	opacity: 0;
	transform: scaleX(3);
	pointer-events: none;
	transform-origin: right;
	transition: transform 0s 0.3s, bottom 0.3s, right 0s 0.3s, width 0s 0.3s, opacity 0.3s;
	pointer-events: none;
}
#information .info .info03 a:hover:before {
	opacity: 1;
	right: 0%;
	width: 100%;
	bottom: calc(0.5em - 5px);
	transition: transform 0.3s 0.1s, bottom 0s, right 0.3s, width 0.3s 0.4s, opacity 0.25s;
	transform: scaleX(1);
}

#news > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 140px 40px 40px;
}
@media screen and (max-width: 959px) {
	#news > div {
		padding: 70px 20px 20px;
	}
}
@media screen and (max-width: 767px) {
	#news > div {
		padding: 70px 15px 20px;
	}
}
#news h2 {
	position: relative;
	padding-bottom: min(45px, 2.743902439vw);
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(3.75vw * var(--fontratio, 1), 48px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 1px solid #C14103;
}
@media screen and (max-width: 959px) {
	#news h2 {
		font-size: min(4.6829268293vw * var(--fontratio, 1), 38.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#news h2 {
		font-size: min(6.9185073879vw * var(--fontratio, 1), 25.9444027047px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#news h2 {
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
}
#news h2::before {
	content: attr(data-en);
	display: block;
	position: absolute;
	bottom: calc(100% - 0.33em);
	left: 0;
	font-size: min(120px, 9.375vw);
	line-height: 1;
	font-weight: 300;
	color: #EAEAEA;
	font-family: "Poppins", sans-serif;
	letter-spacing: 0.2em;
	z-index: -1;
}
#news h2::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 2px;
	bottom: 5px;
	background: #C14103;
}
#news p {
	font-size: min(1.40625vw * var(--fontratio, 1), 18px * var(--fontratio, 1));
	line-height: 1.5;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 959px) {
	#news p {
		font-size: min(1.756097561vw * var(--fontratio, 1), 14.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#news p {
		font-size: min(3.9721512647vw * var(--fontratio, 1), 14.8955672427px * var(--fontratio, 1));
	}
}
#news p a {
	color: #C14103;
	position: relative;
	display: inline-block;
}
#news p a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.25em - 10px);
	right: 55%;
	width: 15%;
	height: 1px;
	background: #C14103;
	opacity: 0;
	transform: scaleX(3);
	pointer-events: none;
	transform-origin: right;
	transition: transform 0s 0.3s, bottom 0.3s, right 0s 0.3s, width 0s 0.3s, opacity 0.3s;
	pointer-events: none;
}
#news p a:hover:before {
	opacity: 1;
	right: 0%;
	width: 100%;
	bottom: calc(0.25em - 5px);
	transition: transform 0.3s 0.1s, bottom 0s, right 0.3s, width 0.3s 0.4s, opacity 0.25s;
	transform: scaleX(1);
}

#about > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 140px 40px 40px;
}
@media screen and (max-width: 959px) {
	#about > div {
		padding: 70px 20px 20px;
	}
}
@media screen and (max-width: 767px) {
	#about > div {
		padding: 70px 15px 20px;
	}
}
#about h2 {
	position: relative;
	padding-bottom: min(45px, 2.743902439vw);
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(3.75vw * var(--fontratio, 1), 48px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 1px solid #C14103;
}
@media screen and (max-width: 959px) {
	#about h2 {
		font-size: min(4.6829268293vw * var(--fontratio, 1), 38.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#about h2 {
		font-size: min(6.9185073879vw * var(--fontratio, 1), 25.9444027047px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#about h2 {
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
}
#about h2::before {
	content: attr(data-en);
	display: block;
	position: absolute;
	bottom: calc(100% - 0.33em);
	left: 0;
	font-size: min(120px, 9.375vw);
	line-height: 1;
	font-weight: 300;
	color: #EAEAEA;
	font-family: "Poppins", sans-serif;
	letter-spacing: 0.2em;
	z-index: -1;
}
#about h2::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 2px;
	bottom: 5px;
	background: #C14103;
}
#about h3 {
	font-size: min(2.8125vw * var(--fontratio, 1), 36px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
}
@media screen and (max-width: 959px) {
	#about h3 {
		font-size: min(3.512195122vw * var(--fontratio, 1), 28.8px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#about h3 {
		font-size: min(6.1177620836vw * var(--fontratio, 1), 22.9416078137px * var(--fontratio, 1));
	}
}
#about .greeting {
	display: flex;
	align-items: flex-start;
	gap: 30px min(40px, 2.4390243902vw);
	margin-top: 20px;
	margin-bottom: min(80px, 4.8780487805vw);
}
@media screen and (max-width: 767px) {
	#about .greeting {
		flex-direction: column;
		margin-bottom: 40px;
	}
}
#about .greeting .image {
	flex-shrink: 0;
	width: min(520px, 31.7073170732vw);
	margin: auto;
	border-radius: 19.2307692308%;
	overflow: hidden;
}
#about .greeting p:not(.name) {
	font-size: min(1.5625vw * var(--fontratio, 1), 20px * var(--fontratio, 1));
	line-height: 1.9;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 959px) {
	#about .greeting p:not(.name) {
		font-size: min(1.9512195122vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#about .greeting p:not(.name) {
		font-size: min(3.2vw * var(--fontratio, 1), 12px * var(--fontratio, 1));
	}
}
#about .greeting .name {
	margin-top: 20px;
	margin-bottom: 20px;
	font-size: min(2.8125vw * var(--fontratio, 1), 36px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
}
@media screen and (max-width: 959px) {
	#about .greeting .name {
		font-size: min(3.512195122vw * var(--fontratio, 1), 28.8px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#about .greeting .name {
		font-size: min(6.1177620836vw * var(--fontratio, 1), 22.9416078137px * var(--fontratio, 1));
	}
}
#about .features {
	position: relative;
	margin-top: min(40px, 2.4390243902vw);
	padding: min(70px, 4.2682926829vw) 0 min(80px, 4.8780487805vw);
}
#about .features::before {
	content: "";
	display: block;
	position: absolute;
	width: 100vw;
	height: 100%;
	top: 0;
	left: calc(50% - 50vw);
	background: url(../../images/007.jpg) no-repeat center center;
	background-size: cover;
	z-index: -1;
}
#about .features ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: min(80px, 4.8780487805vw) min(40px, 2.4390243902vw);
}
#about .features li {
	width: calc((100% - min(40px, 2.4390243902vw) * 2) / 3);
}
@media screen and (max-width: 767px) {
	#about .features li {
		width: 100%;
	}
}
#about .features .no {
	font-size: min(90px, 6vw);
	font-weight: 700;
	color: #F37629;
}
#about .features .title {
	margin-top: 20px;
	margin-bottom: 20px;
	padding-bottom: 20px;
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 2px solid #BABABA;
}
@media screen and (max-width: 959px) {
	#about .features .title {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#about .features .title {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#about .features .title {
		margin-top: -1.3em;
		margin-bottom: 10px;
		padding-bottom: 10px;
		padding-left: 2em;
	}
}
#about .features .info {
	font-size: min(1.5625vw * var(--fontratio, 1), 20px * var(--fontratio, 1));
	line-height: 1.9;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 959px) {
	#about .features .info {
		font-size: min(1.9512195122vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#about .features .info {
		font-size: min(3.2vw * var(--fontratio, 1), 12px * var(--fontratio, 1));
	}
}

#instructors > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 140px 40px 40px;
}
@media screen and (max-width: 959px) {
	#instructors > div {
		padding: 70px 20px 20px;
	}
}
@media screen and (max-width: 767px) {
	#instructors > div {
		padding: 70px 15px 20px;
	}
}
#instructors h2 {
	position: relative;
	padding-bottom: min(45px, 2.743902439vw);
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(3.75vw * var(--fontratio, 1), 48px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 1px solid #C14103;
}
@media screen and (max-width: 959px) {
	#instructors h2 {
		font-size: min(4.6829268293vw * var(--fontratio, 1), 38.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#instructors h2 {
		font-size: min(6.9185073879vw * var(--fontratio, 1), 25.9444027047px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#instructors h2 {
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
}
#instructors h2::before {
	content: attr(data-en);
	display: block;
	position: absolute;
	bottom: calc(100% - 0.33em);
	left: 0;
	font-size: min(120px, 9.375vw);
	line-height: 1;
	font-weight: 300;
	color: #EAEAEA;
	font-family: "Poppins", sans-serif;
	letter-spacing: 0.2em;
	z-index: -1;
}
#instructors h2::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 2px;
	bottom: 5px;
	background: #C14103;
}
#instructors .list {
	display: flex;
	flex-direction: column;
	gap: min(60px, 3.6585365854vw) min(40px, 2.4390243902vw);
}
@media screen and (max-width: 767px) {
	#instructors .list {
		flex-direction: row;
		flex-wrap: wrap;
	}
}
#instructors .list ul {
	display: flex;
	justify-content: center;
	gap: min(40px, 2.4390243902vw);
}
@media screen and (max-width: 767px) {
	#instructors .list ul {
		display: contents;
	}
}
#instructors .list li {
	width: calc((100% - min(40px, 2.4390243902vw) * 3) / 4);
}
@media screen and (max-width: 767px) {
	#instructors .list li {
		width: calc((100% - min(40px, 2.4390243902vw) * 1) / 2);
	}
}
#instructors .list .image {
	border-radius: 26.3157894737%;
	overflow: hidden;
}
#instructors .list .name {
	margin-top: 15px;
	padding: 0 min(20px, 1.2195121951vw);
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
}
@media screen and (max-width: 959px) {
	#instructors .list .name {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#instructors .list .name {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
#instructors .list .sub {
	margin-top: 10px;
	padding: 0 min(20px, 1.2195121951vw);
	font-size: min(1.09375vw * var(--fontratio, 1), 14px * var(--fontratio, 1));
	line-height: 1.45;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 959px) {
	#instructors .list .sub {
		font-size: min(1.3658536585vw * var(--fontratio, 1), 11.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#instructors .list .sub {
		font-size: min(3.2994700726vw * var(--fontratio, 1), 12.3730127724px * var(--fontratio, 1));
	}
}

#program > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 100px 40px 40px;
}
@media screen and (max-width: 959px) {
	#program > div {
		padding: 50px 20px 20px;
	}
}
@media screen and (max-width: 767px) {
	#program > div {
		padding: 50px 15px 20px;
	}
}
#program h2 {
	position: relative;
	padding-bottom: min(45px, 2.743902439vw);
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(3.75vw * var(--fontratio, 1), 48px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 1px solid #C14103;
}
@media screen and (max-width: 959px) {
	#program h2 {
		font-size: min(4.6829268293vw * var(--fontratio, 1), 38.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#program h2 {
		font-size: min(6.9185073879vw * var(--fontratio, 1), 25.9444027047px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#program h2 {
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
}
#program h2::before {
	content: attr(data-en);
	display: block;
	position: absolute;
	bottom: calc(100% - 0.33em);
	left: 0;
	font-size: min(120px, 9.375vw);
	line-height: 1;
	font-weight: 300;
	color: #EAEAEA;
	font-family: "Poppins", sans-serif;
	letter-spacing: 0.2em;
	z-index: -1;
}
#program h2::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 2px;
	bottom: 5px;
	background: #C14103;
}
#program .about {
	position: relative;
	padding: min(50px, 3.0487804878vw) 0;
}
#program .about::before {
	content: "";
	display: block;
	position: absolute;
	width: 100vw;
	height: 100%;
	left: calc(50% - 50vw);
	top: 0;
	background: rgba(193, 65, 3, 0.1);
}
#program .about div {
	display: flex;
	font-size: min(24px, 1.63vw);
	line-height: 2.5;
}
@media screen and (max-width: 767px) {
	#program .about div {
		display: block;
		font-size: 12px;
		line-height: 1.8;
	}
	#program .about div + div {
		margin-top: 20px;
	}
}
#program .about dt {
	white-space: nowrap;
}
#program .about dt::after {
	content: "：";
	display: inline;
	position: relative;
}
@media screen and (max-width: 767px) {
	#program .about dd {
		padding-left: 2em;
	}
}
#program .about span {
	display: inline-block;
}
#program .program {
	margin-top: min(40px, 2.4390243902vw);
	overflow-x: auto;
}
@media screen and (max-width: 767px) {
	#program .program {
		margin-top: 20px;
	}
}
#program .program > table {
	position: relative;
	width: 100%;
	min-width: 800px;
	margin: 0px;
	border-spacing: 0px;
	empty-cells: show;
	border-collapse: collapse;
}
#program .program > table > thead > tr > th {
	position: relative;
	padding: 0.75em min(20px, 1.2195121951vw) calc(0.75em + 15px);
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	line-height: 1;
	font-weight: 600;
	color: #fff;
}
@media screen and (max-width: 959px) {
	#program .program > table > thead > tr > th {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#program .program > table > thead > tr > th {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
#program .program > table > thead > tr > th::before {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: calc(100% - 15px);
	top: 0;
	left: 0;
	background: #C14103;
	z-index: -1;
}
#program .program > table > thead > tr > th:first-child::before {
	content: "";
	display: block;
	position: absolute;
	border-radius: 1.25em 0 0 1.25em;
}
#program .program > table > thead > tr > th:last-child::before {
	content: "";
	display: block;
	position: absolute;
	border-radius: 0 1.25em 1.25em 0;
}
#program .program > table > tbody > tr > td {
	padding: min(20px, 1.2195121951vw);
	vertical-align: top;
	text-align: left;
	font-size: min(1.25vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	line-height: 1.7;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 959px) {
	#program .program > table > tbody > tr > td {
		font-size: min(1.5609756098vw * var(--fontratio, 1), 12.8px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#program .program > table > tbody > tr > td {
		font-size: min(3.6458362134vw * var(--fontratio, 1), 13.6718858002px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#program .program > table > tbody > tr > td {
		padding: 10px 15px;
	}
}
#program .program > table > tbody > tr > td:first-child {
	padding: min(20px, 1.2195121951vw) min(40px, 2.4390243902vw);
}
@media screen and (max-width: 767px) {
	#program .program > table > tbody > tr > td:first-child {
		padding: 10px 20px;
	}
}
#program .program > table > tbody > tr > td + td {
	border-left: 1px solid #C14103;
}
#program .program > table > tbody > tr:nth-child(even) > td {
	background: #EAEAEA;
}
#program .program ul li {
	position: relative;
	padding-left: 1em;
}
#program .program ul li:before {
	position: absolute;
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	vertical-align: middle;
	top: 0.73em;
	left: 0px;
	margin-top: -2px;
	background: #000000;
	border-radius: 50%;
}
#program p {
	margin-top: min(30px, 1.8292682927vw);
	font-size: min(1.09375vw * var(--fontratio, 1), 14px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	text-align: right;
}
@media screen and (max-width: 959px) {
	#program p {
		font-size: min(1.3658536585vw * var(--fontratio, 1), 11.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#program p {
		font-size: min(3.2994700726vw * var(--fontratio, 1), 12.3730127724px * var(--fontratio, 1));
	}
}
#program .button {
	margin-top: max(20px, min(40px, 2.4390243902vw));
}
#program .button a {
	display: flex;
	align-items: center;
	gap: 1em;
	width: fit-content;
	height: 2.5em;
	margin: auto;
	padding: 5px 1.3333333333em;
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	color: #fff;
	background: #C14103;
	border-radius: 1.25em;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
@media screen and (max-width: 959px) {
	#program .button a {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#program .button a {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
#program .button a:hover {
	opacity: 0.7;
}
#program .button a::after {
	content: "→";
	display: block;
	position: relative;
}

#members > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 140px 40px 40px;
}
@media screen and (max-width: 959px) {
	#members > div {
		padding: 70px 20px 20px;
	}
}
@media screen and (max-width: 767px) {
	#members > div {
		padding: 70px 15px 20px;
	}
}
#members h2 {
	position: relative;
	padding-bottom: min(45px, 2.743902439vw);
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(3.75vw * var(--fontratio, 1), 48px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 1px solid #C14103;
}
@media screen and (max-width: 959px) {
	#members h2 {
		font-size: min(4.6829268293vw * var(--fontratio, 1), 38.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#members h2 {
		font-size: min(6.9185073879vw * var(--fontratio, 1), 25.9444027047px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#members h2 {
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
}
#members h2::before {
	content: attr(data-en);
	display: block;
	position: absolute;
	bottom: calc(100% - 0.33em);
	left: 0;
	font-size: min(120px, 9.375vw);
	line-height: 1;
	font-weight: 300;
	color: #EAEAEA;
	font-family: "Poppins", sans-serif;
	letter-spacing: 0.2em;
	z-index: -1;
}
#members h2::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 2px;
	bottom: 5px;
	background: #C14103;
}
#members h3 {
	margin-top: min(40px, 2.4390243902vw);
	margin-bottom: 20px;
	font-size: min(2.8125vw * var(--fontratio, 1), 36px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
}
@media screen and (max-width: 959px) {
	#members h3 {
		font-size: min(3.512195122vw * var(--fontratio, 1), 28.8px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#members h3 {
		font-size: min(6.1177620836vw * var(--fontratio, 1), 22.9416078137px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#members h3 {
		margin-top: 40px;
	}
}
#members .list ul {
	display: flex;
	flex-wrap: wrap;
	gap: min(40px, 2.4390243902vw);
}
@media screen and (max-width: 767px) {
	#members .list ul {
		gap: 30px 20px;
	}
}
#members .list li {
	width: calc((100% - min(40px, 2.4390243902vw) * 4) / 5);
}
@media screen and (max-width: 767px) {
	#members .list li {
		width: calc((100% - 20px * 2) / 3);
	}
}
#members .list .name {
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
}
@media screen and (max-width: 959px) {
	#members .list .name {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#members .list .name {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
#members .list .sub {
	margin-top: 10px;
	font-size: min(1.09375vw * var(--fontratio, 1), 14px * var(--fontratio, 1));
	line-height: 1.45;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 959px) {
	#members .list .sub {
		font-size: min(1.3658536585vw * var(--fontratio, 1), 11.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#members .list .sub {
		font-size: min(3.2994700726vw * var(--fontratio, 1), 12.3730127724px * var(--fontratio, 1));
	}
}

#company > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 140px 40px 180px;
}
@media screen and (max-width: 959px) {
	#company > div {
		padding: 70px 20px 90px;
	}
}
@media screen and (max-width: 767px) {
	#company > div {
		padding: 70px 15px 90px;
	}
}
#company h2 {
	position: relative;
	padding-bottom: min(45px, 2.743902439vw);
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(3.75vw * var(--fontratio, 1), 48px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 1px solid #C14103;
}
@media screen and (max-width: 959px) {
	#company h2 {
		font-size: min(4.6829268293vw * var(--fontratio, 1), 38.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#company h2 {
		font-size: min(6.9185073879vw * var(--fontratio, 1), 25.9444027047px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#company h2 {
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
}
#company h2::before {
	content: attr(data-en);
	display: block;
	position: absolute;
	bottom: calc(100% - 0.33em);
	left: 0;
	font-size: min(120px, 9.375vw);
	line-height: 1;
	font-weight: 300;
	color: #EAEAEA;
	font-family: "Poppins", sans-serif;
	letter-spacing: 0.2em;
	z-index: -1;
}
#company h2::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 2px;
	bottom: 5px;
	background: #C14103;
}
#company h3 {
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(2.8125vw * var(--fontratio, 1), 36px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
}
@media screen and (max-width: 959px) {
	#company h3 {
		font-size: min(3.512195122vw * var(--fontratio, 1), 28.8px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#company h3 {
		font-size: min(6.1177620836vw * var(--fontratio, 1), 22.9416078137px * var(--fontratio, 1));
	}
}
#company .about div {
	display: flex;
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	line-height: 2.5;
}
@media screen and (max-width: 959px) {
	#company .about div {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#company .about div {
		font-size: min(4vw * var(--fontratio, 1), 15px * var(--fontratio, 1));
		line-height: 2;
	}
}
#company .about dt {
	flex-shrink: 0;
	width: 5em;
	white-space: nowrap;
}
#company .about dt::after {
	content: "：";
	display: inline;
	position: relative;
}

#contact {
	margin-bottom: min(80px, 4.8780487805vw);
	background: rgba(193, 65, 3, 0.1);
}
#contact > div {
	position: relative;
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: 40px 40px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: min(396px, 16.5em);
	padding-right: calc(50% + min(20px, 1.2195121951vw));
	font-size: min(24px, 1.71vw);
}
@media screen and (max-width: 959px) {
	#contact > div {
		padding: 26.6666666667px 20px;
	}
}
@media screen and (max-width: 767px) {
	#contact > div {
		padding: 20px 15px;
	}
}
@media screen and (max-width: 767px) {
	#contact > div {
		padding-right: 15px;
		font-size: 16px;
		height: min(200px, 12.5em);
	}
}
#contact h2 {
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(2.5vw * var(--fontratio, 1), 32px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 600;
}
@media screen and (max-width: 959px) {
	#contact h2 {
		font-size: min(3.1219512195vw * var(--fontratio, 1), 25.6px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	#contact h2 {
		font-size: min(5.7514730779vw * var(--fontratio, 1), 21.5680240421px * var(--fontratio, 1));
	}
}
#contact .image {
	position: absolute;
	top: 0;
	left: calc(50% + min(20px, 1.2195121951vw));
	width: calc(50vw - min(20px, 1.2195121951vw));
	height: 100%;
}
@media screen and (max-width: 767px) {
	#contact .image {
		display: none;
	}
}
#contact .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#contact p {
	line-height: 1.45;
}
@media screen and (max-width: 767px) {
	#contact p {
		line-height: 1.8;
	}
}
#contact p a {
	color: #000;
	position: relative;
	display: inline-block;
}
#contact p a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.225em - 10px);
	right: 55%;
	width: 15%;
	height: 1px;
	background: #000;
	opacity: 0;
	transform: scaleX(3);
	pointer-events: none;
	transform-origin: right;
	transition: transform 0s 0.3s, bottom 0.3s, right 0s 0.3s, width 0s 0.3s, opacity 0.3s;
	pointer-events: none;
}
#contact p a:hover:before {
	opacity: 1;
	right: 0%;
	width: 100%;
	bottom: calc(0.225em - 5px);
	transition: transform 0.3s 0.1s, bottom 0s, right 0.3s, width 0.3s 0.4s, opacity 0.25s;
	transform: scaleX(1);
}

.modal > div {
	position: relative;
	width: 100%;
	max-width: 1040px;
	margin: auto;
	padding: 140px 40px 60px;
}
@media screen and (max-width: 959px) {
	.modal > div {
		padding: 70px 20px 30px;
	}
}
@media screen and (max-width: 767px) {
	.modal > div {
		padding: 70px 15px 30px;
	}
}
.modal h2 {
	position: relative;
	padding-bottom: min(45px, 2.743902439vw);
	margin-bottom: min(40px, 2.4390243902vw);
	font-size: min(3.75vw * var(--fontratio, 1), 48px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 1px solid #C14103;
}
@media screen and (max-width: 959px) {
	.modal h2 {
		font-size: min(4.6829268293vw * var(--fontratio, 1), 38.4px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	.modal h2 {
		font-size: min(6.9185073879vw * var(--fontratio, 1), 25.9444027047px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	.modal h2 {
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
}
.modal h2::before {
	content: attr(data-en);
	display: block;
	position: absolute;
	bottom: calc(100% - 0.33em);
	left: 0;
	font-size: min(120px, 9.375vw);
	line-height: 1;
	font-weight: 300;
	color: #EAEAEA;
	font-family: "Poppins", sans-serif;
	letter-spacing: 0.2em;
	z-index: -1;
}
.modal h2::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 2px;
	bottom: 5px;
	background: #C14103;
}
.modal h3 {
	margin-bottom: 10px;
	font-size: min(2.4390243902vw * var(--fontratio, 1), 20px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
	.modal h3 {
		font-size: min(4.8vw * var(--fontratio, 1), 18px * var(--fontratio, 1));
	}
}
.modal > div > p {
	font-size: min(2.1951219512vw * var(--fontratio, 1), 18px * var(--fontratio, 1));
	line-height: 1.7;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
	.modal > div > p {
		font-size: min(4.2666666667vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	}
}
.modal > div > p.error_mes {
	color: #AC1613;
}
.modal > div .text p {
	font-size: min(1.9512195122vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	line-height: 1.7;
	font-weight: 400;
}
@media screen and (max-width: 767px) {
	.modal > div .text p {
		font-size: min(3.7333333333vw * var(--fontratio, 1), 14px * var(--fontratio, 1));
	}
}
.modal > div .text p strong {
	font-weight: 600;
}
.modal > div .text ul {
	margin-top: 10px;
}
.modal > div .text ul > li {
	position: relative;
	padding-left: 1em;
	font-size: min(1.9512195122vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	line-height: 1.5;
	font-weight: 400;
}
@media screen and (max-width: 767px) {
	.modal > div .text ul > li {
		font-size: min(3.7333333333vw * var(--fontratio, 1), 14px * var(--fontratio, 1));
	}
}
.modal > div .text ul > li:before {
	position: absolute;
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	vertical-align: middle;
	top: 0.73em;
	left: 0px;
	margin-top: -2px;
	background: #000000;
	border-radius: 50%;
}
.modal > div .text ul > li + li {
	margin-top: 8px;
}
.modal .form {
	font-family: "Noto Sans JP", sans-serif;
}
.modal .form > form > p {
	margin-top: 15px;
	margin-bottom: 20px;
	font-size: min(2.1951219512vw * var(--fontratio, 1), 18px * var(--fontratio, 1));
	line-height: 1.7;
	font-weight: 400;
}
@media screen and (max-width: 767px) {
	.modal .form > form > p {
		font-size: min(4.2666666667vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	}
}
.modal .form > form > p + dl > dt:first-child {
	border-top: 0;
}
.modal .form > form > p + dl > dt:first-child + dd {
	border-top: 0;
}
.modal .form > form > dl {
	display: flex;
	gap: 20px 0;
	flex-wrap: wrap;
	align-items: flex-start;
	padding-bottom: 20px;
	border-bottom: 1px solid #BCBEC9;
}
@media screen and (max-width: 767px) {
	.modal .form > form > dl {
		gap: 15px;
	}
}
.modal .form > form > dl > dt {
	display: flex;
	gap: 8px;
	width: calc(13.2em + 8px + 20px);
	padding-top: 20px;
	padding-right: 20px;
	font-size: min(2.1951219512vw * var(--fontratio, 1), 18px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 600;
	border-top: 1px solid #BCBEC9;
}
@media screen and (max-width: 767px) {
	.modal .form > form > dl > dt {
		width: 100%;
		padding-top: 15px;
		font-size: min(4.2666666667vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
	}
}
.modal .form > form > dl > dt.required::after {
	content: "必須";
	display: block;
	color: #AC1613;
	align-self: center;
}
.modal .form > form > dl > dd {
	padding-top: 20px;
	width: calc(100% - 13.2em - 8px - 20px);
	font-size: min(2.1951219512vw * var(--fontratio, 1), 18px * var(--fontratio, 1));
	line-height: 1.3;
	font-weight: 400;
	border-top: 1px solid #BCBEC9;
}
@media screen and (max-width: 767px) {
	.modal .form > form > dl > dd {
		width: 100%;
		padding-top: 0px;
		font-size: min(4.2666666667vw * var(--fontratio, 1), 16px * var(--fontratio, 1));
		border-top: 0;
	}
}
.modal .form > form > dl > dd * + p {
	margin-top: 20px;
}
.modal .form > form > dl > dd p:has(+ *) {
	margin-bottom: 10px;
}
.modal .form input[type="text"], .modal .form input[type="email"], .modal .form input[type="tel"], .modal .form input[type="url"], .modal .form input[type="number"] {
	width: 100%;
	height: 2.5em;
	padding: 0 min(20px, 2.0833333333vw);
	font-size: 16px;
	border: 1px solid #888990;
	border-radius: 10px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
.modal .form input[type="text"]:focus, .modal .form input[type="email"]:focus, .modal .form input[type="tel"]:focus, .modal .form input[type="url"]:focus, .modal .form input[type="number"]:focus {
	outline: none;
}
.modal .form input[type="tel"] {
	width: 5.75em;
	margin: 0 8px;
}
.modal .form input[type="tel"]:first-child {
	margin-left: 0;
}
.modal .form input[type="tel"]:last-child {
	margin-right: 0;
}
.modal .form textarea {
	width: 100%;
	height: 7.5em;
	padding: 10px min(20px, 2.0833333333vw);
	font-size: 16px;
	line-height: 1.5;
	border: 1px solid #888990;
	border-radius: 10px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
@media screen and (max-width: 767px) {
	.modal .form textarea {
		height: 5em;
	}
}
.modal .form textarea:focus {
	outline: none;
}
.modal .form .buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: min(40px, 4.1666666667vw);
	margin-top: min(40px, 4.1666666667vw);
}
.modal .form .buttons button {
	display: flex;
	gap: 1em;
	align-items: center;
	justify-content: center;
	width: 13.3333333333em;
	height: 2.5em;
	padding: 5px min(20px, 2.0833333333vw);
	font-size: min(1.875vw * var(--fontratio, 1), 24px * var(--fontratio, 1));
	color: #fff;
	font-family: "Noto Serif JP", serif;
	background: #C14103;
	border-radius: 1.25em;
	border: 0;
	pointer: cursor;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
@media screen and (max-width: 959px) {
	.modal .form .buttons button {
		font-size: min(2.3414634146vw * var(--fontratio, 1), 19.2px * var(--fontratio, 1));
	}
}
@media screen and (max-width: 767px) {
	.modal .form .buttons button {
		font-size: min(4.8375216629vw * var(--fontratio, 1), 18.1407062359px * var(--fontratio, 1));
	}
}
.modal .form .buttons button:hover {
	opacity: 0.7;
}
@media screen and (max-width: 767px) {
	.modal .form .buttons button {
		width: 13.5em;
		padding-left: 15px;
	}
}
.modal .form .buttons button[name="in_confirm"]::after, .modal .form .buttons button[name="in_sendmail"]::after {
	content: "→";
	display: block;
	position: relative;
}
.modal .form .buttons button[name="in_back"], .modal .form .buttons button[type="reset"] {
	color: #C14103;
	background-color: #fff;
	border: 1px solid #C14103;
}
