:root {
	--white: #fff;
	--light-creem: #faf8f5;
	--creem: #f8f4e9;
	--thin-green: #ebf5d4;
	--light-green: #7d9963;
	--green: #547443;
	--dark-green: #365c22;
	--red: #d32929;
	--light-brown: #d4c2b8;
	--brown: #817269;
	--dark-brown: #372216;
	--cr-dot-brown: #d4c2b8;
	--cr-overray: rgb(55 34 22 / 80%);
	--cr-switcher-shadow: rgb(85 63 52 / 20%);
	--cr-highlight-green: rgb(125 153 99 / 12%);
	--ff-ja: "Noto Sans JP", sans-serif;
	--ff-en: "Roboto", sans-serif;
	--cl-text-base: var(--dark-brown);
	--ff-base: var(--ff-ja);
	--cl-focus: var(--dark-green);
}

.js-rotation {
	animation: 40s linear infinite rotation;
}

.show-fadeup {
	opacity: 0;
	transition: opacity 2.5s cubic-bezier(0.25, 1, 0.5, 1), transform 1s cubic-bezier(0.25, 1, 0.5, 1);
	transform: translateY(60px);
	will-change: opacity, transform;
}

.show-fadeup.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.show-fadein {
	opacity: 0;
	transition: opacity 6s cubic-bezier(0.25, 1, 0.5, 1) 0.5s;
	will-change: opacity;
}

.show-fadein.is-visible {
	opacity: 1;
}

.p-top-fv__inner {
	position: relative;
}

.p-top-fv__img-wrap {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	clip-path: url("#top-fv-clip_sp");
	border-top-left-radius: 21.3333333333vw;
	border-top-right-radius: 21.3333333333vw;
}

.p-top-fv__img {
	max-width: none;
	height: calc(100dvh - 60px);
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: 54% 50%;
	object-position: 54% 50%;
}

.p-top-fv__deco-wrap {
	position: absolute;
	top: 65.3992395437%;
	left: 1.6vw;
	width: 37.8666666667vw;
	opacity: 0.8;
}

.p-top-fv__heading {
	position: absolute;
	top: 80.4182509506%;
	left: 5.3333333333vw;
	display: flex;
	flex-direction: column;
	gap: 4.2666666667vw;
	width: 89.3333333333vw;
}

.p-top-fv__title {
	font-size: 6.4vw;
	font-weight: 700;
	line-height: 1.5;
}

.p-top-fv__title.is-en {
	font-size: 4.8vw;
}

.p-top-fv__title--green {
	color: var(--green);
}

.p-top-fv__text {
	font-size: 4.2666666667vw;
}

.p-top-fv__text.is-en {
	font-size: 3.7333333333vw;
}

.p-top-fv__intro-wrap {
	padding: 64.2666666667vw 0 53.3333333333vw;
	overflow: hidden;
}

.p-top-fv__intro {
	position: relative;
	font-size: 5.3333333333vw;
	font-weight: 700;
	line-height: 2.2;
	text-align: center;
}

.p-top-fv__intro::after {
	position: absolute;
	right: 4vw;
	bottom: -1.6vw;
	width: 45.0666666667vw;
	height: 45.8666666667vw;
	content: "";
	background: url("../../front-page/images/deco_top1.webp") no-repeat center center/contain;
	opacity: 0;
	transition: transform 1.2s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1);
	transform: translate(calc(100% + 50vw), 100%);
}

.p-top-fv__intro.is-inview::after {
	opacity: 1;
	transform: translate(0, 100%);
}

.p-top-intro {
	padding: 9.8666666667vw 0 16vw;
}

.p-top-intro__inner {
	position: relative;
	display: grid;
	gap: 4.2666666667vw;
}

.p-top-intro__inner::before {
	position: absolute;
	right: calc(100% + 8vw);
	bottom: calc(100% + 23.7333333333vw);
	width: 40vw;
	height: 34.6666666667vw;
	content: "";
	background: url("../../front-page/images/deco_top2.webp") no-repeat center center/contain;
	translate: 100% 100%;
	animation: swing 2.5s steps(1) infinite;
}

.p-top-intro__img-wrap {
	height: -moz-fit-content;
	height: fit-content;
	overflow: hidden;
	border-radius: 4.2666666667vw;
}

.p-top-intro__img {
	max-height: 59.4666666667vw;
	aspect-ratio: 335/223;
	-o-object-fit: cover;
	object-fit: cover;
}

.p-top-intro__heading {
	display: flex;
	flex-direction: column;
	gap: 1.0666666667vw;
}

.p-top-intro__title-ja {
	font-size: 6.4vw;
	font-weight: 700;
	line-height: 1.5;
}

.p-top-intro__title-en {
	font-family: var(--ff-en);
	font-size: 4.2666666667vw;
	font-weight: 700;
	line-height: 1.4;
	color: var(--brown);
}

.p-top-intro__intro {
	margin-top: 4.2666666667vw;
	font-size: 4.8vw;
	font-weight: 700;
	line-height: 1.5;
}

.p-top-intro__intro--green {
	color: var(--green);
}

.p-top-intro__text {
	margin-top: 6.4vw;
	font-size: 3.7333333333vw;
	line-height: 1.8;
}

.p-top-propose {
	padding-block: 16vw;
}

.p-top-propose__heading {
	display: flex;
	flex-direction: column;
	gap: 2.1333333333vw;
}

.p-top-propose__title-ja {
	font-size: 6.4vw;
	font-weight: 700;
	line-height: 1.5;
}

.p-top-propose__title-ja--green {
	color: var(--green);
}

.p-top-propose__title-en {
	font-family: var(--ff-en);
	font-size: 4.2666666667vw;
	font-weight: 700;
	line-height: 1.4;
	color: var(--brown);
}

.p-top-propose__text {
	margin-top: 6.4vw;
	font-size: 3.7333333333vw;
	line-height: 1.78;
}

.p-top-propose__grid {
	display: grid;
	grid-template-areas: "area1 area2" "area3 area4" "area5 area6" "area7 .";
	grid-template-columns: repeat(2, 1fr);
	gap: 6.1333333333vw 4.2666666667vw;
	margin-top: 10.1333333333vw;
}

.p-top-propose__card:nth-child(1) {
	grid-area: area1;
}

.p-top-propose__card:nth-child(2) {
	grid-area: area2;
}

.p-top-propose__card:nth-child(3) {
	grid-area: area3;
}

.p-top-propose__card:nth-child(4) {
	grid-area: area4;
}

.p-top-propose__card:nth-child(5) {
	grid-area: area5;
}

.p-top-propose__card:nth-child(6) {
	grid-area: area6;
}

.p-top-propose__card:nth-child(7) {
	grid-area: area7;
}

.p-top-propose__card-img-wrap {
	height: -moz-fit-content;
	height: fit-content;
	overflow: hidden;
	border-radius: 2.1333333333vw;
}

.p-top-propose__card-title {
	margin-top: 4.2666666667vw;
	font-size: 4.2666666667vw;
	font-weight: 700;
	line-height: 1.5;
}

.p-top-propose__card-text {
	margin-top: 2.1333333333vw;
	font-size: 3.7333333333vw;
	line-height: 1.8;
}

.p-top-movie {
	padding: 10.6666666667vw 0 0;
	overflow: hidden;
}

.p-top-movie__movie-wrap {
	width: min(100%, 226.1333333333vw);
	margin-inline: auto;
}

.p-top-movie__movie {
	display: block;
	width: 100%;
	max-width: 266.6666666667vw;
	height: auto;
	aspect-ratio: 335/189;
	border: none;
}

.p-top-movie__text {
	margin-top: 4.2666666667vw;
	font-size: 3.7333333333vw;
}

.p-top-movie__text--bold {
	font-weight: 700;
}

.p-top-movie__info-outer {
	position: relative;
	margin-top: 21.3333333333vw;
}

.p-top-movie__info-outer::before {
	position: absolute;
	top: -20.8vw;
	right: -7.7333333333vw;
	z-index: 1;
	width: 36.2666666667vw;
	aspect-ratio: 1;
	content: "";
	background: url("../../front-page/images/deco_top3.webp") no-repeat center center/contain;
	animation: swing2 2.5s steps(1) infinite;
}

.p-top-movie__info {
	position: relative;
	display: block;
	display: flex;
	flex-direction: column;
	gap: 4.2666666667vw;
	align-items: center;
	justify-content: center;
	padding: 5.3333333333vw 4.2666666667vw 8.5333333333vw;
	overflow: hidden;
	background: var(--creem);
	border-radius: 4.2666666667vw;
	transition: opacity 0.3s;
}

.p-top-movie__info:focus-visible {
	opacity: 0.7;
}

.p-top-movie__info::after {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 11.4666666667vw;
	aspect-ratio: 1;
	content: "";
	background: url("../../front-page/images/icon_link-bg-brown.webp") no-repeat center center/contain;
}

.p-top-movie__info-logo-wrap {
	flex-shrink: 0;
	width: min(100%, 47.7333333333vw);
}

.p-top-movie__info-text {
	font-size: 3.7333333333vw;
}

.p-top-contact {
	padding: 21.3333333333vw 0;
}

.p-top-contact__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(100%, 226.1333333333vw);
	padding: 6.4vw 5.3333333333vw;
	margin-inline: auto;
	background: var(--white);
	border: 1.5px solid var(--light-brown);
	border-radius: 6.4vw;
}

.p-top-contact__inner::before {
	position: absolute;
	top: -17.8666666667vw;
	left: -9.0666666667vw;
	width: 35.2vw;
	aspect-ratio: 1;
	content: "";
	background: url("../../front-page/images/deco_top4.webp") no-repeat center center/contain;
	transform: rotate(0deg);
	animation: swing3 2.5s steps(1) infinite;
	animation-delay: 0.5s;
}

.p-top-contact__heading {
	display: flex;
	flex-direction: column;
	gap: 1.0666666667vw;
}

.p-top-contact__title-ja {
	font-size: 8.5333333333vw;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

.p-top-contact__title-en {
	font-family: var(--ff-en);
	font-size: 4.2666666667vw;
	font-weight: 700;
	line-height: 1.4;
	color: var(--brown);
	text-align: center;
}

.p-top-contact__text {
	margin-top: 6.4vw;
	font-size: 3.7333333333vw;
	line-height: 1.8;
	text-align: center;
}

.p-top-contact__link {
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-underline-position: from-font;
}

.p-top-contact__contact {
	width: min(100%, 149.3333333333vw);
	margin-inline: auto;
	margin-top: 10.6666666667vw;
}

.p-form__container {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.p-form__group {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.p-form__heading {
	display: flex;
	flex-wrap: wrap;
	gap: 0 8px;
	align-items: center;
}

.p-form__label {
	display: flex;
	flex-wrap: wrap;
	gap: 0 8px;
	align-items: center;
	font-size: 16px;
}

.p-form__tag {
	display: block;
	padding: 2px 6px;
	font-size: 12px;
	color: var(--red);
	background: var(--creem);
	border-radius: 4px;
}

.p-form__error {
	display: none;
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	color: var(--red);
}

.p-form__input-wrapper {
	position: relative;
	width: 100%;
}

.p-form__input-calendar {
	position: absolute;
	top: 50%;
	right: 12px;
	width: 24px;
	aspect-ratio: 1;
	pointer-events: none;
	content: "";
	background: url("../../images/icon_calendar.svg") no-repeat center center/contain;
	translate: 0 -50%;
}

.p-form__input,
.p-form__textarea {
	display: block;
	width: 100%;
	padding: 12px;
	font-family: var(--ff-ja);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.75;
	color: var(--dark-brown);
	border: 1.5px solid;
	border-radius: 4px;
}

.p-form__input::-moz-placeholder,
.p-form__textarea::-moz-placeholder {
	color: var(--light-brown);
}

.p-form__input::placeholder,
.p-form__textarea::placeholder {
	color: var(--light-brown);
}

.p-form__input:focus-visible,
.p-form__textarea:focus-visible {
	background-color: var(--light-creem);
	outline: none;
}

.p-form__input.is-en,
.p-form__textarea.is-en {
	font-family: var(--ff-en);
}

.p-form__input--time {
	width: min(100%, 180px);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: url("../../images/icon_arrow_brown.svg") no-repeat right 12px center/contain;
	background-size: 24px auto;
}

.p-form__input::-webkit-calendar-picker-indicator {
	display: none;
	-webkit-appearance: none;
	appearance: none;
}

.p-form__sub-group {
	display: flex;
	flex-direction: column;
	padding-left: 16px;
}

.p-form__sub-group + .p-form__sub-group {
	margin-top: 8px;
}

.p-form__sub-label {
	display: flex;
	gap: 4px;
	align-items: center;
}

.p-form__sub-label::before {
	width: 6px;
	aspect-ratio: 1;
	content: "";
	background-color: var(--brown);
	border-radius: calc(infinity * 1px);
}

.p-form__datetime-wrapper {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.p-form__datetime-wrapper > .wpcf7-form-control-wrap {
	width: min(100%, 180px);
}

.p-form__datetime-wrapper.is-en > .wpcf7-form-control-wrap {
	width: min(100%, 252px);
}

.p-form__note {
	font-size: 12px;
}

.p-form__file-button {
	font-family: var(--ff-en);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
}

.p-form__file-button::file-selector-button {
	display: inline-flex;
	padding: 6px 16px;
	font-size: 14px;
	cursor: pointer;
	background-color: var(--white);
	border: 1px solid;
	border-radius: calc(infinity * 1px);
}

.p-form__file-button::before {
	width: 24px;
	aspect-ratio: 1;
	content: "";
	background: url("../../images/icon_file.svg") no-repeat center center/contain;
}

.p-form__textarea {
	field-sizing: content;
	min-width: 100%;
	max-width: 100%;
	min-block-size: 177px;
}

.p-form__submit-wrap {
	display: grid;
	place-items: center;
	padding-top: 10px;
}

.p-form__submit-container {
	position: relative;
	width: -moz-fit-content;
	width: fit-content;
}

.p-form__submit-container .wpcf7-spinner {
	display: none;
}

.p-form__submit-container::after {
	position: absolute;
	top: 50%;
	right: 24px;
	width: 24px;
	aspect-ratio: 1;
	content: "";
	background: url("../../images/icon_arrow_white.svg") no-repeat center center/contain;
	translate: 0 -50%;
}

.p-form__submit {
	width: -moz-fit-content;
	width: fit-content;
	min-width: 230px;
	padding: 16px 54px 16px 24px;
	font-family: var(--ff-ja);
	font-size: 16px;
	font-weight: 700;
	color: var(--white);
	background: var(--green);
	border: 1px solid var(--green);
	border-radius: calc(infinity * 1px);
	transition: background-color 0.3s;
}

.p-form__submit:focus-visible {
	background: var(--dark-green);
}

.p-form__submit.is-en {
	font-family: var(--ff-en);
}

.wpcf7-response-output.wpcf7-validation-errors,
span.wpcf7-not-valid-tip {
	display: none !important;
}

.wpcf7-form-control.wpcf7-not-valid {
	border-color: var(--red) !important;
}

.p-form__group:has(.wpcf7-not-valid) .p-form__error {
	display: block;
}

.custom-file-container {
	display: flex;
	gap: 12px;
	align-items: center;
}

.custom-file-button {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	padding: 6px 16px;
	font-size: 14px;
	color: var(--dark-brown);
	white-space: nowrap;
	cursor: pointer;
	background-color: var(--white);
	border: 1.5px solid;
	border-radius: calc(infinity * 1px);
	transition: background-color 0.3s;
}

.custom-file-button::before {
	display: block;
	width: 24px;
	aspect-ratio: 1;
	content: "";
	background: url("../../images/icon_file.svg") no-repeat center center/contain;
}

.custom-file-button:focus,
.custom-file-button:hover {
	background-color: var(--light-creem);
	outline: none;
}

.custom-file-name {
	flex-grow: 1;
	min-width: 0;
	overflow: hidden;
	font-family: var(--ff-en);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--dark-brown);
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ===================================================
Choices.js カスタマイズ
=================================================== */

/* ▼ ドロップダウンが開いた時にアイコンを180度回転させる */

.choices {
	margin-bottom: 0;
}

.choices.is-open .choices__inner::after {
	transform: translateY(-50%) rotate(180deg);
}

.choices:focus-visible .choices__inner {
	background-color: var(--light-creem) !important;
	outline: none !important;
}

/* ▼ 閉じた状態のセレクトボックス（.choices__inner） */

.choices__inner {
	position: relative;
	display: block;
	width: 100%;
	min-height: auto !important;
	padding: 12px 32px 12px 12px !important;
	overflow: hidden;
	font-family: var(--ff-ja) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.75 !important;
	color: var(--dark-brown) !important;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-color: var(--white) !important;
	border: 1.5px solid !important;
	border-radius: 4px !important;
}

.choices__inner::after {
	position: absolute;
	top: 50%;
	right: 12px;
	width: 24px;
	aspect-ratio: 1;
	pointer-events: none;
	content: "";
	background: url("../../images/icon_arrow_brown.svg") no-repeat center center/contain;
	transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1);
	transform: translateY(-50%) rotate(0deg);
}

.choices__inner:focus-visible {
	background-color: var(--light-creem);
	outline: none;
}

.choices__inner:focus-visible {
	background-color: var(--light-creem);
	outline: none;
}

.choices__inner.is-en {
	font-family: var(--ff-en);
}

.choices__list--single {
	padding: 0 !important;
}

/* ▼ ドロップダウン内のプレースホルダー（「選択してください」）を非表示にする */

.choices__list--dropdown .choices__item--choice[data-value=""] {
	display: none;
}

/* プレースホルダー（「選択してください」）の色 */

.choices__placeholder {
	color: var(--light-brown) !important;
	opacity: 1 !important;
}

/* ▼ ドロップダウンリスト全体（.choices__list--dropdown） */

.choices__list--dropdown {
	right: -12px !important;
	max-width: 350px !important;
	margin-top: -5px !important;
	overflow: hidden;
	background-color: var(--white);
	border: none !important; /* 枠線をなくす */
	border-radius: 12px !important;
	box-shadow: 0 0 32px 0 rgba(85, 63, 52, 0.2) !important; /* is-activeクラスはリストが開いているときにつく */
}

.choices__list--dropdown.is-active {
	border: none;
}

/* ▼ ドロップダウン内の各項目（.choices__item--choice） */

.choices__item--choice {
	padding: 16px 16px 16px 14px !important;
	font-family: var(--ff-ja) !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	color: var(--dark-brown) !important;
	border-bottom: 0.5px solid var(--light-brown) !important;
}

.choices__item--choice:last-child {
	border-bottom: none !important;
}

.choices__item--choice.is-highlighted {
	background-color: var(--light-creem) !important;
}

.choices__item--choice.is-selected {
	background-color: var(--light-creem) !important;
}

.is-lang-en .choices__inner {
	font-family: var(--ff-en) !important;
}

.is-lang-en .choices__item--choice {
	font-family: var(--ff-en) !important;
}

/* Choices.jsのデフォルトの矢印を非表示にする */

.choices[data-type*=select-one]::after {
	display: none;
}

.p-top-contact__contact { /* ===================================================
  Choices.js カスタマイズ
  =================================================== */ /* ▼ 閉じた状態のセレクトボックス（.choices__inner） */ /* ▼ ドロップダウンリスト全体（.choices__list--dropdown） */ /* ▼ ドロップダウン内の各項目（.choices__item--choice） */
}

.p-top-contact__contact .p-form__container {
	gap: 4vw;
}

.p-top-contact__contact .p-form__group {
	gap: 2.1333333333vw;
}

.p-top-contact__contact .p-form__heading {
	gap: 0 2.1333333333vw;
}

.p-top-contact__contact .p-form__label {
	gap: 0 2.1333333333vw;
	font-size: 4.2666666667vw;
}

.p-top-contact__contact .p-form__tag {
	padding: 0.5333333333vw 1.6vw;
	font-size: 3.2vw;
	border-radius: 1.0666666667vw;
}

.p-top-contact__contact .p-form__error {
	font-size: 3.7333333333vw;
}

.p-top-contact__contact .p-form__input-calendar {
	right: 3.2vw;
	width: 6.4vw;
}

.p-top-contact__contact .p-form__input,
.p-top-contact__contact .p-form__textarea {
	padding: 3.2vw;
	font-size: 3.7333333333vw;
	border: 1.5px solid;
	border-radius: 1.0666666667vw;
}

.p-top-contact__contact .p-form__input--select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: url("../../images/icon_arrow_brown.svg") no-repeat right 3.2vw center/contain;
	background-size: 6.4vw auto;
}

.p-top-contact__contact .p-form__input--select:focus-visible {
	background-color: var(--light-creem);
	outline: none;
}

.p-top-contact__contact .p-form__sub-group {
	gap: 2.1333333333vw;
	padding-left: 4.2666666667vw;
}

.p-top-contact__contact .p-form__sub-group + .p-top-contact__contact .p-form__sub-group {
	margin-top: 2.1333333333vw;
}

.p-top-contact__contact .p-form__textarea {
	min-block-size: 47.2vw;
}

.p-top-contact__contact .p-form__submit-wrap {
	padding-top: 2.6666666667vw;
}

.p-top-contact__contact .p-form__submit-container::after {
	right: 6.4vw;
	width: 6.4vw;
}

.p-top-contact__contact .p-form__submit {
	min-width: 61.3333333333vw;
	padding: 4.2666666667vw 14.4vw 4.2666666667vw 6.4vw;
	font-size: 4.2666666667vw;
	border: 0.2666666667vw solid var(--green);
	border-radius: calc(infinity * 1vw);
}

.p-top-contact__contact .choices__inner {
	padding: 3.2vw 8.5333333333vw 3.2vw 3.2vw !important;
	font-size: 3.7333333333vw !important;
	border: 1.5px solid !important;
	border-radius: 1.0666666667vw !important;
}

.p-top-contact__contact .choices__inner::after {
	right: 3.2vw;
	width: 6.4vw;
}

.p-top-contact__contact .choices__list--dropdown {
	right: -3.2vw !important;
	max-width: 93.3333333333vw !important;
	margin-top: -1.3333333333vw !important;
	border-radius: 3.2vw !important;
	box-shadow: 0 0 8.5333333333vw 0 rgba(85, 63, 52, 0.2) !important;
}

.p-top-contact__contact .choices__item--choice {
	padding: 4.2666666667vw 4.2666666667vw 4.2666666667vw 3.7333333333vw !important;
	font-size: 4.2666666667vw !important;
}

.wpcf7-response-output {
	border-radius: 8px;
}

.wpcf7 form.invalid .wpcf7-response-output {
	border-color: var(--red);
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--light-green);
}

.p-top-deco {
	position: relative;
	overflow: hidden;
}

.p-top-deco:has(:target) {
	overflow: visible;
}

.p-top-deco:has(:target) .p-top-deco__line {
	display: none;
}

.p-top-deco__inner {
	width: 100%;
	background-image: url("../../front-page/images/bg_top_sp.webp");
	background-repeat: no-repeat;
	background-position: center calc(100dvh - 16vw + 45.0666666667vw);
	background-size: 100%;
}

.p-top-deco__line {
	position: absolute;
	z-index: -1;
	width: 100%;
}

.p-top-deco__line.is-inview .p-top-deco__line-item {
	animation: draw-line 3s ease-in forwards;
}

.p-top-deco__line svg {
	width: 100%;
	height: auto;
}

.p-top-deco__line-sp1 {
	top: calc(0.6673003802 * (100dvh - 16vw) + 37.8666666667vw + 0.5333333333vw - 16vw);
}

#deco-line-sp1 {
	stroke-dasharray: 1485;
	stroke-dashoffset: 1485;
}

.p-top-deco__line-sp2 {
	top: calc(100dvh - 16vw + 45.0666666667vw + 141.3333333333vw);
}

#deco-line-sp2 {
	stroke-dasharray: 962;
	stroke-dashoffset: 962;
}

.p-top-deco__line-sp3 {
	top: calc(100dvh - 16vw + 45.0666666667vw + 373.3333333333vw);
}

#deco-line-sp3 {
	stroke-dasharray: 687;
	stroke-dashoffset: 687;
}

.p-top-deco__line-sp4 {
	top: calc(100dvh - 16vw + 45.0666666667vw + 533.3333333333vw);
}

#deco-line-sp4 {
	stroke-dasharray: 962;
	stroke-dashoffset: 962;
}

.p-top-deco__line-sp5 {
	top: calc(100dvh - 16vw + 45.0666666667vw + 757.3333333333vw);
}

#deco-line-sp5 {
	stroke-dasharray: 614;
	stroke-dashoffset: 614;
}

.p-top-deco__line-sp6 {
	top: calc(100dvh - 16vw + 45.0666666667vw + 901.3333333333vw);
}

#deco-line-sp6 {
	stroke-dasharray: 1019;
	stroke-dashoffset: 1019;
}

.p-top-deco__line-sp7 {
	top: calc(100dvh - 16vw + 45.0666666667vw + 1154.6666666667vw);
}

#deco-line-sp7 {
	stroke-dasharray: 1911;
	stroke-dashoffset: 1911;
}

.p-top-deco__line-pc1 {
	top: calc(0.5287356322 * (100dvh - 4.5714285714vw) + 18.6285714286vw + 0.5333333333vw - 5.7142857143vw);
}

#deco-line-pc1 {
	stroke-dasharray: 1550;
	stroke-dashoffset: 1550;
}

.p-top-deco__line-pc2 {
	top: calc(100dvh - 4.5714285714vw - 2.2857142857vw + 33.7142857143vw);
}

#deco-line-pc2 {
	stroke-dasharray: 1704;
	stroke-dashoffset: 1704;
}

.p-top-deco__line-pc3 {
	top: calc(100dvh - 4.5714285714vw - 2.2857142857vw + 99.4285714286vw);
}

#deco-line-pc3 {
	stroke-dasharray: 1500;
	stroke-dashoffset: 1500;
}

.p-top-deco__line-pc4 {
	top: calc(100dvh - 4.5714285714vw - 2.2857142857vw + 151.4285714286vw);
}

#deco-line-pc4 {
	stroke-dasharray: 5391;
	stroke-dashoffset: 5391;
}

.u-hidden__pc {
	display: block;
}

.u-hidden__pc--sm {
	display: block;
}

.u-hidden__pc--lg {
	display: block;
}

.u-hidden__pc--xl {
	display: block;
}

.u-hidden__pc--xxl {
	display: block;
}

.u-hidden__sp {
	display: none;
}

.u-hidden__sp--sm {
	display: none;
}

.u-hidden__sp--lg {
	display: none;
}

.u-hidden__sp--xl {
	display: none;
}

.u-hidden__sp--xxl {
	display: none;
}

.u-mt--28 {
	margin-top: 28px;
}

.u-mt--16sp {
	margin-top: 16px;
}

@media (width >= 576px) {

.u-hidden__pc--sm {
	display: none;
}

.u-hidden__sp--sm {
	display: block;
}

}

@media (width >= 768px) {

.p-form__container {
	gap: 22px;
}

.p-form__input,
.p-form__textarea {
	border-width: 2px;
}

.p-form__sub-group {
	flex-direction: row;
	gap: 8px;
	align-items: center;
}

.p-form__sub-label {
	flex-shrink: 0;
}

.p-form__sub-label.is-en {
	width: 126px;
}

.p-form__datetime-wrapper {
	flex-direction: row;
	width: 100%;
}

.p-form__datetime-wrapper > .wpcf7-form-control-wrap {
	width: min(100%, 300px);
}

.p-form__file-button::file-selector-button {
	padding: 8px 16px;
}

.p-form__submit {
	min-width: 260px;
}

.custom-file-button {
	padding: 8px 16px;
	border-width: 2px;
}

.choices__inner {
	border-width: 2px !important;
}

.u-hidden__pc {
	display: none;
}

.u-hidden__sp {
	display: block;
}

.u-mt--16sp {
	margin-top: 0;
}

.u-mt--10pc {
	margin-top: 10px;
}

}

@media (width >= 992px) {

.p-top {
	padding-top: 0.5714285714vw;
}

.p-top-fv__img-wrap {
	clip-path: url("#top-fv-clip_pc");
	border-top-left-radius: 12.5714285714vw;
	border-top-right-radius: 12.5714285714vw;
}

.p-top-fv__img {
	height: calc(100dvh - 80px - 0.5714285714vw);
	-o-object-position: 50% 50%;
	object-position: 50% 50%;
}

.p-top-fv__deco-wrap {
	top: 52.8735632184%;
	left: 1.9428571429vw;
	width: 18.6285714286vw;
}

.p-top-fv__heading {
	top: 71.0344827586%;
	left: 6.8571428571vw;
	gap: 0.9142857143vw;
}

.p-top-fv__heading.is-en {
	top: 68.5057471264%;
}

.p-top-fv__title {
	font-size: 2.0571428571vw;
	line-height: 1.6;
}

.p-top-fv__title.is-en {
	font-size: 1.6vw;
}

.p-top-fv__text {
	font-size: 1.1428571429vw;
}

.p-top-fv__text.is-en {
	font-size: 1.0285714286vw;
}

.p-top-fv__intro-wrap {
	padding: 10.4vw 0 7.3142857143vw;
}

.p-top-fv__intro-wrap.is-en {
	padding: 11.3142857143vw 0 7.3142857143vw;
}

.p-top-fv__intro {
	width: -moz-fit-content;
	width: fit-content;
	margin-inline: auto;
	font-size: 1.6vw;
}

.p-top-fv__intro.is-en.is-inview::after {
	transform: translate(-53%, -50%);
}

.p-top-fv__intro::after {
	inset: calc(50% - 1.8285714286vw) auto auto 121.6666666667%;
	width: 17.1428571429vw;
	height: 17.4857142857vw;
	transform: translate(50vw, -50%);
}

.p-top-fv__intro.is-inview::after {
	transform: translate(-4%, -50%);
}

.p-top-intro {
	padding: 4.5714285714vw 0;
}

.p-top-intro__inner {
	grid-template-columns: 550fr 514fr;
	gap: 2.2857142857vw;
	padding-right: 8%;
}

.p-top-intro__inner::before {
	right: calc(100% + 7.4857142857vw);
	bottom: calc(100% + 8.1142857143vw);
	width: 15.6vw;
	height: 16.3428571429vw;
}

.p-top-intro__img-wrap {
	border-radius: 0.9142857143vw;
}

.p-top-intro__img {
	max-height: 20.9714285714vw;
	aspect-ratio: 550/367;
}

.p-top-intro__heading {
	gap: 0.2285714286vw;
}

.p-top-intro__title-ja {
	font-size: max(16px, 2.0571428571vw);
}

.p-top-intro__title-en {
	font-size: max(16px, 0.9142857143vw);
}

.p-top-intro__intro {
	margin-top: 0.9142857143vw;
	font-size: max(17px, 1.3714285714vw);
}

.p-top-intro__text {
	margin-top: 1.3714285714vw;
	font-size: max(16px, 0.8vw);
}

.p-top-propose {
	padding-block: 4.5714285714vw;
}

.p-top-propose__heading {
	gap: 0.4571428571vw;
}

.p-top-propose__title-ja {
	font-size: max(16px, 2.0571428571vw);
}

.p-top-propose__title-en {
	font-size: max(16px, 0.9142857143vw);
}

.p-top-propose__text {
	margin-top: 1.1428571429vw;
	font-size: max(16px, 0.9142857143vw);
}

.p-top-propose__grid {
	grid-template-areas: "area1 area1 area1 area1 area2 area2 area2 area2 area3 area3 area3 area3" "area4 area4 area4 area5 area5 area5 area6 area6 area6 area7 area7 area7";
	grid-template-columns: repeat(12, 1fr);
	grid-auto-flow: row;
	gap: 3.6571428571vw 0.9142857143vw;
	margin-top: 3.3142857143vw;
}

.p-top-propose__card-img-wrap {
	border-radius: 0.4571428571vw;
}

.p-top-propose__card-title {
	margin-top: 0.9142857143vw;
	font-size: max(18px, 1.1428571429vw);
}

.p-top-propose__card-text {
	margin-top: 0.4571428571vw;
	font-size: max(16px, 0.8vw);
}

.p-top-movie {
	padding: 4.5714285714vw 0 2.2857142857vw;
}

.p-top-movie__movie-wrap {
	width: min(100%, 48.4571428571vw);
}

.p-top-movie__movie {
	max-width: 57.1428571429vw;
	aspect-ratio: 424/239;
}

.p-top-movie__text {
	max-width: 48.4571428571vw;
	margin-inline: auto;
	margin-top: 0.9142857143vw;
	font-size: max(16px, 1.0285714286vw);
	text-align: center;
}

.p-top-movie__text.is-en {
	max-width: 48.5714285714vw;
	margin-inline: auto;
	text-align: left;
}

.p-top-movie__info-outer {
	margin-top: 3.3142857143vw;
}

.p-top-movie__info-outer::before {
	top: -7.6vw;
	right: -4.5714285714vw;
	width: 11.4285714286vw;
}

.p-top-movie__info {
	flex-direction: row;
	gap: 6.6666666667%;
	justify-content: center;
	padding: 2.2857142857vw 4.5714285714vw;
	border-radius: 0.9142857143vw;
}

.p-top-movie__info::after {
	width: 2.9714285714vw;
}

.p-top-movie__info-logo-wrap {
	width: min(100%, 14.9714285714vw);
}

.p-top-movie__info-text {
	font-size: max(16px, 0.9142857143vw);
}

.p-top-contact {
	padding: 4.1142857143vw 0 0;
}

.p-top-contact__inner {
	width: min(100%, 48.4571428571vw);
	padding: 3.4285714286vw;
	border-width: 2px;
	border-radius: 3.4285714286vw;
}

.p-top-contact__inner::before {
	top: 16.1714285714vw;
	left: -21.0285714286vw;
	width: 20.6857142857vw;
}

.p-top-contact__heading {
	gap: 0.2285714286vw;
}

.p-top-contact__title-ja {
	font-size: max(16px, 2.0571428571vw);
}

.p-top-contact__title-en {
	font-size: max(16px, 0.9142857143vw);
}

.p-top-contact__text {
	margin-top: 1.3714285714vw;
	font-size: max(16px, 0.9142857143vw);
}

.p-top-contact__contact {
	width: min(100%, 32vw);
	margin-top: 4vw;
}

.p-top-contact__contact .p-form__container {
	gap: 1.2571428571vw;
}

.p-top-contact__contact .p-form__group {
	gap: 0.4571428571vw;
}

.p-top-contact__contact .p-form__heading {
	gap: 0 0.4571428571vw;
}

.p-top-contact__contact .p-form__label {
	gap: 0 0.4571428571vw;
	font-size: max(16px, 0.9142857143vw);
}

.p-top-contact__contact .p-form__tag {
	padding: 0.1142857143vw 0.3428571429vw;
	font-size: max(16px, 0.6857142857vw);
	border-radius: 0.2285714286vw;
}

.p-top-contact__contact .p-form__error {
	font-size: max(16px, 0.8vw);
}

.p-top-contact__contact .p-form__input-calendar {
	right: 0.6857142857vw;
	width: 1.3714285714vw;
}

.p-top-contact__contact .p-form__input,
.p-top-contact__contact .p-form__textarea {
	padding: 0.6857142857vw;
	font-size: max(16px, 0.8vw);
	border-width: 2px;
	border-radius: 0.2285714286vw;
}

.p-top-contact__contact .p-form__input--select {
	background: url("../../images/icon_arrow_brown.svg") no-repeat right 0.6857142857vw center/contain;
	background-size: 1.3714285714vw auto;
}

.p-top-contact__contact .p-form__sub-group {
	gap: 0.4571428571vw;
	padding-left: 0.9142857143vw;
}

.p-top-contact__contact .p-form__sub-group + .p-top-contact__contact .p-form__sub-group {
	margin-top: 0.4571428571vw;
}

.p-top-contact__contact .p-form__textarea {
	min-block-size: 10.1142857143vw;
}

.p-top-contact__contact .p-form__submit-wrap {
	padding-top: 0.5714285714vw;
}

.p-top-contact__contact .p-form__submit-container::after {
	right: 1.3714285714vw;
	width: 1.3714285714vw;
}

.p-top-contact__contact .p-form__submit {
	min-width: 14.8571428571vw;
	padding: 0.9142857143vw 3.0857142857vw 0.9142857143vw 1.3714285714vw;
	font-size: max(16px, 0.9142857143vw);
	border: 0.0571428571vw solid var(--green);
	border-radius: calc(infinity * 1vw);
}

.p-top-contact__contact .choices__inner {
	padding: 0.6857142857vw 1.8285714286vw 0.6857142857vw 0.6857142857vw !important;
	font-size: max(16px, 0.8vw) !important;
	border: 2px solid !important;
	border-radius: 0.2285714286vw !important;
}

.p-top-contact__contact .choices__inner::after {
	right: 0.6857142857vw;
	width: 1.3714285714vw;
}

.p-top-contact__contact .choices__list--dropdown {
	right: -0.6857142857vw !important;
	max-width: 20vw !important;
	margin-top: -0.2857142857vw !important;
	border-radius: 0.6857142857vw !important;
	box-shadow: 0 0 1.8285714286vw 0 rgba(85, 63, 52, 0.2) !important;
}

.p-top-contact__contact .choices__item--choice {
	padding: 0.9142857143vw 0.9142857143vw 0.9142857143vw 0.8vw !important;
	font-size: max(16px, 0.9142857143vw) !important;
}

.p-top-deco__inner {
	background-image: url("../../front-page/images/bg_top_pc.webp");
	background-position: center calc(100dvh - 4.5714285714vw - 2.2857142857vw);
}

.u-hidden__pc--lg {
	display: none;
}

.u-hidden__sp--lg {
	display: block;
}

}

@media (width >= 1200px) {

.u-hidden__pc--xl {
	display: none;
}

.u-hidden__sp--xl {
	display: block;
}

}

@media (width >= 1400px) {

.u-hidden__pc--xxl {
	display: none;
}

.u-hidden__sp--xxl {
	display: block;
}

}

@media (any-hover: hover) {

.p-top-movie__info:where(:-moz-any-link,
:enabled,
summary):hover {
	opacity: 0.7;
}

.p-top-movie__info:where(:any-link,
:enabled,
summary):hover {
	opacity: 0.7;
}

.p-form__submit:where(:-moz-any-link,
:enabled,
summary):hover {
	background: var(--dark-green);
}

.p-form__submit:where(:any-link,
:enabled,
summary):hover {
	background: var(--dark-green);
}

.choices__inner:where(:-moz-any-link,
:enabled,
summary):hover {
	background-color: var(--light-creem);
	outline: none;
}

.choices__inner:where(:any-link,
:enabled,
summary):hover {
	background-color: var(--light-creem);
	outline: none;
}

.p-top-contact__contact .p-form__input--select:where(:-moz-any-link,
:enabled,
summary):hover {
	background-color: var(--light-creem);
	outline: none;
}

.p-top-contact__contact .p-form__input--select:where(:any-link,
:enabled,
summary):hover {
	background-color: var(--light-creem);
	outline: none;
}

}

@keyframes rotation {

0% {
	transform: rotate(0);
}

100% {
	transform: rotate(360deg);
}

}

@keyframes swing {

0% {
	transform: rotate(6deg);
	transform-origin: right bottom;
}

25% {
	transform: rotate(1deg);
}

50% {
	transform: rotate(-6deg);
}

75% {
	transform: rotate(1deg);
}

100% {
	transform: rotate(6deg);
}

}

@keyframes swing2 {

0% {
	transform: rotate(0);
	transform-origin: left bottom;
}

25% {
	transform: rotate(5deg);
}

50% {
	transform: rotate(10deg);
}

75% {
	transform: rotate(5deg);
}

100% {
	transform: rotate(0);
}

}

@keyframes swing3 {

0% {
	transform: rotate(0deg);
	transform-origin: right bottom;
}

25% {
	transform: rotate(-5deg);
}

50% {
	transform: rotate(-10deg);
}

75% {
	transform: rotate(-5deg);
}

100% {
	transform: rotate(0deg);
}

}

@keyframes draw-line {

to {
	stroke-dashoffset: 0;
}

}

