* {
	box-sizing: border-box;
}

html {
	--font-family-base: Noto Sans JP, sans-serif;
	--font-weight-base: 400;
	--lineheight-base: 1.5;
	font-size: 10px;
	overflow-x: hidden;
	font-size: 1.3888888889vw;
}

html.noscroll {
	position: fixed;
	left: 0;
	right: 0;
	width: 100%;
	overflow-y: scroll;
	overflow-x: hidden;
}

body {
	background-color: #fff;
	color: #333;
	margin: 0;
	font-family: var(--font-family-base);
	font-weight: var(--font-weight-base);
	font-size: 2.8rem;
	line-height: var(--lineheight-base);
	text-align: left;
	position: relative;
	overflow-x: hidden;
}

body.is-loaded {
	opacity: 1;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
	margin: 0;
}

ol,
ul,
dl {
	list-style-type: none;
	margin: 0;
	padding-left: 0;
}

b,
strong {
	font-weight: 700;
}

a {
	background-color: transparent;
	color: inherit;
	text-decoration: none;
}

img {
	vertical-align: middle;
	border-style: none;
	max-width: 100%;
	height: auto;
}

table {
	border-collapse: collapse;
}

th {
	font-weight: 400;
	text-align: inherit;
	text-align: -webkit-match-parent;
}

input,
button,
select,
optgroup,
textarea {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

button,
input {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

select {
	word-wrap: normal;
}

button,
[type=button],
[type=reset],
[type=submit] {
	-webkit-appearance: button;
}

textarea {
	overflow: auto;
	resize: vertical;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
	height: auto;
}

[type=search] {
	outline-offset: -2px;
	-webkit-appearance: none;
}

[type=search]::-webkit-search-decoration {
	-webkit-appearance: none;
}

[hidden] {
	display: none !important;
}

.aligncenter {
	text-align: center;
}

.alignright {
	text-align: right;
}

.alignleft {
	text-align: left;
}

img.aligncenter {
	display: block;
	margin: auto;
}

img.alignright {
	display: block;
	margin-left: auto;
}

img.alignleft {
	display: block;
	margin-right: auto;
}

.container {
	width: 100%;
	padding-left: 6rem;
	padding-right: 6rem;
}

.slick-prev,
.slick-next {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	font-size: 0px;
	cursor: pointer;
	background: transparent;
	color: transparent;
	top: 50%;
	transform: translate(0, -50%);
	padding: 0;
	border: none;
	outline: none;
}

.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus {
	outline: none;
	background: transparent;
	color: transparent;
}

.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
	opacity: 0.75;
}

.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
	opacity: 0.25;
}

/* Dots */

.slick-dots {
	position: absolute;
	bottom: -4rem;
	list-style: none;
	display: flex;
	justify-content: center;
	text-align: center;
	padding: 0;
	margin: 0;
	width: 100%;
}

.slick-dots li {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 1.5rem;
	width: 1.5rem;
	margin: 0 0.2rem;
	padding: 0;
	text-align: center;
	cursor: pointer;
	transition: 0.2s ease-in-out;
}

.slick-dots li button {
	border: 0;
	background: transparent;
	display: block;
	height: 0.7rem;
	width: 0.7rem;
	outline: none;
	line-height: 0px;
	font-size: 0px;
	color: transparent;
	padding: 0;
	cursor: pointer;
	background: #000;
	border-radius: 50%;
	transition: all 0.2s ease-in-out;
}

.slick-dots li button:hover,
.slick-dots li button:focus {
	outline: none;
}

.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
	opacity: 0.75;
}

.slick-dots li button:before {
	position: absolute;
	top: 0;
	left: 0;
	width: 20px;
	height: 20px;
	font-size: 6px;
	line-height: 20px;
	text-align: center;
	color: black;
	opacity: 0.25;
	-moz-osx-font-smoothing: grayscale;
}

.slick-dots li.slick-active button:before {
	color: black;
	opacity: 1;
}

/* Slider */

.slick-slider {
	position: relative;
	display: block;
	box-sizing: border-box;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
}

.slick-list {
	position: relative;
	overflow: hidden;
	display: block;
	margin: 0;
	padding: 0;
}

.slick-list:focus {
	outline: none;
}

.slick-list.dragging {
	cursor: pointer;
	cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
	transform: translate3d(0, 0, 0);
}

.slick-track {
	position: relative;
	left: 0;
	top: 0;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.slick-track:before,
.slick-track:after {
	content: "";
	display: table;
}

.slick-track:after {
	clear: both;
}

.slick-loading .slick-track {
	visibility: hidden;
}

.slick-slide {
	float: left;
	height: 100%;
	min-height: 1px;
	display: none;
}

[dir=rtl] .slick-slide {
	float: right;
}

.slick-slide img {
	display: block;
}

.slick-slide.slick-loading img {
	display: none;
}

.slick-slide.dragging img {
	pointer-events: none;
}

.slick-initialized .slick-slide {
	display: block;
}

.slick-loading .slick-slide {
	visibility: hidden;
}

.slick-vertical .slick-slide {
	display: block;
	height: auto;
}

.slick-arrow.slick-hidden {
	display: none;
}

.animate_animated {
	animation-duration: 1.5s;
	animation-fill-mode: both;
	animation-timing-function: ease;
}

.running-infinity {
	display: flex;
	overflow: hidden;
}

.running-infinity__list {
	display: flex;
	list-style: none;
	padding: 0;
}

.running-infinity__list.--left {
	animation: infinity-scroll-left 80s infinite linear 0.5s both;
}

.running-infinity__item {
	flex-shrink: 0;
}

.running-infinity__item img {
	display: block;
}

.fadeIn {
	animation-name: fadeIn;
}

.fadeUp {
	animation-name: fadeUp;
}

.fadeLeft {
	animation-name: fadeLeft;
}

.fadeRight {
	animation-name: fadeRight;
}

.btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
	background-color: transparent;
	border: 0;
}

.btn:hover {
	text-decoration: none;
}

.btn:focus,
.btn.focus {
	outline: 0;
}

.btn.disabled,
.btn:disabled {
	opacity: 0.6;
}

.btn:not(:disabled):not(.disabled) {
	cursor: pointer;
}

.btn--primary {
	font-weight: bold;
	position: relative;
	overflow: hidden;
	color: #fff;
	border-radius: 7rem;
	min-width: 28.4rem;
	height: 7.2rem;
	z-index: 1;
	transition: all 0.3s ease-in-out;
	background-color: #fff;
}

.btn--primary span::before {
	content: "";
	inset: 0;
	border-radius: 7rem;
	border: 0.2rem solid #061F38;
	position: absolute;
}

.btn--primary::before {
	content: "";
	position: absolute;
	height: 100%;
	width: 100%;
	left: 0;
	background-color: #061F38;
	z-index: -1;
	transition: all 0.6s cubic-bezier(0, 0.55, 0.45, 1);
}

.btn--primary:hover {
	color: #061F38;
}

.btn--primary:hover::before {
	left: inherit;
	right: 0;
	width: 0;
}

.btn--arrow {
	position: relative;
}

.btn--arrow:hover::after {
	filter: initial;
}

.btn--arrow::after {
	content: "";
	position: absolute;
	transition: all 0.3s ease-in-out;
	background: url(../images/icon_arrow.png) no-repeat center/contain;
	filter: brightness(0) invert(1);
	aspect-ratio: 21/8;
	width: 2.8rem;
	right: 2rem;
}

.form-control {
	display: block;
	background-clip: padding-box;
	width: 100%;
	padding: 0.8rem 1rem;
	border: 1px solid #333;
	border-radius: 0.1rem;
	font-weight: 400;
	min-height: 11rem;
}

.form-control::-ms-expand {
	background-color: transparent;
	border: 0;
}

.form-control:-moz-focusring {
	color: transparent;
	text-shadow: 0 0 0 #333;
}

.form-control::-moz-placeholder {
	color: #C8C8C8;
	font-weight: 400;
	opacity: 1;
}

.form-control::placeholder {
	color: #C8C8C8;
	font-weight: 400;
	opacity: 1;
}

.form-control:disabled,
.form-control[readonly] {
	background-color: #777777;
	opacity: 1;
}

input[type=date].form-control,
input[type=time].form-control,
input[type=datetime-local].form-control,
input[type=month].form-control {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.p-header {
	position: fixed;
	inset: 0;
	bottom: inherit;
	background-color: #fff;
	z-index: 11;
	padding: 3.5rem 0;
}

.p-header__wrap {
	display: flex;
	align-items: center;
	gap: 3rem;
}

.p-header__logo {
	margin-right: auto;
	width: 26.3rem;
}

.p-header__logo img {
	display: block;
}

.p-header-box {
	position: fixed;
	z-index: 2;
	inset: 0;
	left: initial;
	background-color: #202C39;
	transition: all 0.3s ease-in-out;
	color: #fff;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	padding-block: var(--p-header);
	overflow-y: auto;
	transform: translateX(100px);
	width: 100vw;
}

.p-header-box.is-show {
	transform: translateX(0%);
	opacity: 1;
	visibility: visible;
	pointer-events: all;
}

.p-header-box__wrap {
	padding-inline: 11rem;
}

.p-header-menu:not(:last-child) {
	margin-bottom: 15rem;
}

.p-header-menu__item:not(:last-child) {
	margin-bottom: 5rem;
}

.p-header-menu__anchor {
	font-size: 3rem;
	font-weight: bold;
}

.hamburger-box {
	position: relative;
	cursor: pointer;
	z-index: 1100;
	height: 5rem;
	width: 7.1rem;
}

.hamburger-box::before,
.hamburger-box::after {
	content: "";
	position: absolute;
	display: block;
	background-color: #333;
	transition: all 0.15s ease-in-out;
	transform-origin: center;
	margin-top: -0.25rem;
	width: 100%;
	height: 0.6rem;
}

.hamburger-box::before {
	top: calc(50% - 0.95rem);
}

.hamburger-box::after {
	top: calc(50% + 1rem);
}

.hamburger-box.is-active:before {
	transform: rotate(30deg);
	top: 50%;
	background-color: #fff;
}

.hamburger-box.is-active:after {
	background-color: #fff;
	transform: rotate(-30deg);
	top: 50%;
}

.page-top {
	position: fixed;
	z-index: 3;
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid #333;
	background-color: #fff;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease-in-out;
	cursor: pointer;
	width: 11.3rem;
	bottom: 16rem;
	right: 4rem;
}

.page-top.is-show {
	opacity: 1;
	visibility: visible;
}

.page-top::after {
	content: "";
	aspect-ratio: 21/8;
	position: absolute;
	right: 2rem;
	transition: all 0.3s ease-in-out;
	background: url(../images/icon_arrow_sp.png) no-repeat center/contain;
	transform: rotate(90deg) scaleX(-1);
	width: 4.2rem;
	left: calc(50% - 1.5rem);
	top: calc(50% - 1rem);
	filter: brightness(0) invert(0);
}

.p-footer {
	border-top: 1px solid #C8C8C8;
	background-color: #fff;
	position: relative;
	z-index: 2;
}

.p-footer__copyright {
	font-size: 2.4rem;
	padding: 3rem 0 5.5rem;
	text-align: center;
}

.hline {
	margin-bottom: 7rem;
}

.hline__sub {
	position: relative;
	font-weight: bold;
	font-family: "Shippori Mincho", serif;
	color: #061F38;
	font-size: 4.6rem;
	padding-bottom: 0.5rem;
	margin-bottom: 3.4rem;
}

.hline__sub::after {
	content: "";
	bottom: 0;
	left: 0;
	width: 29rem;
	height: 1px;
	background-color: #061F38;
	position: absolute;
}

.hline__ttl {
	font-family: "Shippori Mincho", serif;
	height: 10.3rem;
}

.hline__ttl img {
	width: inherit;
	height: 100%;
}

.byte {
	font-feature-settings: "palt" 1, "pkna" 1, "pwid" 1, "pkna" 1;
	font-family: serif;
}

.body-txt {
	font-size: 2.8rem;
	line-height: 2;
}

.p-privacy {
	padding-bottom: 25.5rem;
}

.p-privacy__ttl {
	text-decoration: underline;
}

.p-privacy__ttl:not(:first-child) {
	margin-top: 3rem;
}

.p-privacy__ttl span {
	cursor: pointer;
}

.p-privacy__content {
	display: none;
	margin-top: 4rem;
}

.p-privacy__content:not(:last-child) {
	margin-bottom: 11rem;
}

.p-privacy__txt {
	font-size: 2.4rem;
	line-height: 2.0833333333;
}

.p-404 {
	padding-top: calc(var(--p-header) + 6.8rem);
}

.p-404 .p-header__contact {
	display: none;
}

.p-404__ttl {
	font-weight: bold;
	margin-bottom: 4.3rem;
	text-align: center;
	color: #061F38;
	font-size: 4.6rem;
}

.p-404-box {
	margin-bottom: 20rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border: 1px solid #333;
	min-height: 24rem;
	padding: 5rem 4rem;
}

.p-404-box__ttl {
	font-weight: bold;
	text-align: center;
	margin-bottom: 5rem;
}

.p-404-box__txt {
	max-width: 58.3rem;
}

.p-404__btn {
	text-align: center;
	margin-bottom: 14rem;
}

@media (min-width: 768px) {

html {
	font-size: 0.78125vw;
}

body {
	font-size: 1.6rem;
}

.container {
	margin: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	max-width: 131rem;
}

.slick-dots li {
	margin: 0 0.5rem;
}

.slick-dots li button {
	height: 1rem;
	width: 1rem;
}

.btn--primary {
	min-width: 21.2rem;
	height: 4.3rem;
}

.btn--arrow::after {
	width: 2rem;
}

.form-control {
	min-height: 4.3rem;
}

.p-header {
	padding: 0.8rem 0;
}

.p-header__wrap {
	gap: 5.9rem;
}

.p-header__logo {
	width: 21.3rem;
}

.p-header-box {
	width: 50vw;
}

.p-header-box__wrap {
	padding-left: 12rem;
	max-width: 64rem;
}

.p-header-menu:not(:last-child) {
	margin-bottom: 6.5rem;
}

.p-header-menu__item:not(:last-child) {
	margin-bottom: 3.2rem;
}

.p-header-menu__anchor {
	font-size: 1.7rem;
}

.hamburger-box {
	width: 5rem;
}

.hamburger-box::before,
.hamburger-box::after {
	height: 0.5rem;
}

.page-top {
	bottom: 10rem;
	border-width: 2px;
	width: 5.1rem;
	right: calc(50% - 64rem);
}

.page-top::after {
	background: url(../images/icon_arrow.png) no-repeat center/contain;
	width: 2.1rem;
	left: calc(50% - 0.9rem);
	top: calc(50% - 0.4rem);
}

.p-footer__copyright {
	font-size: 1.4rem;
	padding: 2.5rem 0 3.7rem;
	text-align: right;
}

.hline {
	margin-bottom: 10rem;
}

.hline__sub {
	font-size: 2.5rem;
	padding-bottom: 0.5rem;
	margin-bottom: 4rem;
}

.hline__ttl {
	height: 12.5rem;
}

.body-txt {
	font-size: 1.8rem;
	line-height: 2.2222222222;
}

.p-privacy {
	padding-bottom: 8.5rem;
}

.p-privacy__content:not(:last-child) {
	margin-bottom: 5rem;
}

.p-privacy__txt {
	font-size: 1.4rem;
	line-height: 1.7142857143;
}

.p-404 {
	padding-top: calc(var(--p-header) + 8.5rem);
}

.p-404__ttl {
	font-size: 3.5rem;
}

.p-404-box {
	margin: 0 auto 5rem;
	padding: 3rem;
	max-width: 90rem;
	min-height: 24rem;
}

.p-404-box__ttl {
	font-size: 2rem;
	margin-bottom: 4rem;
}

.sp {
	display: none;
}

}

@media (min-width: 1310px) {

html {
	font-size: 10px;
}

}

@media (max-width: 767px) {

.btn--primary {
	font-size: 2.8rem;
}

.form-control {
	font-size: 3rem;
}

.p-header .container {
	padding-inline: 2.5rem;
}

.p-header__contact {
	min-width: 21.2rem;
}

.p-privacy__ttl {
	font-size: 2.4rem;
}

.p-404-box__txt {
	font-size: 2.8rem;
}

.pc {
	display: none;
}

}

@keyframes infinity-scroll-left {

from {
	transform: translateX(0);
}

to {
	transform: translateX(-100%);
}

}

@keyframes fadeIn {

0% {
	opacity: 0;
}

100% {
	opacity: 1;
}

}

@keyframes fadeUp {

0% {
	opacity: 0;
	transform: translate3d(0, 50px, 0);
}

100% {
	opacity: 1;
	transform: none;
}

}

@keyframes fadeLeft {

0% {
	opacity: 0;
	transform: translate3d(-50px, 0, 0);
}

100% {
	transform: none;
}

}

@keyframes fadeRight {

0% {
	opacity: 0;
	transform: translate3d(50px, 0, 0);
}

100% {
	transform: none;
}

}

