/** reset **/
img {
	border-radius: 0;
}

main {
	font-size: clamp(1.4rem, 1.5vw, 1.8rem);
	color: #3E342C;
	letter-spacing: 0.04em;
}

.lp {
	line-height: 1.8;
}

.lp-container {
	width: min(1440px, 100%);
	margin: 0 auto;
}

.lp-section {
	padding: 120px 0;
}

@media screen and (max-width: 767px) {
	.lp-section {
		padding: 100px 0;
	}
}

.lp-inner {
	padding-inline: clamp(16px, 4vw, 40px);
}

.lp-section__head {
	position: relative;
	margin-bottom: 20px;
}

.lp-h2 {
	position: relative;
	font-size: clamp(2.0rem, 2.5vw, 3.6rem);
	margin: 0;
}

@media screen and (max-width: 680px) {
	.lp-h2 {
		font-weight: 400;
	}
}

.lp-h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	height: 1px;
	width: 50px;
	background: #F2DB97;
}

.lp-h3 {
	font-size: clamp(1.8rem, 1.4vw, 2.2rem);
	margin: 0 0 8px;
}

.lp-h4 {
	font-size: clamp(1.8rem, 1.4vw, 2.0rem);
	margin: 12px 0 6px;
}

.lp-muted {
	opacity: .8;
	margin: 0;
}

.bg-gray {
	background-color: #EFEEEB;
}

/* HERO */
.lp-hero {
	position: relative;
	padding: 80px 0 40px;
}

@media screen and (max-width: 680px) {
	.lp-hero {
		min-height: 100vh;
		padding: 0;
	}
}

.lp-hero__media {
	position: absolute;
	inset: 0;
	background: #eee url("https://www.morehanse.net/wp-content/uploads/2025/12/hero_img.jpg") center/cover no-repeat;
}

@media screen and (max-width: 680px) {
	.lp-hero__media {
		background: #eee url("https://www.morehanse.net/wp-content/uploads/2025/12/hero_img_sp.jpg") center/cover no-repeat;
	}
}

.lp-hero__inner {
	position: relative;
	color: #111;
}

@media screen and (max-width: 680px) {
	.lp-hero__inner {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		box-sizing: border-box;
		padding: 0 15px;
	}
}

.lp-hero__kicker {
	font-size: clamp(1.8rem, 3vw, 3.6rem);
	color: #FFFFFF;
	margin: 0 0 8rem;
}

.lp-hero__flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

@media screen and (max-width: 680px) {
	.lp-hero__flex {
		flex-direction: column;
		gap: 40px;
	}
}

.lp-hero__title {
	font-size: clamp(2.7rem, 5.34vw, 6.4rem);
	color: #FFFFFF;
}

.lp-hero__lead {
	font-size: clamp(1.4rem, 1.5vw, 1.8rem);
	color: #FFFFFF;
	line-height: 200%;
}

.lp-btn {
	display: inline-block;
	padding: 10px 14px;
	border-radius: 999px;
	border: 1px solid rgba(0, 0, 0, .15);
	text-decoration: none;
}

.lp-hero__cta {
	border: 1px solid #3E342C;
	padding: 10px;
	background: #fff;
}

.lp-btn--primary {
	position: relative;
	border: 1px solid #3E342C;
	background-color: #fff;
	color: #3E342C;
	text-decoration: none;
	display: flex;
	align-items: center;
	width: clamp(260px, calc(347.89px - 6.103vw), 325px);
	padding: 18px 52px 18px clamp(18px, calc(88.33px - 4.884vw), 70px);
	box-sizing: border-box;
	font-size: 1.8rem;
	text-align: center;
	line-height: 1.35;
	letter-spacing: 0.02em;
	transition: background-color .15s ease;
}

/* 矢印 */
.lp-btn--primary::after {
	content: "";
	position: absolute;
	right: clamp(18px, calc(88.33px - 4.884vw), 70px);
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 24px;
	background: url("https://www.morehanse.net/wp-content/uploads/2025/12/lp-arrow.png") no-repeat center / contain;
	transition: transform .15s ease-out;
}

/* hover時：矢印だけ右へ */
.lp-btn--primary:hover::after {
	transform: translate(6px, -50%);
}

.lp-btn--primary:hover {
	background-color: #f6f6f6;
}

.lp-btn--ghost {
	background: transparent;
}

/* Scrolldown */
.scrolldown--wrap {
	position: relative;
	width: 100%;
	min-height: 14.4rem;
	margin: -20px 0 40px;
}

@media screen and (max-width: 767px) {
	.scrolldown--wrap {
		margin: 0 0 8rem;
	}
}

.scrolldown {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
}

@media screen and (max-width: 767px) {
	.scrolldown {
		box-sizing: border-box;
		width: 100%;
	}
}

.scrolldown .lp-h2::after {
	content: "";
	position: absolute;
	bottom: -8rem;
	left: 50%;
	transform: translateX(-50%);
	width: 2px;
	height: 8rem;
	background: #F5D36D;
	animation: scroll 2s ease-in-out infinite;
}

/*アニメーション*/
@keyframes scroll {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}

	50% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}

	51% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}

	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

/* Tabs */
.lp-tabs__nav {
	display: flex;
	gap: clamp(10px, 1.4vw, 20px);
	justify-content: center;
	margin: 0 6px;
}

.lp-tab {
	display: block;
	max-width: 500px;
	width: 100%;
	border: none;
	background: rgba(243, 240, 241, 1);
	font-family: Kinuta KinutaMincho StdN;
	font-size: clamp(1.6rem, 2vw, 2.4rem);
	text-align: center;
	border-radius: 0.8rem 0.8rem 0 0;
	padding: 2.4rem 4.8rem;
	cursor: pointer;
}

@media screen and (max-width: 767px) {
	.lp-tab {
		width: calc(50% - 10px);
		line-height: 150%;
		padding: 1.4rem 2.4rem;
	}

}

.lp-tab.is-active {
	background: rgba(242, 219, 151, 1);
	font-weight: 700;
}

.lp-tabs__panel {
	display: none;
}

.lp-tabs__panel.is-active {
	display: block;
}

/* tab内 */
.lp-program {
	border-top: 6px solid #F2DB96;
	border-radius: 0.8rem 0.8rem;
	background-color: #FAFAF6;
	padding-bottom: 120px;
	margin-bottom: 60px;
}

.lp-program__head {
	padding: 0 15px;
}

.lp-program__head .lp-h3 {
	margin-top: clamp(100px, 11.12vw, 160px);
	font-size: clamp(1.8rem, 3.51vw, 3.6rem);
	font-weight: 400;
	text-align: center;
}

.lp-program__lead {
	font-size: clamp(1.4rem, 1.4vw, 1.8rem);
	text-align: center;
	margin-top: 6.4rem;
}

@media screen and (max-width: 680px) {
	.lp-program__lead {
		text-align: left;
	}
}

.bg-taiko {
	position: relative;
	background-image:
		url("https://www.morehanse.net/wp-content/uploads/2025/12/bg-taiko2.png"),
		url("https://www.morehanse.net/wp-content/uploads/2025/12/bg-taiko1.png");
	background-repeat:
		no-repeat,
		no-repeat;
	background-size:
		auto 165px,
		auto 330px;
	background-position:
		left top,
		right top;
}

.bg-taikoN {
	position: relative;
	background-image:
		url("https://www.morehanse.net/wp-content/uploads/2025/12/bg-taiko4.png"),
		url("https://www.morehanse.net/wp-content/uploads/2025/12/bg-taiko3.png");
	background-repeat:
		no-repeat,
		no-repeat;
	background-size:
		auto 540px,
		auto 490px;
	background-position:
		left top,
		right top;
}

.bg-takara {
	background-image: url("https://www.morehanse.net/wp-content/uploads/2025/12/bg-takara.jpg");
	background-repeat: no-repeat;
	background-size: auto;
	background-position: top right;
	background-blend-mode: multiply;
}

@media screen and (max-width: 680px) {
	.bg-taiko {
		background-size:
			auto 165px,
			auto 150px;
	}

	.bg-taikoN {
		background-position:
			left center,
			right bottom;
	}

	.bg-takara {
		background-image: url("https://www.morehanse.net/wp-content/uploads/2025/12/bg-takara-sp.png");
		background-size: contain;
	}
}

@media screen and (max-width: 680px) {
	.sp-hide {
		display: none;
	}
}

/* lp-flex */
.lp-3colimg {
	display: flex;
	gap: 40px;
	padding: 100px 80px 120px;
}

.lp-3colimg img {
	width: calc((100% - (40px *2)) / 3);
}

@media screen and (max-width: 1024px) {
	.lp-3colimg {
		padding: 100px 15px 120px;
	}
}

@media screen and (max-width: 680px) {
	.lp-3colimg {
		flex-direction: column;
		padding: 80px 15px 100px;
	}

	.lp-3colimg img {
		width: 100%;
	}
}

/* Cards & grid */
.lp-card {
	background: #fff;
}

.lp-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 84px;
	margin-top: clamp(60px, 11.111vw, 100px);
}

.lp-grid .lp-card {
	width: calc((100% - (84px * 2)) / 3);
}

.lp-grid img {
	width: 100%;
	height: auto;
	display: block;
}

.lp-grid .lp-card h3 {
	font-size: clamp(1.8rem, 1.39vw, 2rem);
	font-weight: 700;
	text-align: center;
	margin: 24px 0 14px;
}

@media (max-width: 900px) {
	.lp-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 30px;
	}

	.lp-grid .lp-card {
		width: 100%;
	}
}

@media (max-width: 560px) {
	.lp-grid {
		grid-template-columns: 1fr;
	}
}

/* Instructor */
.lp-instructor {
	display: grid;
	place-items: center;
	padding-left: 28.8rem;

	position: relative;
	min-height: 580px;
	margin: 75px 0 75px 22.4rem;
}

.lp-instructor.inst-taiko {
	background: linear-gradient(90deg, #D2CCBF 0%, #FCF8EE 100%);
}

.lp-instructor.inst-taiko::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -70px;
	width: clamp(280px, 36vw, 432px);
	height: clamp(190px, 36vw, 227px);
	background: url("https://www.morehanse.net/wp-content/uploads/2025/12/bg-taiko5.png") no-repeat right bottom / contain;
	pointer-events: none;
}

.lp-instructor.inst-takara {
	background: linear-gradient(90deg, #E7C9CB 0%, #FCF8EE 100%);
}

.lp-instructor.inst-takara::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -70px;
	width: clamp(165px, 20vw, 240px);
	height: clamp(177px, 21.4vw, 257px);
	background: url("https://www.morehanse.net/wp-content/uploads/2025/12/bg-takara2.png") no-repeat right bottom / contain;
	pointer-events: none;
}

.lp-instructor__media {
	position: absolute;
	top: 50%;
	left: -22.4rem;
	transform: translateY(-50%);
	padding-left: 80px;
}

.lp-instructor__media img {
	width: 50%;
	display: block;
}

.lp-instructor__body .lp-eyebrow {
	font-size: clamp(1.7rem, 1.4vw, 2.2rem);
	font-weight: 700;
	margin: 0 0 10px;
}

.lp-instructor__body h4 {
	font-size: clamp(2.4rem, 1.4vw, 3rem);
	font-weight: 400;
	margin: 10px 0;
}

.lp-instructor__body p {
	margin: 0;
}

.lp-instructor__body .lp-list {
	font-size: clamp(1.4rem, 1.4vw, 1.8rem);
	line-height: 200%;
}

@media screen and (max-width: 1024px) {
	.lp-instructor {
		margin: 75px 0 75px 16rem;
	}
}

@media screen and (max-width: 680px) {
	.lp-instructor {
		display: flex;
		padding: 0 15px;
		padding-top: 90px;
		margin: 280px 0 0;
	}

	.lp-instructor.inst-taiko {
		background: linear-gradient(180deg, #D2CCBF 0%, #FCF8EE 100%);
	}

	.lp-instructor.inst-takara {
		min-height: 750px;
		background: linear-gradient(180deg, #E7C9CB 0%, #FCF8EE 100%);
	}

	.lp-instructor__media {
		top: -200px;
		left: 50%;
		width: calc(100% - 30px);
		transform: translateX(-50%);
		padding-left: 0;
	}

	.lp-instructor__media img {
		width: 100%;
	}
}

/* Video */
.lp-video {
	position: relative;
	width: 100%;
	max-width: 880px;
	margin-inline: auto;
	aspect-ratio: 16 / 9;
	background: #000;
	overflow: hidden;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}

.lp-video__ratio video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border: none;
}

@media (max-width: 1024px) {
	.lp-video {
		width: calc(100% - 30px);
		margin: 0 15px;
	}
}

@media (max-width: 767px) {
	.lp-video {
		border-radius: 8px;
	}
}

/* Subsection */
.lp-subsection__wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 100px;
	padding: 45px 0;
}

.lp-subsection {
	padding-left: 80px;
}

.lp-subsection__txt {
	width: calc(100% - (580px + 100px));
}

.lp-subsection__img {
	width: auto;
}

.lp-subsection h4 {
	font-size: 2.4rem;
	margin: 0 0 0.8rem;
	border-bottom: 1px solid #F2DB97;
}

@media screen and (max-width: 1024px) {
	.lp-subsection__wrap {
		flex-direction: column;
		padding: 100px 0 0;
	}

	.lp-subsection {
		padding: 0 15px;
	}

	.lp-subsection__txt {
		width: 100%;
	}
}

/* Event Details */
.lp-dl>div {
	display: flex;
	align-items: flex-start;
	gap: .25em;
}

.lp-dl dt {
	white-space: nowrap;
}

.lp-dl dt::after {
	content: "：";
}

.lp-dl dd {
	margin: 0;
}

/* Timeline */
.lp-schedule-wrap {
	margin-top: 100px;
}

.lp-timeline__day {
	padding: 30px 0 10px;
}

.lp-timeline__title {
	margin: 0 0 10px;
	font-weight: 800;
}

.lp-timeline__list {
	margin: 0;
}

.lp-timeline__list li {
	display: grid;
	grid-template-columns: minmax(0, clamp(120px, 11.11vw, 160px)) 1fr;
	column-gap: clamp(14px, 11.111vw, 30px);
	align-items: start;
}

.lp-timeline__list li.taiko-time {
	grid-template-columns: fit-content(116px) 1fr;
}

.lp-timeline__list .t {
	white-space: nowrap;
	font-weight: 700;
}

@media (max-width: 720px) {
	.lp-timeline {
		grid-template-columns: 1fr;
	}
}

/*Subsection Img*/
.lp-subsection__img img {
	max-width: 580px;
	width: 100%;
}

/* Special Option */
.lp-takara-ticket {
	position: relative;
	width: clamp(339px, 82.3vw, 560px);
	padding: 14px;
	background-color: #fff;
	margin: 0 auto;
	margin-top: clamp(100px, 11.7vw, 120px);
}

.lp-takara-ticket::after {
	content: "";
	position: absolute;
	top: 14px;
	right: 14px;
	bottom: 14px;
	left: 14px;
	border: 1px solid #F2DB97;
	pointer-events: none;
}

.lp-ticket-h4 {
	color: #D79602;
	font-size: clamp(2rem, 1.4vw, 2.6rem);
	font-weight: 700;
	text-align: center;
	margin: 40px 0 14px;
}

.lp-takara-ticket p {
	text-align: center;
	margin: 14px 0 40px;
}

/* Horizontal scroll story */
.why-slider {
	position: relative;
	max-width: 1440px;
	width: 100%;
	margin: 100px auto 0;
}

.slide-inner {
	display: flex;
}

.slide-image {
	max-width: 800px;
	width: 100%;
}

.slide-image img {
	width: 100%;
}

.slide-text {
	margin: 8rem 8rem;
}

.swiper-nav {
	position: absolute;
	width: clamp(195px, 32.3vw, 220px);
	top: 0;
	right: 8rem;
	z-index: 999;
	display: flex;
	gap: 1.6rem;
	justify-content: center;
	align-items: center;
}

.swiper-button-prev,
.swiper-button-next {
	width: 40px;
	height: 12px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	border: none;
	background-color: transparent;
	cursor: pointer;
	position: static;
	margin: 0;
}

.swiper-button-next svg,
.swiper-button-prev svg {
	display: none;
	fill: inherit;
}

/* 左矢印 */
.swiper-button-prev {
	background-image: url("https://www.morehanse.net/wp-content/uploads/2025/12/sliderbtnL.png");
}

/* 右矢印 */
.swiper-button-next {
	background-image: url("https://www.morehanse.net/wp-content/uploads/2025/12/sliderbtnR.png");
}

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

@media screen and (max-width: 900px) {
	.slide-inner {
		flex-direction: column;
		gap: 20px;
	}

	.slide-text {
		margin: 0;
	}

	.swiper-nav {
		top: -40px;
		right: 0;
	}
}

/* Map */
.lp-map-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(300px, 55.556vw, 800px);
	gap: 80px;
}

.lp-map-wrap>* {
	min-width: 0;
}

.lp-map iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	height: clamp(400px, 41.667vw, 600px);
	border: 0;
}

@media screen and (max-width: 900px) {
	.lp-map-wrap {
		grid-template-columns: 1fr;
	}
}

/* Contact */
/* ---- ベース ---- */
.lp-contact {
	max-width: 900px;
	margin: clamp(4rem, 10.667vw, 8rem) auto 0;
	padding: 0 2rem;
	font-size: clamp(1.4rem, 1.5vw, 1.6rem);
}

/* ---- 見出し ---- */
.lp-form__eyebrow {
	color: #9c8d83;
	font-size: 1.4rem;
	margin-bottom: .8rem;
}

.lp-form__title {
	font-size: clamp(2.4rem, 3vw, 3rem);
	margin-bottom: 1.2rem;
	font-weight: 700;
}

.lp-form__lead {
	color: #777;
	margin-bottom: 3.5rem;
}

/* ---- 各行 ---- */
.lp-form__row {
	display: grid;
	grid-template-columns: 300px 1fr;
	gap: 24px;
	align-items: center;
	padding: 3rem 0;
	border-bottom: 1px solid #E1E1E1;
}

.lp-form__row p {
	margin: 0;
}

.lp-form__row label {
	font-weight: 600;
	margin: 0;
}

/* ---- 必須 ---- */
.req {
	margin-left: .8rem;
	font-size: 1.2rem;
	background: #3E342C;
	color: white;
	padding: .2rem .6rem;
	border-radius: .3rem;
}

/* ---- 入力欄 ---- */
.lp-contact input[type="text"],
.lp-contact input[type="email"],
.lp-contact input[type="tel"],
.lp-contact input[type="number"],
.lp-contact input[type="date"],
.lp-contact textarea {
	width: 100%;
	border: 1px solid #e5e2de;
	background: #f8f7fb;
	border-radius: .6rem;
	padding: 1.2rem 1.4rem;
	font-size: 1.5rem;
}

.lp-contact textarea {
	min-height: 18rem;
}

/* ---- 日付3列 ---- */
.lp-date-grid {
	display: grid;
	gap: 1.6rem;
}

.lp-date-grid .date-label {
	display: block;
	font-size: 1.3rem;
	margin-bottom: .4rem;
	color: #777;
}

/* ---- 人数横並び ---- */
.lp-inline>p {
	display: flex;
	align-items: center;
	gap: .5em;
	margin: 0;
}

/* ---- チェックボックス ---- */
.lp-checkbox-grid label {
	display: flex;
	gap: .6rem;
	align-items: center;
}

/* ---- 送信ボタン ---- */
.lp-form-submit {
	text-align: center;
	margin-top: 4rem;
}

.lp-form-submit input[type="submit"] {
	max-width: 400px;
	width: 100%;
	background: #3b2b22;
	color: #fff;
	padding: 1.6rem 6rem;
	border-radius: .4rem;
	font-size: 1.6rem;
	border: none;
	cursor: pointer;
}

.lp-form-submit input[type="submit"]:hover {
	opacity: .85;
}

@media (max-width: 767px) {
	.lp-form__row {
		grid-template-columns: 1fr;
	}
}

/* Contact Error */
span.wpcf7-not-valid-tip {
	font-size: 1.3rem;
	color: #c65353;
	margin-top: .4rem;
}

div.wpcf7-response-output {
	border-radius: .6rem;
	font-size: 1.4rem;
}