/*
Theme Name: Teshima Kosan
Theme URI: https://teshimakosan.jp/
Author: MIKAN WORKS Inc.
Author URI: https://teshimakosan.jp/
Description: 株式会社手嶋興産 コーポレートサイト用オリジナルブロックテーマ。濃紫×ピンク、ラメ（きらめき）表現をベースにした重厚感のあるデザイン。フルサイト編集（FSE）対応。
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: teshima-kosan
Tags: block-theme, full-site-editing, corporate, business, one-column, custom-colors, custom-menu, responsive
*/

/* =========================================================
   0. ベース
   ========================================================= */
:root {
	--tk-base: #1c0f33;
	--tk-main: #3a1d63;
	--tk-light: #5b2d8f;
	--tk-accent: #e75fa4;
	--tk-glitter: #d9b8ff;
	--tk-surface: #faf8fc;
	--tk-ink: #1a1526;
	--tk-muted: #6b6480;
	--tk-line: #e4deed;
	--tk-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

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

a {
	transition: color 0.25s var(--tk-ease), opacity 0.25s var(--tk-ease);
}

:where(a:focus-visible),
:where(button:focus-visible),
:where(input:focus-visible),
:where(textarea:focus-visible),
:where(select:focus-visible) {
	outline: 2px solid var(--tk-accent);
	outline-offset: 3px;
}

/* =========================================================
   1. ラメ・きらめき表現（デザインの核）
   ========================================================= */

/* 濃紫の面に星屑状のラメを重ねる */
.tk-glitter {
	position: relative;
	isolation: isolate;
}

.tk-glitter::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.9;
	background-image:
		radial-gradient(1.6px 1.6px at 12% 18%, rgba(255, 255, 255, 0.9), transparent 60%),
		radial-gradient(1.2px 1.2px at 27% 62%, rgba(217, 184, 255, 0.85), transparent 60%),
		radial-gradient(1.8px 1.8px at 41% 12%, rgba(255, 255, 255, 0.7), transparent 60%),
		radial-gradient(1.1px 1.1px at 55% 44%, rgba(231, 95, 164, 0.8), transparent 60%),
		radial-gradient(1.5px 1.5px at 68% 78%, rgba(255, 255, 255, 0.8), transparent 60%),
		radial-gradient(1.2px 1.2px at 79% 26%, rgba(217, 184, 255, 0.9), transparent 60%),
		radial-gradient(1.7px 1.7px at 90% 58%, rgba(255, 255, 255, 0.75), transparent 60%),
		radial-gradient(1.1px 1.1px at 8% 84%, rgba(217, 184, 255, 0.7), transparent 60%),
		radial-gradient(1.3px 1.3px at 34% 92%, rgba(255, 255, 255, 0.6), transparent 60%),
		radial-gradient(1.4px 1.4px at 62% 8%, rgba(217, 184, 255, 0.8), transparent 60%);
	background-size: 620px 620px;
	animation: tk-twinkle 9s ease-in-out infinite alternate;
}

.tk-glitter > * {
	position: relative;
	z-index: 1;
}

@keyframes tk-twinkle {
	from {
		opacity: 0.45;
		background-position: 0 0;
	}
	to {
		opacity: 1;
		background-position: 40px -30px;
	}
}

/* 文字に艶・ラメを乗せる */
.tk-shine {
	background: linear-gradient(100deg, #ffffff 0%, var(--tk-glitter) 38%, var(--tk-accent) 62%, #ffffff 100%);
	background-size: 220% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	animation: tk-sweep 7s linear infinite;
}

@keyframes tk-sweep {
	from {
		background-position: 0% 50%;
	}
	to {
		background-position: 220% 50%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tk-glitter::before,
	.tk-shine {
		animation: none;
	}
	.tk-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
	html {
		scroll-behavior: auto;
	}
}

/* =========================================================
   2. セクション見出し（英字 Oswald ＋ 和文ラベル ＋ ピンク罫）
   ========================================================= */
.tk-heading {
	margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.tk-heading__en {
	font-family: "Oswald", "Zen Kaku Gothic New", sans-serif;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1;
	font-size: clamp(2.4rem, 5.6vw, 4rem);
	margin: 0;
}

.tk-heading__rule {
	display: block;
	width: 58px;
	height: 3px;
	margin: 1.1rem 0 0.85rem;
	background: linear-gradient(90deg, var(--tk-accent), var(--tk-glitter));
	border: 0;
	border-radius: 2px;
}

.tk-heading__ja {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: 0.24em;
	margin: 0;
	color: var(--tk-accent);
}

.tk-heading.is-centered {
	text-align: center;
}

.tk-heading.is-centered .tk-heading__rule {
	margin-left: auto;
	margin-right: auto;
}

/* 背景の巨大ウォーターマーク文字 */
.tk-watermark {
	position: absolute;
	right: -0.06em;
	top: 6%;
	font-family: "Oswald", sans-serif;
	font-weight: 700;
	font-size: clamp(5rem, 16vw, 15rem);
	line-height: 0.8;
	letter-spacing: 0.01em;
	color: rgba(255, 255, 255, 0.045);
	pointer-events: none;
	user-select: none;
	z-index: 0;
	white-space: nowrap;
}

/* =========================================================
   3. ヘッダー
   ========================================================= */
.tk-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background: rgba(28, 15, 51, 0.86);
	backdrop-filter: saturate(160%) blur(12px);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	border-bottom: 1px solid rgba(217, 184, 255, 0.14);
}

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

@media (max-width: 782px) {
	.admin-bar .tk-header {
		top: 46px;
	}
}

.tk-logo {
	display: inline-block;
	text-decoration: none;
	line-height: 1.15;
}

.tk-logo__ja {
	display: block;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 900;
	font-size: clamp(1rem, 2.2vw, 1.25rem);
	letter-spacing: 0.04em;
	color: #fff;
}

.tk-logo__ja em {
	font-style: normal;
	background: linear-gradient(100deg, var(--tk-accent), var(--tk-glitter));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

.tk-logo__en {
	display: block;
	font-family: "Oswald", sans-serif;
	font-weight: 400;
	font-size: 0.6rem;
	letter-spacing: 0.26em;
	color: rgba(255, 255, 255, 0.62);
	margin-top: 0.25em;
}

.tk-header .wp-block-navigation {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	font-size: 0.84rem;
	letter-spacing: 0.04em;
}

.tk-header .wp-block-navigation a {
	color: #fff;
	text-decoration: none;
	position: relative;
	padding-block: 0.4em;
}

.tk-header .wp-block-navigation a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: var(--tk-accent);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.3s var(--tk-ease);
}

.tk-header .wp-block-navigation a:hover::after,
.tk-header .wp-block-navigation .current-menu-item a::after {
	transform: scaleX(1);
	transform-origin: left;
}

.tk-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--tk-base);
	padding-top: 4rem;
}

.tk-header .wp-block-navigation__responsive-container-open,
.tk-header .wp-block-navigation__responsive-container-close {
	color: #fff;
}

/* ヘッダー右のお問い合わせボタン */
.tk-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	padding: 0 clamp(1rem, 2.4vw, 2rem);
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	font-size: 0.84rem;
	letter-spacing: 0.06em;
	color: #fff;
	text-decoration: none;
	background: linear-gradient(135deg, var(--tk-accent), #b73d95);
	transition: filter 0.25s var(--tk-ease);
	white-space: nowrap;
}

.tk-header__cta:hover {
	filter: brightness(1.12);
	color: #fff;
}

/* =========================================================
   4. ヒーロー（メインビジュアル）
   ========================================================= */
.tk-hero {
	position: relative;
	min-height: min(92svh, 900px);
	display: flex;
	align-items: center;
	overflow: hidden;
	background:
		radial-gradient(120% 90% at 78% 18%, rgba(91, 45, 143, 0.85) 0%, transparent 62%),
		radial-gradient(90% 70% at 12% 82%, rgba(231, 95, 164, 0.28) 0%, transparent 60%),
		linear-gradient(160deg, #2a1450 0%, var(--tk-base) 58%, #150a29 100%);
}

.tk-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	object-fit: cover;
	width: 100%;
	height: 100%;
	opacity: 0.55;
	mix-blend-mode: screen;
}

.tk-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-block: clamp(6rem, 14vh, 10rem);
}

.tk-hero__copy {
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: clamp(2.1rem, 6.4vw, 4.6rem);
	line-height: 1.34;
	letter-spacing: 0.02em;
	color: #fff;
	margin: 0;
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.45);
}

.tk-hero__sub {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: clamp(0.82rem, 1.6vw, 0.98rem);
	letter-spacing: 0.14em;
	color: rgba(255, 255, 255, 0.82);
	margin: 1.6rem 0 2.4rem;
}

.tk-hero__scroll {
	position: absolute;
	left: 50%;
	bottom: 2rem;
	z-index: 2;
	transform: translateX(-50%);
	font-family: "Oswald", sans-serif;
	font-size: 0.62rem;
	letter-spacing: 0.4em;
	color: rgba(255, 255, 255, 0.6);
	writing-mode: vertical-rl;
	padding-bottom: 3.4rem;
}

.tk-hero__scroll::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 1px;
	height: 3rem;
	background: linear-gradient(180deg, var(--tk-glitter), transparent);
	animation: tk-scroll 2.4s ease-in-out infinite;
}

@keyframes tk-scroll {
	0% {
		transform: scaleY(0);
		transform-origin: top;
	}
	45% {
		transform: scaleY(1);
		transform-origin: top;
	}
	55% {
		transform: scaleY(1);
		transform-origin: bottom;
	}
	100% {
		transform: scaleY(0);
		transform-origin: bottom;
	}
}

/* =========================================================
   5. ボタン
   ========================================================= */
.tk-btn,
.wp-block-button.is-style-tk-pill .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.7em;
	padding: 1em 2.4em;
	border-radius: 999px;
	border: 0;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	font-size: 0.92rem;
	letter-spacing: 0.08em;
	color: #fff;
	text-decoration: none;
	background: linear-gradient(120deg, var(--tk-accent) 0%, #c2469a 55%, var(--tk-light) 100%);
	background-size: 180% 100%;
	box-shadow: 0 10px 34px -12px rgba(231, 95, 164, 0.85);
	transition: background-position 0.5s var(--tk-ease), transform 0.25s var(--tk-ease), box-shadow 0.25s var(--tk-ease);
}

.tk-btn:hover,
.wp-block-button.is-style-tk-pill .wp-block-button__link:hover {
	background-position: 100% 50%;
	transform: translateY(-2px);
	box-shadow: 0 16px 40px -12px rgba(231, 95, 164, 0.95);
	color: #fff;
}

/* テキストリンク（アンダーライン＋矢印） */
.tk-link {
	display: inline-flex;
	align-items: center;
	gap: 0.9em;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	font-size: 0.86rem;
	letter-spacing: 0.1em;
	text-decoration: none;
	color: inherit;
	padding-bottom: 0.7em;
	border-bottom: 1px solid currentColor;
}

.tk-link__arrow {
	transition: transform 0.3s var(--tk-ease);
	color: var(--tk-accent);
}

.tk-link:hover {
	color: var(--tk-accent);
}

.tk-link:hover .tk-link__arrow {
	transform: translateX(6px);
}

/* タグ（ピル） */
.tk-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.tk-tag {
	display: inline-block;
	padding: 0.5em 1.25em;
	border-radius: 999px;
	border: 1px solid rgba(217, 184, 255, 0.45);
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.9);
	background: rgba(255, 255, 255, 0.04);
}

.tk-tag.is-light {
	border-color: var(--tk-line);
	color: var(--tk-main);
	background: #fff;
}

/* =========================================================
   6. 画像プレースホルダ／カード
   ========================================================= */
.tk-figure {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	background: linear-gradient(150deg, var(--tk-light), var(--tk-base));
	box-shadow: 0 24px 60px -30px rgba(28, 15, 51, 0.75);
}

.tk-figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--tk-ease);
}

.tk-card:hover .tk-figure img,
.tk-figure:hover img {
	transform: scale(1.05);
}

/* Aboutの重ね写真 */
.tk-stack {
	position: relative;
	min-height: 340px;
}

.tk-stack__back {
	width: 74%;
	margin-left: auto;
	aspect-ratio: 4 / 3;
}

.tk-stack__front {
	position: absolute;
	left: 0;
	bottom: -8%;
	width: 52%;
	aspect-ratio: 4 / 3;
	border: 6px solid #fff;
	border-radius: 12px;
}

@media (max-width: 781px) {
	.tk-stack {
		min-height: 260px;
		margin-bottom: 2.5rem;
	}
}

/* リズミカルなフォトギャラリー帯 */
.tk-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 2.4vw, 2rem);
	align-items: start;
}

.tk-gallery .tk-figure {
	aspect-ratio: 4 / 3.4;
}

.tk-gallery .tk-figure:nth-child(2) {
	margin-top: clamp(1.5rem, 4vw, 3.4rem);
	aspect-ratio: 4 / 3;
}

.tk-gallery .tk-figure:nth-child(3) {
	margin-top: clamp(0.6rem, 1.6vw, 1.4rem);
}

@media (max-width: 600px) {
	.tk-gallery {
		grid-template-columns: 1fr 1fr;
	}
	.tk-gallery .tk-figure:nth-child(3) {
		grid-column: 1 / -1;
	}
}

/* サービスカード */
.tk-service-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.25rem, 3vw, 2.5rem);
}

@media (max-width: 781px) {
	.tk-service-grid {
		grid-template-columns: 1fr;
	}
}

.tk-card {
	display: block;
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	background: linear-gradient(165deg, rgba(91, 45, 143, 0.55), rgba(28, 15, 51, 0.7));
	border: 1px solid rgba(217, 184, 255, 0.16);
	transition: transform 0.4s var(--tk-ease), border-color 0.4s var(--tk-ease), box-shadow 0.4s var(--tk-ease);
}

.tk-card:hover {
	transform: translateY(-6px);
	border-color: rgba(231, 95, 164, 0.6);
	box-shadow: 0 30px 60px -30px rgba(231, 95, 164, 0.6);
}

.tk-card__media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.tk-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--tk-ease);
}

.tk-card__body {
	padding: clamp(1.4rem, 3vw, 2.2rem);
}

.tk-card__title {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 900;
	font-size: clamp(1.05rem, 2.2vw, 1.3rem);
	letter-spacing: 0.04em;
	margin: 0 0 0.7em;
	color: #fff;
}

.tk-card__text {
	font-size: 0.86rem;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.72);
	margin: 0 0 1.4em;
}

.tk-card__more {
	font-family: "Oswald", sans-serif;
	font-size: 0.74rem;
	letter-spacing: 0.18em;
	color: var(--tk-glitter);
}

.tk-card.is-light {
	background: #fff;
	border-color: var(--tk-line);
	box-shadow: 0 20px 50px -34px rgba(28, 15, 51, 0.5);
}

.tk-card.is-light .tk-card__title {
	color: var(--tk-ink);
}

.tk-card.is-light .tk-card__text {
	color: var(--tk-muted);
}

.tk-card.is-light .tk-card__more {
	color: var(--tk-accent);
}

/* =========================================================
   7. 車両（Vehicle）
   ========================================================= */
.tk-vehicle-strip {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: clamp(0.75rem, 1.8vw, 1.5rem);
	align-items: start;
}

.tk-vehicle-strip .tk-vcard {
	aspect-ratio: 3 / 4;
}

.tk-vehicle-strip .tk-vcard:nth-child(2) {
	margin-top: clamp(1rem, 3vw, 2.6rem);
}

.tk-vehicle-strip .tk-vcard:nth-child(3) {
	margin-top: clamp(0.4rem, 1.2vw, 1rem);
}

.tk-vehicle-strip .tk-vcard:nth-child(4) {
	margin-top: clamp(1.4rem, 3.6vw, 3.2rem);
}

.tk-vehicle-strip .tk-vcard:nth-child(5) {
	margin-top: clamp(0.2rem, 0.8vw, 0.6rem);
}

@media (max-width: 781px) {
	.tk-vehicle-strip {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 480px) {
	.tk-vehicle-strip {
		grid-template-columns: repeat(2, 1fr);
	}
}

.tk-vcard {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 12px;
	text-decoration: none;
	background: linear-gradient(160deg, var(--tk-light), var(--tk-base));
	box-shadow: 0 20px 46px -28px rgba(28, 15, 51, 0.8);
}

.tk-vcard img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--tk-ease);
}

.tk-vcard:hover img {
	transform: scale(1.06);
}

.tk-vcard__label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 1.6em 0.9em 0.9em;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: #fff;
	background: linear-gradient(180deg, transparent, rgba(21, 10, 41, 0.85));
	text-align: center;
}

.tk-count {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	color: var(--tk-muted);
	margin: 0;
}

.tk-count strong {
	font-family: "Oswald", sans-serif;
	font-size: 2.6rem;
	font-weight: 600;
	line-height: 1;
	color: var(--tk-main);
	margin: 0 0.14em;
	vertical-align: -0.08em;
}

/* 車両詳細ページのカード */
.tk-vehicle-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: clamp(1.25rem, 3vw, 2.25rem);
}

.tk-vehicle-grid .tk-card__media {
	aspect-ratio: 4 / 3;
}

.tk-vcount {
	display: inline-block;
	font-family: "Oswald", sans-serif;
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	color: var(--tk-accent);
	border: 1px solid rgba(231, 95, 164, 0.4);
	border-radius: 999px;
	padding: 0.2em 0.9em;
	margin-bottom: 0.9em;
}

/* =========================================================
   8. 数字カード（About下層）
   ========================================================= */
.tk-numbers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: clamp(1rem, 2.4vw, 1.75rem);
}

.tk-number {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: 14px;
	background: #fff;
	border: 1px solid var(--tk-line);
	border-top: 3px solid var(--tk-accent);
	text-align: center;
}

.tk-number__label {
	display: block;
	font-family: "Oswald", sans-serif;
	font-size: 0.68rem;
	letter-spacing: 0.2em;
	color: var(--tk-muted);
	margin-bottom: 0.9em;
}

.tk-number__value {
	display: block;
	font-family: "Oswald", sans-serif;
	font-weight: 600;
	font-size: clamp(2.2rem, 5vw, 3.2rem);
	line-height: 1;
	color: var(--tk-main);
}

.tk-number__unit {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 0.9rem;
	font-weight: 700;
	margin-left: 0.25em;
	color: var(--tk-muted);
}

.tk-number__note {
	display: block;
	font-size: 0.74rem;
	color: var(--tk-muted);
	margin-top: 0.9em;
	letter-spacing: 0.06em;
}

/* =========================================================
   9. 採用帯（Recruit）
   ========================================================= */
.tk-recruit {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(80% 120% at 50% 0%, rgba(91, 45, 143, 0.9), transparent 62%),
		linear-gradient(180deg, #23124a 0%, var(--tk-base) 100%);
}

.tk-recruit__media {
	position: absolute;
	inset: 0;
	object-fit: cover;
	width: 100%;
	height: 100%;
	opacity: 0.28;
	z-index: 0;
}

.tk-recruit__copy {
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: clamp(1.6rem, 4.4vw, 2.9rem);
	letter-spacing: 0.06em;
	line-height: 1.5;
	color: #fff;
	margin: 0 0 1.6rem;
}

/* =========================================================
   10. お知らせ
   ========================================================= */
.tk-news {
	border-top: 1px solid var(--tk-line);
}

.tk-news__item {
	display: grid;
	grid-template-columns: 8.5rem 6.5rem 1fr;
	align-items: center;
	gap: 1rem;
	padding: 1.5rem 0.5rem;
	border-bottom: 1px solid var(--tk-line);
	text-decoration: none;
	color: inherit;
	transition: background-color 0.3s var(--tk-ease);
}

.tk-news__item:hover {
	background: rgba(231, 95, 164, 0.05);
}

.tk-news__date {
	font-family: "Oswald", sans-serif;
	font-size: 0.86rem;
	letter-spacing: 0.1em;
	color: var(--tk-muted);
}

.tk-news__cat {
	display: inline-block;
	text-align: center;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 0.4em 0;
	border-radius: 999px;
	border: 1px solid rgba(231, 95, 164, 0.5);
	color: var(--tk-accent);
}

.tk-news__title {
	font-size: 0.92rem;
	line-height: 1.7;
	font-weight: 500;
}

@media (max-width: 600px) {
	.tk-news__item {
		grid-template-columns: 7rem 1fr;
		row-gap: 0.6rem;
	}
	.tk-news__title {
		grid-column: 1 / -1;
	}
}

/* クエリーループ側のお知らせ一覧 */
.tk-postlist .wp-block-post {
	border-bottom: 1px solid var(--tk-line);
	padding-block: 1.5rem;
}

.tk-postlist .wp-block-post-title {
	font-size: 1rem;
	line-height: 1.7;
	margin: 0.4rem 0 0;
}

.tk-postlist .wp-block-post-title a {
	text-decoration: none;
	color: var(--tk-ink);
}

.tk-postlist .wp-block-post-title a:hover {
	color: var(--tk-accent);
}

.tk-postlist .wp-block-post-date {
	font-family: "Oswald", sans-serif;
	font-size: 0.84rem;
	letter-spacing: 0.1em;
	color: var(--tk-muted);
}

.tk-postlist .wp-block-post-terms a {
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	color: var(--tk-accent);
	text-decoration: none;
	border: 1px solid rgba(231, 95, 164, 0.5);
	border-radius: 999px;
	padding: 0.3em 1em;
}

/* =========================================================
   11. Contact帯
   ========================================================= */
.tk-contact {
	background:
		radial-gradient(70% 100% at 50% 120%, rgba(231, 95, 164, 0.16), transparent 70%),
		radial-gradient(60% 90% at 12% 100%, rgba(91, 45, 143, 0.14), transparent 70%),
		var(--tk-surface);
}

.tk-contact__card {
	display: block;
	max-width: 460px;
	margin: 0 auto;
	padding: clamp(2rem, 4vw, 2.8rem) 2rem;
	border-radius: 16px;
	text-align: center;
	text-decoration: none;
	background: linear-gradient(150deg, var(--tk-light), var(--tk-main) 60%, var(--tk-base));
	box-shadow: 0 26px 60px -28px rgba(58, 29, 99, 0.75);
	transition: transform 0.35s var(--tk-ease), box-shadow 0.35s var(--tk-ease);
}

.tk-contact__card:hover {
	transform: translateY(-5px);
	box-shadow: 0 32px 70px -28px rgba(231, 95, 164, 0.6);
}

.tk-contact__icon {
	display: block;
	font-size: 1.4rem;
	margin-bottom: 0.7em;
	color: var(--tk-glitter);
}

.tk-contact__label {
	display: block;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 900;
	font-size: 1.05rem;
	letter-spacing: 0.1em;
	color: #fff;
}

.tk-contact__en {
	display: block;
	font-family: "Oswald", sans-serif;
	font-size: 0.66rem;
	letter-spacing: 0.3em;
	color: rgba(255, 255, 255, 0.55);
	margin-top: 0.6em;
}

.tk-contact__note {
	display: block;
	font-size: 0.74rem;
	letter-spacing: 0.06em;
	color: rgba(255, 255, 255, 0.72);
	margin-top: 1.2em;
}

/* =========================================================
   12. 下層ページタイトル帯・パンくず
   ========================================================= */
.tk-pagehead {
	position: relative;
	overflow: hidden;
	min-height: clamp(220px, 34vh, 380px);
	display: flex;
	align-items: center;
	background:
		radial-gradient(100% 120% at 80% 10%, rgba(91, 45, 143, 0.9), transparent 60%),
		linear-gradient(150deg, #2a1450, var(--tk-base));
}

.tk-pagehead__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.32;
	z-index: 0;
}

.tk-pagehead__title {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 900;
	font-size: clamp(1.6rem, 4.4vw, 2.6rem);
	letter-spacing: 0.08em;
	color: #fff;
	margin: 0;
}

.tk-pagehead__en {
	font-family: "Oswald", sans-serif;
	font-size: 0.72rem;
	letter-spacing: 0.3em;
	color: var(--tk-accent);
	display: block;
	margin-bottom: 0.9em;
}

.tk-breadcrumb {
	font-size: 0.74rem;
	letter-spacing: 0.06em;
	color: var(--tk-muted);
	padding-block: 1.1rem;
	border-bottom: 1px solid var(--tk-line);
}

.tk-breadcrumb a {
	color: var(--tk-muted);
	text-decoration: none;
}

.tk-breadcrumb a:hover {
	color: var(--tk-accent);
}

.tk-breadcrumb span + span::before {
	content: "／";
	margin: 0 0.6em;
	color: var(--tk-line);
}

/* =========================================================
   13. テーブル（会社概要・募集要項）
   ========================================================= */
.tk-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
	line-height: 1.9;
}

.tk-table th,
.tk-table td {
	text-align: left;
	vertical-align: top;
	padding: 1.15em 1.4em;
	border-bottom: 1px solid var(--tk-line);
}

.tk-table th {
	width: 12em;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--tk-main);
	background: rgba(91, 45, 143, 0.045);
	white-space: nowrap;
}

.tk-table td ul {
	margin: 0;
	padding-left: 1.1em;
}

@media (max-width: 600px) {
	.tk-table th,
	.tk-table td {
		display: block;
		width: auto;
		white-space: normal;
	}
	.tk-table th {
		border-bottom: 0;
		padding-bottom: 0.4em;
	}
	.tk-table td {
		padding-top: 0.4em;
	}
}

/* 産廃許可番号 */
.tk-permits {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 0.9rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tk-permit {
	padding: 1.1rem 1.2rem;
	border-radius: 10px;
	background: #fff;
	border: 1px solid var(--tk-line);
	border-left: 3px solid var(--tk-light);
}

.tk-permit__pref {
	display: block;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 900;
	font-size: 0.95rem;
	letter-spacing: 0.08em;
	color: var(--tk-main);
	margin-bottom: 0.35em;
}

.tk-permit__no {
	display: block;
	font-family: "Oswald", sans-serif;
	font-size: 0.86rem;
	letter-spacing: 0.06em;
	color: var(--tk-muted);
}

/* 沿革 */
.tk-history {
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.tk-history li {
	display: grid;
	grid-template-columns: 10rem 1fr;
	gap: 1rem;
	padding: 1.3rem 0 1.3rem 1.6rem;
	border-left: 2px solid var(--tk-line);
	position: relative;
}

.tk-history li::before {
	content: "";
	position: absolute;
	left: -6px;
	top: 1.9rem;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--tk-accent);
	box-shadow: 0 0 0 4px rgba(231, 95, 164, 0.18);
}

.tk-history time {
	font-family: "Oswald", sans-serif;
	font-size: 0.95rem;
	letter-spacing: 0.08em;
	color: var(--tk-main);
}

@media (max-width: 600px) {
	.tk-history li {
		grid-template-columns: 1fr;
		gap: 0.3rem;
	}
}

/* 応募の流れ */
.tk-flow {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: tkflow;
}

.tk-flow li {
	counter-increment: tkflow;
	background: #fff;
	border: 1px solid var(--tk-line);
	border-radius: 12px;
	padding: 1.6rem 1.4rem;
}

.tk-flow li::before {
	content: "STEP " counter(tkflow);
	display: block;
	font-family: "Oswald", sans-serif;
	font-size: 0.66rem;
	letter-spacing: 0.2em;
	color: var(--tk-accent);
	margin-bottom: 0.7em;
}

.tk-flow strong {
	display: block;
	font-weight: 900;
	font-size: 0.98rem;
	margin-bottom: 0.5em;
	color: var(--tk-ink);
}

.tk-flow span {
	font-size: 0.82rem;
	line-height: 1.85;
	color: var(--tk-muted);
}

/* 訴求ポイント */
.tk-points {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tk-point {
	padding: 1.6rem 1.5rem;
	border-radius: 12px;
	background: linear-gradient(160deg, rgba(91, 45, 143, 0.06), rgba(231, 95, 164, 0.06));
	border: 1px solid var(--tk-line);
}

.tk-point strong {
	display: block;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 900;
	font-size: 1rem;
	color: var(--tk-main);
	margin-bottom: 0.6em;
}

.tk-point span {
	font-size: 0.83rem;
	line-height: 1.9;
	color: var(--tk-muted);
}

/* =========================================================
   14. お問い合わせフォーム
   ========================================================= */
.tk-form {
	max-width: 720px;
	margin-inline: auto;
}

.tk-form__row {
	margin-bottom: 1.6rem;
}

.tk-form__label {
	display: flex;
	align-items: center;
	gap: 0.7em;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	font-size: 0.88rem;
	letter-spacing: 0.06em;
	margin-bottom: 0.7em;
	color: var(--tk-ink);
}

.tk-form__req {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 0.25em 0.7em;
	border-radius: 999px;
	background: var(--tk-accent);
	color: #fff;
}

.tk-form__opt {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 0.25em 0.7em;
	border-radius: 999px;
	background: var(--tk-line);
	color: var(--tk-muted);
}

.tk-form input[type="text"],
.tk-form input[type="email"],
.tk-form input[type="tel"],
.tk-form select,
.tk-form textarea {
	width: 100%;
	padding: 0.95em 1.1em;
	border: 1px solid var(--tk-line);
	border-radius: 8px;
	background: #fff;
	font-family: inherit;
	font-size: 1rem;
	color: var(--tk-ink);
	transition: border-color 0.25s var(--tk-ease), box-shadow 0.25s var(--tk-ease);
}

.tk-form input:focus,
.tk-form select:focus,
.tk-form textarea:focus {
	border-color: var(--tk-accent);
	box-shadow: 0 0 0 3px rgba(231, 95, 164, 0.14);
	outline: none;
}

.tk-form textarea {
	min-height: 200px;
	resize: vertical;
}

.tk-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.tk-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
	margin-top: 2.5rem;
}

.tk-form__submit {
	cursor: pointer;
	font-family: inherit;
}

.tk-form__back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1em 2.2em;
	border-radius: 999px;
	border: 1px solid var(--tk-line);
	background: #fff;
	color: var(--tk-muted);
	font-family: inherit;
	font-weight: 700;
	font-size: 0.9rem;
	letter-spacing: 0.06em;
	cursor: pointer;
	transition: border-color 0.25s var(--tk-ease), color 0.25s var(--tk-ease);
}

.tk-form__back:hover {
	border-color: var(--tk-main);
	color: var(--tk-main);
}

.tk-form__errors {
	margin: 0 0 2rem;
	padding: 1.2rem 1.4rem 1.2rem 3rem;
	border-radius: 10px;
	background: rgba(231, 95, 164, 0.07);
	border: 1px solid rgba(231, 95, 164, 0.35);
	color: #a3306b;
	font-size: 0.86rem;
	line-height: 1.9;
}

.tk-form__privacy {
	margin-top: 2rem;
	padding: 1.4rem 1.5rem;
	border-radius: 10px;
	background: var(--tk-surface);
	border: 1px solid var(--tk-line);
	font-size: 0.82rem;
	line-height: 1.9;
	color: var(--tk-muted);
}

.tk-form__privacy label {
	display: flex;
	align-items: flex-start;
	gap: 0.7em;
	cursor: pointer;
}

.tk-confirm-note {
	text-align: center;
	font-size: 0.88rem;
	line-height: 1.9;
	color: var(--tk-muted);
	margin-bottom: 2.2rem;
}

.tk-confirm-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.tk-confirm-table th,
.tk-confirm-table td {
	text-align: left;
	vertical-align: top;
	padding: 1.1em 1.2em;
	border-bottom: 1px solid var(--tk-line);
	line-height: 1.9;
}

.tk-confirm-table th {
	width: 11em;
	font-weight: 700;
	color: var(--tk-main);
	background: rgba(91, 45, 143, 0.04);
	white-space: nowrap;
}

@media (max-width: 600px) {
	.tk-confirm-table th,
	.tk-confirm-table td {
		display: block;
		width: auto;
	}
	.tk-confirm-table th {
		border-bottom: 0;
	}
}

/* =========================================================
   15. フッター
   ========================================================= */
.tk-footer {
	background: linear-gradient(180deg, #241243, var(--tk-base));
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.84rem;
}

.tk-footer a {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
}

.tk-footer a:hover {
	color: var(--tk-accent);
}

.tk-footer__nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.9rem 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
}

.tk-footer__nav li::before {
	content: "・";
	color: rgba(217, 184, 255, 0.5);
}

@media (max-width: 600px) {
	.tk-footer__nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.tk-copyright {
	text-align: center;
	font-family: "Oswald", sans-serif;
	font-size: 0.66rem;
	letter-spacing: 0.18em;
	color: rgba(255, 255, 255, 0.42);
	padding-top: 2.5rem;
	margin-top: 2.5rem;
	border-top: 1px solid rgba(217, 184, 255, 0.14);
}

/* =========================================================
   16. スクロールリビール
   ========================================================= */
.tk-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.9s var(--tk-ease), transform 0.9s var(--tk-ease);
	will-change: opacity, transform;
}

.tk-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* =========================================================
   17. 記事本文（単一記事）
   ========================================================= */
.tk-entry .wp-block-post-content {
	font-size: 1rem;
	line-height: 2;
}

.tk-entry h2 {
	font-size: 1.35rem;
	font-weight: 900;
	margin-top: 2.6em;
	padding-left: 0.7em;
	border-left: 4px solid var(--tk-accent);
	line-height: 1.6;
}

.tk-entry h3 {
	font-size: 1.12rem;
	font-weight: 900;
	margin-top: 2.2em;
}

/* 印刷 */
@media print {
	.tk-header,
	.tk-footer,
	.tk-contact,
	.tk-hero__scroll {
		display: none !important;
	}
}

/* =========================================================
   18. コアブロック（core/image・core/group）との整合
   ========================================================= */

/* セクション見出しの罫線はCSSで生成（ブロックは見出し＋段落の2つだけ） */
.tk-heading__en::after {
	content: "";
	display: block;
	width: 58px;
	height: 3px;
	margin: 1.1rem 0 0.85rem;
	background: linear-gradient(90deg, var(--tk-accent), var(--tk-glitter));
	border-radius: 2px;
}

.tk-heading.is-centered .tk-heading__en::after {
	margin-left: auto;
	margin-right: auto;
}

.tk-heading > * {
	margin-block-start: 0;
}

/* core/image を背景メディアとして使う場合 */
.tk-hero__media,
.tk-recruit__media,
.tk-pagehead__media {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 0;
	pointer-events: none;
}

.tk-hero__media img,
.tk-recruit__media img,
.tk-pagehead__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.tk-hero__media {
	opacity: 0.5;
	mix-blend-mode: screen;
}

.tk-recruit__media {
	opacity: 0.26;
}

.tk-pagehead__media {
	opacity: 0.3;
}

/* 通常のプレースホルダ figure */
.tk-figure,
.tk-vcard,
.tk-card__media {
	margin: 0;
}

.tk-figure > img,
.tk-vcard > img,
.tk-card__media > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 車両カードのキャプションをラベルとして重ねる */
.tk-vcard {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 12px;
	background: linear-gradient(160deg, var(--tk-light), var(--tk-base));
	box-shadow: 0 20px 46px -28px rgba(28, 15, 51, 0.8);
}

.tk-vcard figcaption,
.tk-vcard .wp-element-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 2em 0.9em 0.95em;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: #fff;
	background: linear-gradient(180deg, transparent, rgba(21, 10, 41, 0.9));
	text-align: center;
}

/* カード（グループ版） */
.tk-card {
	display: flex;
	flex-direction: column;
}

.tk-card > * {
	margin-block-start: 0;
}

.tk-card__body > * {
	margin-block-start: 0;
}

.tk-card__body > * + * {
	margin-block-start: 0.9rem;
}

/* Service セクションの背景ウォーターマーク */
.tk-section--service {
	position: relative;
	overflow: hidden;
}

.tk-section--service::after {
	content: "SERVICE";
	position: absolute;
	right: -0.05em;
	top: 8%;
	font-family: "Oswald", sans-serif;
	font-weight: 700;
	font-size: clamp(5rem, 15vw, 14rem);
	line-height: 0.8;
	color: rgba(255, 255, 255, 0.05);
	pointer-events: none;
	user-select: none;
	z-index: 0;
	white-space: nowrap;
}

.tk-section--service > * {
	position: relative;
	z-index: 1;
}

/* セクション共通 */
.tk-section {
	position: relative;
}

.tk-hero,
.tk-recruit,
.tk-pagehead {
	position: relative;
}

.tk-hero__inner,
.tk-recruit__inner,
.tk-pagehead__inner {
	position: relative;
	z-index: 2;
	width: 100%;
}

/* 画像の角丸プレースホルダ */
.tk-figure {
	border-radius: 14px;
	overflow: hidden;
	background: linear-gradient(150deg, var(--tk-light), var(--tk-base));
	box-shadow: 0 24px 60px -30px rgba(28, 15, 51, 0.75);
}

/* =========================================================
   19. レイアウト補助
   ========================================================= */
.tk-header__bar {
	min-height: 68px;
}

.tk-header__right {
	align-items: stretch;
}

.tk-header__right > .wp-block-navigation {
	align-self: center;
}

@media (max-width: 900px) {
	.tk-header__cta {
		padding-inline: 1rem;
		font-size: 0.78rem;
	}
	.tk-logo__en {
		display: none;
	}
}

/* パンくず */
.tk-breadcrumb {
	padding-inline: var(--wp--preset--spacing--30, clamp(2rem, 4vw, 3rem));
}

.tk-breadcrumb > .wp-block-group {
	max-width: 1240px;
	margin-inline: auto;
}

/* リード見出し */
.tk-lead {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 900;
	font-size: clamp(1.35rem, 3.4vw, 2rem);
	line-height: 1.65;
	letter-spacing: 0.05em;
	margin: 0 0 1.4rem;
}

.tk-lead.is-centered {
	margin-bottom: 2rem;
}

/* もっと見るリンクの段落 */
.tk-morelink {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

/* 濃色セクションの文字色 */
.tk-section.has-main-background-color,
.tk-section.has-base-background-color,
.tk-section.has-light-purple-background-color {
	color: #fff;
}

.tk-section.has-main-background-color a:not(.wp-element-button),
.tk-section.has-base-background-color a:not(.wp-element-button) {
	color: var(--tk-glitter);
}

.tk-section.has-main-background-color .tk-link,
.tk-recruit .tk-link {
	color: #fff;
}

/* 輸送ルートのタグ */
.tk-routes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.9rem 1.4rem;
	margin-top: clamp(1.75rem, 3.5vw, 2.75rem);
}

.tk-routes__label {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	color: rgba(255, 255, 255, 0.8);
}

.tk-tags.is-centered {
	justify-content: center;
	margin-bottom: 2.25rem;
}

/* 車両セクションの脚部 */
.tk-vehicle-foot {
	margin-top: clamp(1.75rem, 3.5vw, 2.75rem);
}

.tk-count {
	margin: 0;
}

.tk-makers {
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	color: var(--tk-muted);
	margin: 0.5rem 0 0;
}

.tk-link.is-right {
	margin-left: auto;
}

.tk-morelink.has-text-align-right {
	text-align: right;
}

/* フッター */
.tk-footer__address {
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	margin: 1.2rem 0 0;
	color: rgba(255, 255, 255, 0.6);
}

.tk-footer .tk-logo__ja {
	font-size: 1.1rem;
}

/* 記事メタ */
.tk-entry__meta {
	align-items: center;
	margin-bottom: 1rem;
}

.tk-entry__meta .wp-block-post-date {
	font-family: "Oswald", sans-serif;
	letter-spacing: 0.1em;
	color: var(--tk-muted);
	font-size: 0.86rem;
}

.tk-entry__meta .wp-block-post-terms a {
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	color: var(--tk-accent);
	text-decoration: none;
	border: 1px solid rgba(231, 95, 164, 0.5);
	border-radius: 999px;
	padding: 0.3em 1em;
}

/* ページネーション */
.wp-block-query-pagination {
	margin-top: 3rem;
	gap: 0.6rem;
	font-family: "Oswald", sans-serif;
	letter-spacing: 0.08em;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	text-decoration: none;
	color: var(--tk-muted);
	padding: 0.5em 0.9em;
	border-radius: 6px;
	border: 1px solid var(--tk-line);
}

.wp-block-query-pagination .current {
	background: var(--tk-accent);
	border-color: var(--tk-accent);
	color: #fff;
}

.tk-news__empty {
	text-align: center;
	color: var(--tk-muted);
	padding: 2rem 0;
}

/* 見出しの上マージン初期化（セクション内） */
.tk-section > .tk-heading {
	margin-block-start: 0;
}

/* 画像ブロックのキャプション既定を打ち消す（車両カード以外） */
.tk-figure figcaption {
	font-size: 0.74rem;
	color: var(--tk-muted);
	text-align: center;
}

/* =========================================================
   20. グリッド内のブロック余白リセット・微調整
   ========================================================= */
.tk-gallery > *,
.tk-service-grid > *,
.tk-vehicle-grid > *,
.tk-vehicle-strip > *,
.tk-numbers > *,
.tk-points > *,
.tk-flow > * {
	margin-block-start: 0;
}

.tk-card__media {
	flex: 0 0 auto;
}

.tk-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
}

.tk-card__more {
	margin-top: auto;
}

.tk-card__more a,
.tk-card a {
	text-decoration: none;
	color: inherit;
}

.tk-card__more a:hover {
	color: var(--tk-accent);
}

/* Aboutの重ね写真をやや大きく */
.tk-stack {
	min-height: 420px;
}

.tk-stack__back {
	width: 82%;
}

.tk-stack__front {
	width: 56%;
	bottom: -6%;
}

@media (max-width: 781px) {
	.tk-stack {
		min-height: 300px;
	}
}

/* フッターのリンク列を折り返さない */
.tk-footer__nav {
	grid-template-columns: repeat(3, auto);
	justify-content: end;
	column-gap: clamp(1.5rem, 3vw, 3rem);
}

@media (max-width: 781px) {
	.tk-footer__nav {
		justify-content: start;
		grid-template-columns: repeat(2, auto);
	}
}

/* 車両詳細カードの写真は縦位置で見せる */
.tk-vehicle-grid .tk-card__media {
	aspect-ratio: 4 / 3.2;
}

/* フッターリンクは折り返さない */
.tk-footer__nav {
	grid-template-columns: repeat(3, max-content);
}

.tk-footer__nav li {
	white-space: nowrap;
}

@media (max-width: 781px) {
	.tk-footer__nav {
		grid-template-columns: repeat(2, max-content);
	}
}

/* 車両カードの台数バッジ */
.tk-vcount {
	align-self: flex-start;
}
