.kuritaya-home {
	padding-top: 110px;
}

.k-archive,
.k-single {
	padding-top: 110px;
}

.kh-hero {
	padding: 80px 0;
	background: linear-gradient(135deg, #f08a24 0%, #ff9f40 55%, #f59a2e 100%);
	position: relative;
	overflow: hidden;
	color: #fff;
	--hero-stage-1-delay: 0.03s;
	--hero-stage-1-duration: 0.68s;
	--hero-stage-2-delay: calc(var(--hero-stage-1-delay) + var(--hero-stage-1-duration) + 0.04s);
	--hero-stage-2-duration: 0.6s;
	--hero-stage-2-stagger: 0.038s;
	--hero-stage-3-delay: calc(var(--hero-stage-2-delay) + 0.34s);
	--hero-stage-3-duration: 0.6s;
	--hero-stage-3-stagger: 0.05s;
	--hero-slide-cycle: 9s;
	--hero-slide-start: calc(var(--hero-stage-1-delay) + var(--hero-stage-1-duration) + 0.06s);
	--hero-ease-smooth: cubic-bezier(0.33, 1, 0.68, 1);
	--hero-ease-energy: cubic-bezier(0.2, 1.32, 0.38, 1);
}

.kh-hero__inner {
	display: flex;
	align-items: center;
	position: relative;
	z-index: 3;
}

.kh-hero__content {
	max-width: 720px;
}

.kh-hero__video {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.kh-hero__video-element,
.kh-hero__video-embed {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	min-width: 100%;
	min-height: 100%;
	object-fit: cover;
	transform: translate(-50%, -50%) scale(1.02);
	border: 0;
}

.kh-hero__video-embed {
	width: 177.78vh;
	height: 100vh;
	min-width: 100vw;
	min-height: 56.25vw;
}

.kh-hero--has-video {
	--hero-stage-3-delay: 0.28s;
}

.kh-hero--has-video::after {
	content: none;
}

.kh-hero--has-video .kh-hero-main__copy .kh-kicker {
	text-shadow: none;
	color: var(--k-orange, #f08a24);
	background: #fff;
}

.kh-hero--has-video .kh-hero-main__copy h1,
.kh-hero--has-video .kh-hero-main__copy > p:not(.kh-kicker) {
	text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
}

.kh-hero--has-video .kh-hero__inner {
	min-height: clamp(520px, 72vh, 680px);
	padding: 48px 0 56px;
	align-items: flex-end;
}

.kh-hero--has-video .kh-hero-main {
	min-height: auto;
	width: 100%;
	align-items: flex-end;
	justify-content: flex-start;
}

.kh-hero--has-video .kh-hero-main__copy {
	max-width: 780px;
	padding: 0;
	background: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
}

.kh-hero--has-video .kh-hero-main__copy h1 {
	font-size: clamp(2rem, 4.2vw, 2.75rem);
	color: #fff;
}

.kh-hero--has-video .kh-hero-main__copy > p:not(.kh-kicker) {
	max-width: 640px;
	color: rgba(255, 255, 255, 0.92);
}

.kh-hero--has-video .kh-hero-main__bg-text {
	top: auto;
	bottom: calc(100% + 20px);
	left: 0;
	right: auto;
	width: auto;
	max-width: min(100%, 920px);
	text-align: left;
	color: rgba(255, 255, 255, 0.13);
	z-index: 0;
	line-height: 1;
}

@media (min-width: 1025px) {
	.kh-hero--has-video .kh-hero-main {
		margin-left: 100px;
		width: calc(100% - 100px);
	}
}

.kh-hero:not(.kh-hero--has-video)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(120deg, rgba(255, 145, 25, 0.74) 0%, rgba(255, 183, 95, 0.62) 46%, rgba(255, 245, 220, 0.5) 100%);
}

.kh-kicker {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 999px;
	color: var(--k-orange, #f08a24);
	background: #fff;
	font-weight: 700;
	letter-spacing: 0.03em;
	box-shadow: 0 2px 10px rgba(67, 40, 5, 0.14);
}

.kh-hero h1 {
	margin-top: 18px;
	margin-bottom: 18px;
	font-size: 2.6rem;
	line-height: 1.25;
	color: #fff;
}

.kh-hero p:not(.kh-kicker) {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.92);
}

.kh-hero .kh-kicker {
	color: var(--k-orange, #f08a24);
}

.kh-hero .kh-btn--primary {
	color: #e87a14;
	background: #fff;
	box-shadow: 0 8px 20px rgba(67, 40, 5, 0.14);
}

.kh-hero .kh-btn--secondary {
	color: #fff;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.78);
}

.kh-hero__actions {
	display: flex;
	justify-content: flex-start;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 28px;
}

.kh-final-cta .kh-hero__actions {
	justify-content: center;
}

.kh-points {
	margin-top: 18px;
}

.kh-points li {
	position: relative;
	padding-left: 1.2rem;
	font-size: 0.95rem;
}

.kh-points li::before {
	content: "";
	position: absolute;
	top: 0.65rem;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #f08a24;
}

.kh-btn {
	display: inline-block;
	padding: 14px 22px;
	border-radius: 999px;
	font-weight: 700;
	transition: all 0.3s;
}

.kh-btn--primary {
	color: #fff;
	background: #f08a24;
}

.kh-btn--line {
	color: #fff;
	background: #06c755;
}

.kh-btn--secondary {
	color: #5d3d00;
	background: #fff;
}

.kh-btn:hover {
	opacity: 0.8;
}

.kh-section {
	position: relative;
	padding: 70px 0;
}

.kh-section--tight {
	padding-top: 35px;
}

.kh-section--accent {
	background: #fff7ee;
}

.kh-message-section {
	padding: 96px 0 88px;
	background: linear-gradient(135deg, #edf7f1 0%, #fff8f0 42%, #ffe9d2 100%);
	overflow: hidden;
	position: relative;
}

.kh-message {
	position: relative;
	min-height: 720px;
	padding: 24px 0 32px;
}

.kh-message__collage {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

.kh-message__photo {
	position: absolute;
	overflow: hidden;
	border-radius: 20px;
	background: #ffe0be;
	box-shadow: 0 16px 32px rgba(93, 61, 0, 0.12);
	will-change: transform;
}

.kh-message__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kh-message__photo--1 {
	top: 4%;
	left: max(0px, calc(50% - 580px));
	width: 132px;
	height: 178px;
}

.kh-message__photo--2 {
	top: 46%;
	left: max(0px, calc(50% - 540px));
	width: 84px;
	height: 84px;
	border-radius: 50%;
	border: 3px solid rgba(255, 255, 255, 0.72);
	box-shadow: 0 12px 26px rgba(93, 61, 0, 0.14);
}

.kh-message__photo--3 {
	bottom: 8%;
	left: max(0px, calc(50% - 510px));
	width: 112px;
	height: 138px;
}

.kh-message__photo--4 {
	top: 18%;
	right: max(0px, calc(50% - 560px));
	width: 188px;
	height: 132px;
	border-radius: 54% 46% 50% 50% / 42% 54% 46% 58%;
	border: 3px solid rgba(255, 255, 255, 0.65);
	box-shadow: 0 18px 36px rgba(93, 61, 0, 0.16);
}

.kh-message__photo--5 {
	bottom: 12%;
	right: max(0px, calc(50% - 490px));
	width: 96px;
	height: 124px;
}

.kh-message__illust {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 14px;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.72);
	box-shadow: 0 12px 24px rgba(93, 61, 0, 0.08);
}

.kh-message__illust svg {
	display: block;
	width: 100%;
	height: auto;
}

.kh-message__illust--1 {
	top: 58%;
	left: max(0px, calc(50% - 470px));
	width: 118px;
	height: 98px;
}

.kh-message__illust--2 {
	top: 2%;
	right: max(0px, calc(50% - 500px));
	width: 108px;
	height: 92px;
}

.kh-message__card {
	position: relative;
	max-width: 640px;
	margin: 0 auto;
	padding: 56px 56px 48px;
	background: #fff;
	border-radius: 56px;
	box-shadow: 0 20px 48px rgba(93, 61, 0, 0.08);
	text-align: center;
	z-index: 2;
}

.kh-message__label {
	display: inline-block;
	margin: 0 0 20px;
	padding-left: 0.24em;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.28em;
	color: #e8a060;
}

.kh-message__card h2 {
	margin: 0 0 28px;
	font-size: clamp(1.38rem, 2.35vw, 1.88rem);
	line-height: 1.5;
	color: #2f2418;
}

.kh-message__body {
	text-align: left;
}

.kh-message__body p {
	margin: 0 0 18px;
	font-size: 0.95rem;
	line-height: 2;
	color: #433b2f;
}

.kh-message__body p:last-child {
	margin-bottom: 0;
}

.kh-message__cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 34px;
	padding-bottom: 8px;
	border-bottom: 1px solid #d9b07a;
	color: #5d3d00;
	font-size: 0.92rem;
	font-weight: 700;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.kh-message__cta-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #f08a24;
	color: #fff;
	font-size: 0.82rem;
	line-height: 1;
}

.kh-message__cta:hover {
	opacity: 0.82;
}

@media (max-width: 1200px) {
	.kh-message {
		min-height: 660px;
	}

	.kh-message__photo--1 {
		left: max(0px, calc(50% - 480px));
		width: 112px;
		height: 152px;
	}

	.kh-message__photo--2 {
		left: max(0px, calc(50% - 450px));
		width: 72px;
		height: 72px;
		border-width: 2px;
	}

	.kh-message__photo--3 {
		left: max(0px, calc(50% - 430px));
		width: 96px;
		height: 118px;
	}

	.kh-message__photo--4 {
		right: max(0px, calc(50% - 460px));
		width: 156px;
		height: 112px;
		border-width: 2px;
	}

	.kh-message__photo--5 {
		right: max(0px, calc(50% - 400px));
		width: 84px;
		height: 108px;
	}

	.kh-message__illust--1 {
		left: max(0px, calc(50% - 400px));
		width: 100px;
		height: 84px;
	}

	.kh-message__illust--2 {
		right: max(0px, calc(50% - 420px));
		width: 92px;
		height: 78px;
	}
}

@media (max-width: 1024px) {
	.kh-message__collage {
		opacity: 0.55;
	}
}

.kh-section--orange-soft,
.kh-section--voice {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #fff2e0 0%, #fff9f0 100%);
}

.kh-section--orange-band {
	position: relative;
	background: linear-gradient(180deg, #fff4e6 0%, #fff7ef 100%);
	overflow: hidden;
}

.kh-section--orange-band::before {
	content: "";
	position: absolute;
	top: -120px;
	left: -140px;
	width: 340px;
	height: 340px;
	border-radius: 999px;
	background: rgba(243, 130, 24, 0.16);
	pointer-events: none;
	transition: opacity 0.4s ease;
}

.kh-section--orange-band::after {
	content: "";
	position: absolute;
	bottom: -140px;
	right: -120px;
	width: 320px;
	height: 320px;
	border-radius: 999px;
	background: rgba(255, 199, 139, 0.28);
	pointer-events: none;
	transition: opacity 0.4s ease;
}

.kh-section--teal {
	position: relative;
	background: linear-gradient(180deg, #e4f8f2 0%, #d4f1ea 100%);
	overflow: hidden;
}

.kh-section--teal::before {
	content: "";
	position: absolute;
	left: -180px;
	top: -180px;
	width: 420px;
	height: 420px;
	border-radius: 999px;
	background: rgba(76, 177, 159, 0.22);
	pointer-events: none;
	transition: opacity 0.4s ease;
}

.kh-section--teal-soft {
	background: linear-gradient(180deg, #f4fbf9 0%, #eef9f6 100%);
}

.kh-section--curve-top {
	position: relative;
}

.kh-section--class {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #fff 0%, #fff7ee 55%, #fff4e8 100%);
}

.kh-section--class::after {
	content: "";
	position: absolute;
	right: -80px;
	bottom: -80px;
	width: 260px;
	height: 260px;
	border-radius: 999px;
	background: rgba(127, 176, 107, 0.12);
	pointer-events: none;
	transition: opacity 0.4s ease;
}

.kh-orbs {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.kh-section > .inner01,
.kh-message-section > .inner01 {
	position: relative;
	z-index: 1;
}

.kh-orb,
.kh-hero-blob[data-orb] {
	will-change: transform, border-radius;
}

.kh-orb {
	position: absolute;
	display: block;
	border-radius: 50%;
}

.kh-orb--orange-a {
	top: -120px;
	left: -140px;
	width: 340px;
	height: 340px;
	background: rgba(243, 130, 24, 0.16);
}

.kh-orb--orange-b {
	right: -120px;
	bottom: -140px;
	width: 320px;
	height: 320px;
	background: rgba(255, 199, 139, 0.28);
}

.kh-orb--teal-a {
	top: -180px;
	left: -180px;
	width: 420px;
	height: 420px;
	background: rgba(76, 177, 159, 0.22);
}

.kh-orb--teal-b {
	right: -100px;
	bottom: -120px;
	width: 280px;
	height: 280px;
	background: rgba(127, 210, 190, 0.2);
}

.kh-orb--green-a {
	right: -80px;
	bottom: -80px;
	width: 260px;
	height: 260px;
	background: rgba(127, 176, 107, 0.14);
}

.kh-orb--soft-a {
	top: -60px;
	right: -40px;
	width: 220px;
	height: 220px;
	background: rgba(255, 180, 110, 0.18);
}

.kh-orb--soft-b {
	left: -70px;
	bottom: -90px;
	width: 240px;
	height: 240px;
	background: rgba(255, 210, 150, 0.22);
}

.kh-orb--soft-c {
	top: 12%;
	left: -50px;
	width: 160px;
	height: 160px;
	background: rgba(127, 176, 107, 0.12);
}

.kh-orb--flow-a {
	top: -40px;
	left: 8%;
	width: 180px;
	height: 180px;
	background: rgba(240, 138, 36, 0.1);
}

.kh-orb--flow-b {
	right: 6%;
	bottom: -70px;
	width: 200px;
	height: 200px;
	background: rgba(127, 176, 107, 0.12);
}

.kh-orb--instructor-a {
	top: -90px;
	left: -70px;
	width: 260px;
	height: 260px;
	background: rgba(255, 255, 255, 0.16);
}

.kh-orb--instructor-b {
	right: -60px;
	bottom: -80px;
	width: 220px;
	height: 220px;
	background: rgba(255, 230, 200, 0.14);
}

.kh-orb--message-a {
	top: 8%;
	left: -120px;
	width: 300px;
	height: 300px;
	background: rgba(255, 210, 160, 0.2);
}

.kh-orb--message-b {
	right: -80px;
	top: 18%;
	width: 240px;
	height: 240px;
	background: rgba(190, 230, 200, 0.22);
}

.kh-orb--message-c {
	left: 42%;
	bottom: -100px;
	width: 200px;
	height: 200px;
	background: rgba(255, 190, 130, 0.16);
}

.js-orbs-ready .kh-section--orange-band::before,
.js-orbs-ready .kh-section--orange-band::after,
.js-orbs-ready .kh-section--teal::before,
.js-orbs-ready .kh-section--class::after {
	opacity: 0;
}

.js-orbs-ready .kh-hero-blob[data-orb] {
	animation: none;
}

.kh-class-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	margin-top: 8px;
}

.kh-class-card {
	position: relative;
	border-radius: 28px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 16px 36px rgba(93, 61, 0, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.kh-class-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 22px 42px rgba(93, 61, 0, 0.14);
}

.kh-class-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.kh-class-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #f3d9b5;
}

.kh-class-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.kh-class-card:hover .kh-class-card__media img {
	transform: scale(1.04);
}

.kh-class-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.18) 100%);
	pointer-events: none;
}

.kh-class-card__label {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 1;
	padding: 7px 14px;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	color: #fff;
}

.kh-class-card--junior .kh-class-card__label {
	background: rgba(127, 176, 107, 0.92);
}

.kh-class-card--athlete .kh-class-card__label {
	background: rgba(240, 138, 36, 0.92);
}

.kh-class-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 24px 26px 28px;
}

.kh-class-card__title {
	margin: 0;
	font-size: clamp(1.2rem, 2vw, 1.45rem);
	font-weight: 800;
	line-height: 1.4;
	color: #5d3d00;
}

.kh-class-card__text {
	margin: 12px 0 0;
	font-size: 0.92rem;
	line-height: 1.85;
	color: #433b2f;
}

.kh-class-card__features {
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.kh-class-card__features li {
	position: relative;
	padding-left: 1.15rem;
	font-size: 0.84rem;
	line-height: 1.7;
	color: #5a5044;
}

.kh-class-card__features li + li {
	margin-top: 8px;
}

.kh-class-card__features li::before {
	content: "";
	position: absolute;
	top: 0.58rem;
	left: 0;
	width: 7px;
	height: 7px;
	border-radius: 50%;
}

.kh-class-card--junior .kh-class-card__features li::before {
	background: #7fb06b;
}

.kh-class-card--athlete .kh-class-card__features li::before {
	background: #f08a24;
}

.kh-class-card__more {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	margin-top: auto;
	padding-top: 22px;
	font-size: 0.82rem;
	font-weight: 800;
}

.kh-class-card--junior .kh-class-card__more {
	color: #5a9a47;
}

.kh-class-card--athlete .kh-class-card__more {
	color: #d97b16;
}

.kh-class-card:hover .kh-class-card__more {
	text-decoration: underline;
}

.kh-section--class .kh-school-teaser {
	margin-top: 40px;
	padding-top: 36px;
	border-top: 1px solid rgba(47, 143, 131, 0.15);
}

.kh-school-teaser {
	display: grid;
	gap: 18px;
	justify-items: center;
	text-align: center;
}

.kh-school-teaser__text {
	max-width: 640px;
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.8;
	color: #555;
}

.kh-class-lp-schools {
	padding-block: 56px 64px;
	background: #f4faf8;
}

.kh-class-lp-schools .kh-section__header {
	margin-bottom: 4px;
}

.kh-class-lp-schools__grid {
	width: 100%;
}

.kh-class-lp-schools__empty {
	max-width: 560px;
	margin: 0 auto;
	text-align: center;
	color: #666;
	font-size: 0.95rem;
	line-height: 1.7;
}

.kh-school-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 8px;
}

.kh-school-card {
	background: #fff;
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 14px 32px rgba(36, 92, 82, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.kh-school-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 38px rgba(36, 92, 82, 0.14);
}

.kh-school-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.kh-school-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #d4f1ea;
}

.kh-school-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.kh-school-card:hover .kh-school-card__media img {
	transform: scale(1.05);
}

.kh-school-card__area {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: #2f6f62;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 4px 12px rgba(36, 92, 82, 0.12);
}

.kh-school-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 20px 22px 22px;
}

.kh-school-card__name {
	margin: 0;
	font-size: 1.12rem;
	font-weight: 800;
	line-height: 1.45;
	color: #234840;
}

.kh-school-card__text {
	margin: 10px 0 0;
	font-size: 0.86rem;
	line-height: 1.8;
	color: #4a635c;
}

.kh-school-card__more {
	margin-top: auto;
	padding-top: 16px;
	font-size: 0.78rem;
	font-weight: 800;
	color: #3a8f7d;
	text-align: right;
}

.kh-school-card:hover .kh-school-card__more {
	text-decoration: underline;
}

.kh-link-more {
	margin-top: 28px;
}

.kh-link-more a:not(.kh-btn) {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 11px 20px 11px 22px;
	border: 1px solid rgba(240, 138, 36, 0.32);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	color: #5d3d00;
	font-size: 0.86rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	box-shadow: 0 8px 22px rgba(93, 61, 0, 0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.kh-link-more a:not(.kh-btn)::after {
	content: "→";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #f08a24;
	color: #fff;
	font-size: 0.72rem;
	line-height: 1;
	transition: transform 0.25s ease, background 0.25s ease;
}

.kh-link-more a:not(.kh-btn):hover {
	transform: translateY(-2px);
	border-color: rgba(240, 138, 36, 0.55);
	box-shadow: 0 12px 28px rgba(93, 61, 0, 0.12);
}

.kh-link-more a:not(.kh-btn):hover::after {
	transform: translateX(3px);
	background: #ff9f40;
}

.kh-link-more--center {
	margin-top: 32px;
	text-align: center;
}

.kh-section--flow .kh-link-more {
	text-align: center;
}

.kh-link-more--light a:not(.kh-btn) {
	border-color: rgba(255, 255, 255, 0.5);
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	box-shadow: 0 8px 22px rgba(67, 40, 5, 0.12);
}

.kh-link-more--light a:not(.kh-btn)::after {
	background: #fff;
	color: #f08a24;
}

.kh-link-more--light a:not(.kh-btn):hover {
	border-color: rgba(255, 255, 255, 0.75);
	background: rgba(255, 255, 255, 0.22);
}

.kh-link-more--light a:not(.kh-btn):hover::after {
	background: #fff7ee;
}

.kh-btn--school {
	border: 1px solid rgba(58, 143, 125, 0.22);
	color: #2f6f62;
	background: rgba(255, 255, 255, 0.96);
}

.kh-section--curve-top::before {
	content: "";
	position: absolute;
	top: -34px;
	left: 0;
	width: 100%;
	height: 34px;
	background: radial-gradient(120% 100% at 50% 100%, #fff 35%, rgba(255, 255, 255, 0) 36%);
	pointer-events: none;
}

.kh-section--curve-bottom {
	position: relative;
}

.kh-section--curve-bottom::after {
	content: "";
	position: absolute;
	bottom: -34px;
	left: 0;
	width: 100%;
	height: 34px;
	background: radial-gradient(120% 100% at 50% 0%, #fff 35%, rgba(255, 255, 255, 0) 36%);
	pointer-events: none;
}

.kh-section__header {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 36px;
	text-align: center;
}

.kh-section__header--left {
	align-items: flex-start;
	text-align: left;
}

.kh-section__eyebrow {
	display: inline-block;
	margin: 0 0 12px;
	padding: 6px 14px;
	padding-left: calc(14px + 0.24em);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.24em;
	color: #f08a24;
}

.kh-section__title {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 920px;
}

.kh-section__decor {
	position: relative;
	display: block;
	width: 56px;
	height: 4px;
	margin: 14px auto 0;
	border-radius: 999px;
	background: linear-gradient(90deg, #7fb06b 0%, #f08a24 100%);
}

.kh-section__decor::before,
.kh-section__decor::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	transform: translateY(-50%);
}

.kh-section__decor::before {
	left: -14px;
	background: #7fb06b;
}

.kh-section__decor::after {
	right: -14px;
	background: #f08a24;
}

.kh-section__title h1,
.kh-section__title h2,
.kh-section__header h1,
.kh-section__header h2 {
	font-size: clamp(1.65rem, 3vw, 2.2rem);
	line-height: 1.45;
	color: #5d3d00;
}

/* Subpages only: h2 section headings use a distinct style from page h1 */
.kuritaya-sub .kh-section__header--section .kh-section__decor {
	display: none;
}

.kuritaya-sub .kh-section__header--section .kh-section__eyebrow {
	padding: 0;
	border-radius: 0;
	background: transparent;
	font-size: 0.72rem;
	letter-spacing: 0.28em;
	color: var(--k-orange-deep, #d86f0d);
}

.kuritaya-sub .kh-section__header--section .kh-section__title h2 {
	display: inline-block;
}

.kuritaya-sub .kh-section__header--section .kh-section__title h2::after {
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	margin: 8px auto 0;
	background: var(--k-green, #7fb06b);
}

.kuritaya-sub .kh-section__header--section.kh-section__header--left .kh-section__title h2::after {
	margin-left: 0;
	margin-right: auto;
}

.kuritaya-sub .kh-section__header--section.kh-section__header--light .kh-section__eyebrow {
	color: rgba(255, 255, 255, 0.88);
}

.kuritaya-sub .kh-section__header--section.kh-section__header--light .kh-section__title h2 {
	color: #fff;
}

.kuritaya-sub .kh-section__header--section.kh-section__header--light .kh-section__title h2::after {
	background: rgba(255, 255, 255, 0.92);
}

.kh-section__lead,
.kh-section__header > p:not(.kh-section__eyebrow) {
	max-width: 680px;
	margin: 12px auto 0;
	font-size: 0.98rem;
	line-height: 1.9;
	color: #555;
}

.kh-section__header--left .kh-section__title {
	align-items: flex-start;
}

.kh-section__header--left .kh-section__eyebrow {
	padding-left: 14px;
	padding-right: calc(14px + 0.24em);
}

.kh-section__header--left .kh-section__decor {
	margin: 14px 0 0;
	margin-left: 14px;
}

.kh-section__header--left .kh-section__decor::before {
	left: 0;
}

.kh-section__header--left .kh-section__lead,
.kh-section__header--left > p:not(.kh-section__eyebrow) {
	margin-left: 0;
	margin-right: 0;
}

.kh-section__header--light .kh-section__eyebrow {
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
}

.kh-section__header--light .kh-section__decor {
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 230, 200, 0.95) 100%);
}

.kh-section__header--light .kh-section__title .kh-section__decor::before,
.kh-section__header--light .kh-section__decor::before,
.kh-section__header--light .kh-section__title .kh-section__decor::after,
.kh-section__header--light .kh-section__decor::after {
	background: #fff;
}

.kh-section__header--light .kh-section__title h1,
.kh-section__header--light .kh-section__title h2,
.kh-section__header--light h1,
.kh-section__header--light h2 {
	color: #fff;
}

.kh-section__header--light .kh-section__lead,
.kh-section__header--light > p:not(.kh-section__eyebrow) {
	color: rgba(255, 255, 255, 0.92);
}

.kh-grid {
	display: grid;
	gap: 18px;
	margin-top: 24px;
}

.kh-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kh-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kh-section--instructor {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #f08a24 0%, #ff9f40 100%);
}

.kh-section__header--light-text {
	color: #fff;
}

.kh-instructor-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 32px;
}

.kh-instructor-card {
	background: #fff;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 12px 28px rgba(67, 40, 5, 0.14);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.kh-instructor-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 34px rgba(67, 40, 5, 0.18);
}

.kh-instructor-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.kh-instructor-card__thumb {
	aspect-ratio: 1 / 1.05;
	overflow: hidden;
	background: #ececec;
}

.kh-instructor-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.kh-instructor-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 18px 20px 20px;
}

.kh-instructor-card__role {
	margin: 0;
	font-size: 0.78rem;
	color: #999;
	letter-spacing: 0.04em;
}

.kh-instructor-card__name {
	margin: 8px 0 0;
	font-size: 1.28rem;
	font-weight: 800;
	line-height: 1.4;
	color: #222;
}

.kh-instructor-card__more {
	margin-top: auto;
	padding-top: 16px;
	font-size: 0.78rem;
	font-weight: 700;
	color: #f08a24;
	text-align: right;
}

.kh-voice-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 24px;
	margin-top: 8px;
}

.kh-voice-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.kh-voice-card__bubble {
	position: relative;
	background: #fff;
	border: 1px solid var(--k-border-soft);
	border-radius: 22px;
	padding: 22px 22px 20px;
	box-shadow: 0 10px 24px rgba(93, 61, 0, 0.08);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.kh-voice-card__bubble::after {
	content: "";
	position: absolute;
	bottom: -9px;
	left: 30px;
	width: 16px;
	height: 16px;
	background: #fff;
	border-right: 1px solid var(--k-border-soft);
	border-bottom: 1px solid var(--k-border-soft);
	transform: rotate(45deg);
}

.kh-voice-card__quote {
	display: block;
	margin-bottom: 6px;
	font-size: 2.2rem;
	font-weight: 800;
	line-height: 1;
	color: #f08a24;
	opacity: 0.35;
}

.kh-voice-card__text {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.85;
	color: #433b2f;
}

.kh-voice-card__profile {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 20px;
	padding-left: 6px;
}

.kh-voice-card__avatar {
	flex-shrink: 0;
	width: 50px;
	height: 50px;
	overflow: hidden;
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 0 4px 12px rgba(93, 61, 0, 0.12);
}

.kh-voice-card__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kh-voice-card__name {
	margin: 0;
	font-size: 0.96rem;
	font-weight: 800;
	line-height: 1.45;
	color: #5d3d00;
}

.kh-voice-card__more {
	display: inline-block;
	margin-top: 4px;
	font-size: 0.76rem;
	font-weight: 700;
	color: #f08a24;
}

.kh-voice-card:hover .kh-voice-card__bubble {
	transform: translateY(-3px);
	box-shadow: 0 16px 30px rgba(93, 61, 0, 0.12);
}

.kh-voice-card:hover .kh-voice-card__more {
	text-decoration: underline;
}

.kh-worry-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	margin-top: 8px;
}

.kh-worry-card__thumb {
	overflow: hidden;
	border-radius: 22px 22px 0 22px;
	aspect-ratio: 4 / 3;
	background: #f3d9b5;
}

.kh-worry-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kh-worry-card__head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-top: 18px;
}

.kh-worry-card__num {
	flex-shrink: 0;
	font-size: clamp(2rem, 3.6vw, 2.65rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.02em;
	color: #5d3d00;
}

.kh-worry-card__title {
	margin: 0;
	font-size: clamp(1rem, 1.6vw, 1.12rem);
	font-weight: 800;
	line-height: 1.45;
	color: #f08a24;
}

.kh-worry-card__text {
	margin: 12px 0 0;
	font-size: 0.92rem;
	line-height: 1.85;
	color: #433b2f;
}

.kh-card {
	padding: 24px;
	border: 1px solid #ffe2bc;
	border-radius: 14px;
	background: #fff;
}

.kh-card h3 {
	font-size: 1.2rem;
	color: #5d3d00;
}

.kh-card p {
	margin-top: 8px;
	font-size: 0.95rem;
}

.kh-card a {
	display: inline-block;
	margin-top: 12px;
	color: #d97b16;
	font-weight: 700;
	text-decoration: underline;
}

.kh-list {
	margin-top: 16px;
}

.kh-list li {
	padding: 10px 0;
	border-bottom: 1px solid #f1dfc9;
}

.kh-list a {
	color: #5d3d00;
}

.kh-steps {
	display: grid;
	gap: 10px;
	margin-top: 18px;
}

.kh-steps li {
	padding: 14px 16px;
	border: 1px solid #f0d8b8;
	border-radius: 10px;
	background: #fff;
	font-size: 0.95rem;
}

.kh-section--flow {
	position: relative;
	overflow: hidden;
	background: #fff;
}

.kh-section--flow .kh-section__eyebrow {
	background: #fff1df;
	border: 1px solid rgba(240, 138, 36, 0.28);
	box-shadow: 0 2px 10px rgba(93, 61, 0, 0.06);
}

.kh-section--first-values {
	position: relative;
	overflow: hidden;
}

.kh-first-values {
	position: relative;
	z-index: 2;
}

.kh-section--first-values .kh-section__header {
	position: relative;
	z-index: 2;
}

.kh-first-values__card {
	padding: 40px 48px;
	background: #fff;
	border-radius: 32px;
	box-shadow: 0 20px 48px rgba(93, 61, 0, 0.08);
}

.kh-first-values__card p {
	margin: 0;
	font-size: 1rem;
	line-height: 2;
	color: #433b2f;
}

.kh-first-values__points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

.kh-first-values__points li {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px 14px;
	border: 1px solid rgba(240, 138, 36, 0.22);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.82);
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.55;
	color: #5d3d00;
	text-align: center;
}

.kh-section--first-can-do .kh-section__header,
.kh-first-benefits,
.kh-first-training-grid {
	position: relative;
	z-index: 2;
}

.kh-first-benefits {
	margin: 0 0 36px;
}

.kh-first-benefits__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.kh-first-benefits__list li {
	position: relative;
	padding-left: 1.1em;
	font-size: 0.96rem;
	line-height: 1.85;
	color: #433b2f;
}

.kh-first-benefits__list li::before {
	content: "・";
	position: absolute;
	left: 0;
	color: #7fb06b;
	font-weight: 800;
}

.kh-first-benefits__note {
	margin-top: 24px;
	padding: 24px 28px;
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: 0 10px 24px rgba(93, 61, 0, 0.06);
}

.kh-first-benefits__note p {
	margin: 0 0 0.85em;
	font-size: 0.95rem;
	line-height: 1.9;
	color: #433b2f;
}

.kh-first-benefits__note p:last-child {
	margin-bottom: 0;
}

.kh-first-training-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.kh-first-training-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 16px 36px rgba(93, 61, 0, 0.08);
}

.kh-first-training-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.kh-first-training-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kh-first-training-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 22px 22px 26px;
}

.kh-first-training-card__title {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.5;
	color: #5d3d00;
}

.kh-first-training-card__text {
	margin: 10px 0 0;
	font-size: 0.9rem;
	line-height: 1.85;
	color: #555;
}

.kh-section--first-strengths .kh-section__header,
.kh-first-strength-list {
	position: relative;
	z-index: 2;
}

.kh-first-strength-list {
	display: grid;
	gap: 20px;
}

.kh-first-strength {
	padding: 28px 32px;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 12px 28px rgba(93, 61, 0, 0.07);
}

.kh-first-strength__head {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 14px;
	padding: 10px 14px;
	border-radius: 12px;
	background: linear-gradient(90deg, rgba(255, 236, 170, 0.65) 0%, rgba(255, 248, 220, 0.35) 100%);
}

.kh-first-strength__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #f08a24;
	color: #fff;
	font-size: 0.82rem;
	font-weight: 800;
}

.kh-first-strength__title {
	margin: 0;
	font-size: 1.08rem;
	font-weight: 800;
	line-height: 1.5;
	color: #5d3d00;
}

.kh-first-strength__text {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.9;
	color: #433b2f;
}

.kh-first-strength__examples {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid rgba(93, 61, 0, 0.08);
}

.kh-first-strength__examples-label {
	margin: 0 0 10px;
	font-size: 0.82rem;
	font-weight: 800;
	color: #9c7f59;
}

.kh-first-strength__examples ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 8px;
}

.kh-first-strength__examples li {
	position: relative;
	padding-left: 1em;
	font-size: 0.88rem;
	line-height: 1.7;
	color: #555;
}

.kh-first-strength__examples li::before {
	content: "▸";
	position: absolute;
	left: 0;
	color: #7fb06b;
	font-size: 0.75rem;
}

.kp-page--first {
	--kh-first-content-width: 980px;
	background: radial-gradient(circle at 8% 6%, rgba(255, 198, 132, 0.22) 0%, rgba(255, 198, 132, 0) 38%),
		radial-gradient(circle at 92% 16%, rgba(175, 219, 146, 0.18) 0%, rgba(175, 219, 146, 0) 35%),
		linear-gradient(180deg, #fffaf3 0%, #fff4e8 100%);
}

.kp-page--first .kh-section--class,
.kp-page--first .kh-section--orange-soft,
.kp-page--first .kh-section--flow,
.kp-page--first .kh-final-cta-section {
	position: relative;
	overflow: hidden;
}

.kp-page--first .kh-section--flow {
	background: linear-gradient(180deg, #fff 0%, #fff7ee 100%);
}

.kp-page--first .kh-final-cta-section {
	margin-top: 0;
}

.kp-page--first .kh-section > .inner01 {
	max-width: var(--kh-first-content-width);
}

.kp-page--first .kh-section__header,
.kp-page--first .kh-first-values,
.kp-page--first .kh-first-benefits,
.kp-page--first .kh-first-training-grid,
.kp-page--first .kh-first-strength-list,
.kp-page--first .kh-flow,
.kp-page--first .kh-flow__note,
.kp-page--first .kh-link-more,
.kp-page--first .kh-hero__actions {
	width: 100%;
}

.kp-page--first .k-archive__hero,
.kp-page--contact .k-archive__hero,
.kp-page--trial .k-archive__hero {
	padding-bottom: 48px;
}

.kh-flow {
	position: relative;
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin: 40px 0 0;
	padding: 48px 0 0;
	list-style: none;
}

.kh-flow::before {
	content: "";
	position: absolute;
	top: 84px;
	left: 10%;
	right: 10%;
	height: 1px;
	background: #4a4a4a;
	z-index: 0;
}

.kh-flow-step {
	position: relative;
	flex: 1;
	min-width: 0;
	text-align: center;
	z-index: 1;
}

.kh-flow-step__visual {
	position: relative;
	width: 72px;
	height: 92px;
	margin: 0 auto 18px;
}

.kh-flow-step__bg-num {
	position: absolute;
	top: -40px;
	left: 50%;
	z-index: 0;
	transform: translateX(-50%);
	font-size: clamp(2.6rem, 4vw, 3.6rem);
	font-weight: 800;
	line-height: 1;
	color: rgba(240, 138, 36, 0.22);
	pointer-events: none;
}

.kh-flow-step__icon {
	position: absolute;
	bottom: 0;
	left: 50%;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	margin: 0;
	transform: translateX(-50%);
	border: 1px solid #4a4a4a;
	border-radius: 50%;
	background: #fff;
}

.kh-flow-step__icon svg {
	width: 36px;
	height: 36px;
}

.kh-flow-step__label {
	margin: 0;
	font-size: 0.86rem;
	line-height: 1.5;
	color: #333;
}

.kh-flow-step__action {
	margin: 6px 0 0;
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.6;
	color: #222;
}

.kh-flow-step__action span {
	color: #f08a24;
}

.kh-flow__note {
	margin: 28px 0 0;
	font-size: 0.78rem;
	line-height: 1.7;
	text-align: center;
	color: #999;
}

@media (max-width: 768px) {
	.kh-flow {
		flex-direction: column;
		gap: 28px;
		margin-top: 32px;
		padding: 24px 0 0 8px;
	}

	.kh-flow::before {
		top: 28px;
		bottom: 36px;
		left: 43px;
		right: auto;
		width: 1px;
		height: auto;
	}

	.kh-flow-step {
		display: flex;
		align-items: flex-start;
		gap: 16px;
		text-align: left;
	}

	.kh-flow-step__visual {
		flex-shrink: 0;
		width: 64px;
		height: 72px;
		margin: 0;
		z-index: 1;
	}

	.kh-flow-step__bg-num {
		top: -6px;
		left: 2px;
		z-index: 3;
		transform: none;
		font-size: 1.35rem;
		color: rgba(240, 138, 36, 0.3);
	}

	.kh-flow-step__icon {
		z-index: 2;
		width: 64px;
		height: 64px;
	}

	.kh-flow-step__icon svg {
		width: 32px;
		height: 32px;
	}

	.kh-flow-step__text {
		padding-top: 8px;
	}

	.kh-flow__note {
		text-align: left;
	}
}

.kh-final-cta {
	text-align: center;
}

.kh-final-cta-section {
	position: relative;
	padding: 70px 0;
	overflow: hidden;
	background: linear-gradient(180deg, #fff4e6 0%, #fff7ef 100%) !important;
}

.kh-final-cta-section .inner01,
.kh-final-cta-section .kh-section__header {
	position: relative;
	z-index: 2;
}

.kh-final-cta-section .kh-section__header {
	align-items: center;
	text-align: center;
	margin-bottom: 36px;
}

.kh-final-cta-section .kh-section__title {
	align-items: center;
}

.kh-final-cta-section .kh-section__header--left {
	align-items: center;
	text-align: center;
}

.kh-final-cta-section .kh-section__header--left .kh-section__title {
	align-items: center;
}

.kh-final-cta-section .kh-section__header--left .kh-section__decor {
	margin-left: auto;
	margin-right: auto;
}

.kh-final-cta-section .kh-section__header--left .kh-section__lead,
.kh-final-cta-section .kh-section__header--left > p:not(.kh-section__eyebrow) {
	margin-left: auto;
	margin-right: auto;
}

.k-archive__hero,
.k-single__hero {
	padding-top: 32px;
}

.k-archive__lead {
	margin-top: 8px;
	margin-bottom: 20px;
	color: #6b5b40;
}

.k-card__more {
	display: inline-block;
	margin-top: 10px;
	color: #d97b16;
	font-weight: 700;
	text-decoration: underline;
}

.k-single__article .entry-header h1 {
	font-size: 2rem;
	color: #5d3d00;
}

.k-single__meta {
	margin-top: 4px;
	color: #9c7f59;
	font-size: 0.85rem;
}

.k-single__article .entry-content {
	margin-top: 18px;
}

.k-single__article .entry-content p,
.k-single__article .entry-content li {
	font-size: 1rem;
}

.k-single__related {
	margin-top: 34px;
	padding: 24px;
	border: 1px solid #f0d8b8;
	border-radius: 12px;
	background: #fffdf9;
}

.k-related-list li {
	margin-top: 8px;
}

.k-related-list a {
	color: #d97b16;
	text-decoration: underline;
}

.k-single__cta {
	margin-top: 24px;
	padding: 24px;
	border-radius: 12px;
	background: linear-gradient(90deg, #ffe8ca 0%, #fff7ea 100%);
}

.k-single__cta h2 {
	margin-bottom: 8px;
	font-size: 1.2rem;
	color: #5d3d00;
}

.k-single__cta a {
	color: #d97b16;
	font-weight: 700;
	text-decoration: underline;
}

.kuritaya-trial-cta {
	margin-top: 80px;
	padding: 45px 0;
	background: linear-gradient(90deg, #ffe0b7 0%, #ffd08f 100%);
}

.kuritaya-trial-cta h2 {
	font-size: 1.8rem;
	color: #5d3d00;
}

.kuritaya-trial-cta p {
	margin-top: 10px;
}

.kuritaya-trial-cta a {
	display: inline-block;
	margin-top: 6px;
	padding: 12px 20px;
	border-radius: 999px;
	font-weight: 700;
	color: #fff;
	background: #f08a24;
}

@media (max-width: 1024px) {
	.kh-grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kh-instructor-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}

	.kh-voice-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 16px;
	}

	.kh-worry-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 20px;
	}

	.kh-class-grid {
		gap: 20px;
	}

	.kh-school-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
}

@media (max-width: 768px) {
	.kuritaya-home {
		padding-top: 20px;
	}

	.kh-hero {
		padding: 48px 0;
	}

	.kh-hero h1 {
		font-size: 1.8rem;
	}

	.kh-section {
		padding: 48px 0;
	}

	.kh-message-section {
		padding: 56px 0 40px;
	}

	.kh-message {
		min-height: auto;
		padding: 0;
	}

	.kh-message__collage {
		display: none;
	}

	.kh-message__card {
		padding: 32px 22px 28px;
		border-radius: 28px;
	}

	.kh-message__card h2 {
		font-size: 1.32rem;
		line-height: 1.48;
		margin-bottom: 20px;
	}

	.kh-message__body p {
		text-align: left;
		line-height: 1.85;
	}

	.kh-message__cta {
		margin-top: 24px;
	}

	.kh-first-values__card {
		padding: 28px 22px;
		border-radius: 24px;
	}

	.kh-first-values__points {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.kp-page--first .kh-section > .inner01 {
		max-width: none;
	}

	.kh-first-benefits__note {
		padding: 20px 18px;
	}

	.kh-first-training-grid {
		grid-template-columns: 1fr;
	}

	.kh-first-strength {
		padding: 22px 20px;
	}

	.kh-section__title h1,
	.kh-section__title h2,
	.kh-section__header h1,
	.kh-section__header h2 {
		font-size: 1.45rem;
	}

	.kh-section__header {
		margin-bottom: 28px;
	}

	.kh-grid--2,
	.kh-grid--3 {
		grid-template-columns: 1fr;
	}

	.kh-instructor-grid {
		display: flex;
		flex-wrap: nowrap;
		grid-template-columns: none;
		gap: 14px;
		max-width: none;
		margin-top: 28px;
		margin-left: 0;
		margin-right: -8px;
		padding: 0 8px 8px 0;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.kh-instructor-grid::-webkit-scrollbar {
		display: none;
	}

	.kh-instructor-grid > .kh-instructor-card {
		flex: 0 0 min(84%, 300px);
		scroll-snap-align: start;
		max-width: 300px;
	}

	.kh-instructor-card__name {
		font-size: 1.15rem;
	}

	.kh-voice-grid {
		grid-template-columns: 1fr;
		max-width: 420px;
		margin-left: auto;
		margin-right: auto;
	}

	.kh-orbs .kh-orb {
		opacity: 0.72;
	}

	.kh-orb--orange-a,
	.kh-orb--teal-a,
	.kh-orb--message-a {
		width: 220px;
		height: 220px;
	}

	.kh-orb--orange-b,
	.kh-orb--teal-b,
	.kh-orb--message-b {
		width: 180px;
		height: 180px;
	}

	.kh-worry-grid {
		grid-template-columns: 1fr;
		max-width: 420px;
		margin-left: auto;
		margin-right: auto;
	}

	.kh-class-grid {
		grid-template-columns: 1fr;
		max-width: 480px;
		margin-left: auto;
		margin-right: auto;
	}

	.kh-school-grid {
		grid-template-columns: 1fr;
		max-width: 420px;
		margin-left: auto;
		margin-right: auto;
	}

	.kuritaya-trial-cta {
		margin-top: 50px;
		padding: 35px 0;
	}

	.kuritaya-trial-cta h2 {
		font-size: 1.35rem;
	}
}

.kp-page {
	padding-top: 110px;
}

.kp-page__hero {
	padding: 56px 0;
	background: linear-gradient(125deg, #fff4e5 0%, #ffe4c1 40%, #f6ffe9 100%);
}

.kp-page__hero h1 {
	font-size: 2.2rem;
	color: #5d3d00;
}

.kp-page__hero p {
	margin-top: 8px;
	color: #6b5b40;
}

.kp-page__body {
	padding: 56px 0;
}

.kp-page__body h2 {
	margin-bottom: 16px;
	font-size: 1.5rem;
	color: #5d3d00;
}

.kp-page__body h3 {
	margin-top: 20px;
	font-size: 1.1rem;
	color: #5d3d00;
}

.kp-page__body p,
.kp-page__body li,
.kp-page__body td,
.kp-page__body th {
	font-size: 1rem;
}

.kp-page__body table {
	width: 100%;
	border-collapse: collapse;
}

.kp-page__body th,
.kp-page__body td {
	padding: 10px;
	border: 1px solid #efd9b8;
}

@media (max-width: 768px) {
	.kp-page {
		padding-top: 20px;
	}

	.kp-page__hero {
		padding: 38px 0;
	}

	.kp-page__hero h1 {
		font-size: 1.6rem;
	}

	.kp-page__body {
		padding: 38px 0;
	}
}

/* Creative polish inspired by references */
.kuritaya-home,
.kuritaya-sub,
.kp-page,
.k-archive,
.k-single {
	--k-orange: #f08a24;
	--k-orange-deep: #d86f0d;
	--k-green: #7fb06b;
	--k-brown: #5d3d00;
	--k-bg-soft: #fffaf3;
	--k-border-soft: #f2dcc2;
}

.kuritaya-home {
	background: radial-gradient(circle at 8% 6%, rgba(255, 198, 132, 0.22) 0%, rgba(255, 198, 132, 0) 38%),
		radial-gradient(circle at 92% 16%, rgba(175, 219, 146, 0.18) 0%, rgba(175, 219, 146, 0) 35%);
}

.kh-hero {
	position: relative;
	overflow: hidden;
}

.kh-hero__accent {
	position: absolute;
	top: -88px;
	right: -102px;
	width: 360px;
	height: 360px;
	border-radius: 54% 46% 50% 50% / 42% 54% 46% 58%;
	overflow: hidden;
	pointer-events: none;
	z-index: 2;
	background: #f3d9b5;
	box-shadow: 0 16px 28px rgba(67, 40, 5, 0.18);
	opacity: 0;
	transform: scale(0.92);
	transform-origin: 62% 38%;
	animation: khHeroCoreBloom var(--hero-stage-1-duration) var(--hero-ease-smooth) var(--hero-stage-1-delay) forwards;
}

.kh-hero__accent-slide {
	position: absolute;
	inset: 0;
	overflow: hidden;
	border-radius: inherit;
	opacity: 0;
	will-change: opacity, transform;
	transform: scale(1.01);
	animation: khVisualFade var(--hero-slide-cycle) infinite ease-in-out;
	animation-delay: var(--hero-slide-start);
}

.kh-hero__accent-slide--2 {
	animation-delay: calc(var(--hero-slide-start) + 3s);
}

.kh-hero__accent-slide--3 {
	animation-delay: calc(var(--hero-slide-start) + 6s);
}

.kh-hero__accent-slide img {
	display: block;
	width: 108%;
	height: 108%;
	margin: -4%;
	object-fit: cover;
	object-position: center 38%;
}

.kh-hero-blobs {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.kh-hero-blob {
	position: absolute;
	display: block;
	opacity: 0;
	animation: khHeroBranchBloom var(--hero-stage-2-duration) var(--hero-ease-energy) var(--stage-delay, var(--hero-stage-2-delay)) forwards;
}

.kh-hero-blob--photo {
	left: 4%;
	top: 20%;
	width: 112px;
	height: 112px;
	overflow: hidden;
	z-index: 1;
	border-radius: 58% 42% 54% 46% / 48% 52% 46% 54%;
	box-shadow: 0 12px 28px rgba(67, 40, 5, 0.22);
	border: 3px solid rgba(255, 255, 255, 0.55);
	--bloom-opacity: 1;
	--branch-x: 72px;
	--branch-y: 18px;
	--branch-rotate: -8deg;
	--stage-delay: calc(var(--hero-stage-2-delay) + var(--hero-stage-2-stagger) * 1);
	transform-origin: 65% 55%;
	animation:
		khHeroBranchBloom var(--hero-stage-2-duration) var(--hero-ease-energy) var(--stage-delay) forwards,
		khBlobMorphSoft 24s ease-in-out calc(var(--stage-delay) + var(--hero-stage-2-duration)) infinite;
}

.kh-hero-blob--photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kh-hero-blob--glow {
	left: 0;
	bottom: 10%;
	width: min(28vw, 220px);
	height: min(20vw, 150px);
	z-index: 0;
	border-radius: 62% 38% 58% 42% / 42% 58% 44% 56%;
	background: radial-gradient(circle at 38% 32%, rgba(207, 232, 196, 0.55) 0%, rgba(127, 176, 107, 0.28) 42%, rgba(127, 176, 107, 0) 72%);
	--bloom-opacity: 0.72;
	--branch-x: 88px;
	--branch-y: -24px;
	--branch-rotate: 6deg;
	--stage-delay: calc(var(--hero-stage-2-delay) + var(--hero-stage-2-stagger) * 2);
	transform-origin: 62% 42%;
	animation:
		khHeroBranchBloom var(--hero-stage-2-duration) var(--hero-ease-energy) var(--stage-delay) forwards,
		khBlobMorphSoft 30s ease-in-out calc(var(--stage-delay) + var(--hero-stage-2-duration)) infinite;
}

@keyframes khHeroCoreBloom {
	0% {
		opacity: 0;
		transform: scale(0.92);
		border-radius: 50%;
	}
	55% {
		opacity: 1;
		transform: scale(1.03);
		border-radius: 56% 44% 52% 48% / 44% 56% 48% 52%;
	}
	100% {
		opacity: 1;
		transform: scale(1);
		border-radius: 54% 46% 50% 50% / 42% 54% 46% 58%;
	}
}

@keyframes khHeroBranchBloom {
	0% {
		opacity: 0;
		transform: translate(var(--branch-x, 36px), var(--branch-y, 0)) scale(0.5) rotate(var(--branch-rotate, -5deg));
	}
	50% {
		opacity: var(--bloom-opacity, 1);
		transform: translate(calc(var(--branch-x, 36px) * 0.05), calc(var(--branch-y, 0) * 0.05)) scale(1.1) rotate(calc(var(--branch-rotate, -5deg) * 0.12));
	}
	74% {
		transform: translate(calc(var(--branch-x, 36px) * -0.02), calc(var(--branch-y, 0) * -0.02)) scale(0.97) rotate(0deg);
	}
	100% {
		opacity: var(--bloom-opacity, 1);
		transform: translate(0, 0) scale(1) rotate(0deg);
	}
}

@keyframes khHeroTextReveal {
	0% {
		opacity: 0;
		transform: translate(var(--text-x, 20px), var(--text-y, 6px));
	}
	100% {
		opacity: var(--bloom-opacity, 1);
		transform: translate(0, 0);
	}
}

@keyframes khHeroBloom {
	0% {
		opacity: 0;
		transform: scale(0) rotate(-10deg);
	}
	48% {
		opacity: var(--bloom-opacity, 1);
		transform: scale(1.12) rotate(3deg);
	}
	72% {
		transform: scale(0.97) rotate(-1.5deg);
	}
	100% {
		opacity: var(--bloom-opacity, 1);
		transform: scale(1) rotate(0deg);
	}
}

@keyframes khHeroVisualBloom {
	0% {
		opacity: 0;
		transform: scale(0) rotate(-8deg);
		border-radius: 50%;
	}
	50% {
		opacity: 1;
		transform: scale(1.08) rotate(2deg);
		border-radius: 58% 42% 52% 48% / 46% 54% 48% 52%;
	}
	78% {
		transform: scale(0.98) rotate(-1deg);
		border-radius: 52% 48% 54% 46% / 44% 56% 46% 54%;
	}
	100% {
		opacity: 1;
		transform: scale(1) rotate(0deg);
		border-radius: 54% 46% 50% 50% / 42% 54% 46% 58%;
	}
}

@keyframes khBlobMorphSoft {
	0%,
	100% {
		border-radius: 50% 50% 48% 52% / 48% 52% 50% 50%;
	}
	50% {
		border-radius: 48% 52% 50% 50% / 50% 48% 52% 50%;
	}
}

@keyframes khBlobDriftSoft {
	0%,
	100% {
		transform: translate(0, 0);
	}
	50% {
		transform: translate(3px, -4px);
	}
}

@keyframes khBlobMorph {
	0%,
	100% {
		border-radius: 58% 42% 62% 38% / 52% 48% 54% 46%;
	}
	25% {
		border-radius: 42% 58% 48% 52% / 62% 38% 58% 42%;
	}
	50% {
		border-radius: 52% 48% 38% 62% / 44% 56% 42% 58%;
	}
	75% {
		border-radius: 46% 54% 58% 42% / 48% 52% 62% 38%;
	}
}

@keyframes khBlobDrift {
	0%,
	100% {
		transform: translate(0, 0);
	}
	33% {
		transform: translate(6px, -10px);
	}
	66% {
		transform: translate(-4px, 8px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.kh-hero-blob,
	.kh-hero__accent,
	.kh-hero__accent-slide,
	.kh-hero-main__visual,
	.kh-hero-main__visual-slide,
	.kh-hero-main__bg-text,
	.kh-hero-main__copy .kh-kicker,
	.kh-hero-main__copy h1,
	.kh-hero-main__copy > p,
	.kh-hero-main__copy .kh-hero__actions {
		animation: none;
		opacity: 1;
		transform: none;
	}

	.kh-hero__video-element,
	.kh-hero__video-embed {
		display: none;
	}

	.kh-hero--has-video {
		background: #3d2810;
	}

	.kh-hero--has-video .kh-hero__inner {
		min-height: 480px;
		padding-bottom: 40px;
	}

	.kh-hero-blob--photo {
		border-radius: 58% 42% 54% 46% / 48% 52% 46% 54%;
	}

	.kh-hero-blob--glow {
		opacity: 0.72;
		border-radius: 62% 38% 58% 42% / 42% 58% 44% 56%;
	}

	.kh-hero-main__visual {
		border-radius: 54% 46% 50% 50% / 42% 54% 46% 58%;
	}
}

@media (max-width: 1024px) {
	.kh-hero-blob--photo {
		width: 92px;
		height: 92px;
	}

	.kh-hero-blob--glow {
		width: 180px;
		height: 120px;
	}
}

@media (max-width: 768px) {
	.kh-hero-blob--photo {
		left: 2%;
		top: auto;
		bottom: 18%;
		width: 80px;
		height: 80px;
		border-width: 2px;
	}

	.kh-hero-blob--glow {
		left: -8%;
		bottom: 4%;
		width: 160px;
		height: 110px;
		opacity: 0.55;
	}
}

.kh-btn {
	box-shadow: 0 8px 20px rgba(77, 56, 25, 0.12);
}

.kh-btn--primary {
	background: linear-gradient(135deg, var(--k-orange, #f08a24) 0%, #ff9f40 100%);
}

.kh-btn:hover {
	transform: translateY(-2px);
	opacity: 0.95;
}

.kh-card {
	border-radius: 18px;
	border-color: var(--k-border-soft);
	box-shadow: 0 12px 28px rgba(93, 61, 0, 0.08);
	transition: all 0.3s;
}

.kh-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 34px rgba(93, 61, 0, 0.12);
}

.kh-points li {
	position: relative;
	padding-left: 1.2rem;
}

.kh-points li::before {
	content: "";
	position: absolute;
	top: 0.65rem;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--k-orange);
}

.kh-steps li {
	border-color: var(--k-border-soft);
	box-shadow: 0 8px 18px rgba(93, 61, 0, 0.06);
}

.kuritaya-trial-cta {
	position: relative;
	overflow: hidden;
}

.kuritaya-trial-cta::after {
	content: "";
	position: absolute;
	right: -110px;
	top: -80px;
	width: 280px;
	height: 280px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.28);
	pointer-events: none;
}

.kp-page__body {
	background: var(--k-bg-soft);
}

.k-archive__lead {
	color: #6b5b40;
}

.k-card__more,
.k-related-list a,
.k-single__cta a {
	color: var(--k-orange-deep);
}

.k-single__related {
	border-color: var(--k-border-soft);
	box-shadow: 0 10px 20px rgba(93, 61, 0, 0.05);
}

.k-single__cta {
	box-shadow: 0 14px 24px rgba(93, 61, 0, 0.08);
}

.kh-post-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin-top: 14px;
}

.kh-post-card a {
	display: block;
	padding: 14px;
	background: #fff;
	border: 1px solid var(--k-border-soft);
	border-radius: 12px;
	box-shadow: 0 8px 20px rgba(93, 61, 0, 0.06);
}

.kh-post-card img {
	width: 100%;
	height: 170px;
	object-fit: cover;
	border-radius: 8px;
}

.kh-post-card__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 8px;
	font-size: 0.78rem;
	color: #7d6a52;
}

.kh-post-card__cat {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	color: #fff;
	background: var(--k-orange);
}

.kh-post-card h3 {
	margin-top: 8px;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--k-brown);
}

/* Final production polish */
.kuritaya-home {
	color: #403220;
}

.kh-hero h1,
.kh-section__title h1,
.kh-section__title h2,
.kh-section__header h1,
.kh-section__header h2,
.kh-card h3,
.kp-page__hero h1,
.kp-page__body h2,
.k-single__article .entry-header h1 {
	font-weight: 800;
	letter-spacing: 0.01em;
}

.kh-hero p,
.kh-section__lead,
.kh-section__header > p:not(.kh-section__eyebrow),
.kh-card p,
.k-archive__lead,
.k-single__article .entry-content p,
.k-single__cta p {
	line-height: 1.9;
}

.kh-final-cta .kh-section__lead,
.kh-final-cta .kh-section__header > p:not(.kh-section__eyebrow) {
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

.kp-page__body .inner02 {
	background: #fff;
	padding: 38px;
	border-radius: 16px;
	border: 1px solid var(--k-border-soft);
	box-shadow: 0 12px 26px rgba(93, 61, 0, 0.06);
}

.kp-page__body ul,
.kp-page__body ol {
	margin: 12px 0 18px 0;
	padding-left: 1.3rem;
}

.kp-page__body li {
	margin-top: 6px;
	line-height: 1.85;
}

.k-archive__cards .k-card {
	width: 31.8%;
	margin: 0 0.7% 20px 0.7%;
}

.k-archive__cards .k-card .post-basic--card img {
	border-radius: 12px;
}

.k-archive__cards .k-card .post-content {
	padding-top: 10px;
}

.k-archive__cards .k-card .post-content--title {
	line-height: 1.55;
}

.k-archive__cards .k-card .post-content--description {
	line-height: 1.8;
}

.k-single__article {
	padding: 32px;
	background: #fff;
	border: 1px solid var(--k-border-soft);
	border-radius: 16px;
	box-shadow: 0 12px 24px rgba(93, 61, 0, 0.06);
}

.k-single__article .entry-content h2 {
	margin-top: 32px;
	margin-bottom: 12px;
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--k-brown);
}

.k-single__article .entry-content h3 {
	margin-top: 22px;
	margin-bottom: 8px;
	font-size: 1.18rem;
	font-weight: 700;
	color: var(--k-brown);
}

@media (max-width: 1024px) {
	.k-archive__cards .k-card {
		width: 48.2%;
	}
}

@media (max-width: 768px) {
	.kh-hero p,
	.kh-section__header p,
	.kh-card p,
	.k-archive__lead,
	.k-single__article .entry-content p,
	.k-single__cta p {
		line-height: 1.75;
	}

	.kp-page__body .inner02 {
		padding: 22px;
		border-radius: 12px;
	}

	.k-archive__cards .k-card {
		width: 100%;
		margin: 0 0 18px 0;
	}

	.k-single__article {
		padding: 20px;
		border-radius: 12px;
	}
}

/* Logo sizing override */
#header .header-container--title {
	margin: 0;
}

#header .header-container--title a img {
	width: 40px;
	height: auto;
}

#footer .ft-logo {
	width: 40px;
	height: auto;
	filter: none;
}

/* Gradient footer redesign */
body #footer.kh-footer,
body:not(.home) #footer.kh-footer {
	margin-top: 0;
	padding: 120px 0;
	background: linear-gradient(125deg, #fff4e5 0%, #ffe4c1 40%, #f6ffe9 100%);
}

.kh-footer__inner {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 72px;
	padding-bottom: 56px;
}

.kh-footer__brand {
	max-width: 420px;
	padding: 8px 32px 8px 0;
}

.kh-footer__name {
	margin-top: 24px;
	font-size: 1.25rem;
	font-weight: 800;
	color: #5d3d00;
}

.kh-footer__desc {
	margin-top: 16px;
	font-size: 0.9rem;
	line-height: 1.8;
	color: #6b5b40;
}

.kh-footer__nav {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px 32px;
	width: 100%;
	max-width: 820px;
	padding: 8px 0;
}

.kh-footer__nav > div {
	padding: 12px 20px;
}

.kh-footer__nav h2 {
	margin-bottom: 20px;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: #f08a24;
}

.kh-footer__nav li + li {
	margin-top: 12px;
}

.kh-footer__nav a {
	font-size: 0.88rem;
	color: #5d3d00;
	transition: all 0.2s;
}

.kh-footer__nav a:hover {
	color: #f08a24;
	opacity: 1;
}

.kh-footer__bottom {
	margin-top: 0;
	padding: 48px 0 0;
	border-top: 1px solid rgba(93, 61, 0, 0.14);
}

.kh-footer__bottom p {
	margin: 0;
	padding: 8px 0;
	font-size: 0.74rem;
	color: #8a7355;
	text-align: center;
}

/* Orange unified palette */
.kuritaya-home,
.kuritaya-sub,
.kp-page,
.k-archive,
.k-single {
	--k-orange: #f08a24;
	--k-orange-deep: #d86f0d;
	--k-orange-soft: #fff1df;
	--k-brown: #5d3d00;
	--k-border-soft: #f2dcc2;
}

.kuritaya-home {
	background: radial-gradient(circle at 8% 6%, rgba(255, 198, 132, 0.22) 0%, rgba(255, 198, 132, 0) 38%),
		radial-gradient(circle at 92% 16%, rgba(255, 170, 92, 0.18) 0%, rgba(255, 170, 92, 0) 35%);
}

.kh-section--teal,
.kh-section--teal-soft {
	background: linear-gradient(180deg, #fff4e6 0%, #fff8ef 100%);
}

.kh-section--orange-band::before {
	background: rgba(243, 130, 24, 0.2);
}

.kh-section--orange-band::after {
	background: rgba(255, 199, 139, 0.34);
}

.kh-post-card__cat {
	background: var(--k-orange-deep);
}

@media (max-width: 1024px) {
	body #footer.kh-footer,
	body:not(.home) #footer.kh-footer {
		padding: 120px 0;
	}

	.kh-footer__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 56px;
		padding-bottom: 48px;
	}

	.kh-footer__brand {
		padding: 0;
	}

	.kh-footer__nav {
		max-width: none;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px 32px;
	}

	.kh-footer__nav > div {
		padding: 8px 0;
	}
}

@media (max-width: 768px) {
	body #footer.kh-footer,
	body:not(.home) #footer.kh-footer {
		margin-top: 0;
		padding: 120px 0;
	}

	.kh-footer__inner {
		gap: 48px;
		padding-bottom: 40px;
	}

	.kh-footer__nav {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.kh-footer__nav > div {
		padding: 12px 0;
	}

	.kh-footer__bottom {
		padding-top: 40px;
	}

	.kh-footer__name {
		font-size: 1.05rem;
	}
}

/* Header redesign */
#header {
	width: 100%;
	padding: 10px 12px 0;
	background: transparent;
}

#header .header-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 10px 18px;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

#header .header-container nav > ul {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}

#header .header-container nav > ul > li > a {
	padding: 4px 6px;
	font-size: 0.76rem;
	font-weight: 700;
	color: #3f3f3f;
}

#header .header-container > a {
	position: static;
	width: auto;
}

.kh-header-contact {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.2;
}

.kh-header-contact__tel {
	font-size: 1.5rem;
	font-weight: 800;
	color: #f08a24;
}

.kh-header-contact__time {
	font-size: 0.68rem;
	color: #666;
}

.kh-header-trial {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 128px;
	padding: 10px 12px;
	border-radius: 999px;
	background: linear-gradient(135deg, #ff9f40 0%, #f08a24 100%);
	color: #fff !important;
	font-size: 0.82rem;
	font-weight: 800;
	text-align: center;
}

@media (max-width: 1200px) {
	#header .header-container nav > ul > li > a {
		font-size: 0.7rem;
	}

	.kh-header-contact__tel {
		font-size: 1.2rem;
	}
}

@media (max-width: 1024px) {
	.kh-header-contact,
	.kh-header-trial,
	#header .header-container nav {
		display: none;
	}

	#header .header-container {
		padding: 12px 14px;
	}
}

/* Creative hero slider */
.kh-hero--has-video .kh-hero__video {
	display: block;
}

.kh-hero__video:not(:has(video, iframe)) {
	display: none;
}

.kh-hero {
	padding: 0;
	background: linear-gradient(135deg, #f08a24 0%, #ff9f40 55%, #f59a2e 100%);
}

.kh-hero.kh-hero--has-video {
	background: #3d2810;
}

.kh-hero__inner {
	min-height: 620px;
	padding: 70px 0 54px;
}

.kh-hero-slider {
	position: relative;
	min-height: 500px;
}

.kh-hero-slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 38px;
	opacity: 0;
	animation: khHeroFade 18s infinite;
}

.kh-hero-slide--2 {
	animation-delay: 6s;
}

.kh-hero-slide--3 {
	animation-delay: 12s;
}

.kh-hero-slide__bg-text {
	position: absolute;
	top: 20px;
	left: 6px;
	font-size: clamp(2.1rem, 7.8vw, 6.5rem);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: 0.07em;
	color: rgba(255, 255, 255, 0.58);
	pointer-events: none;
}

.kh-hero-slide__content {
	position: relative;
	z-index: 2;
	max-width: 560px;
	padding-top: 78px;
}

.kh-hero-slide__content h2 {
	margin-top: 14px;
	font-size: 2.2rem;
	line-height: 1.35;
	color: #4f3207;
	font-weight: 800;
}

.kh-hero-slide__visual {
	position: relative;
	width: min(44vw, 560px);
	aspect-ratio: 10 / 9;
	border-radius: 54% 46% 50% 50% / 42% 54% 46% 58%;
	overflow: hidden;
	box-shadow: 0 16px 28px rgba(67, 40, 5, 0.18);
	z-index: 2;
}

.kh-hero-slide__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@keyframes khHeroFade {
	0%,
	30% {
		opacity: 1;
	}
	33.33%,
	100% {
		opacity: 0;
	}
}

@media (max-width: 1024px) {
	.kh-hero__inner {
		min-height: 560px;
	}

	.kh-hero-slide {
		gap: 20px;
	}

	.kh-hero-slide__content {
		max-width: 500px;
		padding-top: 58px;
	}

	.kh-hero-slide__content h1,
	.kh-hero-slide__content h2 {
		font-size: 1.9rem;
	}
}

@media (max-width: 768px) {
	.kh-hero__inner {
		padding: 40px 0 32px;
		min-height: auto;
	}

	.kh-hero-slider {
		min-height: 520px;
	}

	.kh-hero-slide {
		flex-direction: column-reverse;
		align-items: flex-start;
		justify-content: flex-end;
	}

	.kh-hero-slide__bg-text {
		top: 8px;
		left: 0;
		font-size: 2.2rem;
		line-height: 1.05;
	}

	.kh-hero-slide__visual {
		width: 92%;
		max-width: 430px;
		margin: 0 auto;
	}

	.kh-hero-slide__content {
		padding-top: 0;
	}

	.kh-hero-slide__content h1,
	.kh-hero-slide__content h2 {
		font-size: 1.6rem;
	}
}

/* Stable hero: copy over video or gradient */
.kh-hero-main {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	min-height: 480px;
}

.kh-hero--has-video .kh-hero-main {
	min-height: auto;
}

.kh-hero::after {
	content: none;
}

.kh-hero-main__bg-text {
	position: absolute;
	top: 20px;
	left: 6px;
	right: 6px;
	font-size: clamp(2.1rem, 7.8vw, 6.5rem);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: 0.07em;
	color: rgba(255, 255, 255, 0.14);
	pointer-events: none;
	z-index: 0;
	opacity: 0;
	--bloom-opacity: 1;
	--text-x: 16px;
	--text-y: 8px;
	--stage-delay: calc(var(--hero-stage-3-delay) + var(--hero-stage-3-stagger) * 0);
	animation: khHeroTextReveal var(--hero-stage-3-duration) var(--hero-ease-smooth) var(--stage-delay) forwards;
}

.kh-hero-main__copy {
	position: relative;
	z-index: 2;
	max-width: 620px;
	padding-top: 64px;
}

.kh-hero-main__copy .kh-kicker,
.kh-hero-main__copy h1,
.kh-hero-main__copy > p,
.kh-hero-main__copy .kh-hero__actions {
	opacity: 0;
	--text-x: 22px;
	--text-y: 5px;
	animation: khHeroTextReveal var(--hero-stage-3-duration) var(--hero-ease-smooth) var(--stage-delay, var(--hero-stage-3-delay)) forwards;
}

.kh-hero-main__copy .kh-kicker {
	--stage-delay: calc(var(--hero-stage-3-delay) + var(--hero-stage-3-stagger) * 1);
	--text-x: 20px;
}

.kh-hero-main__copy h1 {
	--stage-delay: calc(var(--hero-stage-3-delay) + var(--hero-stage-3-stagger) * 2);
	--text-x: 26px;
	--text-y: 6px;
}

.kh-hero-main__copy > p {
	--stage-delay: calc(var(--hero-stage-3-delay) + var(--hero-stage-3-stagger) * 3);
	--text-x: 18px;
	--text-y: 4px;
}

.kh-hero-main__copy .kh-hero__actions {
	--stage-delay: calc(var(--hero-stage-3-delay) + var(--hero-stage-3-stagger) * 4);
	--text-x: 16px;
	--text-y: 4px;
}

.kh-hero-main__visual {
	position: relative;
	width: min(44vw, 560px);
	aspect-ratio: 10 / 9;
	border-radius: 54% 46% 50% 50% / 42% 54% 46% 58%;
	overflow: hidden;
	box-shadow:
		0 16px 28px rgba(67, 40, 5, 0.18),
		0 0 0 1px rgba(255, 255, 255, 0.35);
	z-index: 2;
	background: #f3d9b5;
	opacity: 0;
	transform: scale(0.92);
	transform-origin: 50% 50%;
	animation: khHeroCoreBloom var(--hero-stage-1-duration) var(--hero-ease-smooth) var(--hero-stage-1-delay) forwards;
}

.kh-hero--has-video .kh-hero-main__visual {
	box-shadow:
		0 20px 40px rgba(67, 40, 5, 0.28),
		0 0 0 2px rgba(255, 255, 255, 0.55),
		inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

.kh-hero--has-video .kh-hero__accent {
	box-shadow:
		0 16px 28px rgba(67, 40, 5, 0.22),
		0 0 0 2px rgba(255, 255, 255, 0.45);
}

.kh-hero-main__visual-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	will-change: opacity, transform;
	transform: scale(1.01);
	animation: khVisualFade var(--hero-slide-cycle) infinite ease-in-out;
	animation-delay: var(--hero-slide-start);
}

.kh-hero-main__visual-slide--2 {
	animation-delay: calc(var(--hero-slide-start) + 3s);
}

.kh-hero-main__visual-slide--3 {
	animation-delay: calc(var(--hero-slide-start) + 6s);
}

.kh-hero-main__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@keyframes khVisualFade {
	0% {
		opacity: 0;
		transform: scale(1.02);
	}
	8%,
	30% {
		opacity: 1;
		transform: scale(1);
	}
	40%,
	100% {
		opacity: 0;
		transform: scale(1.02);
	}
}

@media (max-width: 1024px) {
	.kh-hero-main {
		min-height: 440px;
	}

	.kh-hero-main__copy {
		max-width: 500px;
		padding-top: 52px;
	}

	.kh-hero--has-video .kh-hero-main__copy {
		max-width: 100%;
		padding-top: 0;
	}
}

@media (max-width: 768px) {
	.kh-hero-main {
		min-height: auto;
		padding: 24px 0 36px;
	}

	.kh-hero-main__bg-text {
		top: 8px;
		left: 0;
		font-size: 2.2rem;
		line-height: 1.05;
		z-index: 3;
		--text-x: 0;
		--text-y: 14px;
	}

	.kh-hero--has-video .kh-hero-main__bg-text {
		bottom: calc(100% + 12px);
		font-size: clamp(1.4rem, 6vw, 2rem);
		line-height: 1.05;
		white-space: normal;
	}

	.kh-hero--has-video .kh-hero__inner {
		min-height: 460px;
		padding-bottom: 32px;
	}

	.kh-hero-main__copy {
		position: relative;
		z-index: 2;
		padding-top: 0;
		max-width: none;
	}

	.kh-hero-main__copy .kh-kicker,
	.kh-hero-main__copy h1,
	.kh-hero-main__copy > p,
	.kh-hero-main__copy .kh-hero__actions {
		--text-x: 0;
		--text-y: 16px;
	}

	.kh-hero-main__copy h1 {
		--text-y: 18px;
	}
}

/* Subpages: shared layout aligned with top page */
.kuritaya-sub .kh-section,
.kuritaya-sub .kp-page__hero {
	position: relative;
	overflow: hidden;
}

.kuritaya-sub .kp-page__hero .kh-section__header,
.kuritaya-sub .k-archive__hero .kh-section__header,
.kuritaya-sub .k-single__hero .kh-section__header {
	position: relative;
	z-index: 2;
}

.kp-page__content {
	max-width: 840px;
	margin: 0 auto;
	padding: 48px 56px;
	background: #fff;
	border-radius: 32px;
	box-shadow: 0 20px 48px rgba(93, 61, 0, 0.08);
}

.k-archive__hero,
.k-single__hero {
	padding: 56px 0 72px;
}

.k-archive__hero .kh-section__header,
.k-single__hero .kh-section__header {
	margin-bottom: 28px;
}

.k-archive__cards {
	margin-top: 28px;
}

.k-archive__cards.kh-post-cards {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.k-archive__empty {
	margin-top: 20px;
	color: #6b5b40;
}

.breadcrumbs {
	padding: 14px 0 6px;
	font-size: 0.82rem;
	line-height: 1.6;
	color: #8a7358;
}

.breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.breadcrumbs__item {
	display: inline-flex;
	align-items: center;
}

.breadcrumbs__item + .breadcrumbs__item::before {
	content: ">";
	margin: 0 0.35em;
	color: #c4a57a;
}

.breadcrumbs a {
	color: #5d3d00;
	text-decoration: none;
}

.breadcrumbs a:hover {
	color: var(--k-orange, #f08a24);
}

.breadcrumbs__item--current span {
	color: #6b5b40;
}

.breadcrumbs span {
	color: inherit;
}

.kh-term-filter {
	margin: 0 0 24px;
	position: relative;
	z-index: 2;
}

.kh-term-filter__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kh-term-filter__link {
	display: inline-block;
	padding: 8px 16px;
	border: 1px solid var(--k-border-soft, #f2dcc2);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.88);
	color: #5d3d00;
	font-size: 0.84rem;
	font-weight: 700;
	text-decoration: none;
	transition: all 0.25s ease;
}

.kh-term-filter__link:hover,
.kh-term-filter__link.is-active {
	border-color: var(--k-orange, #f08a24);
	background: var(--k-orange, #f08a24);
	color: #fff;
}

.kh-pagination {
	margin-top: 32px;
	position: relative;
	z-index: 2;
}

.kh-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	margin: 0 4px 8px;
	padding: 0 12px;
	border: 1px solid var(--k-border-soft, #f2dcc2);
	border-radius: 999px;
	background: #fff;
	color: #5d3d00;
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
	transition: all 0.25s ease;
}

.kh-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kh-pagination li {
	margin: 0;
}

.kh-pagination .page-numbers.current,
.kh-pagination .page-numbers:hover {
	border-color: var(--k-orange, #f08a24);
	background: var(--k-orange, #f08a24);
	color: #fff;
}

.k-single .k-single__article {
	background: #fff;
	border-radius: 32px;
	padding: 40px 48px;
	box-shadow: 0 20px 48px rgba(93, 61, 0, 0.08);
}

.k-single__entry-header {
	margin-bottom: 24px;
}

.k-single__thumbnail {
	position: relative;
	overflow: hidden;
	margin-bottom: 18px;
	border-radius: 24px;
	background: #ffe0be;
}

.k-single__thumbnail img {
	display: block;
	width: 100%;
	height: auto;
}

.k-single__thumbnail--school {
	border-radius: 54% 46% 50% 50% / 42% 54% 46% 58%;
	max-width: 420px;
}

.k-single__thumbnail--school .kh-school-card__area {
	position: absolute;
	left: 16px;
	bottom: 16px;
}

.k-single__thumbnail--instructor {
	max-width: 320px;
	border-radius: 24px;
}

.k-single__entry-header .k-single__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.k-single__entry-header .k-single__meta time {
	color: #9c7f59;
	font-size: 0.85rem;
}

.k-single__related h2 {
	margin-bottom: 18px;
	font-size: 1.35rem;
	color: #5d3d00;
}

.k-single__related--classes h2 {
	color: #2a2a2a;
}

.k-single__related-lead {
	max-width: 640px;
	margin: -8px 0 20px;
	font-size: 0.92rem;
	line-height: 1.7;
	color: #666;
}

.k-single__related .kh-class-grid,
.k-single__related .kh-school-grid,
.k-single__related .kh-post-cards {
	margin-top: 0;
}

.k-single__cta {
	margin-top: 28px;
}

.k-single__cta .kh-hero__actions {
	justify-content: flex-start;
	margin-top: 18px;
}

.kp-page__comments {
	max-width: 840px;
	margin: 0 auto 56px;
	padding: 0 20px;
}

@media (max-width: 1024px) {
	.k-archive__cards.kh-post-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kp-page__content,
	.k-single .k-single__article {
		padding: 32px 28px;
		border-radius: 24px;
	}
}

@media (max-width: 768px) {
	.k-archive__hero,
	.k-single__hero {
		padding: 40px 0 56px;
	}

	.k-archive__cards.kh-post-cards {
		grid-template-columns: 1fr;
	}

	.kp-page__content,
	.k-single .k-single__article {
		padding: 24px 20px;
	}

	.k-single__cta .kh-hero__actions {
		flex-direction: column;
		align-items: stretch;
	}
}

.kh-school-detail {
	display: grid;
	gap: 24px;
}

.kh-school-location {
	padding: 20px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 10px 24px rgba(67, 40, 5, 0.1);
}

.kh-school-location__title {
	margin: 0 0 12px;
	font-size: 1.05rem;
	font-weight: 800;
	color: #5d3d00;
}

.kh-school-location__list,
.kh-school-fees__list {
	margin: 0;
}

.kh-school-location__item,
.kh-school-fees__row {
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid rgba(93, 61, 0, 0.08);
}

.kh-school-location__item:last-child,
.kh-school-fees__row:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.kh-school-location__item dt,
.kh-school-fees__row dt {
	margin: 0;
	font-size: 0.82rem;
	font-weight: 700;
	color: #9c7f59;
}

.kh-school-location__item dd,
.kh-school-fees__row dd {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.7;
	color: #333;
}

.kh-school-note {
	margin: 0;
	font-size: 0.92rem;
	font-weight: 700;
	color: #e07a20;
}

.kh-school-fees__title,
.kh-school-flow__title {
	margin: 0 0 12px;
	font-size: 1.15rem;
	font-weight: 800;
	color: #5d3d00;
}

.kh-school-fees__note {
	margin: 12px 0 0;
	font-size: 0.85rem;
	line-height: 1.7;
	color: #666;
}

.kh-school-flow__list {
	margin: 0;
	padding-left: 1.4em;
	list-style: decimal;
	color: #333;
	line-height: 1.7;
}

.kh-school-flow__list li {
	display: list-item;
	list-style: decimal;
}

.kh-school-flow__list li + li {
	margin-top: 8px;
}

.kh-school-cta {
	display: grid;
	gap: 16px;
}

.kh-school-cta__promo {
	margin: 0;
	font-size: 1rem;
	font-weight: 800;
	color: #e07a20;
	line-height: 1.6;
}

.kh-school-cta__contact {
	font-size: 0.95rem;
	line-height: 1.7;
	color: #333;
}

.kh-school-cta__contact p {
	margin: 0 0 8px;
}

.kh-school-cta__contact a {
	color: #2f8f83;
	font-weight: 700;
}

.kh-school-line-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 999px;
	background: #06c755;
	color: #fff !important;
	text-decoration: none;
	font-weight: 700;
}

.kh-school-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.kh-school-photo {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 12px 28px rgba(67, 40, 5, 0.14);
}

.kh-school-photo img {
	display: block;
	width: 100%;
	height: auto;
}

.k-single__entry-header--school h1 {
	margin-top: 8px;
}

.entry-content--school > .kh-school-detail:first-child {
	margin-top: 8px;
}

.kh-school-calendar {
	margin-top: 40px;
	padding: 32px 28px;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 16px 36px rgba(93, 61, 0, 0.08);
}

.kh-school-calendar .kh-section__header {
	margin-bottom: 20px;
}

.kh-school-calendar__frame {
	position: relative;
	overflow: hidden;
	width: 100%;
	border-radius: 16px;
	background: #a6d4a1;
}

.kh-school-calendar__frame iframe {
	display: block;
	width: 100%;
	height: 600px;
	border: 0;
}

@media (max-width: 768px) {
	.kh-school-location__item,
	.kh-school-fees__row {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.kh-school-cta__actions {
		flex-direction: column;
	}

	.kh-school-cta__actions .kh-btn {
		width: 100%;
		justify-content: center;
	}

	.kh-school-calendar {
		margin-top: 28px;
		padding: 24px 16px;
	}

	.kh-school-calendar__frame iframe {
		height: 480px;
	}
}

/* --------------------------------------------------------------------------
   Class type LP (Athlete / Junior)
   -------------------------------------------------------------------------- */

.kh-class-lp-page .kh-section:not(.kh-final-cta-section):not(.kh-class-lp-schools),
.kh-class-lp-page .kp-page__hero {
	padding-top: 0;
}

.kh-class-lp-page .kh-class-lp-schools {
	padding-top: 70px;
	padding-bottom: 70px;
}

.kh-class-lp-page .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.kp-page--class-lp {
	--kh-class-lp-content-width: 980px;
}

.kp-page--class-lp .kh-class-lp-hero__overlay > .inner01,
.kp-page--class-lp .kh-class-lp-body > .inner01,
.kp-page--class-lp .kh-class-lp-schools > .inner01,
.kp-page--class-lp .kh-final-cta-section > .inner01,
.kp-page--class-lp .k-archive__hero > .inner01 {
	max-width: var(--kh-class-lp-content-width);
}

.kp-page--class-lp .kh-class-lp,
.kp-page--class-lp .kh-class-lp__section,
.kp-page--class-lp .kh-class-lp__section--split,
.kp-page--class-lp .kh-class-lp-schools__grid,
.kp-page--class-lp .kh-link-more {
	width: 100%;
}

.kp-page--class-lp .kh-class-lp__intro,
.kp-page--class-lp .kh-class-lp__lead,
.kp-page--class-lp .kh-class-lp__figure,
.kp-page--class-lp .kh-class-lp__figure--performance,
.kp-page--class-lp .kh-class-lp__figure--collaboration,
.kp-page--class-lp .kh-class-lp__figure--training-cycle,
.kp-page--class-lp .kh-class-lp__figure--strengths,
.kp-page--class-lp .kh-class-lp__recommend,
.kp-page--class-lp .kh-class-lp__venues,
.kp-page--class-lp .kh-class-lp__details-info,
.kp-page--class-lp .kh-class-lp__meta,
.kp-page--class-lp .kh-class-lp__slogan,
.kp-page--class-lp .kh-class-lp__prose,
.kp-page--class-lp .kh-class-lp__prose--left,
.kp-page--class-lp .kh-class-lp__split,
.kp-page--class-lp .kh-class-lp__split--reverse,
.kp-page--class-lp .kh-class-lp__highlights--compact,
.kp-page--class-lp .kh-class-lp__training-blocks,
.kp-page--class-lp .kh-class-lp__voices,
.kp-page--class-lp .kh-class-lp-schools__empty,
.kp-page--class-lp .kh-class-lp__section .kh-class-lp__list {
	width: 100%;
	max-width: none;
}

.kp-page--class-lp .kh-class-lp-hero__title {
	width: 100%;
	max-width: none;
}

.kh-class-lp-hero {
	position: relative;
	min-height: 320px;
	overflow: hidden;
	background: #1a1a1a;
}

.kh-class-lp-hero__media img {
	display: block;
	width: 100%;
	height: min(52vw, 420px);
	object-fit: cover;
	object-position: center 35%;
}

.kh-class-lp-hero__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.5) 100%);
}

.kh-class-lp-hero__title {
	margin: 0;
	max-width: 900px;
	text-align: center;
	font-size: clamp(1.35rem, 3.2vw, 2.1rem);
	font-weight: 800;
	line-height: 1.55;
	color: #fff;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}

.kh-class-lp-body {
	padding: 56px 0 72px;
	background: #fff;
}

.kh-class-lp {
	display: grid;
	gap: 56px;
	color: #333;
	line-height: 1.85;
}

.kh-class-lp__intro {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
	font-size: 0.98rem;
}

.kh-class-lp__intro p {
	margin: 0 0 1em;
}

.kh-class-lp__intro p:last-child {
	margin-bottom: 0;
}

.kh-class-lp__section {
	display: grid;
	gap: 20px;
	justify-items: center;
	text-align: center;
}

.kh-class-lp__title {
	margin: 0;
	font-size: clamp(1.2rem, 2.4vw, 1.55rem);
	font-weight: 800;
	color: #2a2a2a;
	letter-spacing: 0.04em;
}

.kh-class-lp__lead {
	max-width: 640px;
	margin: 0;
	font-size: 0.95rem;
	color: #555;
}

.kh-class-lp__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
	text-align: left;
}

.kh-class-lp__list li {
	position: relative;
	padding-left: 1.1em;
}

.kh-class-lp__list li::before {
	content: "・";
	position: absolute;
	left: 0;
	color: #2f8f83;
	font-weight: 700;
}

.kh-class-lp__section .kh-class-lp__list {
	width: min(100%, 560px);
}

.kh-class-lp__section--visual {
	gap: 16px;
}

.kh-class-lp__figure {
	margin: 0;
	width: min(100%, 760px);
}

.kh-class-lp__figure img {
	display: block;
	width: 100%;
	height: auto;
}

.kh-class-lp__figure--performance {
	max-width: 520px;
}

.kh-class-lp__figure--collaboration {
	max-width: 800px;
}

.kh-class-lp__figure--training-cycle {
	max-width: 680px;
}

.kh-class-lp__figure--strengths {
	max-width: 480px;
}

/* Recommend box */
.kh-class-lp__recommend {
	width: min(100%, 560px);
	padding: 24px 28px;
	background: #f3f3f3;
	border-radius: 8px;
}

.kh-class-lp__title--underline {
	padding-bottom: 8px;
	border-bottom: 2px solid #2a2a2a;
}

.kh-class-lp__section--details {
	gap: 28px;
}

/* Venue cards */
.kh-class-lp__venues {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	width: 100%;
	max-width: 760px;
}

.kh-class-lp__venue {
	padding: 24px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	text-align: left;
}

.kh-class-lp__venue-title {
	margin: 0 0 16px;
	font-size: 1.05rem;
	font-weight: 800;
	color: #2a2a2a;
}

.kh-class-lp__venue-list,
.kh-class-lp__details-list {
	margin: 0;
}

.kh-class-lp__venue-list > div {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 8px 12px;
	padding: 8px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.kh-class-lp__venue-list > div:last-child {
	border-bottom: 0;
}

.kh-class-lp__venue-list dt {
	margin: 0;
	font-size: 0.82rem;
	font-weight: 700;
	color: #888;
}

.kh-class-lp__venue-list dd {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.7;
	color: #333;
}

.kh-class-lp__details-info {
	width: 100%;
	max-width: 760px;
	text-align: center;
	font-size: 0.95rem;
	line-height: 1.9;
	color: #333;
}

.kh-class-lp__calendar-note {
	margin: 8px 0 16px;
	color: #8b3a2f;
}

.kh-class-lp__calendar-note a {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
}

.kh-class-lp__details-list > div {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 8px;
	padding: 2px 0;
}

.kh-class-lp__details-list dt {
	margin: 0;
	font-weight: 700;
	color: #333;
}

.kh-class-lp__details-list dt::after {
	content: " ";
}

.kh-class-lp__details-list dd {
	margin: 0;
}

.kh-class-lp__line-link {
	color: #06c755 !important;
	font-weight: 700;
	text-decoration: underline;
}

.kh-class-lp__meta {
	width: 100%;
	max-width: 760px;
	text-align: left;
	font-size: 0.92rem;
}

.kh-class-lp__meta p {
	margin: 0 0 12px;
}

.kh-class-lp__meta a {
	color: #2f8f83;
	font-weight: 700;
}

.kh-class-lp__cta-wrap {
	margin: 32px 0 0;
	text-align: center;
}

.kh-btn--athlete-lp {
	min-width: min(100%, 360px);
	padding: 16px 32px;
	background: #6b8f7a;
	color: #fff !important;
	text-decoration: none;
	font-size: 1rem;
}

.kh-btn--athlete-lp:hover {
	opacity: 0.88;
}

.kh-class-lp--junior .kh-class-lp__list li::before {
	color: #7fb06b;
}

.kh-class-lp__section--slogan {
	gap: 24px;
}

.kh-class-lp__slogan {
	width: min(100%, 720px);
	padding: 28px 32px;
	border-radius: 24px;
	background: linear-gradient(135deg, rgba(237, 247, 241, 0.95) 0%, rgba(255, 248, 235, 0.95) 100%);
	box-shadow: 0 12px 28px rgba(93, 61, 0, 0.06);
}

.kh-class-lp__slogan-line {
	margin: 0 0 12px;
	font-size: clamp(1rem, 2.2vw, 1.2rem);
	font-weight: 800;
	line-height: 1.7;
	color: #5d3d00;
}

.kh-class-lp__slogan-line:last-child {
	margin-bottom: 0;
	font-size: 0.96rem;
	font-weight: 700;
}

.kh-class-lp__prose {
	max-width: 760px;
	text-align: left;
	font-size: 0.95rem;
	line-height: 1.9;
	color: #433b2f;
}

.kh-class-lp__prose p {
	margin: 0 0 1em;
}

.kh-class-lp__prose p:last-child {
	margin-bottom: 0;
}

.kh-class-lp__prose--left {
	width: 100%;
	max-width: 760px;
}

.kh-class-lp__section--split {
	width: 100%;
}

.kh-class-lp__split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
	gap: 32px;
	align-items: center;
	width: 100%;
	max-width: 960px;
	text-align: left;
}

.kh-class-lp__split--reverse {
	grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
}

.kh-class-lp__split-text .kh-class-lp__title--left {
	text-align: left;
	justify-self: start;
}

.kh-class-lp__title--left {
	text-align: left;
}

.kh-class-lp__highlight {
	margin: 0 0 1em;
	padding: 12px 14px;
	border-radius: 10px;
	background: linear-gradient(90deg, rgba(255, 236, 170, 0.75) 0%, rgba(255, 248, 220, 0.35) 100%);
	font-weight: 700;
	color: #433b2f;
}

.kh-class-lp__note {
	margin: 12px 0 0;
	font-size: 0.82rem;
	color: #888;
}

.kh-class-lp__split-media .kh-class-lp__figure {
	margin: 0 auto;
}

.kh-class-lp__highlights {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.kh-class-lp__highlights li {
	padding: 10px 14px;
	border-radius: 10px;
	background: linear-gradient(90deg, rgba(255, 236, 170, 0.75) 0%, rgba(255, 248, 220, 0.35) 100%);
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.7;
	color: #433b2f;
}

.kh-class-lp__highlights--compact {
	max-width: 680px;
	width: 100%;
}

.kh-class-lp--athlete .kh-class-lp__list li::before {
	color: #6b8f7a;
}

.kh-class-lp__training-blocks {
	display: grid;
	gap: 24px;
	width: 100%;
	max-width: 860px;
}

.kh-class-lp__training-item {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 20px;
	padding: 20px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 12px 28px rgba(93, 61, 0, 0.07);
	text-align: left;
}

.kh-class-lp__training-item__media {
	border-radius: 16px;
	overflow: hidden;
}

.kh-class-lp__training-item__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 140px;
	object-fit: cover;
}

.kh-class-lp__training-item__title {
	margin: 0 0 8px;
	padding-bottom: 8px;
	border-bottom: 3px solid #f0d56a;
	font-size: 1.05rem;
	font-weight: 800;
	color: #5d3d00;
}

.kh-class-lp__training-item__text {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.85;
	color: #555;
}

.kh-class-lp__voices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	width: 100%;
	max-width: 860px;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.kh-class-lp__voices li {
	padding: 14px 16px;
	border-radius: 14px;
	background: #f7f7f4;
	font-size: 0.88rem;
	line-height: 1.65;
	color: #433b2f;
}

.kh-btn--junior-lp {
	min-width: min(100%, 360px);
	padding: 16px 32px;
	background: #7fb06b;
	color: #fff !important;
	text-decoration: none;
	font-size: 1rem;
}

.kh-btn--junior-lp:hover {
	opacity: 0.88;
}

@media (max-width: 768px) {
	.kp-page--class-lp .kh-class-lp-hero__overlay > .inner01,
	.kp-page--class-lp .kh-class-lp-body > .inner01,
	.kp-page--class-lp .kh-class-lp-schools > .inner01,
	.kp-page--class-lp .kh-final-cta-section > .inner01,
	.kp-page--class-lp .k-archive__hero > .inner01 {
		max-width: none;
	}

	.kh-class-lp-hero {
		min-height: 0;
	}

	.kh-class-lp-hero__media img {
		height: min(70vw, 320px);
	}

	.kh-class-lp-body {
		padding: 40px 0 56px;
	}

	.kh-class-lp {
		gap: 44px;
	}

	.kh-class-lp__figure--performance,
	.kh-class-lp__figure--collaboration,
	.kh-class-lp__figure--training-cycle,
	.kh-class-lp__figure--strengths {
		max-width: 100%;
	}

	.kh-class-lp__split,
	.kh-class-lp__split--reverse {
		grid-template-columns: 1fr;
	}

	.kh-class-lp__training-item {
		grid-template-columns: 1fr;
	}

	.kh-class-lp__voices {
		grid-template-columns: 1fr;
	}

	.kh-class-lp__venues {
		grid-template-columns: 1fr;
	}

	.kh-class-lp__details-list > div {
		flex-direction: column;
		align-items: center;
		gap: 2px;
	}
}

/* Contact / trial form pages */
.kp-page--contact .kp-contact,
.kp-page--trial .kp-contact {
	max-width: 960px;
	margin: 0 auto;
}

.kp-page--trial .kh-section--flow {
	padding-top: 48px;
	padding-bottom: 48px;
}

.kp-page--trial .kh-section--flow .kh-section__eyebrow {
	border: none;
	box-shadow: none;
	background: transparent;
}

.kp-page--trial .kp-page__body {
	padding-top: 48px;
	padding-bottom: 56px;
}

.kp-contact__intro {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.85fr);
	gap: 28px;
	align-items: start;
}

.kp-contact__guide,
.kp-contact__form-wrap {
	padding: 40px 44px;
	background: #fff;
	border-radius: 28px;
	box-shadow: 0 20px 48px rgba(93, 61, 0, 0.08);
}

.kp-contact__guide h2,
.kp-contact__form-wrap h2 {
	margin: 0 0 14px;
	padding-left: 12px;
	font-size: 1.35rem;
	border-left: 3px solid var(--k-orange, #f08a24);
	color: var(--k-brown, #5d3d00);
}

.kp-contact__guide h3 {
	margin: 22px 0 10px;
	font-size: 1.05rem;
	color: var(--k-brown, #5d3d00);
}

.kp-contact__guide p,
.kp-contact__guide li {
	color: #6b5b40;
	line-height: 1.75;
}

.kp-contact__checklist {
	margin: 0;
	padding-left: 1.2em;
	list-style: disc;
}

.kp-contact__checklist li {
	list-style: disc;
}

.kp-contact__checklist li + li {
	margin-top: 6px;
}

.kp-contact__note {
	margin-top: 18px;
	padding: 14px 16px;
	font-size: 0.92rem;
	background: var(--k-bg-soft, #fffaf3);
	border-left: 3px solid var(--k-orange, #f08a24);
	border-radius: 0 12px 12px 0;
}

.kp-contact__channels {
	display: grid;
	gap: 16px;
}

.kp-contact__channel {
	padding: 22px 20px;
	background: linear-gradient(145deg, #fffaf3 0%, #fff 100%);
	border: 1px solid var(--k-border-soft, #f2dcc2);
	border-radius: 20px;
}

.kp-contact__channel-label {
	margin: 0 0 8px;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--k-orange-deep, #d86f0d);
}

.kp-contact__channel-value {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 700;
}

.kp-contact__channel-value a:not(.kh-btn) {
	color: var(--k-brown, #5d3d00);
	text-decoration: none;
}

.kp-contact__channel-value a:not(.kh-btn):hover {
	color: var(--k-orange, #f08a24);
}

.kp-contact__channel-value .kh-btn {
	font-size: 0.92rem;
	padding: 12px 18px;
}

.kp-contact__channel-value .kh-btn:hover {
	color: #fff;
}

.kp-contact__channel-meta {
	margin: 10px 0 0;
	font-size: 0.85rem;
	color: #8a7358;
}

.kp-contact__form-wrap {
	margin-top: 28px;
}

.kp-contact__form-placeholder {
	padding: 18px 20px;
	background: #fff7ee;
	border: 1px dashed var(--k-border-soft, #f2dcc2);
	border-radius: 16px;
	color: #6b5b40;
}

.kp-contact__form-placeholder ol {
	margin: 10px 0 0;
	padding-left: 1.2em;
}

.kp-contact__form-placeholder li + li {
	margin-top: 6px;
}

.kp-contact__form-template {
	margin: 14px 0 0;
	padding: 16px;
	overflow-x: auto;
	font-size: 0.82rem;
	line-height: 1.6;
	color: #5d3d00;
	background: #fff;
	border: 1px solid var(--k-border-soft, #f2dcc2);
	border-radius: 12px;
	white-space: pre-wrap;
	word-break: break-word;
}

.kp-contact__form-unavailable {
	margin: 0;
	padding: 18px 20px;
	background: var(--k-bg-soft, #fffaf3);
	border-radius: 16px;
	color: #6b5b40;
	text-align: center;
}

/* Contact Form 7 */
.kp-contact__form .wpcf7 {
	max-width: 100%;
}

.kp-contact__form .wpcf7-form {
	display: grid;
	gap: 20px;
}

.kp-contact__form .wpcf7-form p {
	margin: 0;
}

.kp-contact__form .wpcf7-form label {
	display: block;
	margin-bottom: 6px;
	padding-left: 10px;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--k-brown, #5d3d00);
	border-left: 3px solid var(--k-orange, #f08a24);
}

.kp-contact__form .wpcf7-form .wpcf7-form-control-wrap {
	display: block;
	margin-top: 8px;
}

.kp-contact__form .wpcf7-form input[type="text"],
.kp-contact__form .wpcf7-form input[type="email"],
.kp-contact__form .wpcf7-form input[type="tel"],
.kp-contact__form .wpcf7-form input[type="url"],
.kp-contact__form .wpcf7-form input[type="number"],
.kp-contact__form .wpcf7-form input[type="date"],
.kp-contact__form .wpcf7-form textarea,
.kp-contact__form .wpcf7-form select {
	width: 100%;
	padding: 12px 14px;
	font-size: 1rem;
	color: #333;
	background: #fff;
	border: 1px solid var(--k-border-soft, #f2dcc2);
	border-radius: 12px;
	box-sizing: border-box;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.kp-contact__form .wpcf7-form select {
	appearance: none;
	padding-right: 40px;
	background-image: url("data:image/svg+xml;utf8,<svg fill='%238a7358' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 16px;
	cursor: pointer;
}

.kp-contact__form .wpcf7-form input:focus,
.kp-contact__form .wpcf7-form textarea:focus,
.kp-contact__form .wpcf7-form select:focus {
	border-color: var(--k-orange, #f08a24);
	outline: none;
	box-shadow: 0 0 0 3px rgba(240, 138, 36, 0.15);
}

.kp-contact__form .wpcf7-form textarea {
	min-height: 160px;
	resize: vertical;
}

.kp-contact__form .wpcf7-form input[type="file"] {
	padding: 0;
	border: none;
	background: transparent;
}

.kp-contact__form .wpcf7-form .wpcf7-list-item {
	margin: 0 1em 0 0;
}

.kp-contact__form .wpcf7-form .wpcf7-submit {
	display: inline-block;
	min-width: 220px;
	padding: 14px 28px;
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, var(--k-orange) 0%, #ff9f40 100%);
	border: none;
	border-radius: 999px;
	cursor: pointer;
	transition: opacity 0.2s, transform 0.2s;
}

.kp-contact__form .wpcf7-form .wpcf7-submit:hover {
	opacity: 0.88;
	transform: translateY(-1px);
}

.kp-contact__form .wpcf7-form p:has(.wpcf7-submit) {
	margin-top: 8px;
	text-align: center;
}

.kp-contact__form .wpcf7-spinner {
	display: none;
}

.kp-contact__form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 0.85rem;
	color: #c0392b;
}

.kp-contact__form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 14px 16px;
	border-radius: 12px;
	font-size: 0.92rem;
}

.kp-contact__form .wpcf7 form.invalid .wpcf7-response-output,
.kp-contact__form .wpcf7 form.unaccepted .wpcf7-response-output,
.kp-contact__form .wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #e8b4b0;
	background: #fff5f4;
	color: #8b3a32;
}

.kp-contact__form .wpcf7 form.sent .wpcf7-response-output {
	border-color: #b8ddb0;
	background: #f4fff1;
	color: #3d6b34;
}

@media (max-width: 768px) {
	.kp-contact__intro {
		grid-template-columns: 1fr;
	}

	.kp-contact__guide,
	.kp-contact__form-wrap {
		padding: 28px 22px;
		border-radius: 22px;
	}

	.kp-contact__form .wpcf7-form label {
		font-size: 0.88rem;
	}

	.kp-contact__form .wpcf7-form .wpcf7-submit {
		width: 100%;
	}
}

