@charset "UTF-8";

/* ======================================================
 * component.css
====================================================== */



/* section
------------------------------------------ */
.l-section {
	padding-inline: 60px;
}
/* PC */
@media screen and (min-width: 1201px) {
  .l-section__inner {
    margin-inline: auto;
  }
}
/* SP */
@media screen and (max-width: 1200px) {
	.l-section {
		padding-inline: 30px;
	}
}


/* heading
------------------------------------------ */
.c-pageTitle {
	padding: 130px 60px 0;
	text-align: center;
}
.c-pageTitle h1 {
	font-family: var(--font-manrope);
	font-size: 8rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.04em;
}
.c-pageTitle__summaryText {
	font-weight: 600;
	margin-top: 100px;
}
/* SP */
@media screen and (max-width: 1200px) {
	.c-pageTitle {
		padding: 70px 30px 0;
	}
	.c-pageTitle h1 {
		font-size: 3rem;
		line-height: 1.3333;
	}
	.c-pageTitle__summaryText {
		margin-top: 40px;
		text-align: left;
	}
}


/* text
------------------------------------------ */
.u-text-bold {
	font-weight: 600 !important;
}
.u-align-left {
	text-align: left !important;
}
.u-align-center {
	text-align: center !important;
}
.u-align-right {
	text-align: right !important;
}
.c-text-note {
	padding-left: 1em;
	text-indent: -1em;
}
.c-text-note:before {
	content: "※";
}



/* list
------------------------------------------ */
* + [class^="c-list-"] {
	margin-top: 15px;
}
[class^="c-list-"] > li + li {
	margin-top: 0;
}
.c-list-disc > li {
	padding-left: 1em;
	text-indent: -1em;
}
.c-list-disc > li:before {
	content: "・";
	margin-right: 1em;
}
[class^="c-list-note"] > li {
	padding-left: 1em;
	text-indent: -1em;
}
.c-list-note > li:before {
	content: "※";
	margin-right: 1em;
}



/* button
------------------------------------------ */
* + [class^="c-button"] {
	margin-top: 50px;
}
[class^="c-button"] {
	position: relative;
	width: 188px;
}
[class^="c-button"][data-align="center"] {
	margin-left: auto;
	margin-right: auto;
}
[class^="c-button"][data-align="right"] {
	margin-left: auto;
}
[class^="c-button"] a {
	border: 1px solid rgba(var(--color-black4-rgb), 0.3);
	display: block;
	font-weight: 700;
	padding: 14px 16px;
	position: relative;
	text-align: center;
}
[class^="c-button"] a span {
	border-right: 2px solid var(--color-primary);
	display: block;
	line-height: 12px;
	letter-spacing: 0.1em;
	padding-right: 10px;
	position: relative;
}
[class^="c-button"] a span:before,
[class^="c-button"] a span:after {
	background-image: url(../images/common/icon_arrow_right_black.svg);
	background-repeat: no-repeat;
	background-position: right center;
	background-size: 100% auto;
	content: "";
	height: 12px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 3px;
	min-width: 14px;
	min-height: 12px;
	width: 14px;
}
[class^="c-button"] a span:after {
	opacity: 0;
	transform: translateY(-50%) translateX(-24px);
}
.c-button--white a {
	border-color: rgba(var(--color-white-rgb), 0.3);
	color: var(--color-white);
}
.c-button--white a span {
	border-right-color: var(--color-white);
}
.c-button--white a span:before,
.c-button--white a span:after {
	background-image: url(../images/common/icon_arrow_right_white.svg);
}
/* PC */
@media screen and (min-width: 1201px) {
	[class^="c-button"] a span:before,
	[class^="c-button"] a span:after {
		transition: 1s all;
	}
	[class^="c-button"]:before,
	[class^="c-button"]:after,
	[class^="c-button"] a:before,
	[class^="c-button"] a:after {
		background: var(--color-primary);
		content: "";
		position: absolute;
		transition: 0.3s all;
		z-index: 1;
	}
	.c-button--white:before,
	.c-button--white:after,
	.c-button--white a:before,
	.c-button--white a:after {
		background: var(--color-white);
	}
	[class^="c-button"]:before,
	[class^="c-button"] a:before {
		height: 1px;
		width: 0;
	}
	[class^="c-button"]:after,
	[class^="c-button"] a:after {
		height: 0;
		width: 1px;
	}
	[class^="c-button"]:before {
		top: 0;
		left: 0;
	}
	[class^="c-button"] a:before {
		bottom: -1px;
		right: 0;
	}
	[class^="c-button"]:after {
		top: 0;
		right: 0;
	}
	[class^="c-button"] a:after {
		bottom: 0;
		left: -1px;
	}
	[class^="c-button"] a:hover {
		opacity: 1;
	}
	[class^="c-button"]:hover:before,
	[class^="c-button"]:hover a:before {
		width: 100%;
	}
	[class^="c-button"]:hover:after,
	[class^="c-button"]:hover a:after {
		height: 100%;
	}
	[class^="c-button"]:before {
		transition-delay: 0.7s;
	}
	[class^="c-button"]:after {
		transition-delay: 0.5s;
	}
	[class^="c-button"] a:before {
		transition-delay: 0.3s;
	}
	[class^="c-button"] a:after {
		transition-delay: 0.2s;
	}
	[class^="c-button"]:hover:before {
		transition-delay: 0s;
	}
	[class^="c-button"]:hover:after {
		transition-delay: 0.25s;
	}
	[class^="c-button"]:hover a:before {
		transition-delay: 0.4s;
	}
	[class^="c-button"]:hover a:after {
		transition-delay: 0.6s;
	}
	[class^="c-button"] a:hover span:before {
		opacity: 0;
		transform: translateY(-50%) translateX(24px);
	}
	[class^="c-button"] a:hover span:after {
		opacity: 1;
		transform: translateY(-50%) translateX(0);
	}
}
/* SP */
@media screen and (max-width: 1200px) {
	* + [class^="c-button"] {
		margin-top: 40px;
	}
	[class^="c-button"] {
		margin-inline: auto;
	}
	[class^="c-button"] a {
		border-color: var(--color-primary);
	}
	.c-button--white a {
		border-color: var(--color-white);
	}
}



/* pagenation
------------------------------------------ */
.c-pagenation {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	margin-top: 120px;
}
.c-pagenation.hide {
	display: none;
}
.c-pagenation > * {
	border-bottom: 2px solid transparent;
	font-size: 2.4rem;
	font-weight: 500;
	font-family: var(--font-manrope);
	letter-spacing: 0.04em;
	margin-inline: 24px;
	padding: 8px;
}
.c-pagenation .current {
	border-bottom-color: var(--color-primary);
	font-weight: 600;
}
.c-pagenation .prev,
.c-pagenation .next {
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 10px auto;
	border-bottom: none;
	color: transparent;
	font-size: 0;
	height: 18px;
	width: 10px;
}
.c-pagenation .prev {
	background-image: url(../images/common/icon_pagenation_prev.svg);
}
.c-pagenation .next {
	background-image: url(../images/common/icon_pagenation_next.svg);
}
/* SP */
@media screen and (max-width: 1200px) {
	.c-pagenation {
		margin-top: 50px;
	}
	.c-pagenation > * {
		font-size: 1.6rem;
		margin-inline: 12px;
		padding: 0 0 3px;
	}
	.c-pagenation .prev,
	.c-pagenation .next {
		background-size: 8px auto;
		height: 14px;
		margin-bottom: 3px;
		width: 8px;
	}
}



/* information link
------------------------------------------ */
.c-block-information__heading {
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-manrope);
	font-weight: 600;
	letter-spacing: 0.04em;
	display: inline-block;
	line-height: 26px;
	padding-inline: 18px;
}
.c-block-information__link > li {
	margin-top: 30px;
}
.c-block-information__link > li a {
	border-bottom: 1px solid var(--color-gray3);
	display: block;
	font-weight: 600;
	padding-bottom: 4px;
	position: relative;
}
.c-block-information__link > li a > span {
	display: block;
	position: relative;
	padding-right: 40px;
}
.c-block-information__link > li a > span:before,
.c-block-information__link > li a > span:after {
	background-image: url(../images/common/icon_arrow_black_light.svg);
	background-repeat: no-repeat;
	background-position: right bottom;
	background-size: 100% auto;
	content: "";
	height: 7px;
	position: absolute;
	bottom: 6px;
	right: 0;
	width: 21px;
}
.c-block-information__link > li a > span:after {
	opacity: 0;
	transform: translateX(-27px);
}
/* PC */
@media screen and (min-width: 1201px) {
	.c-block-information {
		margin-inline: auto;
		width: 512px;
	}
  .c-block-information__link > li a:after {
    background: var(--color-gray7);
    content: "";
    height: 1px;
    opacity: 0;
    position: absolute;
    bottom: -1px;
    left: 0;
    transition: 1s all;
    width: 0;
    z-index: 1;
  }
	.c-block-information__link > li a > span:before,
	.c-block-information__link > li a > span:after {
		transition: 1s all;
	}
	.c-block-information__link > li a:hover{
		opacity: 1;
	}
  .c-block-information__link > li a:hover:after {
    opacity: 1;
    width: 100%;
  }
	.c-block-information__link > li a:hover > span:before {
		opacity: 0;
		transform: translateX(27px);
	}
	.c-block-information__link > li a:hover > span:after {
		opacity: 1;
		transform: translateX(0);
	}
}
/* SP */
@media screen and (max-width: 1200px) {
	.c-block-information__heading {
		line-height: 22px;
		padding-inline: 12px;
	}
	.c-block-information__link > li {
		margin-top: 12px;
	}
	.c-block-information__link > li a {
		font-size: 1.3rem;
		padding-bottom: 5px;
	}
	.c-block-information__link > li a > span {
		padding-right: 30px;
	}
	.c-block-information__link > li a > span:before {
		height: 6px;
		bottom: 5px;
		width: 17px;
	}
	.c-block-information__link > li a > span:after {
		display: none;
	}
}



/* animation
------------------------------------------ */
.c-animation-borderBottomLine {
	display: inline-block;
	padding-inline: 8px;
	position: relative;
}
.c-animation-borderBottomLine:after {
	background: var(--color-primary);
	content: "";
	height: 8px;
	position: absolute;
	bottom: 0;
	left: 0;
	transition: 1s all;
	width: 0;
}
.c-animation-borderBottomLine.is-active:after {
	width: 100%;
}
.c-animation-order .c-animation-item {
	opacity: 0;
	transition: 1s all;
}
.c-animation-order .c-animation-item.is-active {
	opacity: 1;
}
/* SP */
@media screen and (max-width: 1200px) {
	.c-animation-borderBottomLine {
		padding-inline: 6px;
	}
}




/* 404 
------------------------------------------ */
.p-notfoundBlock {
	padding: 220px 60px;
	text-align: center;
}
.p-notfoundBlock h1 {
	font-size: 12rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.06em;
	position: relative;
}
.p-notfoundBlock h1 .subtext {
	display: block;
	font-size: 2.8rem;
	letter-spacing: 0.05em;
	margin-top: 20px;
}
.p-notfoundBlock h1 + p {
	font-weight: 600;
	letter-spacing: 0.04em;
	margin-top: 54px;
}
.p-notfoundBlock h1 .c-animation-borderBottomLine {
	padding-bottom: 34px;
}
/* SP */
@media screen and (max-width: 1200px) {
	.p-notfoundBlock {
		padding: 90px 64px 150px;
	}
	.p-notfoundBlock h1 {
		font-size: 12rem;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0.06em;
		position: relative;
	}
	.p-notfoundBlock h1 .subtext {
		font-size: 2.4rem;
	}
	.p-notfoundBlock h1 + p {
		font-weight: 400;
		letter-spacing: 0;
		margin-top: 45px;
		text-align: left;
	}
}