:root {
	--ks-orange: #EA5414;
	--ks-orange-deep: #EA5414;
	--ks-brown: #4a2e1f;
	--ks-brown-soft: #7a4e35;
	--ks-muted: #a08070;
	--ks-cream: #fffaf3;
	--ks-cream-2: #fbf0e1;
	--ks-yellow: #fef9d7;
	--ks-peach: #ffe6d6;
	--ks-border: #e5ddd2;
	--ks-black: #1a1a1a;
	--ks-white: #ffffff;
	--ks-font-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	--ks-font-en: "Inter", "Noto Sans JP", sans-serif;
	--ks-container: 1200px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--ks-white);
	color: var(--ks-brown);
	font-family: var(--ks-font-jp);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.8;
	word-break: keep-all;
	overflow-wrap: anywhere;
}

body.is-nav-open {
	overflow: hidden;
}

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

img {
	display: block;
	max-width: 100%;
	height: auto;
}

br.ks-sp-break {
	display: none;
}

button,
input,
select,
textarea {
	font: inherit;
	letter-spacing: inherit;
}

button {
	border: 0;
	cursor: pointer;
}

.ks-container,
.ks-recruit-container {
	width: min(var(--ks-container), calc(100% - 96px));
	margin-inline: auto;
}

.ks-site {
	background: var(--ks-white);
	overflow: hidden;
}

.ks-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--ks-white);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.admin-bar .ks-header {
	top: 32px;
}

.ks-header__inner {
	display: flex;
	align-items: center;
	gap: 32px;
	width: min(var(--ks-container), calc(100% - 80px));
	height: 84px;
	margin-inline: auto;
}

.ks-header__logo {
	flex: 0 0 64px;
	margin: 0;
}

.ks-header__logo a {
	display: block;
}

.ks-header__logo img {
	width: 60px;
}

.ks-header__nav {
	flex: 1;
	height: 100%;
	border-inline: 1px solid #f0f0f0;
}

.ks-header__list {
	display: flex;
	justify-content: center;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ks-header__item {
	width: 108px;
	border-right: 1px solid #f0f0f0;
}

.ks-header__item.is-mobile-only {
	display: none;
}

.ks-header__item:first-child {
	border-left: 0;
}

.ks-header__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 100%;
	padding: 8px 10px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
}

.ks-header__icon {
	width: 26px;
	height: 26px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

.ks-header__item--about .ks-header__link {
	color: var(--ks-orange-deep);
}

.ks-header__item--service .ks-header__link {
	color: #0083ba;
}

.ks-header__item--facilities .ks-header__link {
	color: #30bc36;
}

.ks-header__item--blog .ks-header__link {
	color: #9c27b0;
}

.ks-header__item--recruit .ks-header__link {
	color: var(--ks-orange);
}

.ks-header__item--contact .ks-header__link {
	color: var(--ks-orange);
	background: rgba(255, 152, 0, 0.08);
}

.ks-header__actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ks-header__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 10px 22px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.4;
	white-space: nowrap;
}

.ks-header__button--outline {
	border: 1px solid var(--ks-orange);
	color: var(--ks-orange);
}

.ks-header__button--fill {
	background: var(--ks-orange);
	color: var(--ks-white);
}

.ks-header__toggle {
	display: none;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	padding: 13px 12px;
	background: var(--ks-orange);
	border-radius: 999px;
}

.ks-header__toggle:focus {
	outline: none;
}


.ks-header__toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--ks-white);
	border-radius: 999px;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.is-nav-open .ks-header__toggle span:nth-child(1) {
	transform: translateY(9px) rotate(45deg);
}

.is-nav-open .ks-header__toggle span:nth-child(2) {
	opacity: 0;
}

.is-nav-open .ks-header__toggle span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

#loading {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	background: var(--ks-cream);
	transition: opacity 0.6s ease, visibility 0.6s ease;
}

#loading.loaded {
	visibility: hidden;
	opacity: 0;
}

#loading_logo img {
	width: 96px;
}

.ks-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 260px;
	min-height: 826px;
	padding: 36px 0 36px 36px;
	background: var(--ks-cream);
}

.ks-hero__image {
	position: relative;
	align-self: start;
	height: 754px;
	overflow: hidden;
	border-radius: 20px;
}

.ks-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.ks-hero__image::after {
	content: "";
	position: absolute;
	right: -160px;
	bottom: -180px;
	width: 440px;
	height: 440px;
	background: #ffd7ba;
	border-radius: 50%;
	opacity: 0.9;
}

.ks-hero__badge {
	position: absolute;
	left: 24px;
	bottom: 24px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 224px;
	height: 224px;
	background: var(--ks-orange);
	border-radius: 50%;
	color: var(--ks-white);
	font-family: "Zen Kaku Gothic Antique", var(--ks-font-jp);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.45;
	text-align: center;
	letter-spacing: 0.14em;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.65);
}

.ks-hero__badge strong {
	margin-top: 6px;
	font-family: var(--ks-font-jp);
	font-size: 24px;
	font-weight: 900;
	letter-spacing: 0.12em;
}

.ks-hero__copy {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 28px;
	padding: 56px 40px 0 24px;
}

.ks-hero__copy::after {
	content: "";
	position: absolute;
	right: -120px;
	bottom: 40px;
	width: 300px;
	height: 300px;
	background: #ffd7ba;
	border-radius: 50%;
}

.ks-hero__copy p {
	position: relative;
	z-index: 1;
	margin: 0;
	font-size: 40px;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: 0.18em;
	writing-mode: vertical-rl;
}

.ks-hero__copy-main {
	color: var(--ks-brown);
}

.ks-hero__copy-accent {
	color: var(--ks-orange);
}

.ks-news {
	padding: 72px 0;
	background: var(--ks-white);
}

.ks-news__head,
.ks-section-head--between {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
}

.ks-news h2,
.ks-section-head h2 {
	margin: 0;
	color: var(--ks-brown);
	font-size: 43px;
	font-weight: 900;
	line-height: 1.55;
	letter-spacing: 0.06em;
}

.ks-news__list {
	display: grid;
	gap: 0;
	margin-top: 24px;
	border-top: 1px solid var(--ks-border);
}

.ks-news__item {
	display: grid;
	grid-template-columns: 116px 84px 1fr;
	align-items: center;
	gap: 24px;
	padding: 24px 0;
	border-bottom: 1px solid var(--ks-border);
}

.ks-news__item time {
	color: var(--ks-muted);
	font-size: 14px;
	font-weight: 700;
}

.ks-news__item span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	min-height: 32px;
	background: var(--ks-orange-deep);
	border-radius: 999px;
	color: var(--ks-white);
	font-size: 12px;
	font-weight: 700;
}

.ks-news__item strong {
	color: var(--ks-brown);
	font-size: 15px;
	font-weight: 700;
}

.ks-text-link,
.ks-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--ks-brown);
	font-weight: 900;
	line-height: 2;
	white-space: nowrap;
}

.ks-arrow-link span,
.ks-text-link::after {
	display: inline-grid;
	place-items: center;
	width: 32px;
	height: 32px;
	background: var(--ks-orange);
	border-radius: 50%;
	color: var(--ks-white);
	font-size: 14px;
}

.ks-text-link::after {
	content: "→";
}

.ks-about {
	padding: 72px 0 120px;
	background: var(--ks-cream);
}

.ks-about__inner {
	display: grid;
	grid-template-columns: minmax(360px, 500px) minmax(0, 1fr);
	gap: 64px;
	width: min(var(--ks-container), calc(100% - 96px));
	margin-inline: auto;
	padding-left: 0;
}

.ks-about__text {
	position: relative;
	padding-top: 32px;
}

.ks-bg-title,
.ks-recruit-bg-title {
	position: absolute;
	z-index: 0;
	margin: 0;
	color: var(--ks-peach);
	font-family: var(--ks-font-en);
	font-size: 110px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	pointer-events: none;
}

.ks-about__text .ks-bg-title {
	top: 0;
	left: 0;
	font-size: clamp(72px, 7.2vw, 112px);
}

.ks-about h2 {
	position: relative;
	z-index: 1;
	margin: 0 0 34px;
	font-size: clamp(34px, 3.2vw, 44px);
	font-weight: 900;
	line-height: 1.55;
	letter-spacing: 0;
}

.ks-about h2 span,
.ks-about__body span,
.ks-section-head p span {
	color: var(--ks-orange);
}

.ks-about h2 .ks-about__line,
.ks-about-lead__title .ks-about__line {
	color: var(--ks-brown);
	white-space: nowrap;
}

.ks-about h2 .ks-about__phrase,
.ks-about-lead__title .ks-about__phrase {
	display: inline-block;
	color: var(--ks-brown);
	white-space: nowrap;
}

.ks-about h2 .ks-about__accent,
.ks-about-lead__title .ks-about__accent {
	color: var(--ks-orange);
}

.ks-about__body {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 18px;
	width: min(420px, 100%);
	margin-bottom: 30px;
	color: var(--ks-brown-soft);
	font-size: 15px;
	font-weight: 700;
	line-height: 2.05;
	letter-spacing: 0;
}

.ks-about__body p {
	margin: 0;
}

.ks-about__photo {
	align-self: start;
	height: 760px;
	margin: 152px 0 0;
	overflow: hidden;
	border-radius: 24px;
}

.ks-about__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.ks-services {
	position: relative;
	padding: 100px 0;
	background:
		radial-gradient(circle at -80px 42%, rgba(234, 84, 20, 0.24) 0 240px, transparent 248px),
		radial-gradient(circle at calc(100% + 64px) 72%, rgba(254, 249, 215, 0.95) 0 224px, transparent 232px),
		linear-gradient(135deg, #ffd7ba 0%, #ffe2c8 48%, #ffcfab 100%);
}

.ks-section-head {
	position: relative;
	z-index: 1;
}

.ks-section-head h2,
.ks-section-head>p:not(.ks-bg-title):not(.ks-eyebrow),
.ks-section-head>div>p:not(.ks-bg-title):not(.ks-eyebrow) {
	position: relative;
	z-index: 1;
}

.ks-section-head--left {
	padding-top: 8px;
}

.ks-section-head--left .ks-bg-title,
.ks-blog .ks-bg-title,
.ks-more .ks-bg-title {
	top: -16px;
	left: 0;
	color: rgba(255, 255, 255, 0.68);
}

.ks-more .ks-bg-title,
.ks-blog .ks-bg-title {
	color: rgba(234, 84, 20, 0.16);
}

.ks-section-head>p:not(.ks-bg-title):not(.ks-eyebrow),
.ks-section-head>div>p:not(.ks-bg-title):not(.ks-eyebrow) {
	margin: 8px 0 0;
	color: #81695d;
	font-size: 16px;
	font-weight: 700;
	line-height: 2;
}

.ks-services__stack {
	position: relative;
	z-index: 1;
	margin-top: 64px;
	overflow: hidden;
	border-radius: 24px;
}

.ks-service-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: 456px;
	background: var(--ks-white);
}

.ks-service-row.is-reverse .ks-service-row__image {
	order: 2;
}

.ks-service-row__image {
	min-height: 456px;
	margin: 0;
	overflow: hidden;
}

.ks-service-row__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ks-service-row__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 64px 72px;
}

.ks-service-row__eyebrow {
	color: var(--ks-orange);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.3em;
}

.ks-service-row__num {
	margin-top: 8px;
	color: var(--ks-orange);
	font-size: 48px;
	font-weight: 900;
	line-height: 1;
}

.ks-service-row h2,
.ks-service-row h3 {
	margin: 12px 0 8px;
	color: var(--ks-brown);
	font-size: 31px;
	font-weight: 900;
	line-height: 1.8;
	letter-spacing: 0.06em;
}

.ks-service-row__body p {
	margin: 0 0 24px;
	padding-top: 20px;
	border-top: 1px solid #ff7a40;
	color: var(--ks-brown-soft);
	font-size: 15px;
	font-weight: 700;
	line-height: 2;
}

.ks-facilities {
	padding: 100px 0 164px;
	background: var(--ks-yellow);
}

.ks-section-head--center {
	text-align: center;
}

.ks-eyebrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin: 0 0 4px;
	color: var(--ks-orange);
	font-size: 29px;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ks-eyebrow::before,
.ks-eyebrow::after {
	content: "";
	width: 24px;
	height: 2px;
	background: var(--ks-orange);
	transform: rotate(62deg);
}

.ks-eyebrow::after {
	transform: rotate(-62deg);
}

.ks-section-head--center h2 {
	color: var(--ks-orange);
	font-size: 50px;
	line-height: 1.2;
}

.ks-facilities__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
	margin-top: 52px;
}

.ks-facility-card {
	overflow: hidden;
	background: var(--ks-white);
	border: 1px solid #ede8e3;
	border-radius: 24px;
}

.ks-facility-card figure {
	height: 286px;
	margin: 0;
	overflow: hidden;
	background: #fff0ea;
}

.ks-facility-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ks-facility-card div {
	padding: 34px 36px 36px;
}

.ks-facility-card h2,
.ks-facility-card h3,
.ks-more-card h3 {
	margin: 0 0 12px;
	color: var(--ks-brown);
	font-size: 23px;
	font-weight: 700;
	line-height: 1.7;
}

.ks-facility-card p {
	margin: 0 0 24px;
	color: var(--ks-brown-soft);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.9;
}

.ks-pill-button {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-width: 320px;
	min-height: 68px;
	padding: 12px 12px 12px 36px;
	background: var(--ks-orange);
	border-radius: 999px;
	color: var(--ks-white);
	font-size: 17px;
	font-weight: 900;
	line-height: 2;
	white-space: nowrap;
}

.ks-pill-button span {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	background: var(--ks-white);
	border-radius: 50%;
	color: var(--ks-orange);
}

.ks-pill-button--white {
	background: var(--ks-white);
	color: var(--ks-orange);
}

.ks-blog {
	padding: 100px 0 88px;
	background: var(--ks-cream);
}

.ks-blog--archive {
	position: relative;
	overflow: hidden;
	padding: 104px 0 112px;
	background: linear-gradient(180deg, #fffaf2 0%, var(--ks-cream) 100%);
}

.ks-blog--archive .ks-container {
	position: relative;
	z-index: 1;
}

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

.ks-blog-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	min-height: 100%;
	background: var(--ks-white);
	border: 1px solid var(--ks-border);
	border-radius: 16px;
	box-shadow: 0 18px 40px rgba(74, 45, 31, 0.06);
	text-decoration: none;
	transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.ks-blog-card:hover {
	transform: translateY(-4px);
	border-color: rgba(234, 84, 20, 0.28);
	box-shadow: 0 24px 52px rgba(74, 45, 31, 0.1);
}

.ks-blog-card figure {
	aspect-ratio: 16 / 10;
	margin: 0;
	overflow: hidden;
	background: var(--ks-cream);
}

.ks-blog-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ks-blog-card>div {
	padding: 24px;
}

.ks-blog-card time {
	display: block;
	margin-bottom: 8px;
	color: var(--ks-muted);
	font-size: 13px;
	font-weight: 700;
}

.ks-blog-card h3 {
	margin: 0;
	color: var(--ks-brown);
	font-size: 17px;
	font-weight: 900;
	line-height: 1.7;
}

.ks-blog-card--archive figure {
	aspect-ratio: 4 / 3;
}

.ks-blog-card--archive .ks-blog-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 14px;
	padding: 28px;
}

.ks-blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.ks-blog-card__meta time {
	margin: 0;
	color: #9b7a67;
}

.ks-blog-card__meta span {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 0 12px;
	background: #eaf6ff;
	border-radius: 999px;
	color: #0083ba;
	font-size: 12px;
	font-weight: 900;
	line-height: 1;
}

.ks-blog-card--archive h3 {
	font-size: 18px;
	line-height: 1.75;
}

.ks-blog-card--archive p {
	margin: 0;
	color: var(--ks-brown-soft);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.9;
}

.ks-blog-card__more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	padding-top: 6px;
	color: var(--ks-brown);
	font-size: 14px;
	font-weight: 900;
	line-height: 1.6;
}

.ks-blog-card__more span {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	background: var(--ks-orange);
	border-radius: 50%;
	color: var(--ks-white);
	font-size: 13px;
	transition: transform 0.24s ease;
}

.ks-blog-card:hover .ks-blog-card__more span {
	transform: translateX(3px);
}

.ks-instagram {
	position: relative;
	overflow: hidden;
	padding: 100px 0 164px;
	background: var(--ks-cream-2);
}

.ks-instagram::before,
.ks-instagram::after {
	content: "";
	position: absolute;
	z-index: 0;
	border-radius: 50%;
	pointer-events: none;
}

.ks-instagram::before {
	left: -274px;
	top: 216px;
	width: 657px;
	height: 657px;
	background: rgba(255, 198, 82, 0.28);
}

.ks-instagram::after {
	right: 112px;
	bottom: -36px;
	width: 453px;
	height: 453px;
	background: rgba(254, 249, 215, 0.95);
}

.ks-instagram__inner {
	position: relative;
	z-index: 1;
}

.ks-instagram .ks-bg-title {
	top: -16px;
	left: 0;
	color: rgba(234, 84, 20, 0.16);
}

.ks-instagram .ks-section-head h2 {
	color: var(--ks-brown);
}

.ks-instagram__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	margin-top: 56px;
	padding-top: 8px;
}

.ks-instagram__item {
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	width: 100%;
	overflow: hidden;
	background: #e5ddd2;
	border-radius: 4px;
	color: rgba(160, 128, 112, 0.32);
}

.ks-instagram__icon {
	position: relative;
	width: 20px;
	height: 20px;
	border: 2px solid currentColor;
	border-radius: 6px;
}

.ks-instagram__icon::before,
.ks-instagram__icon::after {
	content: "";
	position: absolute;
	border-radius: 50%;
}

.ks-instagram__icon::before {
	inset: 5px;
	border: 2px solid currentColor;
}

.ks-instagram__icon::after {
	right: 3px;
	top: 3px;
	width: 3px;
	height: 3px;
	background: currentColor;
}

.ks-instagram__follow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: 40px;
	color: var(--ks-brown);
	font-size: 16px;
	font-weight: 900;
	line-height: 2;
	text-align: center;
}

.ks-instagram__follow--disabled {
	cursor: default;
}

.ks-instagram__follow i {
	display: inline-grid;
	place-items: center;
	width: 32px;
	height: 32px;
	background: var(--ks-orange);
	border-radius: 50%;
	color: var(--ks-white);
	font-style: normal;
	font-size: 14px;
}

.ks-more {
	padding: 100px 0 80px;
	background: var(--ks-white);
}

.ks-more__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
	width: min(960px, 100%);
	margin: 56px auto 0;
}

.ks-more-card {
	overflow: hidden;
	background: var(--ks-white);
	border: 1px solid var(--ks-border);
	border-radius: 16px;
	text-align: center;
}

.ks-more-card figure {
	height: 348px;
	margin: 0;
	overflow: hidden;
	background: var(--ks-cream);
}

.ks-more-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ks-more-card div {
	padding: 28px 24px 32px;
}

.ks-more-card p {
	margin: 0 0 24px;
	color: var(--ks-brown-soft);
	font-size: 13px;
	font-weight: 700;
}

.ks-cta {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 500px;
	overflow: hidden;
	padding: 80px 0;
	background: linear-gradient(135deg, #EA5414 0%, #9f3418 100%);
	color: var(--ks-white);
}

.ks-cta__photo,
.ks-cta__overlay {
	position: absolute;
	inset: 0;
}

.ks-cta__photo {
	width: 100%;
	height: 172%;
	top: -36%;
	object-fit: cover;
}

.ks-cta__overlay {
	background: linear-gradient(135deg, rgba(180, 58, 14, 0.56) 0%, rgba(62, 26, 6, 0.6) 100%);
}

.ks-cta__inner {
	position: relative;
	z-index: 1;
	width: min(640px, calc(100% - 48px));
	margin-inline: auto;
	padding-top: 8px;
	text-align: center;
}

.ks-cta__bg-title {
	position: absolute;
	left: 50%;
	top: -24px;
	z-index: 0;
	margin: 0;
	color: rgba(255, 255, 255, 0.28);
	font-family: var(--ks-font-en);
	font-size: 110px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	transform: translateX(-50%);
	pointer-events: none;
}

.ks-cta h2 {
	position: relative;
	z-index: 1;
	margin: 0 0 20px;
	font-size: 55px;
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: 0.08em;
}

.ks-cta__lead {
	position: relative;
	z-index: 1;
	margin: 0 0 40px;
	color: rgba(248, 243, 236, 0.75);
	font-size: 16px;
	font-weight: 700;
	line-height: 2;
}

.ks-cta__actions {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	justify-content: center;
	gap: 16px;
	width: min(720px, 100%);
	margin-inline: auto;
}

.ks-cta__actions:has(> :only-child) {
	grid-template-columns: minmax(0, 360px);
}

.ks-cta__button,
.ks-cta__tel {
	display: flex;
	align-items: center;
	min-height: 102px;
	border-radius: 999px;
	color: var(--ks-white);
	font-weight: 900;
}

.ks-cta__button {
	justify-content: space-between;
	gap: 20px;
	padding: 14px 14px 14px 32px;
	background: var(--ks-orange);
	font-size: 17px;
	letter-spacing: 0.08em;
}

.ks-cta__button span {
	display: inline-grid;
	place-items: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	background: var(--ks-white);
	border-radius: 50%;
	color: var(--ks-orange);
}

.ks-cta__tel {
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	padding: 15px 25px;
	border: 1px solid rgba(255, 255, 255, 0.35);
}

.ks-cta__tel span {
	position: relative;
	color: rgba(255, 255, 255, 0.95);
	font-size: 12px;
	font-weight: 700;
	line-height: 2;
	letter-spacing: 0.08em;
}

.ks-cta__tel strong {
	color: rgba(255, 255, 255, 0.95);
	font-size: 22px;
	line-height: 2;
	letter-spacing: 0.04em;
}

.ks-cta .ks-pill-button {
	background: var(--ks-white);
	color: var(--ks-orange);
}

.ks-cta .ks-pill-button span {
	background: var(--ks-orange);
	color: var(--ks-white);
}

.ks-footer {
	background: var(--ks-cream-2);
}

.ks-footer__inner {
	width: min(var(--ks-container), calc(100% - 96px));
	margin-inline: auto;
	padding: 64px 0 32px;
}

.ks-footer__brand {
	display: grid;
	gap: 12px;
	color: rgba(74, 46, 31, 0.72);
	font-size: 13px;
	font-weight: 700;
}

.ks-footer__logo img {
	width: 72px;
}

.ks-footer__brand p {
	margin: 0;
}

.ks-footer__nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px;
	margin: -96px 0 56px 260px;
}

.ks-footer__group h2 {
	margin: 0 0 20px;
	color: var(--ks-orange);
	font-size: 13px;
	font-weight: 900;
	line-height: 2;
}

.ks-footer__group ul {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ks-footer__group a {
	color: rgba(74, 46, 31, 0.7);
	font-size: 13px;
	font-weight: 700;
	line-height: 2;
}

.ks-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding-top: 32px;
	border-top: 1px solid rgba(74, 46, 31, 0.12);
	color: rgba(74, 46, 31, 0.55);
	font-size: 12px;
	font-weight: 700;
}

.ks-footer__bottom p {
	margin: 0;
}

.ks-page-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 420px;
	overflow: hidden;
	padding-top: 88px;
	color: var(--ks-white);
}

.ks-page-hero>img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ks-page-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(143deg, rgba(180, 58, 14, 0.56), rgba(155, 48, 10, 0.54));
}

.ks-page-hero__content {
	position: relative;
	width: min(var(--ks-container), calc(100% - 96px));
	margin-inline: auto;
}

.ks-page-hero h1 {
	margin: 0;
	font-size: 50px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.08em;
}

.ks-breadcrumb {
	background: var(--ks-white);
	border-bottom: 1px solid var(--ks-border);
}

.ks-breadcrumb ol {
	display: flex;
	align-items: center;
	gap: 8px;
	width: min(var(--ks-container), calc(100% - 96px));
	min-height: 68px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	font-size: 13px;
	font-weight: 700;
}

.ks-breadcrumb li+li::before {
	content: "/";
	margin-right: 8px;
	color: #c8b8a8;
}

.ks-breadcrumb a {
	color: var(--ks-muted);
}

.ks-contact-intro {
	padding: 80px 24px 64px;
	background: var(--ks-cream);
	text-align: center;
}

.ks-contact-intro p {
	margin: 0;
	color: var(--ks-brown-soft);
	font-size: 15px;
	font-weight: 700;
	line-height: 2.2;
}

.ks-contact-phone {
	margin-top: -1px;
	padding: 0 24px;
	background: var(--ks-cream);
}

.ks-contact-phone__card {
	width: min(760px, 100%);
	margin-inline: auto;
	padding: 40px 42px;
	background: var(--ks-white);
	border-radius: 24px;
	text-align: center;
}

.ks-contact-phone h2,
.ks-contact-form-section h2 {
	margin: 0;
	color: var(--ks-brown);
	font-size: 37px;
	font-weight: 900;
	line-height: 1.8;
	letter-spacing: 0.07em;
}

.ks-contact-phone a {
	display: inline-block;
	margin-top: 8px;
	color: var(--ks-orange-deep);
	font-size: 28px;
	font-weight: 900;
	line-height: 1.7;
}

.ks-contact-phone p {
	margin: 0;
	color: #8c7e76;
	font-size: 18px;
}

.ks-contact-form-section {
	padding: 100px 0;
	background: var(--ks-cream);
}

.ks-contact-form-section h2 {
	margin-bottom: 32px;
	text-align: center;
}

.ks-contact-form-wrap {
	width: min(760px, 100%);
	margin-inline: auto;
	padding: 64px 72px;
	background: var(--ks-white);
	border-radius: 8px;
	box-shadow: 0 4px 20px rgba(61, 43, 31, 0.06);
}

.ks-contact-form,
.wpcf7-form {
	display: grid;
	gap: 32px;
}

.ks-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.ks-form-field {
	display: grid;
	gap: 10px;
	color: var(--ks-brown);
	font-size: 14px;
	font-weight: 700;
}

.ks-form-field>span,
.ks-contact-form-wrap label>span {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ks-form-field em,
.ks-form-field small,
.ks-contact-form-wrap .required {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 2px 8px;
	border-radius: 2px;
	background: var(--ks-orange);
	color: var(--ks-white);
	font-size: 11px;
	font-style: normal;
	line-height: 2;
}

.ks-form-field small {
	background: transparent;
	color: var(--ks-muted);
}

.ks-contact-form-wrap input:not([type="checkbox"]):not([type="submit"]),
.ks-contact-form-wrap select,
.ks-contact-form-wrap textarea {
	width: 100%;
	min-height: 56px;
	padding: 16px 18px;
	background: var(--ks-cream);
	border: 1px solid var(--ks-border);
	border-radius: 4px;
	color: var(--ks-brown);
	font-size: 14px;
	font-weight: 700;
}

.ks-contact-form-wrap textarea {
	min-height: 180px;
	resize: vertical;
}

.ks-contact-form-wrap ::placeholder {
	color: #c8b8a8;
}

.ks-form-acceptance {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: var(--ks-brown);
	font-size: 18px;
	font-weight: 700;
}

.ks-form-acceptance a {
	color: var(--ks-orange-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ks-form-submit {
	text-align: center;
}

.ks-form-submit button,
.ks-contact-form-wrap input[type="submit"],
.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 184px;
	min-height: 56px;
	padding: 12px 32px;
	background: var(--ks-orange);
	border: 0;
	border-radius: 4px;
	color: var(--ks-white);
	font-size: 14px;
	font-weight: 900;
	cursor: pointer;
}

.ks-form-submit p {
	margin: 12px 0 0;
	color: var(--ks-muted);
	font-size: 12px;
	font-weight: 700;
}

.ks-policy {
	padding: 96px 0;
	background: var(--ks-cream);
}

.ks-policy .ks-container {
	max-width: 840px;
	padding: 64px;
	background: var(--ks-white);
	border-radius: 16px;
}

.ks-policy h2 {
	margin: 40px 0 12px;
	color: var(--ks-brown);
	font-size: 24px;
	font-weight: 900;
}

.ks-policy p {
	margin: 0 0 16px;
	color: var(--ks-brown-soft);
	font-size: 16px;
	line-height: 2;
}

.ks-thanks {
	min-height: 560px;
	display: grid;
	place-items: center;
	padding: 96px 0;
	background: var(--ks-cream);
	text-align: center;
}

.ks-thanks h1 {
	margin: 0;
	color: var(--ks-brown);
	font-size: 43px;
	font-weight: 900;
	line-height: 1.6;
}

.ks-thanks p {
	margin: 24px auto 32px;
	color: var(--ks-brown-soft);
	font-size: 16px;
	line-height: 2;
}

.ks-single {
	padding: 96px 0;
	background: var(--ks-cream);
}

.ks-single__article {
	width: min(840px, calc(100% - 48px));
	margin-inline: auto;
	padding: 64px;
	background: var(--ks-white);
	border-radius: 16px;
}

.ks-single__header time {
	color: var(--ks-muted);
	font-size: 14px;
	font-weight: 700;
}

.ks-single__header h1 {
	margin: 12px 0 32px;
	color: var(--ks-brown);
	font-size: 40px;
	font-weight: 900;
	line-height: 1.6;
}

.ks-single__thumb {
	margin: 0 0 32px;
	overflow: hidden;
	border-radius: 16px;
}

.ks-single__thumb img {
	width: 100%;
	height: auto;
}

.ks-single__content {
	color: var(--ks-brown-soft);
	font-size: 16px;
	line-height: 2;
}

.ks-single__content h2 {
	margin: 48px 0 16px;
	color: var(--ks-brown);
	font-size: 28px;
	font-weight: 900;
}

.ks-single__content p {
	margin: 0 0 24px;
}

.navigation.pagination {
	margin-top: 40px;
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.navigation.pagination a,
.navigation.pagination span {
	display: inline-grid;
	place-items: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--ks-border);
	border-radius: 999px;
	color: var(--ks-brown);
	font-weight: 700;
}

.navigation.pagination .current {
	background: var(--ks-orange);
	border-color: var(--ks-orange);
	color: var(--ks-white);
}

.ks-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 56px;
}

.ks-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 15px;
	background: var(--ks-white);
	border: 1px solid var(--ks-border);
	border-radius: 999px;
	color: var(--ks-brown);
	font-size: 14px;
	font-weight: 900;
	text-decoration: none;
	box-shadow: 0 12px 28px rgba(74, 45, 31, 0.05);
}

.ks-pagination a.page-numbers:hover,
.ks-pagination .page-numbers.current {
	background: var(--ks-orange);
	border-color: var(--ks-orange);
	color: var(--ks-white);
}

.ks-empty {
	margin: 32px 0 0;
	color: var(--ks-brown-soft);
	font-weight: 700;
}

.ks-blog-empty {
	margin-top: 48px;
	padding: 40px 32px;
	background: var(--ks-white);
	border: 1px solid var(--ks-border);
	border-radius: 16px;
	color: var(--ks-brown-soft);
	text-align: center;
}

.ks-blog-empty p {
	margin: 0;
	font-weight: 700;
	line-height: 2;
}

.ks-recruit {
	background: #faf6ed;
	color: var(--ks-black);
	overflow: hidden;
}

.ks-recruit-container {
	position: relative;
}

.ks-recruit-hero {
	position: relative;
	min-height: 852px;
	overflow: hidden;
	background: #EA5414;
	color: var(--ks-white);
}

.ks-recruit-hero::before {
	content: "";
	position: absolute;
	left: -128px;
	top: 0;
	width: 600px;
	height: 1160px;
	background: linear-gradient(160deg, rgba(255, 230, 214, 0.42), rgba(234, 84, 20, 0));
	transform: skewX(-24deg);
}

.ks-recruit-hero__copy {
	position: absolute;
	z-index: 3;
	left: 120px;
	top: 144px;
	transform: skewX(-4deg);
}

.ks-recruit-hero__copy p {
	margin: 0;
	font-size: 132px;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: 0;
}

.ks-recruit-hero__bg {
	position: absolute;
	z-index: 1;
	left: -8px;
	top: 260px;
	margin: 0;
	color: rgba(255, 230, 214, 0.78);
	font-family: var(--ks-font-en);
	font-size: 300px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	pointer-events: none;
	animation: ks-recruit-bg-flow 38s linear infinite;
	will-change: transform;
}

@keyframes ks-recruit-bg-flow {

	0% {
		transform: translate3d(0, 0, 0);
	}

	100% {
		transform: translate3d(-28%, 0, 0);
	}
}

.ks-recruit-hero__visual {
	position: absolute;
	z-index: 2;
	left: 47.5%;
	top: 110px;
	width: 960px;
	height: 740px;
	pointer-events: none;
}

.ks-recruit-hero__visual figure {
	position: absolute;
	margin: 0;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 48px;
	box-shadow: 0 28px 80px rgba(70, 20, 0, 0.18);
}

.ks-recruit-hero__visual figure:nth-child(1) {
	left: 0;
	top: 0;
	width: 652px;
	height: 526px;
}

.ks-recruit-hero__visual figure:nth-child(2) {
	left: 596px;
	top: 0;
	width: 381px;
	height: 444px;
}

.ks-recruit-hero__visual figure:nth-child(3) {
	left: 312px;
	top: 407px;
	width: 652px;
	height: 526px;
}

.ks-recruit-hero__visual figure:nth-child(4) {
	left: 0;
	top: 407px;
	width: 381px;
	height: 444px;
	background: #ffd4bd;
}

.ks-recruit-hero__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ks-recruit-message {
	position: relative;
	padding: 150px 0 190px;
	background: #EA5414;
	color: var(--ks-white);
}

.ks-recruit-message::after {
	content: "";
	position: absolute;
	left: -5%;
	right: -5%;
	bottom: -1px;
	height: 160px;
	background: #faf6ed;
	border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.ks-recruit-bg-title {
	top: -24px;
	left: 0;
	color: rgba(255, 255, 255, 0.18);
	font-size: 160px;
}

.ks-recruit-message h1,
.ks-recruit-feature__head h2,
.ks-recruit-career h2,
.ks-recruit-faq h2,
.ks-recruit-entry h2 {
	position: relative;
	z-index: 1;
	margin: 0;
	font-size: 69px;
	font-weight: 900;
	line-height: 1.48;
	letter-spacing: 0;
}

.ks-recruit-message__body {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 48px;
	width: 640px;
	margin-top: 64px;
	font-size: 26px;
	font-weight: 500;
	line-height: 2.1;
}

.ks-recruit-message__body p {
	margin: 0;
}

.ks-recruit-outline {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 24px;
	min-height: 64px;
	margin-top: 48px;
	padding: 14px 18px 14px 26px;
	border: 1px solid var(--ks-white);
	border-radius: 999px;
	color: var(--ks-white);
	font-size: 22px;
	font-weight: 500;
}

.ks-recruit-outline span {
	display: inline-grid;
	place-items: center;
	width: 56px;
	height: 34px;
	background: var(--ks-white);
	border-radius: 999px;
	color: #EA5414;
}

.ks-recruit-feature {
	position: relative;
	padding: 64px 0 70px;
	background: #faf6ed;
}

.ks-recruit-feature__head {
	position: relative;
	height: 136px;
	text-align: center;
}

.ks-recruit-feature__head p {
	position: absolute;
	left: 50%;
	top: -24px;
	margin: 0;
	color: rgba(255, 230, 214, 0.88);
	font-family: var(--ks-font-en);
	font-size: 216px;
	font-weight: 900;
	line-height: 1;
	transform: translateX(-50%);
}

.ks-recruit-feature__head h2 {
	position: relative;
	padding-top: 40px;
	color: var(--ks-orange);
	font-size: 69px;
	text-align: center;
}

.ks-recruit-feature__list {
	display: grid;
	gap: 0;
	margin-top: 32px;
}

.ks-recruit-feature__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
	align-items: center;
	gap: 80px;
	padding: 32px 0;
}

.ks-recruit-feature__item.is-reverse {
	grid-template-columns: minmax(420px, 1fr) minmax(0, 1fr);
	background: var(--ks-white);
}

.ks-recruit-feature__item.is-reverse figure {
	order: 2;
}

.ks-recruit-feature__item figure {
	height: 416px;
	margin: 0;
	overflow: hidden;
	border-radius: 0 32px 32px 0;
}

.ks-recruit-feature__item.is-reverse figure {
	border-radius: 32px 0 0 32px;
}

.ks-recruit-feature__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ks-recruit-feature__item div {
	width: min(490px, calc(100% - 48px));
}

.ks-recruit-feature__item:not(.is-reverse) div {
	margin-left: auto;
	margin-right: 80px;
}

.ks-recruit-feature__item.is-reverse div {
	margin-left: 80px;
}

.ks-recruit-feature__item div>p:first-child {
	margin: 0 0 24px;
	font-size: 32px;
	font-weight: 700;
	line-height: 1;
}

.ks-recruit-feature__item div>p:first-child strong {
	font-size: 64px;
}

.ks-recruit-feature__item h3 {
	margin: 0 0 24px;
	padding-bottom: 16px;
	border-bottom: 1px solid #EA5414;
	color: var(--ks-orange);
	font-size: 40px;
	font-weight: 900;
	line-height: 1.7;
}

.ks-recruit-feature__item div>p:last-child {
	margin: 0;
	color: #333333;
	font-size: 18px;
	line-height: 2;
}

.ks-recruit-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	min-height: 320px;
	background: #EA5414;
}

.ks-recruit-gallery img {
	width: 100%;
	height: 320px;
	object-fit: cover;
}

.ks-recruit-question {
	padding: 150px 0;
	background: var(--ks-white);
}

.ks-recruit-question__head {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-bottom: 48px;
}

.ks-recruit-question__head span {
	font-family: var(--ks-font-en);
	font-size: 18px;
	font-weight: 500;
}

.ks-recruit-question__head h2 {
	margin: 0;
	padding: 12px 28px;
	background: var(--ks-orange);
	color: var(--ks-white);
	font-size: 36px;
	font-weight: 500;
}

.ks-recruit-question__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.ks-recruit-question__grid article {
	position: relative;
	min-height: 368px;
	padding: 44px;
	background: #faf6ed;
	border: 2px solid var(--ks-black);
	border-radius: 10px;
}

.ks-recruit-question__grid h3 {
	margin: 0 0 28px;
	color: #EA5414;
	font-size: 22px;
	font-weight: 700;
	text-align: center;
}

.ks-recruit-question__grid ul {
	display: grid;
	gap: 12px;
	margin: 0;
	padding-left: 1.2em;
	font-size: 18px;
	font-weight: 500;
}

.ks-recruit-question__grid li::marker {
	color: var(--ks-orange);
}

.ks-recruit-member {
	position: relative;
	padding: 160px 64px 240px;
	background: linear-gradient(150deg, #EA5414 0%, #EA5414 100%);
	color: var(--ks-white);
}

.ks-recruit-member__bg {
	position: absolute;
	left: 180px;
	top: 120px;
	margin: 0;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.45);
	font-family: var(--ks-font-en);
	font-size: 222px;
	font-weight: 900;
	line-height: 1;
}

.ks-recruit-member h2 {
	position: relative;
	z-index: 1;
	margin: 0 0 56px;
	font-size: 80px;
	font-weight: 900;
	line-height: 1.2;
	text-align: center;
}

.ks-recruit-member__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 72px;
	width: min(1280px, 100%);
	margin-inline: auto;
}

.ks-recruit-member__grid .ks-staff-card:nth-child(2) {
	margin-top: 148px;
}

.ks-recruit-member__grid .ks-staff-card:nth-child(3) {
	margin-top: 284px;
}

.ks-staff-card {
	position: relative;
	display: grid;
	gap: 16px;
	padding: 24px 24px 48px;
	background: var(--ks-white);
	border: 2px solid var(--ks-black);
	border-radius: 10px;
	color: var(--ks-black);
	text-align: center;
}

.ks-staff-card figure {
	aspect-ratio: 1;
	margin: 0;
	overflow: hidden;
	background: var(--ks-orange);
}

.ks-staff-card img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center bottom;
}

.ks-staff-card span {
	position: absolute;
	right: -36px;
	top: 8px;
	display: grid;
	place-items: center;
	width: 54px;
	min-height: 220px;
	background: var(--ks-black);
	color: var(--ks-white);
	font-family: var(--ks-font-en);
	font-size: 26px;
	font-weight: 700;
	writing-mode: vertical-rl;
}

.ks-staff-card h3 {
	margin: 0;
	color: var(--ks-orange);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.6;
}

.ks-staff-card p {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.65;
}

.ks-recruit-career,
.ks-recruit-faq {
	position: relative;
	overflow: hidden;
	padding: 120px 0;
	background: #faf6ed;
}

.ks-recruit-career h2,
.ks-recruit-faq h2 {
	position: relative;
	z-index: 1;
	margin-bottom: 48px;
	color: var(--ks-orange);
	font-size: 56px;
}

.ks-recruit-career .ks-recruit-bg-title,
.ks-recruit-faq .ks-recruit-bg-title {
	top: -56px;
	color: rgba(255, 230, 214, 0.88);
}

.ks-career-table {
	position: relative;
	z-index: 1;
	border-top: 2px solid var(--ks-black);
}

.ks-career-table a {
	display: grid;
	grid-template-columns: 1.3fr 1fr 120px;
	align-items: center;
	gap: 24px;
	min-height: 104px;
	border-bottom: 1px solid var(--ks-black);
	font-size: 20px;
	font-weight: 700;
}

.ks-career-table span:last-child {
	justify-self: end;
	display: inline-grid;
	place-items: center;
	width: 88px;
	min-height: 40px;
	background: var(--ks-orange);
	border-radius: 999px;
	color: var(--ks-white);
	font-size: 15px;
}

.ks-recruit-faq {
	background: var(--ks-white);
}

.ks-recruit-faq::before,
.ks-recruit-faq::after {
	content: "";
	position: absolute;
	z-index: 0;
	border-radius: 50%;
	pointer-events: none;
}

.ks-recruit-faq::before {
	left: -190px;
	top: -172px;
	width: 453px;
	height: 453px;
	background: rgba(255, 230, 214, 0.85);
}

.ks-recruit-faq::after {
	right: -320px;
	bottom: -218px;
	width: 705px;
	height: 705px;
	background: rgba(255, 230, 214, 0.62);
}

.ks-faq-list {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 16px;
	width: min(1000px, 100%);
	margin-inline: auto;
}

.ks-faq-list details {
	background: var(--ks-white);
	border: 2px solid var(--ks-black);
	border-radius: 10px;
}

.ks-faq-list summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 104px;
	padding: 24px 32px;
	font-size: 22px;
	font-weight: 700;
	cursor: pointer;
}

.ks-faq-list summary::before {
	content: "Q";
	color: var(--ks-orange);
	font-family: var(--ks-font-en);
	font-size: 32px;
	font-weight: 900;
}

.ks-faq-list summary::after {
	content: "+";
	margin-left: auto;
	color: var(--ks-orange);
	font-size: 36px;
	line-height: 1;
}

.ks-faq-list details[open] summary::after {
	content: "-";
}

.ks-faq-list details p {
	margin: 0;
	padding: 0 32px 32px 80px;
	font-size: 16px;
	line-height: 2;
}

.ks-recruit-entry {
	position: relative;
	overflow: hidden;
	padding: 150px 0;
	background:
		linear-gradient(135deg, rgba(234, 84, 20, 0.93), rgba(122, 46, 31, 0.92)),
		url("../images/cta-bg.jpg") center / cover;
	color: var(--ks-white);
	text-align: center;
}

.ks-recruit-entry::before {
	content: "ENTRY";
	position: absolute;
	left: 50%;
	top: 56px;
	color: rgba(255, 255, 255, 0.22);
	font-family: var(--ks-font-en);
	font-size: 150px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.02em;
	transform: translateX(-50%);
	pointer-events: none;
}

.ks-recruit-entry .ks-recruit-container {
	z-index: 1;
}

.ks-recruit-entry h2 {
	font-size: 56px;
}

.ks-recruit-entry p {
	margin: 16px 0 40px;
	font-size: 20px;
	font-weight: 700;
}

.ks-recruit-entry .ks-pill-button {
	background: var(--ks-white);
	color: var(--ks-orange);
}

.ks-recruit-entry .ks-pill-button span {
	background: var(--ks-orange);
	color: var(--ks-white);
}

.ks-bg-title,
.ks-cta__bg-title,
.ks-recruit-bg-title,
.ks-recruit-feature__head p,
.ks-recruit-member__bg,
.ks-recruit-entry__bg {
	max-width: none;
	overflow-wrap: normal;
	white-space: nowrap;
	word-break: keep-all;
}

.ks-blog-card__default-thumb {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	background: var(--ks-white);
}

.ks-blog-card__default-thumb img {
	width: min(132px, 48%);
	height: auto;
	object-fit: contain;
}

.ks-single__thumb .ks-blog-card__default-thumb {
	min-height: 420px;
}

.ks-single__thumb .ks-blog-card__default-thumb img {
	width: min(200px, 48%);
}

.ks-blog-card--archive figure {
	aspect-ratio: 46 / 23;
	background: var(--ks-white);
}

.ks-blog-card--archive .ks-blog-card__body {
	gap: 12px;
	min-height: 132px;
	padding: 24px 26px;
}

.ks-blog-card--archive h3 {
	font-size: 17px;
	line-height: 1.75;
}

.ks-blog-card--archive p,
.ks-blog-card__more {
	display: none;
}

.ks-cta {
	min-height: 559px;
	padding: 80px 0 96px;
	background: #EA5414;
}

.ks-cta__overlay {
	background: linear-gradient(135deg, rgba(234, 84, 20, 0.9) 0%, rgba(151, 36, 2, 0.92) 100%);
}

.ks-cta__inner {
	width: min(760px, calc(100% - 48px));
	padding-top: 52px;
}

.ks-cta__bg-title {
	top: 20px;
	color: rgba(255, 255, 255, 0.22);
	font-size: 148px;
}

.ks-cta__eyebrow {
	position: relative;
	z-index: 1;
	margin: 0 0 12px;
	color: var(--ks-white);
	font-size: 16px;
	font-weight: 900;
	line-height: 1.8;
	letter-spacing: 0.08em;
}

.ks-cta h2 {
	margin-bottom: 32px;
	color: var(--ks-white);
	font-size: 56px;
	line-height: 1.55;
	letter-spacing: 0.02em;
}

.ks-cta__actions {
	grid-template-columns: repeat(2, minmax(0, 360px));
	gap: 16px;
	width: min(720px, 100%);
}

.ks-cta__button,
.ks-cta__tel {
	min-height: 78px;
	background: var(--ks-white);
	border: 0;
	color: var(--ks-orange);
}

.ks-cta__button {
	padding-left: 40px;
	font-size: 18px;
}

.ks-cta__button span {
	background: var(--ks-orange);
	color: var(--ks-white);
}

.ks-cta__tel {
	padding: 14px 40px;
}

.ks-cta__tel strong {
	color: var(--ks-orange);
	font-size: 18px;
	letter-spacing: 0.08em;
}

.ks-recruit-kv {
	position: relative;
	overflow: hidden;
	background: #EA5414;
	color: var(--ks-white);
}

.ks-recruit-kv::before {
	content: "";
	position: absolute;
	z-index: 0;
	left: -128px;
	top: 0;
	width: 600px;
	height: 1160px;
	background: linear-gradient(160deg, rgba(255, 230, 214, 0.42), rgba(234, 84, 20, 0));
	transform: skewX(-24deg);
	pointer-events: none;
}

.ks-recruit-kv::after {
	content: "";
	position: absolute;
	z-index: 3;
	left: -5%;
	right: -5%;
	bottom: -1px;
	height: 80px;
	background: #faf6ed;
	border-radius: 50% 50% 0 0 / 100% 100% 0 0;
	pointer-events: none;
}

.ks-recruit-kv .ks-recruit-container {
	z-index: 4;
	width: min(1200px, calc(100% - 300px));
	margin-inline: auto;
}

.ks-recruit-hero {
	position: relative;
	z-index: 2;
	min-height: 852px;
	overflow: visible;
	background: transparent;
}

.ks-recruit-hero::before {
	content: none;
}

.ks-recruit-hero__copy {
	left: max(88px, calc((100vw - 1200px) / 2 + 7px));
	top: 144px;
}

.ks-recruit-hero__copy p {
	font-size: clamp(88px, 9.2vw, 132px);
	line-height: 1.38;
}

.ks-recruit-hero__bg {
	left: -4px;
	top: 292px;
	color: rgba(255, 230, 214, 0.44);
	font-size: clamp(168px, 23vw, 330px);
	line-height: 1;
}

.ks-recruit-hero__button {
	position: absolute;
	z-index: 5;
	left: max(96px, calc((100vw - 1200px) / 2 + 15px));
	top: 641px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 30px;
	width: 433px;
	min-height: 85px;
	padding: 10px 20px;
	background: var(--ks-white);
	border: 2px solid var(--ks-black);
	border-radius: 999px;
	box-shadow: 3px 3px 0 var(--ks-black);
	color: #EA5414;
	font-size: 20px;
	font-weight: 900;
	letter-spacing: 0.06em;
}

.ks-recruit-hero__button span {
	display: inline-grid;
	place-items: center;
	width: 56px;
	height: 34px;
	background: #EA5414;
	border-radius: 999px;
	color: var(--ks-white);
	font-size: 16px;
}

.ks-recruit-hero__visual {
	z-index: 2;
	left: calc(50% - 36px);
	top: -144px;
	display: grid;
	gap: 28px;
	width: 880px;
	height: auto;
	transform: rotate(-16.76deg);
	transform-origin: top left;
}

.ks-recruit-hero__visual-row {
	display: flex;
	gap: 28px;
	align-items: center;
}

.ks-recruit-hero__visual-row figure,
.ks-recruit-hero__visual-row figure:nth-child(n) {
	position: relative;
	left: auto;
	top: auto;
	width: auto;
	height: 379px;
	margin: 0;
	border-radius: 19px;
	box-shadow: none;
}

.ks-recruit-hero__visual-row figure.is-wide {
	flex: 0 0 568px;
}

.ks-recruit-hero__visual-row figure.is-narrow {
	flex: 0 0 284px;
}

.ks-recruit-hero__slider {
	display: none;
}

.ks-recruit-message {
	position: relative;
	z-index: 4;
	padding: 0 0 220px;
	background: transparent;
}

.ks-recruit-message::after {
	content: none;
}

.ks-recruit-message .ks-recruit-container {
	padding: 150px 0 0;
}

.ks-recruit-message h1 {
	font-size: clamp(48px, 4.8vw, 69px);
	line-height: 1.48;
}

.ks-recruit-message__body {
	width: min(611px, 100%);
	margin-top: 64px;
}

.ks-recruit-outline {
	min-height: 64px;
}

.ks-recruit-entry {
	position: relative;
	min-height: 822px;
	padding: 160px 0 0;
	background:
		linear-gradient(135deg, rgba(234, 84, 20, 0.96), rgba(234, 84, 20, 0.98)),
		url("../images/recruit-entry-bg.png") center / cover;
	color: var(--ks-white);
	text-align: center;
}

.ks-recruit-entry::before {
	content: "";
	position: absolute;
	left: -86px;
	top: -12px;
	width: 560px;
	height: 100%;
	background: linear-gradient(115deg, rgba(255, 166, 76, 0.55) 0 48%, transparent 48.2%);
	transform: none;
	pointer-events: none;
}

.ks-recruit-entry .ks-recruit-container {
	z-index: 2;
	width: min(750px, calc(100% - 48px));
	margin-inline: auto;
}

.ks-recruit-entry .ks-recruit-entry__bg {
	position: absolute;
	left: 50%;
	top: 8px;
	z-index: 0;
	margin: 0;
	color: rgba(255, 255, 255, 0.24);
	font-family: var(--ks-font-en);
	font-size: 220px;
	font-weight: 900;
	line-height: 1;
	transform: translateX(-50%);
	pointer-events: none;
}

.ks-recruit-entry h2 {
	position: relative;
	z-index: 1;
	margin: 104px 0 32px;
	color: var(--ks-white);
	font-size: 58px;
	line-height: 1.42;
}

.ks-recruit-entry p:not(.ks-recruit-entry__bg) {
	position: relative;
	z-index: 1;
	margin: 0 0 28px;
	font-size: 18px;
	font-weight: 900;
	line-height: 1.8;
}

.ks-recruit-entry__button {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: min(750px, 100%);
	min-height: 100px;
	padding: 18px 56px;
	background: var(--ks-white);
	border-radius: 999px;
	color: #EA5414;
	font-size: 32px;
	font-weight: 900;
	text-align: left;
}

.ks-recruit-entry__button span {
	display: inline-grid;
	place-items: center;
	flex: 0 0 56px;
	width: 56px;
	height: 34px;
	background: #EA5414;
	border-radius: 999px;
	color: var(--ks-white);
	font-size: 16px;
}

.ks-recruit-entry__slider {
	position: absolute;
	z-index: 1;
	left: 80px;
	bottom: -220px;
	display: flex;
	gap: 6px;
	width: 2160px;
	height: 309px;
	transform: rotate(-16deg);
	transform-origin: left center;
}

.ks-recruit-entry__slider img {
	width: 475px;
	height: 309px;
	object-fit: cover;
	border-radius: 19px;
}

.js-reveal {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.js-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.ks-faq-list summary {
	list-style: none;
}

.ks-faq-list summary::-webkit-details-marker {
	display: none;
}

@media (hover: hover) {

	a,
	button {
		transition: opacity 0.25s ease, transform 0.25s ease, background-color 0.25s ease, color 0.25s ease;
	}

	a:hover,
	button:hover {
		opacity: 0.78;
	}
}

@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
		scroll-behavior: auto;
		transition-duration: 0.01ms;
	}

	.ks-recruit-hero__bg {
		animation: none;
	}
}

@media (max-width: 960px) {

	html,
	body {
		overflow-x: hidden;
	}

	body {
		font-size: 15px;
	}

	.admin-bar .ks-header {
		top: 46px;
	}

	.ks-container,
	.ks-recruit-container,
	.ks-footer__inner,
	.ks-page-hero__content,
	.ks-breadcrumb ol {
		width: min(100% - 48px, var(--ks-container));
	}

	.ks-hero__copy::after {
		content: none;

	}

	.ks-header__inner {
		position: relative;
		width: calc(100% - 32px);
		height: 72px;
		justify-content: space-between;
	}

	.ks-header__toggle {
		position: absolute;
		top: 12px;
		right: 0;
		z-index: 1100;
		gap: 6px;
		display: inline-flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		margin-left: 0;
		border: 0;
		appearance: none;
	}

	.ks-header__nav {
		position: fixed;
		inset: 72px 0 0;
		height: auto;
		padding: 32px 24px 120px;
		background: #fff;
		border: 0;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
	}

	.is-nav-open .ks-header__nav {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.ks-header__list {
		display: grid;
		gap: 12px;
		height: auto;
	}

	.ks-header__item {
		width: 100%;
		border: 1px solid #f0f0f0;
		border-radius: 12px;
	}

	.ks-header__item.is-mobile-only {
		display: block;
	}

	.ks-header__link {
		flex-direction: row;
		justify-content: flex-start;
		gap: 16px;
		min-height: 64px;
		padding: 12px 16px;
		font-size: 14px;
	}

	.ks-header__actions {
		position: fixed;
		left: 24px;
		right: 24px;
		bottom: 24px;
		z-index: 1001;
		display: flex;
		justify-content: center;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
	}

	.is-nav-open .ks-header__actions {
		opacity: 1;
		visibility: visible;
	}

	.ks-hero {
		display: grid;
		grid-template-columns: minmax(0, 1fr) clamp(96px, 24vw, 168px);
		column-gap: clamp(8px, 2vw, 20px);
		align-items: start;
		min-height: 0;
		overflow: hidden;
		padding: clamp(24px, 5vw, 36px) clamp(10px, 3vw, 28px) clamp(56px, 8vw, 72px) clamp(16px, 4vw, 36px);
	}

	.ks-hero__image {
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		height: clamp(320px, 72vw, 520px);
		aspect-ratio: auto;
		border-radius: 20px;
	}

	.ks-hero__badge {
		left: clamp(12px, 3vw, 24px);
		bottom: clamp(12px, 3vw, 24px);
		width: clamp(120px, 22vw, 160px);
		height: clamp(120px, 22vw, 160px);
		font-size: clamp(13px, 2.4vw, 16px);
	}

	.ks-hero__badge strong {
		font-size: clamp(16px, 2.8vw, 19px);
	}

	.ks-hero__copy {
		grid-column: 2;
		grid-row: 1;
		justify-self: end;
		width: 100%;
		justify-content: flex-end;
		gap: clamp(8px, 1.8vw, 16px);
		padding: clamp(18px, 5vw, 56px) 0 0;
	}

	.ks-hero__copy p {
		font-size: clamp(23px, 5vw, 32px);
		line-height: 1.42;
		letter-spacing: 0.12em;
	}

	.ks-news__item {
		grid-template-columns: 96px 80px 1fr;
		gap: 12px;
	}

	.ks-about__inner,
	.ks-service-row,
	.ks-service-row.is-reverse,
	.ks-facilities__grid,
	.ks-blog__grid,
	.ks-more__grid,
	.ks-recruit-feature__item,
	.ks-recruit-feature__item.is-reverse,
	.ks-recruit-question__grid,
	.ks-recruit-member__grid {
		grid-template-columns: 1fr;
	}

	.ks-about__inner {
		width: min(100% - 48px, var(--ks-container));
		padding-left: 0;
	}

	.ks-about__photo {
		height: auto;
		aspect-ratio: 4 / 3;
		margin: 0;
		border-radius: 24px;
	}

	.ks-about h2 {
		font-size: 42px;
		line-height: 1.5;
	}

	.ks-bg-title {
		font-size: 76px;
	}

	.ks-service-row.is-reverse .ks-service-row__image,
	.ks-recruit-feature__item.is-reverse figure {
		order: 0;
	}

	.ks-service-row__body {
		padding: 48px;
	}

	.ks-service-row__image {
		min-height: 320px;
	}

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

	.ks-footer__nav {
		margin: 40px 0;
		grid-template-columns: 1fr;
	}

	.ks-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}

	.ks-cta {
		min-height: auto;
		padding: 96px 0;
	}

	.ks-cta__bg-title {
		font-size: 88px;
	}

	.ks-cta h2 {
		font-size: 44px;
	}

	.ks-cta__actions {
		grid-template-columns: 1fr;
		width: min(360px, 100%);
	}

	.ks-cta__button,
	.ks-cta__tel {
		min-height: 88px;
	}

	.ks-instagram::before {
		left: -360px;
	}

	.ks-instagram::after {
		right: -160px;
	}

	.ks-contact-form-wrap {
		padding: 48px;
	}

	.ks-form-row {
		grid-template-columns: 1fr;
	}

	.ks-recruit-hero {
		min-height: 680px;
	}

	.ks-recruit-hero__copy {
		left: 48px;
		top: 120px;
	}

	.ks-recruit-hero__copy p {
		font-size: 88px;
	}

	.ks-recruit-hero__bg {
		top: 320px;
		font-size: 180px;
	}

	.ks-recruit-hero__visual {
		left: 38%;
		top: 220px;
		transform: scale(0.68);
		transform-origin: top left;
	}

	.ks-recruit-message h1,
	.ks-recruit-feature__head h2,
	.ks-recruit-career h2,
	.ks-recruit-faq h2,
	.ks-recruit-entry h2 {
		font-size: 44px;
	}

	.ks-recruit-message__body {
		width: 100%;
		font-size: 20px;
	}

	.ks-recruit-feature__head p,
	.ks-recruit-bg-title,
	.ks-recruit-member__bg {
		font-size: 108px;
	}

	.ks-recruit-feature__item,
	.ks-recruit-feature__item.is-reverse {
		gap: 32px;
		padding: 56px 24px;
	}

	.ks-recruit-feature__item figure,
	.ks-recruit-feature__item.is-reverse figure {
		border-radius: 24px;
	}

	.ks-recruit-feature__item div,
	.ks-recruit-feature__item:not(.is-reverse) div,
	.ks-recruit-feature__item.is-reverse div {
		width: 100%;
		margin: 0;
	}

	.ks-recruit-feature__item h3 {
		font-size: 32px;
	}

	.ks-recruit-member {
		padding-inline: 48px;
	}

	.ks-recruit-member h2 {
		font-size: 52px;
	}

	.ks-recruit-member__grid .ks-staff-card:nth-child(2),
	.ks-recruit-member__grid .ks-staff-card:nth-child(3) {
		margin-top: 0;
	}

	.ks-recruit-gallery {
		grid-template-columns: 1fr;
	}

	.ks-staff-card span {
		right: 8px;
		top: 8px;
		min-height: 160px;
	}

	.ks-career-table a {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 24px 0;
	}

	.ks-career-table span:last-child {
		justify-self: start;
	}

	.ks-recruit-kv .ks-recruit-container {
		width: min(100% - 96px, var(--ks-container));
	}

	.ks-recruit-hero {
		min-height: 760px;
	}

	.ks-recruit-hero__button {
		left: 48px;
		top: 560px;
		width: 320px;
		min-height: 72px;
		font-size: 17px;
	}

	.ks-recruit-hero__visual {
		left: 44%;
		top: 136px;
		display: grid;
		transform: rotate(-16.76deg) scale(0.56);
	}

	.ks-recruit-message {
		padding-bottom: 172px;
	}

	.ks-recruit-message .ks-recruit-container {
		padding-top: 112px;
	}

	.ks-recruit-entry {
		min-height: 700px;
		padding-top: 120px;
	}

	.ks-recruit-entry .ks-recruit-entry__bg {
		font-size: 136px;
	}

	.ks-recruit-entry__button {
		min-height: 88px;
		padding-inline: 40px;
		font-size: 24px;
	}

	.ks-recruit-entry__slider {
		left: 16px;
		bottom: -180px;
		transform: rotate(-16deg) scale(0.78);
		transform-origin: left center;
	}
}

@media (max-width: 560px) {

	.ks-container,
	.ks-recruit-container,
	.ks-footer__inner,
	.ks-page-hero__content,
	.ks-breadcrumb ol {
		width: calc(100% - 32px);
	}

	.ks-hero {
		grid-template-columns: minmax(0, 1fr) clamp(84px, 24vw, 96px);
		column-gap: 8px;
		padding: 24px 8px 64px 16px;
	}

	.ks-hero__image {
		height: min(92vw, 380px);
		border-radius: 18px;
	}

	.ks-hero__badge {
		left: 12px;
		bottom: 12px;
		width: 116px;
		height: 116px;
		font-size: 12px;
	}


	.ks-hero__badge strong {
		font-size: 16px;
	}

	.ks-hero__copy {
		gap: 8px;
		padding-top: 18px;
	}

	.ks-hero__copy p {
		font-size: clamp(21px, 5.7vw, 24px);
		line-height: 1.45;
		letter-spacing: 0.08em;
	}

	.ks-news,
	.ks-about,
	.ks-services,
	.ks-facilities,
	.ks-blog,
	.ks-instagram,
	.ks-more,
	.ks-contact-form-section {
		padding-block: 64px;
	}

	.ks-news h2,
	.ks-section-head h2,
	.ks-cta h2,
	.ks-contact-phone h2,
	.ks-contact-form-section h2,
	.ks-page-hero h1 {
		font-size: 32px;
	}

	.ks-news__item {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.ks-about h2 {
		font-size: 30px;
	}

	.ks-about__body {
		font-size: 15px;
	}

	.ks-bg-title {
		font-size: 52px;
	}

	.ks-instagram {
		padding-bottom: 96px;
	}

	.ks-instagram__grid {
		gap: 8px;
	}

	.ks-instagram__follow {
		justify-content: flex-start;
		margin-top: 32px;
	}

	.ks-section-head--center h2 {
		font-size: 36px;
	}

	.ks-cta {
		padding: 80px 0;
	}

	.ks-cta__bg-title {
		top: -8px;
		font-size: 64px;
	}

	.ks-cta h2 {
		font-size: 34px;
	}

	.ks-cta__lead {
		font-size: 14px;
	}

	.ks-cta__button {
		font-size: 14px;
	}

	.ks-service-row__body,
	.ks-facility-card div,
	.ks-contact-form-wrap,
	.ks-policy .ks-container,
	.ks-single__article {
		padding: 32px 24px;
	}

	.ks-service-row h3 {
		font-size: 25px;
	}

	.ks-pill-button {
		width: 100%;
		min-width: 0;
	}

	.ks-more-card figure {
		height: 240px;
	}

	.ks-footer__bottom {
		font-size: 11px;
	}

	.ks-page-hero {
		min-height: 320px;
		padding-top: 64px;
	}

	.ks-contact-phone a {
		font-size: 24px;
	}

	.ks-form-acceptance {
		align-items: flex-start;
		font-size: 15px;
	}

	.ks-recruit-hero {
		min-height: 560px;
	}

	.ks-recruit-hero__copy {
		left: 24px;
		top: 112px;
	}

	.ks-recruit-hero__copy p {
		font-size: 56px;
	}

	.ks-recruit-hero__bg {
		top: 300px;
		font-size: 120px;
	}

	.ks-recruit-hero__visual {
		display: none;
	}

	.ks-recruit-hero__slider {
		position: absolute;
		z-index: 6;
		right: -78px;
		bottom: 36px;
		display: flex;
		gap: 6px;
		width: calc(100% - -142px);
		height: 104px;
		overflow: hidden;
		transform: rotate(-8deg);
		transform-origin: right center;
		pointer-events: none;
	}

	.ks-recruit-hero__slider img {
		flex: 0 0 168px;
		width: 168px;
		height: 100%;
		object-fit: cover;
		border-radius: 14px;
	}

	.ks-recruit-message,
	.ks-recruit-question,
	.ks-recruit-member,
	.ks-recruit-career,
	.ks-recruit-faq,
	.ks-recruit-entry {
		padding-block: 80px;
	}

	.ks-recruit-message h1,
	.ks-recruit-feature__head h2,
	.ks-recruit-career h2,
	.ks-recruit-faq h2,
	.ks-recruit-entry h2,
	.ks-thanks h1 {
		font-size: 32px;
	}

	.ks-recruit-message__body {
		font-size: 16px;
		line-height: 2;
	}

	.ks-recruit-outline {
		font-size: 16px;
	}

	.ks-recruit-feature__head {
		height: auto;
		padding-bottom: 32px;
	}

	.ks-recruit-feature__head p,
	.ks-recruit-bg-title,
	.ks-recruit-member__bg {
		font-size: 64px;
	}

	.ks-recruit-feature__item figure {
		height: 280px;
	}

	.ks-recruit-feature__item h3 {
		font-size: 24px;
	}

	.ks-recruit-question__head {
		display: grid;
	}

	.ks-recruit-question__head h2 {
		font-size: 26px;
	}

	.ks-recruit-member {
		padding-inline: 24px;
	}

	.ks-recruit-member h2 {
		font-size: 36px;
	}

	.ks-faq-list summary {
		padding: 20px;
		font-size: 18px;
	}

	.ks-faq-list details p {
		padding: 0 20px 24px 64px;
	}

	.ks-cta__inner {
		padding-top: 32px;
	}

	.ks-cta__bg-title {
		font-size: 72px;
	}

	.ks-cta__eyebrow {
		font-size: 13px;
	}

	.ks-cta__button,
	.ks-cta__tel {
		min-height: 72px;
	}

	.ks-recruit-kv .ks-recruit-container {
		width: calc(100% - 48px);
	}

	.ks-recruit-hero {
		min-height: 640px;
	}

	.ks-recruit-hero__button {
		left: 24px;
		top: 432px;
		width: min(312px, calc(100% - 48px));
		min-height: 64px;
		font-size: 15px;
	}

	.ks-recruit-message .ks-recruit-container {
		padding-top: 64px;
	}

	.ks-recruit-entry {
		min-height: 620px;
	}

	.ks-recruit-entry .ks-recruit-entry__bg {
		top: 56px;
		font-size: 84px;
	}

	.ks-recruit-entry h2 {
		margin-top: 72px;
	}

	.ks-recruit-entry__button {
		min-height: 72px;
		padding: 14px 20px;
		font-size: 18px;
	}

	.ks-recruit-entry__slider {
		bottom: -148px;
		transform: rotate(-16deg) scale(0.58);
	}
}

/* =========================================================
   CP下層ページ（about / service / facilities / privacy）
   ========================================================= */

.ks-info-table {
	margin: 0;
	border-top: 1px solid var(--ks-border);
}

.ks-info-table__row {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 0;
	border-bottom: 1px solid var(--ks-border);
}

.ks-info-table dt {
	padding: 18px 24px;
	background: var(--ks-cream);
	font-weight: 700;
	font-size: 15px;
	color: var(--ks-black);
}

.ks-info-table dd {
	margin: 0;
	padding: 18px 24px;
	font-size: 15px;
	line-height: 1.8;
}

.ks-mvv__stack {
	display: grid;
	gap: 28px;
}

.ks-mvv__block {
	padding: 28px 32px;
	background: var(--ks-cream);
	border-left: 4px solid var(--ks-orange);
	border-radius: 0 12px 12px 0;
}

.ks-mvv__block h3 {
	margin: 0 0 10px;
	color: var(--ks-orange);
	font-size: 18px;
	font-weight: 700;
}

.ks-mvv__block p {
	margin: 0;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.7;
	color: var(--ks-black);
}

.ks-leader__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}

.ks-leader__photo img {
	width: 100%;
	aspect-ratio: 14 / 9;
	object-fit: cover;
	border-radius: 12px;
}

.ks-leader__text h3 {
	margin: 0 0 16px;
	font-size: 22px;
	font-weight: 700;
	color: var(--ks-orange);
}

.ks-leader__text p {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.9;
}

.ks-leader__signature {
	color: var(--ks-muted);
	font-size: 13px;
}

.ks-parent__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}

.ks-parent__text p {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.9;
}

.ks-parent__text .ks-pill-button {
	margin-top: 14px;
}

.ks-parent__photo img {
	width: 100%;
	aspect-ratio: 7 / 4;
	object-fit: cover;
	border-radius: 12px;
}

.ks-cross {
	padding-block: 64px;
	background: var(--ks-cream);
}

.ks-cross__heading {
	margin: 0 0 32px;
	font-size: 22px;
	font-weight: 700;
	text-align: center;
}

.ks-cross__grid {
	display: grid;
	gap: 24px;
}

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

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

.ks-cross__card {
	display: block;
	padding: 28px;
	background: var(--ks-white);
	border: 1px solid var(--ks-border);
	border-radius: 12px;
	text-align: center;
	transition: transform .2s, box-shadow .2s;
}

.ks-cross__card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}

.ks-cross__card h3 {
	margin: 0 0 10px;
	font-size: 17px;
	font-weight: 700;
	color: var(--ks-black);
}

.ks-cross__card p {
	margin: 0;
	font-size: 13px;
	color: var(--ks-muted);
}

.ks-service-detail {
	padding-block: 64px;
}

.ks-service-detail__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
	margin-bottom: 32px;
}

.ks-service-detail.is-reverse .ks-service-detail__grid> :first-child {
	order: 2;
}

.ks-service-detail__text p {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.9;
}

.ks-service-detail__image img {
	width: 100%;
	aspect-ratio: 14 / 9;
	object-fit: cover;
	border-radius: 12px;
}

.ks-inline-cta {
	margin: 32px 0 0;
	padding: 22px;
	background: var(--ks-peach);
	border-radius: 12px;
	text-align: center;
}

.ks-inline-cta .ks-arrow-link {
	font-weight: 700;
}

.ks-divider {
	width: min(var(--ks-container), calc(100% - 96px));
	margin: 24px auto 0;
	height: 1px;
	background: var(--ks-border);
	border: 0;
}

.ks-facility-detail {
	padding-block: 64px;
}

.ks-facility-detail__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
	margin-bottom: 48px;
}

.ks-facility-detail__text h3 {
	margin: 0 0 16px;
	font-size: 22px;
	font-weight: 700;
	color: var(--ks-orange);
}

.ks-facility-detail__text p {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.9;
}

.ks-facility-detail__image img {
	width: 100%;
	aspect-ratio: 14 / 9;
	object-fit: cover;
	border-radius: 12px;
}

.ks-facility-detail__subhead {
	margin: 48px 0 20px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--ks-orange);
	font-size: 20px;
	font-weight: 700;
}

.ks-movie-box,
.ks-map-box {
	display: grid;
	place-items: center;
	gap: 6px;
	min-height: 260px;
	padding: 48px 24px;
	background: var(--ks-cream-2);
	border-radius: 12px;
	color: var(--ks-muted);
	text-align: center;
}

.ks-movie-box iframe,
.ks-map-box iframe {
	width: 100%;
	min-height: 360px;
	border: 0;
	border-radius: 12px;
}

.ks-movie-box__icon,
.ks-map-box__icon {
	margin: 0;
	font-size: 32px;
}

.ks-movie-box__note,
.ks-map-box__note {
	margin: 0;
	color: var(--ks-muted);
	font-size: 13px;
}

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

.ks-gallery__item {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 19 / 10;
	border-radius: 8px;
	background: var(--ks-cream);
}

.ks-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ks-section__note {
	margin: 12px 0 0;
	color: var(--ks-muted);
	font-size: 13px;
}

.ks-staff__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ks-staff__card {
	padding: 32px 24px;
	background: var(--ks-cream);
	border-radius: 12px;
	text-align: center;
}

.ks-staff__photo {
	display: grid;
	place-items: center;
	width: 120px;
	height: 120px;
	margin: 0 auto 16px;
	background: var(--ks-white);
	border-radius: 50%;
	color: var(--ks-muted);
	font-size: 28px;
}

.ks-staff__name {
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 700;
}

.ks-staff__role {
	margin: 0;
	color: var(--ks-orange);
	font-weight: 700;
	font-size: 14px;
}

.ks-staff__year {
	margin: 4px 0 14px;
	color: var(--ks-muted);
	font-size: 13px;
}

.ks-staff__msg {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	text-align: left;
}

.ks-policy__container {
	width: min(800px, calc(100% - 40px));
	margin-inline: auto;
}

.ks-policy__intro {
	margin: 0 0 40px;
	font-size: 15px;
	line-height: 1.9;
}

.ks-policy__article {
	margin-bottom: 32px;
}

.ks-policy__article h2 {
	margin: 0 0 14px;
	padding-left: 16px;
	border-left: 4px solid var(--ks-orange);
	font-size: 18px;
	font-weight: 700;
}

.ks-policy__article p {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
}

.ks-policy__list {
	margin: 12px 0 0;
	padding-left: 20px;
	list-style: disc;
}

.ks-policy__list li {
	margin-bottom: 6px;
	font-size: 14px;
	line-height: 1.9;
}

.ks-policy__contact {
	margin-top: 48px;
	padding: 24px;
	background: var(--ks-cream);
	border-radius: 12px;
}

.ks-policy__contact h3 {
	margin: 0 0 14px;
	font-size: 17px;
	font-weight: 700;
}

.ks-policy__contact p {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
}

.ks-policy__meta {
	margin: 32px 0 0;
	color: var(--ks-muted);
	font-size: 13px;
	text-align: right;
}

@media only screen and (max-width: 960px) {
	.ks-info-table__row {
		grid-template-columns: 1fr;
	}

	.ks-info-table dt {
		padding: 12px 18px;
	}

	.ks-info-table dd {
		padding: 12px 18px;
	}

	.ks-leader__grid,
	.ks-parent__grid,
	.ks-service-detail__grid,
	.ks-facility-detail__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.ks-service-detail.is-reverse .ks-service-detail__grid> :first-child {
		order: 0;
	}

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

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

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

@media only screen and (max-width: 560px) {
	.ks-gallery {
		grid-template-columns: 1fr;
	}

	.ks-staff__grid {
		grid-template-columns: 1fr;
	}

	.ks-mvv__block {
		padding: 22px 20px;
	}
}

/* =========================================================
   下層ページ追加（about / service / facilities）
   ========================================================= */

/* About */
.ks-about-lead {
	padding-block: 88px;
	background: var(--ks-cream);
}

.ks-about-lead__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
}

.ks-about-lead__title {
	margin: 0 0 28px;
	color: var(--ks-orange);
	font-size: 44px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .04em;
}

.ks-about-lead__body p {
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 2;
}

.ks-about-lead__body span {
	color: var(--ks-orange);
	font-weight: 700;
}

.ks-about-lead__photo img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 16px;
}

.ks-thoughts {
	padding-block: 88px;
	background: var(--ks-peach);
}

.ks-thoughts__heading {
	margin: 0 0 48px;
	font-size: 28px;
	font-weight: 700;
	text-align: center;
}

.ks-thoughts__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ks-thoughts__card {
	padding: 36px 28px;
	background: var(--ks-cream);
	border-radius: 16px;
}

.ks-thoughts__num {
	display: inline-block;
	margin-bottom: 18px;
	color: var(--ks-orange);
	font-family: var(--ks-font-en);
	font-size: 28px;
	font-weight: 700;
}

.ks-thoughts__title {
	margin: 0 0 14px;
	font-size: 18px;
	font-weight: 700;
}

.ks-thoughts__desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.9;
}

.ks-bridge {
	padding-block: 88px;
	background: var(--ks-yellow);
}

.ks-bridge__inner {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: 56px;
	align-items: start;
}

.ks-bridge__photo img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 16px;
}

.ks-bridge__heading {
	margin: 0 0 12px;
	color: var(--ks-orange);
	font-size: 22px;
	font-weight: 700;
}

.ks-bridge__lead {
	margin: 0 0 28px;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.7;
}

.ks-bridge__text p {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.9;
}

.ks-bridge__signature {
	margin: 32px 0 0;
	font-size: 14px;
	line-height: 1.8;
}

.ks-bridge__signature span {
	display: block;
	color: var(--ks-muted);
	font-size: 12px;
}

.ks-company {
	padding-block: 88px;
}

.ks-company__head {
	position: relative;
	margin-bottom: 32px;
}

.ks-company__heading {
	position: relative;
	z-index: 1;
	margin: 0;
	font-size: 28px;
	font-weight: 700;
}

.ks-company__bg {
	position: absolute;
	left: 60px;
	top: -8px;
	color: var(--ks-peach);
	font-family: var(--ks-font-en);
	font-size: 64px;
	font-weight: 700;
	letter-spacing: .04em;
	pointer-events: none;
}

/* Service tabs / blocks */
.ks-service-tabs {
	padding: 28px 0;
	background: var(--ks-white);
}

.ks-service-tabs ul {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	width: min(var(--ks-container), calc(100% - 96px));
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.ks-service-tabs a {
	display: block;
	padding: 14px 16px;
	background: var(--ks-cream);
	border: 1px solid var(--ks-border);
	border-radius: 999px;
	color: var(--ks-brown);
	font-weight: 700;
	font-size: 14px;
	text-align: center;
	transition: background .2s, color .2s;
}

.ks-service-tabs a:hover {
	background: var(--ks-orange);
	color: var(--ks-white);
	border-color: var(--ks-orange);
}

.ks-service-block {
	padding-block: 80px;
}

.ks-service-block--cream {
	background: var(--ks-cream);
}

.ks-service-block--yellow {
	background: var(--ks-yellow);
}

.ks-service-block--peach {
	background: var(--ks-peach);
}

.ks-service-block__intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
	margin-bottom: 40px;
}

.ks-service-block__intro.is-reverse> :first-child {
	order: 2;
}

.ks-service-block__image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 16px;
}

.ks-service-block__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin-bottom: 16px;
	background: var(--ks-white);
	border-radius: 50%;
	color: var(--ks-orange);
}

.ks-service-block__icon svg {
	display: block;
	width: 58%;
	height: 58%;
	fill: currentColor;
}

.ks-service-block__title {
	margin: 0 0 18px;
	font-size: 28px;
	font-weight: 700;
}

.ks-service-block__text p {
	margin: 0;
	font-size: 15px;
	line-height: 2;
}

.ks-service-summary {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-bottom: 40px;
}

.ks-service-summary__card {
	padding: 28px;
	background: var(--ks-white);
	border-radius: 16px;
}

.ks-service-summary__eyebrow {
	margin: 0 0 6px;
	color: var(--ks-orange);
	font-family: var(--ks-font-en);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ks-service-summary__title {
	margin: 0 0 12px;
	font-size: 17px;
	font-weight: 700;
}

.ks-service-summary__card p {
	margin: 0;
	font-size: 13px;
	line-height: 1.9;
}

.ks-service-features__heading {
	margin: 0 0 20px;
	font-size: 18px;
	font-weight: 700;
}

.ks-service-features__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 40px;
}

.ks-service-features__card {
	padding: 20px;
	background: var(--ks-white);
	border-radius: 12px;
}

.ks-service-features__card h4 {
	margin: 0 0 8px;
	color: var(--ks-orange);
	font-size: 14px;
	font-weight: 700;
}

.ks-service-features__card p {
	margin: 0;
	font-size: 12px;
	line-height: 1.8;
}

.ks-service-block__cta {
	margin: 0;
	text-align: center;
}

/* Facility overview */
.ks-facility-overview {
	padding-block: 88px;
	background: var(--ks-cream);
}

.ks-facility-overview__head {
	margin-bottom: 28px;
}

.ks-facility-overview__heading {
	margin: 0 0 8px;
	font-size: 28px;
	font-weight: 700;
}

.ks-facility-overview__head p {
	margin: 0;
	color: var(--ks-muted);
	font-size: 14px;
}

.ks-facility-overview__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}

.ks-facility-overview__photo img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 16px;
}

.ks-facility-overview__name {
	margin: 0 0 16px;
	font-size: 20px;
	font-weight: 700;
}

.ks-info-table--compact dt {
	padding: 12px 18px;
	font-size: 13px;
	background: transparent;
	color: var(--ks-muted);
}

.ks-info-table--compact dd {
	padding: 12px 18px;
	font-size: 13px;
	border-top: 1px solid var(--ks-border);
	border-top: 0;
}

.ks-info-table--compact .ks-info-table__row {
	grid-template-columns: 96px minmax(0, 1fr);
}

.ks-facility-overview__cta {
	margin: 16px 0 0;
}

/* Facility mood */
.ks-facility-mood {
	padding-block: 88px;
}

/* Facility movie */
.ks-facility-movie {
	padding-block: 88px;
	background: var(--ks-cream-2);
}

.ks-facility-movie__frame {
	max-width: 880px;
	margin: 32px auto 0;
	background: var(--ks-white);
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
}

.ks-facility-movie__frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.ks-facility-movie__placeholder {
	display: grid;
	place-items: center;
	gap: 12px;
	width: 100%;
	height: 100%;
	background: var(--ks-cream);
	color: var(--ks-muted);
	text-align: center;
}

.ks-facility-movie__play {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	background: var(--ks-white);
	border-radius: 50%;
	color: var(--ks-orange);
	font-size: 22px;
}

.ks-facility-movie__placeholder p {
	margin: 0;
	color: var(--ks-brown);
	font-family: var(--ks-font-en);
	font-size: 18px;
	font-weight: 900;
	letter-spacing: 0.08em;
}

/* Staff */
.ks-staff {
	padding-block: 88px;
}

.ks-staff__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 24px;
}

.ks-staff__card {
	padding: 0;
	background: transparent;
	border-radius: 0;
	text-align: left;
}

.ks-staff__photo {
	display: grid;
	place-items: center;
	width: 100%;
	height: 200px;
	margin: 0 0 16px;
	background: var(--ks-cream-2);
	border-radius: 16px;
	color: var(--ks-muted);
	font-size: 40px;
}

.ks-staff__name {
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 700;
}

.ks-staff__role {
	margin: 0 0 12px;
	color: var(--ks-orange);
	font-weight: 700;
	font-size: 13px;
}

.ks-staff__role span {
	margin-right: 6px;
	font-size: 8px;
	vertical-align: middle;
}

.ks-staff__msg {
	margin: 0;
	font-size: 13px;
	line-height: 1.9;
}

/* Access */
.ks-access {
	padding-block: 88px;
	background: var(--ks-cream);
}

.ks-access__head {
	position: relative;
	margin-bottom: 32px;
}

.ks-access__heading {
	position: relative;
	z-index: 1;
	margin: 0;
	font-size: 28px;
	font-weight: 700;
}

.ks-access__bg {
	position: absolute;
	left: 60px;
	top: -8px;
	color: var(--ks-peach);
	font-family: var(--ks-font-en);
	font-size: 64px;
	font-weight: 700;
	letter-spacing: .04em;
	pointer-events: none;
}

.ks-access__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}

.ks-access__map {
	width: 100%;
	aspect-ratio: 1 / 1;
	background: var(--ks-cream-2);
	border-radius: 16px;
	overflow: hidden;
}

.ks-access__map iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.ks-access__map-placeholder {
	display: grid;
	place-items: center;
	gap: 12px;
	width: 100%;
	height: 100%;
	color: var(--ks-muted);
	text-align: center;
}

.ks-access__map-placeholder span {
	font-size: 40px;
}

.ks-access__table {
	margin: 0;
}

.ks-info-table__row--cta dt,
.ks-info-table__row--cta dd {
	background: transparent;
	border: 0;
	padding-top: 18px;
}

@media only screen and (max-width: 960px) {

	.ks-about-lead__inner,
	.ks-bridge__inner,
	.ks-service-block__intro,
	.ks-facility-overview__grid,
	.ks-access__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.ks-service-block__intro.is-reverse> :first-child {
		order: 0;
	}

	.ks-thoughts__grid,
	.ks-service-summary,
	.ks-service-features__grid,
	.ks-staff__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ks-service-tabs ul {
		grid-template-columns: 1fr;
	}
}

@media only screen and (max-width: 560px) {

	.ks-thoughts__grid,
	.ks-service-summary,
	.ks-service-features__grid,
	.ks-staff__grid {
		grid-template-columns: 1fr;
	}

	.ks-about h2,
	.ks-about-lead__title {
		font-size: clamp(24px, 6.8vw, 32px);
		line-height: 1.65;
		letter-spacing: 0;
	}
}

/* Final design pass */
:root {
	--ks-orange: #EA5414;
	--ks-orange-deep: #EA5414;
	--ks-cream: #fffaf3;
	--ks-cream-2: #fbf0e1;
	--ks-peach: #ffe6d6;
}

.ks-bg-title,
.ks-recruit-bg-title,
.ks-recruit-feature__head p,
.ks-recruit-member__bg,
.ks-recruit-entry__bg,
.ks-company__bg,
.ks-access__bg,
.ks-blog-hero span,
.ks-service-features__heading::before {
	white-space: nowrap;
	word-break: normal;
	overflow-wrap: normal;
}

.ks-header__item {
	position: relative;
}

.ks-header__item--contact .ks-header__link {
	background: transparent;
}

.ks-header__item.is-current .ks-header__link {
	background: rgba(234, 84, 20, 0.07);
}

.ks-header__dropdown-toggle {
	display: none;
}

.ks-header__dropdown {
	position: absolute;
	left: 50%;
	top: calc(100% + 10px);
	z-index: 5;
	width: 220px;
	margin: 0;
	padding: 12px;
	list-style: none;
	background: var(--ks-white);
	border: 1px solid rgba(74, 46, 31, 0.1);
	border-radius: 8px;
	box-shadow: 0 18px 36px rgba(74, 46, 31, 0.12);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, -8px);
	transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
}

.ks-header__item:hover .ks-header__dropdown,
.ks-header__item:focus-within .ks-header__dropdown,
.ks-header__item.is-dropdown-open .ks-header__dropdown {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}

.ks-header__dropdown::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -7px;
	width: 14px;
	height: 14px;
	background: var(--ks-white);
	border-left: 1px solid rgba(74, 46, 31, 0.1);
	border-top: 1px solid rgba(74, 46, 31, 0.1);
	transform: translateX(-50%) rotate(45deg);
}

.ks-header__dropdown a {
	display: block;
	padding: 10px 12px;
	border-radius: 6px;
	color: var(--ks-brown);
	font-size: 13px;
	font-weight: 900;
	line-height: 1.5;
}

.ks-header__dropdown a:hover {
	background: rgba(234, 84, 20, 0.08);
	color: var(--ks-orange);
	opacity: 1;
}

.ks-page-hero {
	min-height: 320px;
	padding-top: 0;
	margin-bottom: 0;
}

.ks-page-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	z-index: 2;
	height: 48px;
	background: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 80' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3Cpath d='M0 34C190 74 360 74 560 44C760 14 940 10 1140 38C1260 55 1360 62 1440 54V80H0Z' fill='%23ffffff'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}

.ks-page-hero__overlay {
	background: linear-gradient(135deg, rgba(234, 84, 20, 0.76), rgba(74, 46, 31, 0.36));
}

.ks-page-hero h1 {
	position: relative;
	z-index: 3;
	font-size: clamp(36px, 4.2vw, 56px);
	font-weight: 900;
	letter-spacing: 0;
}

.ks-breadcrumb {
	position: relative;
	z-index: 4;
	border-bottom: 0;
}

.ks-hero__image::after {
	content: none;
}

.ks-hero__badge {
	background: var(--ks-orange);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.65);
	border-radius: 50%;
}

.ks-hero__badge-shape {
	display: none;
}

.ks-hero__badge-fill {
	fill: var(--ks-orange);
}

.ks-hero__badge-stitch {
	fill: none;
	stroke: rgba(255, 255, 255, 0.92);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 18 17;
}

.ks-about-lead {
	padding: 72px 0 104px;
	background: var(--ks-cream);
	overflow: hidden;
}

.ks-about-lead__inner {
	grid-template-columns: minmax(360px, 500px) minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}

.ks-about-lead__text {
	position: relative;
	z-index: 2;
	padding-top: 32px;
}

.ks-about-lead__bg {
	position: absolute;
	left: 0;
	top: 0;
	z-index: -1;
	margin: 0;
	color: var(--ks-peach);
	font-family: var(--ks-font-en);
	font-size: clamp(72px, 7.2vw, 112px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0;
}

.ks-about-lead__title {
	margin: 0 0 34px;
	color: var(--ks-brown);
	font-size: clamp(34px, 3.2vw, 44px);
	font-weight: 900;
	line-height: 1.55;
	letter-spacing: 0;
}

.ks-about-lead__title span,
.ks-about-lead__body span {
	color: var(--ks-orange);
}

.ks-about-lead__title .ks-about__line {
	color: var(--ks-brown);
	white-space: nowrap;
}

.ks-about-lead__title .ks-about__accent {
	color: var(--ks-orange);
}

.ks-about-lead__body {
	width: min(420px, 100%);
	font-size: 15px;
	font-weight: 700;
	line-height: 2.05;
}

.ks-about-lead__body p {
	margin: 0 0 24px;
}

.ks-about-lead__photo {
	align-self: end;
	margin-top: 152px;
	border-radius: 24px 0 0 24px;
	overflow: hidden;
}

.ks-about-lead__photo img {
	width: 100%;
	height: 760px;
	object-fit: cover;
	object-position: center;
}

.ks-thoughts {
	padding-block: 96px;
	background: var(--ks-white);
}

.ks-facility-overview,
.ks-facility-mood,
.ks-facility-movie,
.ks-staff,
.ks-access,
.ks-company {
	padding-block: 96px;
}

.ks-facility-overview__grid,
.ks-access__grid {
	gap: 64px;
}

.ks-facility-overview__photo img,
.ks-gallery__item img,
.ks-access__map {
	border-radius: 24px;
}

.ks-staff__photo span,
.ks-access__map-placeholder span,
.ks-facility-movie__play {
	font-family: var(--ks-font-jp);
}

.ks-staff__photo svg {
	display: block;
	width: 64px;
	height: 64px;
	fill: var(--ks-orange);
}

.ks-service-tabs {
	position: sticky;
	top: 84px;
	z-index: 20;
	padding: 0;
	background: var(--ks-white);
	box-shadow: 0 1px 0 rgba(74, 46, 31, 0.1);
}

.admin-bar .ks-service-tabs {
	top: 116px;
}

.ks-service-tabs ul {
	gap: 0;
	width: min(1104px, calc(100% - 96px));
}

.ks-service-tabs li {
	border-right: 1px solid rgba(234, 84, 20, 0.16);
}

.ks-service-tabs li:first-child {
	border-left: 1px solid rgba(234, 84, 20, 0.16);
}

.ks-service-tabs a {
	padding: 20px 16px;
	background: var(--ks-white);
	border: 0;
	border-radius: 0;
	color: var(--ks-orange);
	font-size: 16px;
	font-weight: 900;
}

.ks-service-tabs a:hover {
	background: rgba(234, 84, 20, 0.08);
	color: var(--ks-orange);
}

.ks-service-block {
	padding-block: 104px;
}

.ks-service-block--cream,
.ks-service-block--yellow,
.ks-service-block--peach {
	background: var(--ks-cream);
}

.ks-service-block__intro {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-bottom: 80px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	align-items: stretch;
	background: var(--ks-white);
}

.ks-service-block__intro.is-reverse> :first-child {
	order: 0;
}

.ks-service-block__image img {
	height: 480px;
	aspect-ratio: auto;
	border-radius: 0;
}

.ks-service-block__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 480px;
	padding: 64px min(8vw, 96px);
	background: var(--ks-white);
}

.ks-service-block__icon {
	width: 112px;
	height: 112px;
	margin-bottom: 32px;
	background: var(--ks-cream);
}

.ks-service-block__title {
	margin-bottom: 28px;
	font-size: clamp(34px, 3.5vw, 48px);
	font-weight: 900;
	letter-spacing: 0;
}

.ks-service-block__text p {
	max-width: 640px;
	font-size: 18px;
	font-weight: 900;
	line-height: 2.05;
}

.ks-service-summary {
	width: min(1104px, 100%);
	margin: 0 auto 80px;
	gap: 24px;
}

.ks-service-summary__card {
	min-height: 276px;
	padding: 40px;
	border-radius: 12px;
	box-shadow: 0 18px 40px rgba(74, 46, 31, 0.06);
}

.ks-service-summary__eyebrow {
	font-size: 13px;
	letter-spacing: 0;
}

.ks-service-summary__title {
	position: relative;
	font-size: 28px;
	font-weight: 900;
	letter-spacing: 0;
}

.ks-service-summary__title::after {
	content: "";
	display: block;
	width: 48px;
	height: 4px;
	margin-top: 14px;
	background: var(--ks-orange);
	border-radius: 999px;
}

.ks-service-summary__card p {
	font-size: 16px;
	font-weight: 900;
	line-height: 2;
}

.ks-service-features {
	width: min(1104px, 100%);
	margin-inline: auto;
}

.ks-service-features__heading {
	position: relative;
	margin-bottom: 40px;
	font-size: 34px;
	font-weight: 900;
	letter-spacing: 0;
	text-align: center;
}

.ks-service-features__heading::before {
	content: "FEATURE";
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: -1;
	color: var(--ks-peach);
	font-family: var(--ks-font-en);
	font-size: 104px;
	font-weight: 900;
	line-height: 1;
	transform: translate(-50%, -50%);
}

.ks-service-features__grid {
	gap: 24px;
	margin-bottom: 56px;
}

.ks-service-features__card {
	min-height: 168px;
	padding: 32px;
	border-radius: 12px;
	box-shadow: 0 16px 34px rgba(74, 46, 31, 0.06);
}

.ks-service-features__card h4 {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 20px;
	font-weight: 900;
}

.ks-service-features__card h4::before {
	content: "";
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	background: var(--ks-orange);
	border-radius: 50%;
}

.ks-service-features__card p {
	font-size: 15px;
	font-weight: 800;
	line-height: 1.9;
}

.ks-blog-hero {
	position: relative;
	padding: 96px 0 64px;
	background: var(--ks-cream);
	overflow: hidden;
}

.ks-blog-hero .ks-container {
	position: relative;
}

.ks-blog-hero p:first-child {
	display: none;
}

.ks-blog-hero h1 {
	position: relative;
	z-index: 1;
	margin: 0;
	color: var(--ks-brown);
	font-size: clamp(42px, 5.2vw, 72px);
	font-weight: 900;
	line-height: 1.25;
	letter-spacing: 0;
}

.ks-blog-hero span {
	position: absolute;
	left: 0;
	top: -40px;
	color: var(--ks-peach);
	font-family: var(--ks-font-en);
	font-size: clamp(96px, 15vw, 180px);
	font-weight: 900;
	line-height: 1;
}

.ks-blog-hero p:last-child {
	position: relative;
	z-index: 1;
	margin: 24px 0 0;
	color: var(--ks-brown-soft);
	font-weight: 900;
}

.ks-blog--archive {
	padding: 64px 0 104px;
	background: var(--ks-cream);
}

.ks-blog-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 40px;
}

.ks-blog-filter a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 8px 22px;
	background: var(--ks-white);
	border: 1px solid rgba(234, 84, 20, 0.2);
	border-radius: 999px;
	color: var(--ks-brown);
	font-weight: 900;
}

.ks-blog-filter a.is-active,
.ks-blog-filter a:hover {
	background: var(--ks-orange);
	color: var(--ks-white);
	opacity: 1;
}

.ks-blog-card--archive {
	border: 1px solid rgba(234, 84, 20, 0.12);
	border-radius: 8px;
}

.ks-blog-card--archive figure {
	aspect-ratio: 1 / 0.78;
	background: var(--ks-white);
}

.ks-blog-card--archive .ks-blog-card__body {
	min-height: 220px;
	padding: 28px;
}

.ks-blog-card--archive p,
.ks-blog-card__more {
	display: block;
}

.ks-blog-card--archive p {
	margin: 0;
	color: var(--ks-brown-soft);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.85;
}

.ks-blog-card__more {
	margin-top: auto;
	color: var(--ks-orange);
	font-size: 14px;
	font-weight: 900;
}

.ks-single {
	padding: 0 0 104px;
	background: var(--ks-cream);
}

.ks-single .ks-breadcrumb {
	margin-bottom: 56px;
}

.ks-single__article {
	width: min(960px, calc(100% - 48px));
	margin: 0 auto;
	padding: 72px clamp(32px, 5vw, 72px) 88px;
	background: var(--ks-white);
	border-radius: 16px;
	box-shadow: 0 20px 48px rgba(61, 43, 31, 0.05);
}

.ks-single__header {
	margin-bottom: 40px;
	text-align: left;
}

.ks-single__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
}

.ks-single__meta span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 4px 14px;
	background: #eaf6ff;
	border-radius: 999px;
	color: #0083ba;
	font-weight: 900;
}

.ks-single__meta time {
	color: var(--ks-muted);
	font-family: var(--ks-font-en);
	font-weight: 900;
}

.ks-single__header h1 {
	margin: 0;
	color: var(--ks-brown);
	font-size: clamp(34px, 4vw, 54px);
	font-weight: 900;
	line-height: 1.55;
	letter-spacing: 0;
}

.ks-single__thumb {
	margin: 0 0 56px;
	overflow: hidden;
	border-radius: 8px;
	background: var(--ks-white);
}

.ks-single__thumb img {
	width: 100%;
	height: auto;
}

.ks-single__content {
	padding: 0;
	background: transparent;
	color: var(--ks-brown);
	font-size: 18px;
	font-weight: 700;
	line-height: 2.1;
}

.ks-single__content h2 {
	margin: 64px 0 24px;
	padding-bottom: 16px;
	border-bottom: 2px solid rgba(234, 84, 20, 0.18);
	color: var(--ks-brown);
	font-size: 28px;
	font-weight: 900;
}

.ks-single__content p {
	margin: 0 0 28px;
}

.ks-single__nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 64px;
}

.ks-single__nav a {
	display: grid;
	gap: 6px;
	min-height: 104px;
	padding: 20px;
	background: #fff6ee;
	border: 1px solid rgba(234, 84, 20, 0.22);
	border-radius: 8px;
	color: var(--ks-brown);
	font-weight: 900;
	box-shadow: 0 12px 28px rgba(74, 46, 31, 0.05);
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.ks-single__nav a:hover {
	background: #fff0e4;
	border-color: rgba(234, 84, 20, 0.45);
	transform: translateY(-2px);
}

.ks-single__nav span {
	color: var(--ks-orange);
	font-size: 13px;
}

.ks-single__back {
	margin: 48px 0 0;
	text-align: center;
}

.ks-contact-form-wrap--cf7 form {
	display: grid;
	gap: 32px;
}

.ks-contact-form-wrap--cf7 .wpcf7-form-control-wrap {
	display: block;
	margin-top: 10px;
}

.ks-contact-form-wrap--cf7 .wpcf7-list-item {
	margin: 0;
}

.ks-contact-form-wrap--cf7 .wpcf7-not-valid-tip,
.ks-contact-form-wrap--cf7 .wpcf7-response-output {
	font-size: 13px;
	font-weight: 800;
}

.ks-contact-form-notice {
	margin: 0;
	text-align: center;
	font-weight: 900;
}

.ks-recruit-hero__copy {
	z-index: 6;
}

.ks-stream-line {
	display: inline-block;
	white-space: nowrap;
}

.ks-stream-line span {
	display: inline-block;
	opacity: 0;
	transform: scale(1.9);
	transform-origin: center;
}

.ks-recruit-hero__copy.is-visible .ks-stream-line span,
[data-ks-stream].is-visible .ks-stream-line span {
	animation: ks-stream-in 0.62s cubic-bezier(0.15, 1, 0.32, 1) forwards;
	animation-delay: var(--ks-stream-delay, 0ms);
}

@keyframes ks-stream-in {
	0% {
		opacity: 0;
		transform: scale(1.9);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}

.ks-recruit-kv {
	min-height: 1580px;
}

.ks-recruit-hero__visual {
	left: calc(50% - 128px);
	top: -36px;
	width: 1000px;
	gap: 30px;
	transform: rotate(-14deg);
}

.ks-recruit-hero__visual-row {
	gap: 30px;
}

.ks-recruit-hero__visual-row figure,
.ks-recruit-hero__visual-row figure:nth-child(n) {
	height: 352px;
	border-radius: 20px;
	border: 12px solid #EA5414;
	background: #EA5414;
}

.ks-recruit-hero__visual-row figure.is-wide {
	flex-basis: 590px;
}

.ks-recruit-hero__visual-row figure.is-narrow {
	flex-basis: 316px;
}

.ks-recruit-message {
	padding-bottom: 260px;
}

.ks-recruit-message .ks-recruit-container {
	padding-top: 84px;
}

.ks-recruit-message h1 {
	position: relative;
	z-index: 5;
	max-width: 900px;
}

.ks-recruit-message__body {
	position: relative;
	z-index: 5;
}

.ks-recruit-hero__button:hover span,
.ks-recruit-entry__button:hover span,
.ks-pill-button:hover span,
.ks-arrow-link:hover span,
.ks-cta__button:hover span,
.ks-instagram__follow:hover i,
.ks-text-link:hover::after {
	background: var(--ks-white);
	color: var(--ks-orange);
	transform: translateX(6px);
}

.ks-pill-button:hover,
.ks-arrow-link:hover,
.ks-cta__button:hover,
.ks-recruit-entry__button:hover,
.ks-recruit-hero__button:hover {
	opacity: 1;
}

.ks-cta {
	min-height: 520px;
	background: #EA5414;
}

.ks-cta__overlay {
	background: rgba(234, 84, 20, 0.94);
}

@media only screen and (max-width: 1180px) {
	.ks-about-lead__inner {
		grid-template-columns: 1fr;
	}

	.ks-about-lead__photo {
		margin-top: 24px;
		border-radius: 24px;
	}

	.ks-about-lead__photo img {
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.ks-recruit-hero__visual {
		left: calc(50% - 16px);
		width: 760px;
		opacity: 0.92;
	}
}

@media only screen and (max-width: 960px) {
	.ks-header__dropdown-toggle {
		display: none !important;
	}

	.ks-header__dropdown {
		display: none !important;
	}

	.ks-header__dropdown::before {
		content: none;
	}

	.ks-header__item.has-dropdown .ks-header__link {
		padding-right: 16px;
	}

	.ks-page-hero {
		min-height: 280px;
	}

	.ks-page-hero h1 {
		max-width: 100%;
		white-space: normal;
		word-break: keep-all;
		overflow-wrap: anywhere;
	}

	.ks-about-lead__title {
		white-space: normal;
	}

	.ks-service-tabs {
		top: 72px;
	}

	.admin-bar .ks-service-tabs {
		top: 118px;
	}

	.ks-service-tabs ul {
		width: 100%;
	}

	.ks-service-block__intro,
	.ks-service-summary,
	.ks-service-features__grid,
	.ks-single__nav {
		grid-template-columns: 1fr;
	}

	.ks-service-block__text {
		min-height: 0;
		padding: 40px 24px 48px;
	}

	.ks-service-block__image img {
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.ks-recruit-kv {
		min-height: auto;
	}

	.ks-recruit-hero__visual {
		left: 42%;
		top: 56px;
		width: 600px;
		opacity: 0.38;
	}

	.ks-recruit-message {
		padding-bottom: 160px;
	}
}

@media only screen and (max-width: 560px) {
	.ks-page-hero {
		min-height: 240px;
	}

	.ks-page-hero h1,
	.ks-blog-hero h1 {
		font-size: 30px;
		line-height: 1.45;
	}

	.ks-section-head>p:not(.ks-bg-title):not(.ks-eyebrow),
	.ks-section-head>div>p:not(.ks-bg-title):not(.ks-eyebrow) {
		max-width: 100%;
		overflow-wrap: anywhere;
	}

	.ks-policy__container {
		width: calc(100% - 32px);
		max-width: calc(100vw - 32px);
	}

	.ks-policy__intro,
	.ks-policy__article p,
	.ks-policy__list li,
	.ks-policy__contact p {
		overflow-wrap: anywhere;
		word-break: break-word;
		line-break: anywhere;
	}

	.ks-blog-hero {
		padding: 72px 0 48px;
	}

	.ks-breadcrumb {
		overflow: hidden;
	}

	.ks-breadcrumb ol {
		flex-wrap: nowrap;
		gap: 0;
		width: 100%;
		min-height: 56px;
		padding: 0 16px;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		white-space: nowrap;
	}

	.ks-breadcrumb ol::-webkit-scrollbar {
		display: none;
	}

	.ks-breadcrumb li {
		display: inline-flex;
		align-items: center;
		flex: 0 0 auto;
		white-space: nowrap;
	}

	.ks-breadcrumb li+li {
		margin-left: 8px;
	}

	.ks-breadcrumb li+li::before {
		flex: 0 0 auto;
		margin-right: 8px;
	}

	.ks-breadcrumb li[aria-current="page"] {
		display: block;
		max-width: min(58vw, 240px);
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.ks-single {
		padding-bottom: 72px;
	}

	.ks-single .ks-breadcrumb {
		margin-bottom: 32px;
	}

	.ks-single__article {
		width: calc(100% - 32px);
		padding: 40px 24px 56px;
		border-radius: 12px;
	}

	.ks-single__header h1 {
		font-size: 30px;
		line-height: 1.55;
	}

	.ks-blog-card--archive .ks-blog-card__body,
	.ks-service-summary__card,
	.ks-service-features__card {
		padding: 24px;
	}

	.ks-contact-form-wrap {
		padding: 32px 20px;
	}

	.ks-form-row {
		grid-template-columns: 1fr;
	}

	.ks-recruit-hero__visual {
		display: none;
	}
}

/* Recruit MV refinements */
.ks-recruit-hero__copy p {
	font-size: clamp(76px, 8.2vw, 120px);
	line-height: 1.25;
}

@media only screen and (max-width: 1180px) {
	.ks-recruit-hero__visual {
		left: 66%;
		top: -24px;
		width: 700px;
		opacity: 0.96;
	}

	.ks-recruit-hero__copy p {
		font-size: clamp(66px, 8vw, 92px);
	}
}

@media only screen and (min-width: 769px) and (max-width: 1180px) {

	.ks-recruit-hero__visual-row:nth-child(2),
	.ks-recruit-hero__visual-row:nth-child(3) {
		transform: translateX(72px);
	}
}

/* Keep the message headline from wrapping awkwardly on tablet and SP. */
.ks-about-lead__bg {
	white-space: nowrap;
}

@media only screen and (max-width: 768px) {

	.ks-about__inner,
	.ks-about-lead__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.ks-about__text,
	.ks-about-lead__text,
	.ks-about__body,
	.ks-about-lead__body {
		width: 100% !important;
		max-width: calc(100vw - 48px) !important;
		min-width: 0;
	}

	.ks-about h2,
	.ks-about-lead__title {
		font-size: clamp(28px, 5.2vw, 36px);
		line-height: 1.55;
		letter-spacing: 0;
	}

	.ks-about h2 .ks-about__phrase,
	.ks-about h2 .ks-about__line,
	.ks-about-lead__title .ks-about__phrase,
	.ks-about-lead__title .ks-about__line {
		display: inline-block;
		color: var(--ks-brown);
		white-space: nowrap;
		word-break: normal;
		overflow-wrap: normal;
		line-break: normal;
	}

	.ks-about h2 .ks-about__accent,
	.ks-about-lead__title .ks-about__accent {
		color: var(--ks-orange);
	}

	.ks-about__text .ks-bg-title,
	.ks-about-lead__bg {
		font-size: clamp(60px, 13vw, 92px);
		line-height: 0.95;
		white-space: nowrap;
		word-break: normal;
		overflow-wrap: normal;
	}

	.ks-about__body p,
	.ks-about-lead__body p {
		display: block;
		max-width: 100%;
		white-space: normal !important;
		word-break: break-all !important;
		overflow-wrap: anywhere !important;
		line-break: anywhere !important;
	}

	.ks-about__body p span,
	.ks-about-lead__body p span {
		white-space: normal !important;
		word-break: break-all !important;
		overflow-wrap: anywhere !important;
	}

	br.ks-sp-break {
		display: block;
	}
}

@media only screen and (max-width: 375px) {

	.ks-about h2,
	.ks-about-lead__title {
		font-size: 25px;
		line-height: 1.65;
	}

	.ks-about__text .ks-bg-title,
	.ks-about-lead__bg {
		font-size: 58px;
	}
}

@media only screen and (min-width: 376px) and (max-width: 430px) {

	.ks-about h2,
	.ks-about-lead__title {
		font-size: 26px;
		line-height: 1.65;
	}

	.ks-about__text .ks-bg-title,
	.ks-about-lead__bg {
		font-size: 58px;
	}
}

@media only screen and (max-width: 360px) {

	.ks-about h2,
	.ks-about-lead__title {
		font-size: 24px;
	}

	.ks-about__text .ks-bg-title,
	.ks-about-lead__bg {
		font-size: 52px;
	}
}

/* =========================================================
   Local QA stabilization: Figma-based lower pages
   ========================================================= */
.ks-header {
	position: sticky !important;
	top: 0;
	z-index: 3000;
}

.admin-bar .ks-header {
	top: 32px;
}


.ks-page-hero {
	min-height: 320px;
	padding-top: 0;
}

.ks-page-hero>img {
	object-position: center;
}

.ks-page-hero--blog>img {
	object-position: center 45%;
}

.ks-page-hero__content {
	z-index: 3;
}

.ks-page-hero h1 {
	font-size: clamp(34px, 3.5vw, 50px);
	line-height: 1.4;
	word-break: keep-all;
	overflow-wrap: normal;
}

.ks-breadcrumb li,
.ks-breadcrumb a {
	white-space: nowrap;
	word-break: normal;
	overflow-wrap: normal;
}

.ks-footer__inner {
	display: grid;
	grid-template-columns: 160px minmax(0, 1fr);
	column-gap: 96px;
	padding: 72px 0 32px;
}

.ks-footer__brand {
	grid-column: 1;
}

.ks-footer__nav {
	grid-column: 2;
	margin: 0 0 56px;
}

.ks-footer__bottom {
	grid-column: 1 / -1;
}

.ks-about-lead {
	padding: 100px 0;
	background: linear-gradient(180deg, #fffaf3 0%, #fff2df 100%);
}

.ks-about-lead__inner {
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 80px;
	align-items: center;
}

.ks-about-lead__text {
	position: relative;
	z-index: 1;
}

.ks-about-lead__bg {
	margin: 0;
	color: #ffe6d6;
	font-family: var(--ks-font-en);
	font-size: clamp(72px, 7.8vw, 110px);
	font-weight: 900;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}

.ks-about-lead__title {
	position: relative;
	z-index: 1;
	margin: -44px 0 36px;
	color: var(--ks-brown);
	font-size: clamp(42px, 4.2vw, 60px);
	font-weight: 900;
	line-height: 1.6;
	letter-spacing: 0.06em;
}

.ks-about-lead__title .ks-about__line {
	display: inline-block;
	color: var(--ks-brown);
	white-space: nowrap;
}

.ks-about-lead__body {
	display: grid;
	gap: 22px;
}

.ks-about-lead__body p {
	margin: 0;
	color: #7a4e35;
	font-size: 15px;
	font-weight: 800;
	line-height: 2.1;
	letter-spacing: 0.04em;
	word-break: normal !important;
	overflow-wrap: anywhere !important;
	line-break: strict !important;
}

.ks-about-lead__body span {
	color: var(--ks-orange);
}

.ks-about-lead__photo img {
	width: 100%;
	aspect-ratio: 637 / 797;
	object-fit: cover;
	border-radius: 20px 0 0 20px;
}

.ks-company {
	display: none;
}

.ks-bridge {
	background: #fffde4;
}

.ks-bridge__photo img {
	border-radius: 20px;
}

.ks-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.ks-gallery__item {
	margin: 0;
	overflow: hidden;
	border-radius: 4px;
}


.ks-facility-movie__placeholder {
	display: grid;
	place-items: center;
	min-height: 320px;
	color: var(--ks-brown);
	font-weight: 900;
	text-align: center;
}

.ks-facility-movie__placeholder p {
	margin: 0;
	font-family: var(--ks-font-en);
	font-size: 22px;
	letter-spacing: 0.04em;
}

.ks-facility-movie__play {
	display: none;
}

.ks-staff {
	padding: 100px 0 136px;
	background: #fef9d7;
}

.ks-staff__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 56px 32px;
}

.ks-staff__card {
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.ks-staff__photo {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin: 0 0 46px;
	aspect-ratio: 346.66 / 230.95;
	overflow: visible;
	background: transparent;
	border-radius: 4px;
}

.ks-staff__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 4px;
}

.ks-staff__badge {
	position: absolute;
	right: 0;
	bottom: -24px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	max-width: calc(100% - 16px);
	padding: 10px 18px;
	background: #fef9d7;
	border-radius: 10px;
	color: var(--ks-brown);
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.ks-staff__badge span {
	flex: 0 0 6px;
	width: 6px;
	height: 6px;
	background: var(--ks-orange);
	border-radius: 999px;
}

.ks-staff__name {
	margin: 0 0 12px;
	color: var(--ks-brown);
	font-size: 20px;
	font-weight: 900;
	line-height: 2;
	letter-spacing: 0.1em;
}

.ks-staff__msg {
	margin: 0;
	color: #7a4e35;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.95;
	letter-spacing: 0.04em;
}

.ks-blog--archive {
	padding: 96px 0 112px;
	background: var(--ks-cream);
}

.ks-blog-filter {
	margin-top: 0;
	margin-bottom: 40px;
}

.ks-single {
	background: var(--ks-cream);
}

.ks-single__article {
	margin-top: 72px;
}

.ks-single__nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 56px;
}

.ks-single__nav>div {
	min-height: 112px;
	padding: 24px;

	border-radius: 10px;
}

.ks-single__nav a {
	display: grid;
	gap: 10px;
	color: var(--ks-brown);
	font-weight: 900;
	line-height: 1.7;
}

.ks-single__nav span {
	color: var(--ks-orange);
	font-size: 13px;
}

.ks-contact-form-wrap--cf7 .wpcf7-acceptance .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	line-height: 1.8;
}

.ks-contact-form-wrap--cf7 .wpcf7-acceptance input[type="checkbox"],
.ks-contact-form-wrap input[type="checkbox"] {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin: 0;
	transform: translateY(1px);
}

.ks-service-block__icon {
	color: var(--ks-orange);
	background: var(--ks-white);
}


.ks-recruit-kv {
	min-height: 1789px;
	background: var(--ks-orange);
}

.ks-recruit-hero {
	min-height: 852px;
	overflow: visible;
}

.ks-recruit-hero__copy {
	left: 96px;
	top: 128px;
	z-index: 7;
	max-width: 540px;
}

.ks-recruit-hero__copy p {
	font-size: clamp(88px, 8.1vw, 120px);
	line-height: 1.42;
}

.ks-recruit-hero__button {
	left: 136px;
	top: 472px;
	z-index: 8;
}

.ks-recruit-hero__bg {
	z-index: 1;
}

.ks-recruit-hero__visual {
	left: calc(50% - 20px);
	top: 76px;
	z-index: 4;
	width: 980px;
	opacity: 1;
	transform: rotate(-14deg);
	pointer-events: none;
}

.ks-recruit-hero__visual-row {
	gap: 30px;
}

.ks-recruit-hero__visual-row figure,
.ks-recruit-hero__visual-row figure:nth-child(n) {
	height: 352px;
	border: 12px solid var(--ks-orange);
	border-radius: 20px;
}

.ks-recruit-hero__visual-row figure.is-wide {
	flex-basis: 590px;
}

.ks-recruit-hero__visual-row figure.is-narrow {
	flex-basis: 316px;
}

.ks-recruit-message .ks-recruit-container {
	padding-top: 0;
}

.ks-recruit-feature {
	padding: 96px 0 120px;
}

.ks-recruit-feature__head {
	height: 220px;
	margin-bottom: 48px;
}

.ks-recruit-feature__list {
	gap: 96px;
}

.ks-recruit-feature__item {
	padding: 0 20px;
}

@media only screen and (max-width: 1180px) {
	.ks-recruit-hero__copy {
		left: 48px;
		max-width: 480px;
	}

	.ks-recruit-hero__copy p {
		font-size: clamp(66px, 8vw, 92px);
	}

	.ks-recruit-hero__visual {
		left: calc(50% + 84px);
		width: 720px;
	}
}

@media only screen and (max-width: 960px) {
	.admin-bar .ks-header {
		top: 46px;
	}

	.ks-header__nav {
		z-index: 2500;
		overflow-y: auto;
	}

	.ks-header__dropdown-toggle,
	.ks-header__dropdown {
		display: none !important;
	}

	.ks-footer__inner {
		display: block;
		width: min(100% - 48px, var(--ks-container));
		padding-top: 64px;
	}

	.ks-footer__brand {
		margin-bottom: 40px;
	}

	.ks-footer__nav {
		margin: 0 0 48px;
	}

	.ks-about-lead__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.ks-about-lead__title {
		font-size: clamp(34px, 7vw, 46px);
	}

	.ks-about-lead__photo img {
		aspect-ratio: 16 / 10;
		border-radius: 20px;
	}

	.ks-gallery,
	.ks-staff__grid,
	.ks-single__nav {
		grid-template-columns: 1fr;
	}

	.ks-recruit-kv {
		min-height: auto;
	}

	.ks-recruit-hero {
		min-height: 640px;
	}

	.ks-recruit-hero__copy {
		left: 32px;
		top: 96px;
		max-width: calc(100vw - 64px);
	}

	.ks-recruit-hero__copy p {
		font-size: clamp(54px, 13vw, 76px);
	}

	.ks-recruit-hero__button {
		left: 32px;
		top: 390px;
	}

	.ks-recruit-hero__visual {
		display: none;
	}

	.ks-recruit-message {
		padding-bottom: 150px;
	}
}

@media only screen and (max-width: 560px) {
	.ks-header {
		position: sticky !important;
		top: 0;
	}

	.ks-page-hero {
		min-height: 240px;
	}

	.ks-page-hero h1 {
		font-size: 30px;
		letter-spacing: 0.04em;
	}

	.ks-breadcrumb {
		overflow: hidden;
	}

	.ks-breadcrumb ol {
		flex-wrap: nowrap;
		gap: 0;
		width: 100%;
		min-height: 56px;
		padding: 0 24px;
		overflow-x: auto;
		overflow-y: hidden;
		white-space: nowrap;
	}

	.ks-breadcrumb li {
		display: inline-flex !important;
		align-items: center;
		flex: 0 0 auto;
	}

	.ks-breadcrumb li[aria-current="page"] {
		max-width: min(58vw, 240px);
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.ks-about-lead {
		padding: 72px 0;
	}

	.ks-about-lead__bg {
		font-size: clamp(60px, 17vw, 72px);
	}

	.ks-about-lead__title {
		margin-top: -28px;
		font-size: clamp(29px, 8.2vw, 34px);
		line-height: 1.65;
		letter-spacing: 0.03em;
	}

	.ks-about-lead__body p {
		font-size: 14px;
		line-height: 2;
	}


	.ks-staff {
		padding: 72px 0 96px;
	}

	.ks-staff__badge {
		font-size: 12px;
		letter-spacing: 0.04em;
	}

	.ks-single__article {
		margin-top: 48px;
	}

	.ks-recruit-feature {
		padding: 72px 0 88px;
	}

	.ks-recruit-feature__head {
		height: 160px;
		margin-bottom: 32px;
	}
}