/**
 * Komatsu Theme - Main Styles
 * ネスト禁止・:root 変数・@media (width >= 820px) は当該スタイルの直下に記載
 */

 :root {
	--color-text: #333;
	--color-titile: #397037;
	--color-bg: #f9f9f9;
	--color-border: #e0e0e0;
	--color-link: #333333;
	--color-link-hover: #2d5529;
	--color-accent: #397037;
	--font-family-base: Verdana,"游ゴシック Medium","Yu Gothic Medium",YuGothic,"游ゴシック体",sans-serif;
	--font-family-en: "游明朝",YuMincho,"ヒラギノ明朝 ProN W3","Hiragino Mincho ProN","HG明朝E","ＭＳ Ｐ明朝","ＭＳ 明朝",serif;
	--font-size-base: 16px;
	--font-size-sm: 14px;
	--font-size-xsm: 12px;
	--font-size-lg: 18px;
	--line-height-base: 1.6;
	--header-height: 64px;
	--header-height-pc: 72px;
	--container-max: 1100px;
	--spacing-unit: 8px;
	--section-padding-y: clamp(40px, 8vw, 64px);
	--section-padding-x: clamp(16px, 4vw, 24px);
	--section-gap: clamp(24px, 5vw, 40px);
	--transition-base: 0.2s ease;
	--dropdown-bg: #fff;
	--dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	--dropdown-min-width: 200px;
	--search-input-height: 36px;
	--search-input-radius: 4px;
	--sidebar-width: 280px;
	--content-sidebar-gap: 40px;
	--cta-bg-image: url("https://komatsu-coltd.co.jp/wp-content/uploads/2023/09/catalog_image.jpg");
	--cta-button-color: #397037;
	--cta-button-hover: #2d5529;
	/* 沿線タイムライン */
	--timeline-line-color: #a388ee;
	--timeline-dot-color: #738be0;
	--timeline-connector-color: #2d5a27;
	--timeline-line-width: 6px;
	--timeline-dot-size: 20px;
	--timeline-dot-offset: 17px;
	--timeline-connector-offset: 20px;
	--timeline-item-spacing-visible-bottom: 160px;
	--timeline-item-spacing-visible-top: -110px;
}

/* ブレークポイント別コンテンツ幅（モバイルは100%、タブレット720px、PC 1100px） */
@media (width >= 620px) and (width < 820px) {
	:root {
		--container-max: 720px;
	}
}
@media (width >= 820px) {
	:root {
		--container-max: 1100px;
	}
}

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

body {
	margin: 0;
	font-family: var(--font-family-base);
	font-size: var(--font-size-base);
	line-height: var(--line-height-base);
	color: var(--color-text);
	background-color: var(--color-bg);
}

a {
	color: var(--color-link);
}

a:hover,
a:focus-visible {
	color: var(--color-link-hover);
}

input,
button,
textarea,
select {
	font-family: var(--font-family-base);
}

/* reCAPTCHAバッジ（ロゴマーク）を消す */
.grecaptcha-badge { 
	visibility: hidden; 
}

.footer-cta .front-en,
.front-intro-title {
	font-family: var(--font-family-en) !important;
}

/* 共通ボタンホバーアニメーション（きらっと光るシャイン） */
.c-btn--shine {
	position: relative;
	overflow: hidden;
	background-image: linear-gradient(
		105deg,
		transparent 0%,
		transparent 30%,
		rgba(255, 255, 255, 0.28) 38%,
		rgba(255, 255, 255, 0.55) 42%,
		rgba(255, 255, 255, 0.2) 48%,
		rgba(255, 255, 255, 0.06) 58%,
		transparent 68%,
		transparent 100%
	);
	background-size: 200% 100%;
	background-position: -100% 0;
	background-repeat: no-repeat;
	transition: transform var(--transition-base), opacity var(--transition-base), background-color var(--transition-base), background-position 0.32s ease-out;
}

.c-btn--shine:hover {
	transform: scale(1.03);
	background-position: 100% 0;
}

.site-header {
	background: rgba(255, 255, 255, 0.95);
}

.site-header--contact,
body.page-contact .site-header {
	background: #F9F9F9;
}

/* =========================
   Header (mobile-first)
   ========================= */

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 12px 16px;
	min-height: var(--header-height);
}

.header-logo {
	display: block;
	line-height: 0;
}

.header-logo img {
	display: block;
	height: 36px;
	width: auto;
}

.header-nav {
	display: none;
}

.site-header.is-nav-open .header-nav {
	display: flex;
	flex-direction: column;
}

.site-header.is-nav-open .header-nav .nav-list {
	order: 1;
}

.site-header.is-nav-open .header-nav .header-search {
	order: 2;
}

.nav-list {
	display: flex;
	align-items: center;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav-item-has-dropdown {
	position: relative;
}

.nav-link-parent {
	display: inline-flex;
	align-items: center;
}

.nav-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 2;
	margin: 8px 0 0;
	min-width: var(--dropdown-min-width);
	padding: var(--spacing-unit) 0;
	list-style: none;
	background-color: var(--dropdown-bg);
	visibility: hidden;
	opacity: 0;
	transform: translateY(-4px);
	transition: visibility var(--transition-base), opacity var(--transition-base), transform var(--transition-base);
}

.nav-item-has-dropdown:hover .nav-dropdown,
.nav-item-has-dropdown:focus-within .nav-dropdown {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
}

.nav-dropdown li {
	margin: 0;
}

.nav-dropdown a {
	display: block;
	padding: 10px 16px;
	color: var(--color-link);
	text-decoration: none;
	font-size: 13px;
	white-space: nowrap;
	transition: background-color var(--transition-base), color var(--transition-base);
}

.nav-dropdown a:hover {
	background-color: #f5f5f5;
	color: var(--color-link-hover);
}

.header-search {
	margin: 0;
	padding: 0;
}

.search-form {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	max-width: 280px;
	margin: 0;
}

.search-form-label {
	display: block;
	flex: 1;
	margin: 0;
	min-width: 0;
}

.search-form-input {
	width: 100%;
	height: var(--search-input-height);
	padding: 0 12px;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
}

.search-form-input::placeholder {
	color: #999;
}

.search-form-input:focus {
	outline: none;
	border-color: var(--color-link);
}

.search-form-submit {
	height: var(--search-input-height);
	padding: 0 16px;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	background-color: var(--color-border);
	border: 1px solid var(--color-border);
	cursor: pointer;
	transition: background-color var(--transition-base);
}

.search-form-submit:hover {
	background-color: #e5e5e5;
}
@media (width >= 820px) {
	.search-form {
		max-width: 320px;
		margin-left: auto;
		margin-right: 0;
	}
}

.nav-list a {
	color: var(--color-link);
	text-decoration: none;
	font-size: var(--font-size-sm);
	transition: color var(--transition-base);
}
.nav-list a:hover {
	color: var(--color-link-hover);
}

.nav-item-contact > a {
	display: inline-block;
	padding: 10px 20px;
	color: #fff;
	background-color: var(--color-accent);
}

.nav-item-contact > a:hover {
	background-color: var(--cta-button-hover);
	color: #fff;
}

.nav-toggle {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	padding: 8px;
	background: none;
	border: none;
	cursor: pointer;
}

.nav-toggle-bar {
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--color-text);
	transition: transform var(--transition-base), opacity var(--transition-base);
}

/* Mobile menu (base) */
body.is-nav-open {
	overflow: hidden !important;
	position: fixed;
	width: 100%;
	height: 100%;
}

.site-header.is-nav-open {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	min-height: 100vh;
	min-height: 100dvh;
	z-index: 9998;
	background: #fff;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.site-header.is-nav-open .header-inner {
	flex-wrap: wrap;
	min-height: auto;
	padding-bottom: 24px;
}

.site-header.is-nav-open .header-nav {
	width: 100%;
	order: 3;
	padding-top: 20px;
	border-top: 1px solid var(--color-border);
	margin-top: 20px;
}

.site-header.is-nav-open .nav-list {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
}

.site-header.is-nav-open .nav-list > li {
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.site-header.is-nav-open .nav-list > li:last-child {
	border-bottom: none;
}

.site-header.is-nav-open .nav-list > li:not(.nav-item-contact) > a {
	padding: 14px 0;
	display: block;
	font-size: 15px;
}

.site-header.is-nav-open .nav-dropdown {
	position: static;
	visibility: visible;
	opacity: 1;
	transform: none;
	box-shadow: none;
	border: none;
	margin: 0;
	padding: 4px 0 12px 12px;
	background: rgba(0, 0, 0, 0.02);
	border-radius: 8px;
	margin-top: 4px;
}

.site-header.is-nav-open .nav-dropdown a {
	padding: 10px 8px;
	font-size: 14px;
	color: var(--color-text);
}

.site-header.is-nav-open .nav-dropdown a:hover {
	background: rgba(0, 0, 0, 0.04);
}

.site-header.is-nav-open .nav-item-contact {
	margin-top: 8px;
}

.site-header.is-nav-open .nav-item-contact > a {
	display: block;
	text-align: center;
	padding: 14px 20px;
	border-radius: 8px;
	font-weight: 700;
	background-color: var(--cta-button-color);
	color: #fff;
	transition: background-color 0.2s ease;
}

.site-header.is-nav-open .header-search {
	order: 2;
	padding-top: 24px;
	border-top: 1px solid var(--color-border);
	margin-top: 20px;
}

.site-header.is-nav-open .header-nav .nav-list {
	order: 1;
}

.site-header.is-nav-open .search-form {
	max-width: none;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	overflow: hidden;
	background: #f9f9f9;
}

.site-header.is-nav-open .search-form-input {
	border: none;
	background: transparent;
	padding-left: 14px;
}

.site-header.is-nav-open .search-form-submit {
	border-radius: 0;
}

/* Desktop */
@media (min-width: 820px) {
	.header-inner {
		min-height: var(--header-height-pc);
		padding: 16px 24px 0;
	}

	.header-logo img {
		height: 44px;
	}

	/* PCは常時ナビ表示 */
	.header-nav {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
	}

	.header-nav .header-search {
		order: -1;
		width: 100%;
		margin-bottom: 16px;
	}

	.header-nav .nav-list {
		order: 0;
	}

	.nav-toggle {
		display: none;
	}

	/* PCでは「メニュー開放」状態の全画面化を無効化 */
	body.is-nav-open {
		overflow: visible !important;
		position: static;
		width: auto;
		height: auto;
	}

	.site-header.is-nav-open {
		position: static;
		inset: auto;
		height: auto;
		min-height: 0;
		overflow: visible;
		background: rgba(255, 255, 255, 0.95);
	}

	.site-header.is-nav-open .header-inner {
		flex-wrap: nowrap;
		padding-bottom: 16px;
	}

	.site-header.is-nav-open .header-nav {
		width: auto;
		order: 0;
		padding-top: 0;
		border-top: none;
		margin-top: 0;
	}

	.site-header.is-nav-open .nav-list {
		flex-direction: row;
		align-items: center;
		gap: 24px;
	}

	.site-header.is-nav-open .nav-list > li {
		border-bottom: none;
	}

	.site-header.is-nav-open .nav-list > li:not(.nav-item-contact) > a {
		padding: 0;
		font-size: var(--font-size-sm);
	}

	.site-header.is-nav-open .nav-dropdown {
		position: absolute;
		visibility: hidden;
		opacity: 0;
		transform: translateY(-4px);
		background: var(--dropdown-bg);
		border-radius: 0;
		padding: var(--spacing-unit) 0;
	}

	.site-header.is-nav-open .header-search {
		order: -1;
		padding-top: 0;
		border-top: none;
		margin-top: 0;
	}
}

.site-main {
	min-height: 50vh;
}

/* トップ以外: 単色オーバーレイを全面に被せ、読み込み後にフェードアウト（page-reveal.js） */
.page-reveal-overlay {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background-color: var(--color-bg, #f9f9f9);
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.35s ease-out;
	will-change: opacity;
}
.page-reveal-overlay.is-fade-out {
	opacity: 0;
	pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
	.page-reveal-overlay {
		transition: none;
	}
}

.page-content-inner {
	max-width: var(--container-max);
	margin: 0 auto;
}

.page-title {
	margin: 0 0 1em;
	font-size: 1.0625rem;
	font-weight: 700;
}
@media (width >= 640px) {
	.page-title {
		font-size: 1.25rem;
	}
}
@media (width >= 820px) {
	.page-title {
		font-size: 1.5rem;
		margin-bottom: 1.25em;
	}
}

.page-body {
	line-height: var(--line-height-base);
}

.page-body p {
	margin: 0 0 1em;
}

.page-body p:last-child {
	margin-bottom: 0;
}

.content-sidebar-wrap {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 24px 16px;
}
@media (width >= 820px) {
	.content-sidebar-wrap {
		display: flex;
		gap: var(--content-sidebar-gap);
		padding: 40px 24px;
		align-items: flex-start;
	}
}

.main-content {
	min-width: 0;
	flex: 1;
}

.sidebar {
	margin-top: 32px;
}
@media (width >= 820px) {
	.sidebar {
		flex: 0 0 33.333%;
		max-width: 33.333%;
		margin-top: 0;
	}
}

.sidebar-inner {
	padding: 20px 0;
	border-top: 1px solid var(--color-border);
}
@media (width >= 820px) {
	.sidebar-inner {
		border-top: none;
		border-left: 1px solid var(--color-border);
		padding: 0 0 0 var(--content-sidebar-gap);
	}
}

.widget {
	margin-bottom: 24px;
}

.widget:last-child {
	margin-bottom: 0;
}

.widget-title {
	margin: 0 0 12px;
	padding-bottom: 10px;
	font-size: 1.125rem;
	font-weight: 700;
	position: relative;
	border-bottom: 1px solid #e5e5e5;
}

.widget-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 28%;
	height: 3px;
	background-color: var(--color-accent);
}

.sidebar-search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sidebar-search-input {
	flex: 1;
	min-width: 0;
	height: 36px;
	padding: 0 10px;
	font-size: var(--font-size-sm);
	border: 1px solid var(--color-border);
	border-radius: 4px;
}

.sidebar-search-submit {
	height: 36px;
	padding: 0 14px;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	background-color: var(--color-border);
	border: 1px solid var(--color-border);
	border-radius: 4px;
	cursor: pointer;
}

.sidebar-recent-posts,
.sidebar-categories,
.sidebar-archives {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sidebar-recent-posts li,
.sidebar-categories li,
.sidebar-archives li {
	margin: 0 0 6px;
}

.sidebar-recent-posts a {
	color: #00aeef;
	text-decoration: none;
	font-size: var(--font-size-sm);
}

.sidebar-recent-posts a:hover {
	color: #008fc4;
	text-decoration: underline;
}

.sidebar-categories li {
	margin: 0 6px 8px 0;
	display: inline-block;
}

.sidebar-categories a {
	display: inline-block;
	padding: 6px 14px;
	font-size: var(--font-size-sm);
	color: #fff;
	text-decoration: none;
	background-color: var(--color-accent);
	border-radius: 9999px;
	transition: background-color var(--transition-base);
}

.sidebar-categories a:hover {
	color: #fff;
	background-color: var(--cta-button-hover);
}

.sidebar-categories li.cat-item-all a {
	background-color: #fff;
	color: var(--color-accent);
	border: 1px solid var(--color-accent);
}

.sidebar-categories li.cat-item-all a:hover {
	background-color: rgba(57, 112, 55, 0.08);
	color: var(--cta-button-hover);
	border-color: var(--cta-button-hover);
}

.sidebar-archive-select {
	width: 100%;
	max-width: 100%;
	height: 40px;
	padding: 0 12px;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	background-color: #fff;
	border: 1px solid var(--color-border);
	border-radius: 6px;
	cursor: pointer;
}

.sidebar-archives {
	display: none;
}

.sidebar-archives a {
	color: var(--color-link);
	text-decoration: none;
	font-size: var(--font-size-sm);
}

.sidebar-archives a:hover {
	color: var(--color-link-hover);
}

.sidebar .tagcloud a {
	display: inline-block;
	margin: 0 4px 6px 0;
	padding: 2px 8px;
	font-size: var(--font-size-sm);
	color: var(--color-link);
	text-decoration: none;
	background-color: var(--color-bg);
	border-radius: 4px;
}

.sidebar .tagcloud a:hover {
	color: var(--color-link-hover);
}

.search-results-inner {
	max-width: 100%;
}

.search-results-title {
	margin: 0 0 1em;
	font-size: var(--font-size-lg);
	font-weight: 700;
}

.search-results-title .search-query {
	font-weight: 400;
	color: var(--color-link-hover);
}
@media (width >= 820px) {
	.search-results-title {
		font-size: 1.25rem;
		margin-bottom: 1.25em;
	}
}

.search-results-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.search-results-item {
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--color-border);
}

.search-results-item:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.search-results-link {
	display: block;
	color: var(--color-link);
	text-decoration: none;
	transition: color var(--transition-base);
}

.search-results-link:hover {
	color: var(--color-link-hover);
}

.search-results-item-title {
	display: block;
	font-weight: 700;
	margin-bottom: 4px;
}

.search-results-item-date {
	display: block;
	font-size: var(--font-size-sm);
	color: var(--color-link-hover);
}

.search-results-item-excerpt {
	margin-top: 8px;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
	color: var(--color-text);
}

.search-results-none {
	margin: 0;
	padding: 1em 0;
	color: var(--color-link-hover);
}

.search-results .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--color-border);
}

.search-results .nav-links a,
.search-results .nav-links span {
	display: inline-block;
	padding: 8px 12px;
	font-size: var(--font-size-sm);
	color: var(--color-link);
	text-decoration: none;
	border: 1px solid var(--color-border);
	border-radius: var(--search-input-radius);
	transition: background-color var(--transition-base), color var(--transition-base);
}

.search-results .nav-links a:hover {
	background-color: #f5f5f5;
	color: var(--color-link-hover);
}

.search-results .nav-links .current {
	background-color: var(--color-border);
	font-weight: 700;
}

/* フロントページ */

/* メインビジュアル（Splide）・モバイルファースト */
.front-hero.heroarea-cover {
	width: 100%;
	height: 65vh;
	min-height: 65vh;
	aspect-ratio: auto;
	margin-top: 0;
	padding: 0;
	background: #111;
}

.front-hero .splide,
.front-hero .splide__track,
.front-hero .splide__list,
.front-hero .splide__slide,
.front-hero .splide__slide > a,
.front-hero .splide__slide > a span {
	height: 65vh;
	min-height: 65vh;
}

.front-hero .splide__slide img {
	height: 65vh;
	min-height: 65vh;
	object-fit: cover;
}

@media (min-width: 768px) {
	.front-hero.heroarea-cover {
		height: auto;
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.front-hero .splide,
	.front-hero .splide__track,
	.front-hero .splide__list,
	.front-hero .splide__slide,
	.front-hero .splide__slide > a,
	.front-hero .splide__slide > a span,
	.front-hero .splide__slide img {
		height: 100%;
		min-height: 0;
	}
}

.front-hero .splide__slide {
	position: relative;
	overflow: hidden;
}

.front-hero .splide__slide > a {
	display: block;
	height: 100%;
	text-decoration: none;
}

.front-hero .splide__slide > a span {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.front-hero .splide__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1);
	will-change: transform;
}

@keyframes hero-zoom {
	from {
		transform: scale(1);
	}
	to {
		transform: scale(1.08);
	}
}

.front-hero .splide__slide.is-active img {
	animation: hero-zoom 6s linear both;
}

@media (prefers-reduced-motion: reduce) {
	.front-hero .splide__slide.is-active img {
		animation: none;
	}
}

.hero-img-pc {
	display: none;
}

.hero-img-sp {
	display: block;
}

@media (width >= 820px) {
	.hero-img-pc {
		display: block;
	}

	.hero-img-sp {
		display: none;
	}
}

.front-hero .splide__text {
	position: absolute;
	left: auto;
	right: 0;
	bottom: 0;
	padding: 8px 12px 16px 8px;
	color: #fff;
	pointer-events: auto; /* ホバーで背景色アニメを確実に発火させる */
	font-family: var(--font-family-en);
}

/* ヒーローテキスト：文字幅を揃え・2行目を右にずらす */
@media (width >= 768px) {
	.front-hero .splide__text .one,
	.front-hero .splide__text .two,
	.front-hero .splide__text .three {
		font-size: 16px;
		line-height: 1.4;
		letter-spacing: 0.05em;
		padding: 0;
		margin-bottom: 0;
	}
	.front-hero .splide__text .two {
		margin-left: 1.5em;
	}
}
/* メインビジュアル：既存と同じ .splide__slide:hover で one→two→three の順に背景（var(--cta-button-color)）が付く。背景はテキストの背後に */
.front-hero .splide__text .one,
.front-hero .splide__text .two,
.front-hero .splide__text .three {
	position: relative;
	z-index: 0; /* スタッキングコンテキストを作り、::before の -1 をテキストの背後に留める */
}
.front-hero .splide__text .one::before,
.front-hero .splide__text .two::before,
.front-hero .splide__text .three::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 0;
	background-color: var(--cta-button-color);
	z-index: -1; /* テキストの背後に表示 */
	transition: width 0.65s ease-out;
}
/* スライド全体またはテキストエリアにホバーで背景アニメ */
.front-hero .splide__slide:hover .splide__text .one::before,
.front-hero .splide__slide:hover .splide__text .two::before,
.front-hero .splide__slide:hover .splide__text .three::before,
.front-hero .splide__text:hover .one::before,
.front-hero .splide__text:hover .two::before,
.front-hero .splide__text:hover .three::before {
	width: 100%;
}
.front-hero .splide__slide:hover .splide__text .one::before,
.front-hero .splide__text:hover .one::before {
	transition-delay: 0s;
}
.front-hero .splide__slide:hover .splide__text .two::before,
.front-hero .splide__text:hover .two::before {
	transition-delay: 0.45s;
}
.front-hero .splide__slide:hover .splide__text .three::before,
.front-hero .splide__text:hover .three::before {
	transition-delay: 0.9s;
}

.front-hero .splide__text a {
	pointer-events: auto;
}

.splide__text-inner,
.front-hero .splide__text .inner {
	position: relative;
	max-width: var(--container-max);
	text-align: right;
}

/* メインビジュアル用 .one / .two / .three（既存HTMLに合わせたクラス名） */
.front-hero .splide__text .one,
.front-hero .splide__text .two,
.front-hero .splide__text .three {
	position: relative;
	display: inline-block;
	overflow: hidden;
	padding: 0 5px;
	margin: 0;
	font-size: var(--font-size-sm);
	line-height: 1.5;
}

.splide__text-one,
.splide__text-two,
.splide__text-three {
	position: relative;
	display: inline-block;
	overflow: hidden;
	padding: 0;
	margin: 0;
	font-size: var(--font-size-sm);
	line-height: 1.5;
}

.splide__text-one::before,
.splide__text-two::before,
.splide__text-three::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 0;
	background: #397037b0;
	z-index: -1;
}

.splide__text-one::before {
	transition: width 0.4s ease 0s;
}

.splide__text-two::before {
	transition: width 0.4s ease 0.1s;
}

.splide__text-three::before {
	transition: width 0.4s ease 0.2s;
}

/* 他スライド用（front-hero は上で個別指定済み） */
.splide__slide:hover .splide__text-one::before,
.splide__slide:hover .splide__text-two::before,
.splide__slide:hover .splide__text-three::before,
.splide__slide:focus-within .splide__text-one::before,
.splide__slide:focus-within .splide__text-two::before,
.splide__slide:focus-within .splide__text-three::before {
	width: 100%;
}

.splide__text-three:last-child {
	margin-bottom: 0;
}

.splide__text-one {
	font-size: var(--font-size-base);
}

@media (width >= 820px) {
	.front-hero .splide__text {
		padding: 10px 14px 20px 10px;
	}

	.front-hero .splide__text .one,
	.front-hero .splide__text .two,
	.front-hero .splide__text .three {
		font-size: 16px;
		margin-bottom: 0;
	}

	.splide__text-one,
	.splide__text-two,
	.splide__text-three {
		font-size: var(--font-size-base);
		margin-bottom: 8px;
	}

	.splide__text-one {
		font-size: var(--font-size-lg);
	}
}

.front-hero .splide__pagination {
	bottom: -30px;
}

.front-hero .splide__pagination__page {
	background: #ccc;
}

.front-hero .splide__pagination__page.is-active {
	background: #397037b0;
}

/* What is Komatsu? */
.front-intro {
	padding: var(--section-padding-y) var(--section-padding-x);
	padding-top: calc(var(--section-padding-y) + 30px);
	background-color: var(--color-bg);
}

.front-intro-inner {
	max-width: var(--container-max);
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
	align-items: stretch;
}
@media (width >= 820px) {
	.front-intro-inner {
		flex-direction: row;
		align-items: center;
	}
}

.front-intro-content {
	flex: 1;
	min-width: 0;
}
@media (width >= 820px) {
	.front-intro-content {
		flex: 0 1 75%;
	}
}

.front-intro-title {
	margin: 0 0 calc(var(--section-gap) * 0.75);
	font-family: var(--font-family-en) !important;
	font-size: clamp(2.2rem, 5vw, 5rem);
	font-style: normal;
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0.02em;
	color: var(--color-titile);
	text-align: center;
}
@media (width >= 820px) {
	.front-intro-title {
		text-align: left;
	}
}

.front-intro-text {
	margin: 0;
}

.front-intro-text p {
	margin: 0 0 1em;
	font-size: 15px;
	line-height: var(--line-height-base);
	color: var(--color-text);
}

.front-intro-text p:last-child {
	margin-bottom: 0;
}

.front-intro-image-wrap {
	display: none;
	overflow: hidden;
}
@media (width >= 820px) {
	.front-intro-image-wrap {
		display: block;
		flex: 0 1 25%;
		min-width: 0;
		height: 500px;
	}
}

.front-intro-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* 事業内容 */
.front-business {
	padding: var(--section-padding-y) var(--section-padding-x);
	background-color: var(--color-bg);
}

.front-business-inner {
	max-width: var(--container-max);
	margin: 0 auto;
}

.front-business-head {
	margin: 0 0 var(--section-gap);
}

.front-title {
	margin: 0;
	font-size: clamp(1.2rem, 2.2vw, 1.6rem);
	font-weight: 700;
	text-align: center;
}

.front-en {
	margin: 0;
	font-size: 0.85rem;
	text-align: center;
	opacity: 0.6;
}

.front-business-rows {
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
}

.front-business-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--section-gap);
}
@media (width >= 820px) {
	.front-business-row {
		grid-template-columns: repeat(2, 1fr);
	}

	.front-business-row--single {
		grid-template-columns: 1fr;
	}

	.front-business-row--single .front-business-card {
		max-width: 50%;
		margin: 0 auto;
	}
}

/* 事業カード（front-business-card / business-card 共通） */
.front-business-card,
.business-card {
	background-color: #fff;
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.front-business-card-link,
.business-card__link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	flex: 1;
}

.front-business-card-link:hover .front-business-card-title,
.business-card__link:hover .business-card__title {
	color: var(--color-accent);
}

.front-business-card-img,
.business-card__img {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.front-business-card-img img,
.business-card__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front-business-card-title,
.business-card__title {
	display: block;
	font-weight: 700;
	text-align: center;
	transition: color var(--transition-base);
}
.front-business-card-title {
	padding: 16px 16px 0;
	font-size: 1rem;
}

.front-business-card-desc,
.business-card__desc {
	display: block;
	padding: 12px 16px 0;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
	text-align: center;
	opacity: 0.9;
}

.front-business-card > p {
	margin: 16px 0 20px;
	padding: 0 16px;
	text-align: center;
}

.front-page-content {
	padding: var(--section-padding-y) var(--section-padding-x);
}

.front-news {
	padding: 0;
}
@media (width >= 820px) {
	.front-news {
		padding: 0;
	}
}

.front-news-inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.front-news-cover {
	min-height: 300px;
	background-color: #ffffffd6;
}

.front-news-head {
	margin: 0 0 var(--section-gap);
}

/* 新着お知らせスライダー（Splide） */
.front-news-splide {
	position: relative;
	margin: 0 0 var(--section-gap);
	padding-left: 48px;
	padding-right: 48px;
}
.front-news-splide .splide__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.front-news-splide .splide__slide {
	margin: 0;
}
.front-news-splide .front-news-item-wrap {
	height: auto;
}
/* 3列1行 */
.front-news-grid--cols3 {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--section-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (width >= 640px) {
	.front-news-grid--cols3 {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (width >= 820px) {
	.front-news-grid--cols3 {
		grid-template-columns: repeat(3, 1fr);
	}
}
.front-news-grid--cols3 .front-news-item {
	list-style: none;
	margin: 0;
}
.front-news-splide .splide__arrows {
	margin-top: 12px;
}
.front-news-splide .splide__arrow--prev {
	left: 0;
}
.front-news-splide .splide__arrow--next {
	right: 0;
}
.front-news-splide .splide__pagination,
.front-news-splide .splide__pagination--ltr {
	position: relative;
	left: auto;
	right: auto;
	bottom: auto;
	margin-top: 20px;
	margin-bottom: 0;
	display: flex;
	justify-content: center;
	gap: 8px;
}

.front-news-splide .splide__arrow {
	background: none;
}
.front-news-splide .splide__pagination__page {
	background: #ccc;
}
.front-news-splide .splide__pagination__page.is-active {
	background: var(--color-accent);
}

.front-news-grid {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 1rem;
}

.front-news-item {
	margin: 0;
}

.front-news-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.front-news-thumb {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 0 12px;
}

.front-news-thumb img {
	display: block;
	width: 200px;
	height: 200px;
	object-fit: cover;
}

.front-news-item-title {
	display: block;
	margin-top: 8px;
	font-size: var(--font-size-sm);
	line-height: 1.5;
}

.front-news-item-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
	font-size: var(--font-size-xsm);
	opacity: 0.7;
}
.front-news-item-date {
	display: inline;
	margin: 0;
	font-size: inherit;
}
.front-news-item-cat {
	display: inline;
}
.front-news-item-cat::before {
	content: "|";
	margin-right: 8px;
	opacity: 0.7;
}

.front-news-none {
	margin: 0;
	color: var(--color-link-hover);
}

.front-news-inner > div:last-child {
	margin: var(--section-gap) 0 0;
	text-align: center;
}

/* 投稿一覧・共通リスト */
.post-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.post-list-item {
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--color-border);
}

.post-list-item:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.post-list-link {
	display: block;
	color: var(--color-link);
	text-decoration: none;
	transition: color var(--transition-base);
}

.post-list-link:hover {
	color: var(--color-link-hover);
}

.post-list-item-title {
	display: block;
	font-weight: 700;
	margin-bottom: 4px;
}

.post-list-item-date {
	display: block;
	font-size: var(--font-size-sm);
	color: var(--color-link-hover);
}

.post-list-item-excerpt {
	margin-top: 8px;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
	color: var(--color-text);
}

.post-list-front .post-list-item {
	margin-bottom: 12px;
	padding-bottom: 12px;
}

.post-list-front .post-list-item:last-child {
	padding-bottom: 0;
}

/* ==========================================================================
   投稿一覧・検索結果（archive.php / home.php / search.php）共通
   - 2カラム・トップカバー・サムネ付きリスト（モバイルファースト）
   ========================================================================== */
.mainpost {
	background-color: var(--color-bg);
}

.post-archive-cover {
	background-color: #111;
	min-height: 150px;
}

.content-sidebar-wrap--archive .main-content {
	order: 1;
}

.content-sidebar-wrap--archive .sidebar {
	order: 2;
}

.mainarea .ttl {
	margin: 0 0 20px;
	padding-bottom: 10px;
	background: none;
	border: none;
	border-bottom: 3px solid #e5e5e5;
	border-radius: 0;
	font-size: 1rem;
	font-weight: 700;
	position: relative;
}
@media (width >= 640px) {
	.mainarea .ttl {
		font-size: 1.0625rem;
	}
}
@media (width >= 820px) {
	.mainarea .ttl {
		font-size: 1.125rem;
	}
}

.mainarea .ttl::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 28%;
	height: 3px;
	background-color: var(--color-accent);
}

.mainarea .ttl span {
	display: inline-flex;
	align-items: center;
}

/* Material Symbols（アイコン） */
.material-symbols-outlined {
	font-family: "Material Symbols Outlined", sans-serif;
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
	flex-shrink: 0;
	vertical-align: middle;
	line-height: 1;
}

.material-symbols-outlined.ttl-icon {
	font-size: 22px;
	margin-right: 12px;
}

.material-symbols-outlined.icon-size-sm {
	font-size: 16px;
}

/* 投稿一覧・リストブロック（サムネ＋テキスト） */
.post-archive .list {
	margin: 0 0 24px;
	padding: 0;
}

.post-archive .list:last-of-type {
	margin-bottom: 0;
}

/* article直下の1本リンク：ブロック全体をクリック可能・hoverで背景 */
.post-archive .list > .post_links,
.single-related__list .list > .post_links {
	display: block;
	color: inherit;
	border-radius: 8px;
	padding: 4px 0;
	transition: background-color var(--transition-base);
}

.post-archive .list > .post_links:hover,
.single-related__list .list > .post_links:hover {
	background-color: #F7F7F7;
}

.post_links {
	display: block;
	color: #00aeef;
	text-decoration: none;
	transition: color var(--transition-base);
}

.post_links:hover {
	color: #008fc4;
}

.post_links--thumb {
	display: block;
	line-height: 0;
}

.list-title a.post_links:hover {
	text-decoration: underline;
}

.list-block {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}

.post_thumb {
	position: relative;
	flex-shrink: 0;
	width: 120px;
	aspect-ratio: 3 / 2;
	background-color: var(--color-border);
	background-size: cover;
	background-position: center;
}

.post_thumb span {
	display: block;
	width: 100%;
	height: 100%;
}
@media (width >= 820px) {
	.post_thumb {
		width: 200px;
	}
}

.list-text {
	flex: 1;
	min-width: 0;
}

.post_meta-inline {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}

.post_meta-inline .post_time,
.post_meta-inline .post_cat {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 6px;
	margin: 0;
	font-size: var(--font-size-xsm);
	color: #777;
}

.post_meta-inline .post_cat {
	display: inline-flex;
}

@media (width >= 820px) {
	.post_meta-inline {
		flex-direction: row;
		align-items: center;
		gap: 8px 12px;
	}
	.post_meta-inline .post_time,
	.post_meta-inline .post_cat {
		margin: 0 12px 0 0;
		font-size: var(--font-size-sm);
	}
	.post_meta-inline .post_cat {
		display: block;
	}
}

.post_time .material-symbols-outlined {
	color: #777;
}

.post_cat .material-symbols-outlined {
	margin-right: 0;
}

@media (width >= 820px) {
	.post_cat .material-symbols-outlined {
		margin-right: 5px;
	}
}

.post_cat a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 10px 2px 0;
	font-size: var(--font-size-sm);
	text-decoration: none;
	border-radius: 6px;
}

.list-text .post_cat-link,
.list-text .post_cat-link:hover,
.list-text .post_cat-link:focus {
	text-decoration: none;
	font-size: var(--font-size-sm);
}

.post_cat a:hover,
.post_cat a:focus {
	color: #fff;
	background-color: var(--cta-button-hover);
	text-decoration: none;
}

.list-title {
	font-size: var(--font-size-sm);
	margin: 8px 0 0;
	font-weight: 400;
	line-height: 1.4;
	color: #00aeef;
}

.post-archive .list-title {
	margin-top: 6px;
}

@media (width >= 820px) {
	.post-archive .list-title {
		font-size: var(--font-size-base);
	}
}


/* 投稿一覧（お知らせアーカイブ） */
.post-archive-inner {
	max-width: 100%;
}

.post-archive-title {
	margin: 0 0 1em;
	font-size: var(--font-size-lg);
	font-weight: 700;
}
@media (width >= 820px) {
	.post-archive-title {
		font-size: 1.25rem;
		margin-bottom: 1.25em;
	}
}

.post-archive-none {
	margin: 0;
	padding: 1em 0;
	color: var(--color-link-hover);
}

.post-archive .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--color-border);
}

.post-archive .nav-links a,
.post-archive .nav-links span {
	display: inline-block;
	padding: 8px 14px;
	font-size: var(--font-size-sm);
	color: var(--color-link);
	text-decoration: none;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	transition: background-color var(--transition-base), color var(--transition-base);
}

.post-archive .nav-links a:hover {
	background-color: #f0f0f0;
	color: var(--color-link-hover);
}

.post-archive .nav-links .current {
	background-color: #e8e8e8;
	color: var(--color-text);
	font-weight: 700;
	border-color: #ddd;
}

/* ==========================================================================
   投稿詳細（single.php）※ モバイルファースト
   ========================================================================== */
.single-post {
	max-width: 100%;
}

.single-breadcrumb {
	margin-top: 6px;
	margin-bottom: 10px;
	border-bottom: 3px solid rgba(119, 119, 119, 0.1);
}

@media (width >= 820px) {
	.single-breadcrumb {
		margin-top: 8px;
		margin-bottom: 12px;
	}
}

.single-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0 0 10px;
	list-style: none;
	font-size: var(--font-size-sm);
	color: var(--color-text);
}

.single-breadcrumb__list li + li::before {
	content: ">";
	margin: 0 8px;
	color: var(--color-border);
}

.single-breadcrumb__list a {
	color: #00aeef;
	text-decoration: none;
}

.single-breadcrumb__list a:hover {
	color: #008fc4;
}

.single-breadcrumb__current {
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.single-post-header {
	margin-bottom: 1.25em;
}

@media (width >= 820px) {
	.single-post-header {
		margin-bottom: 1.5em;
	}
}

.single-post-title {
	margin: 0 0 0.35em;
	font-size: var(--font-size-lg);
	font-weight: 700;
	line-height: 1.4;
}

@media (width >= 820px) {
	.single-post-title {
		margin-bottom: 0.4em;
		font-size: 1.5rem;
	}
}

.single-post-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	margin-top: 0;
	font-size: var(--font-size-sm);
	color: #777;
}

@media (width >= 820px) {
	.single-post-meta {
		gap: 16px 24px;
	}
}

.single-post-meta__date,
.single-post-meta__cat,
.single-post-meta__tags {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.single-post-meta .material-symbols-outlined {
	margin-right: 2px;
	color: inherit;
}

.single-post-meta__cat-label {
	font-size: var(--font-size-sm);
	text-decoration: none;
	color: #00aeef;
}

.single-post-meta__cat-label:hover {
	color: #008fc4;
	text-decoration: underline;
}

.single-post-meta__cat-list {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
}

.single-post-meta__cat-sep {
	color: #777;
	margin: 0 6px;
}

.single-post-body {
	line-height: var(--line-height-base);
}

.single-post-body p {
	margin: 0 0 1.25em;
}

.single-post-body p:last-child {
	margin-bottom: 0;
}

.single-post-body img {
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
	margin: 1.25em 0;
}

.single-post-body img:first-child {
	margin-top: 0;
}

@media (width >= 820px) {
	.single-post-body img {
		margin: 1.5em 0;
		width: auto;
	}
}

.single-post-body h2 {
	margin: 1.75em 0 0.5em;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.4;
}

.single-post-body h2:first-child {
	margin-top: 0;
}

.single-post-body h3 {
	margin: 1.5em 0 0.4em;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.4;
}

.single-post-body h4{
    margin: 0 0 0.35em;
    font-size: var(--font-size-base);
    font-weight: 700;
    line-height: 1.4;	
}

@media (width >= 820px) {
	.single-post-body h4{
        margin-bottom: 0.4em;
        font-size: 1.3rem;	
	}
}

.single-post-body h3:first-child {
	margin-top: 0;
}
.single-post-body b a{
	color: var(--color-accent);
}
.single-post-body ul,
.single-post-body ol {
	margin: 0 0 1.25em 1.5em;
	padding: 0;
}

.single-post-body li {
	margin: 0 0 0.35em;
}

.single-post-body blockquote {
	margin: 1.5em 0;
	padding: 0.75em 1em 0.75em 1.25em;
	border-left: 4px solid var(--color-border);
	background-color: var(--color-bg);
}

.single-post-body figure {
	margin: 1.25em 0;
	text-align: center;
}

.single-post-body figure:first-child,
.single-post-body figure:first-child img {
	margin-top: 0;
}

.single-post-body figure img {
	display: block;
	margin: 0 auto;
}

.single-post-body figcaption {
	display: block!important;
	margin-top: 0.5em;
	padding: 0;
	font-size: var(--font-size-sm);
	text-align: center;
	line-height: 1.5;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.single-post-body figcaption a {
	color: var(--color-accent);
}

@media (width >= 820px) {
	.single-post-body figure {
		margin: 1.5em 0;
	}
}

/* 本文・画像は左右余白0。モバイルでは配置クラスを無効化 */
.single-post-body p,
.single-post-body figure,
.single-post-body img {
	margin-left: 0;
	margin-right: 0;
}

.single-post-body .aligncenter,
.single-post-body .alignleft,
.single-post-body .alignright,
.single-post-body figure.aligncenter,
.single-post-body figure.alignleft,
.single-post-body figure.alignright {
	display: block;
	margin-left: 0;
	margin-right: 0;
	float: none;
	max-width: 100%;
}

@media (width >= 820px) {
	.single-post-body .aligncenter,
	.single-post-body figure.aligncenter {
		margin-left: auto;
		margin-right: auto;
	}
	.single-post-body .alignleft,
	.single-post-body figure.alignleft {
		margin-right: 1.5em;
		float: left;
	}
	.single-post-body .alignright,
	.single-post-body figure.alignright {
		margin-left: 1.5em;
		float: right;
	}
}

.single-post-tags {
	margin-top: 2em;
	padding-top: 1.25em;
	border-top: 1px solid var(--color-border);
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.single-post-tags__tag {
	display: inline-block;
	padding: .5em 1em;
	text-align: center;
	border: 1px solid rgba(119, 119, 119, .1);
	margin: 0 var(--spacing-unit) var(--spacing-unit) 0;
	color: #00aeef;
	text-decoration: none;
	transition: all var(--transition-base);
}

.single-post-tags__tag:hover {
	color: #008fc4;
}

.single-post-body iframe {
	max-width: 100%;
	margin: 1.5em 0;
}

.single-post-body .gde2024list {
	margin: 1.5em 0;
}

.single-post-footer {
	margin-top: 2em;
	padding-top: 1.5em;
	border-top: 1px solid var(--color-border);
}

.single-post-pagination {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.single-post-pagination__prev,
.single-post-pagination__next {
	flex: 1;
	min-width: 0;
}

.single-post-pagination__next {
	text-align: right;
}

.single-post-pagination a {
	display: inline-block;
	padding: .5em 1em;
	text-align: center;
	border: 1px solid rgba(119, 119, 119, .1);
	color: #00aeef;
	text-decoration: none;
	transition: all var(--transition-base);
}

.single-post-pagination a:hover {
	color: #008fc4;
}

/* é–¢é€£è¨˜äº‹ */
.single-related {
	margin-top: 2.5em;
	padding-top: 1.5em;
	border-top: 1px solid var(--color-border);
}

.single-related__ttl {
	display: inline-flex;
	align-items: center;
	margin: 0 0 20px;
	padding-bottom: 10px;
	font-size: 1.125rem;
	font-weight: 700;
	position: relative;
	border-bottom: 1px solid #e5e5e5;
}

.single-related__ttl::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 28%;
	height: 3px;
	background-color: var(--color-accent);
}

.single-related__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.single-related__list .list {
	margin: 0 0 20px;
	padding: 0;
}

.single-related__list .list:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Footer (mobile-first)
   ========================================================================== */

/* フッター CTA */
.footer-cta {
	position: relative;
	padding: 40px 16px 48px;
	background-color: #444;
	background-image: var(--cta-bg-image);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.footer-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
}
.footer-cta-inner {
	position: relative;
	z-index: 1;
	max-width: var(--container-max);
	margin: 0 auto;
	text-align: center;
	color: #fff;
}
.footer-cta .front-title {
	font-size: var(--font-size-lg);
	font-weight: 700;
}
.footer-cta .front-en {
	margin: 0 0 20px;
	font-size: 0.85rem;
	letter-spacing: 0.1em;
	text-align: center;
	color: #fff;
	opacity: 0.95;
}
.footer-cta-text {
	margin: 0 0 24px;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
	opacity: 0.95;
}
.footer-cta-text br {
	display: block;
}

/* フッター 受注・認証ロゴ */
.footer-awards {
	padding: 40px 16px;
	background-color: #fff;
}
.footer-awards-img-pc {
	display: none;
}
.footer-awards-img-sp {
	display: block;
}
.footer-awards-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px 16px;
	max-width: 480px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}
.footer-awards-item {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.footer-awards-item a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60px;
	padding: 12px;
	text-decoration: none;
	transition: opacity var(--transition-base);
}
.footer-awards-item a:hover {
	opacity: 0.8;
}
.footer-awards-item img {
	max-width: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

/* フッター 会社情報・ナビゲーション */
.site-footer {
	padding: 38px 16px;
	background-color: #555;
	color: #fff;
	--color-link: #fff;
	--color-link-hover: rgba(255, 255, 255, 0.8);
}
.footer-inner {
	display: grid;
	gap: 40px;
	max-width: var(--container-max);
	margin: 0 auto;
}
.footer-company-title,
.footer-nav-title {
	position: relative;
	margin: 0 0 16px;
	padding-bottom: 0.6em;
	font-size: 0.9375rem;
	font-weight: 700;
	border-bottom: 3px solid #dddddd;
}
.footer-company-title::after,
.footer-nav-title::after {
	content: "";
	position: absolute;
	bottom: -3px;
	left: 0;
	width: 70px;
	height: 3px;
	background-color: var(--color-accent);
}
.footer-company-title span,
.footer-nav-title span {
	position: relative;
	display: inline-block;
	padding-bottom: 0;
	margin-bottom: 0;
}
.footer-logo {
	margin: 0 0 16px;
}
.footer-logo img {
	display: block;
	height: 40px;
	width: auto;
	object-fit: contain;
	filter: brightness(0) invert(1);
}
.footer-address {
	margin: 0 0 16px;
	font-style: normal;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
}
.footer-info-list {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 4px 16px;
	margin: 0;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
}
.footer-info-list dt {
	margin: 0;
	font-weight: 600;
}
.footer-info-list dd {
	margin: 0;
}
.footer-nav-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px 10px;
}
.footer-nav-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.footer-nav-list li {
	margin: 0 0 8px;
}
.footer-nav-list a {
	text-decoration: none;
	transition: opacity var(--transition-base);
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
}
.footer-nav-list a:hover {
	opacity: 0.8;
}
.footer-nav-parent {
	color: #fff;
}
.footer-nav-children {
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
}
.footer-nav-children li {
	margin: 0 0 6px;
	padding-left: 0.75em;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
}
.footer-nav-children li:before {
	content: "-";
	margin-right: 0.5em;
}
.footer-nav-children li:last-child {
	margin-bottom: 0;
}

/* フッター下部（note・コピーライト） */
.copy {
	padding: 16px 16px 14px;
	background-color: #fff;
	color: #333;
	text-align: center;
	font-size: var(--font-size-xsm);
}
.copy-sns {
	margin: 0 0 0.5em 0;
}
.copy-sns a {
	display: inline-block;
	text-decoration: none;
	transition: opacity var(--transition-base);
}
.copy-sns a:hover {
	opacity: 0.85;
}
.copy-sns img {
	display: block;
	width: 48px;
	height: 19px;
	object-fit: contain;
}
.copy a {
	color: #333;
	text-decoration: none;
}
.copy a:hover {
	text-decoration: underline;
}
.copy p {
	margin: 0;
}
.copy p + p {
	margin-top: 0.25em;
}

/* ページトップへボタン（角丸四角・白い上向き矢印） */
.pagetop {
	position: fixed;
	right: 16px;
	bottom: 14px;
	z-index: 100;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: none;
	border-radius: 8px;
	background-color: #68895f;
	color: #fff;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background-color 0.2s ease;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.pagetop:hover {
	background-color: #5a7752;
}
.pagetop.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.pagetop::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 10px;
	width: 2px;
	height: 17px;
	background-color: currentColor;
	transform: translateX(-50%);
}
.pagetop::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 27px;
	width: 0;
	height: 0;
	border-left: 6px solid transparent;
	border-right: 6px solid transparent;
	border-bottom: 8px solid currentColor;
	transform: translateX(-50%);
}

/* Tablet+ */
@media (min-width: 640px) {
	.footer-company-title,
	.footer-nav-title {
		font-size: 1rem;
	}
}

/* Desktop */
@media (min-width: 820px) {
	.footer-cta {
		padding: 56px 24px 64px;
	}
	.footer-cta .front-title {
		font-size: 1.5rem;
	}
	.footer-cta .front-en {
		margin-bottom: 24px;
	}
	.footer-cta-text {
		font-size: var(--font-size-base);
		margin-bottom: 28px;
	}

	.footer-awards-img-pc {
		display: block;
	}
	.footer-awards-img-sp {
		display: none;
	}
	.footer-awards-list {
		max-width: var(--container-max);
		display: flex;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: center;
		gap: 24px;
	}
	.footer-awards-item,
	.footer-awards-item a {
		min-height: 48px;
		padding: 0 8px;
	}

	.footer-inner {
		grid-template-columns: 1fr 1fr;
		gap: 48px;
	}
	.footer-company-title,
	.footer-nav-title {
		margin-bottom: 20px;
		font-size: var(--font-size-lg);
	}
}

/* ========== 会社案内ページ (page-company) ========== */
.u-br-sp {
	display: inline;
}
@media (width >= 820px) {
	.u-br-sp {
		display: none;
	}
}

.page-content--company .page-content-inner {
	max-width: none;
	padding: 0;
}

/* トップカバー共通（会社案内・お知らせ・各事業部）モバイルファースト */
.company-topcover,
.business-topcover,
.sports-topcover,
.interior-topcover,
.ec-topcover,
.dx-topcover,
.secondhand-topcover,
.post-archive-cover {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px !important;
	height: 150px !important;
	overflow: hidden;
}

@media (width >= 820px) {
	.company-topcover,
	.business-topcover,
	.sports-topcover,
	.interior-topcover,
	.ec-topcover,
	.dx-topcover,
	.secondhand-topcover,
	.post-archive-cover {
		min-height: 250px !important;
		height: auto !important;
		overflow: hidden;
	}
}

.company-topcover__img,
.business-topcover__img,
.sports-topcover__img,
.interior-topcover__img,
.ec-topcover__img,
.dx-topcover__img,
.secondhand-topcover__img,
.post-archive-cover__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.company-topcover__img { object-position: 50% 38%; }
.business-topcover__img { object-position: 42% 56%; }
.sports-topcover__img { object-position: 38% 58%; }
.interior-topcover__img { object-position: 56% 80%; }
.dx-topcover__img { object-position: 55% 92%; }
.secondhand-topcover__img { object-position: 70% 21%; }

.company-topcover__overlay,
.business-topcover__overlay,
.sports-topcover__overlay,
.interior-topcover__overlay,
.ec-topcover__overlay,
.dx-topcover__overlay,
.secondhand-topcover__overlay,
.post-archive-cover__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.35);
	z-index: 1;
}

.company-topcover__overlay { background: rgba(0, 0, 0, 0.3); }
.sports-topcover__overlay { background: rgba(0, 0, 0, 0.1); }
.interior-topcover__overlay { background: rgba(0, 0, 0, 0.2); }

.company-topcover__inner,
.business-topcover__inner,
.sports-topcover__inner,
.interior-topcover__inner,
.ec-topcover__inner,
.dx-topcover__inner,
.secondhand-topcover__inner,
.post-archive-cover__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	display: grid;
	place-content: center;
	text-align: center;
	padding: 24px 16px;
	color: #fff;
}

.company-topcover__title,
.business-topcover__title,
.sports-topcover__title,
.interior-topcover__title,
.ec-topcover__title,
.dx-topcover__title,
.secondhand-topcover__title,
.post-archive-cover__title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

@media (width >= 820px) {
	.company-topcover__title,
	.business-topcover__title,
	.sports-topcover__title,
	.interior-topcover__title,
	.ec-topcover__title,
	.dx-topcover__title,
	.secondhand-topcover__title,
	.post-archive-cover__title {
		font-size: 2rem;
	}
}

.company-topcover__subtitle,
.business-topcover__subtitle,
.sports-topcover__subtitle,
.interior-topcover__subtitle,
.ec-topcover__subtitle,
.dx-topcover__subtitle,
.secondhand-topcover__subtitle,
.post-archive-cover__subtitle {
	margin: 0;
	font-size: var(--font-size-sm);
	font-weight: 700;
	letter-spacing: 0.1em;
}

.company-nav {
	padding: 40px 24px;
	max-width: var(--container-max);
	margin: 0 auto;
}

.company-nav__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px 16px;
	justify-content: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
}

.company-nav__item {
	width: 100%;
}

.company-nav__link {
	width: 100%;
}

@media (width >= 620px) {
	.company-nav__list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 28px 32px;
	}

	.company-nav__item {
		width: auto;
	}

	.company-nav__link {
		width: auto;
	}
}

/* ==========================================================================
   プライバシーポリシー / SECURITY ACTION 共通（page-privacy.php / page-security-action.php）
   - どちらも「背景 → page-content-inner（左右余白） → 白い箱」の構造
   - 本文は class 依存をやめ、要素セレクタで最小限に
   ========================================================================== */
.page-content--privacy,
.page-content--security-action {
	background-color: #fff;
}
.page-content--privacy .page-content-inner,
.page-content--security-action .page-content-inner {
	padding: 0 16px;
}

@media (width >= 620px) {
	.page-content--privacy .page-content-inner,
	.page-content--security-action .page-content-inner {
		padding: 0 24px;
	}
}

.privacy__inner,
.security-action__inner {
	background-color: #fff;
	padding: 28px 20px 40px;
}

@media (width >= 620px) {
	.privacy__inner,
	.security-action__inner {
		padding: 56px 56px 72px;
	}
}

.privacy__inner > * + *,
.security-action__inner > * + * {
	margin-top: 16px;
}

.privacy__inner p,
.security-action__inner p {
	margin: 0;
	line-height: 2;
	font-size: 15px;
	color: var(--color-text);
}

/* ==========================================================================
   SECURITY ACTION 固有（page-security-action.php）
   ========================================================================== */
/* 共通：二重線タイトル（sports-intro-heading の形・左寄せ） */
.section-ttl-doubleline {
	position: relative;
	display: block;
	width: 100%;
	text-align: center;
	font-size: 1.35rem;
	font-weight: 700;
	margin: 0 0 1.25em;
	padding-bottom: .5em;
	color: var(--color-text);
	border-bottom: 3px solid #dddddd;
}
@media (width >= 640px) {
	.section-ttl-doubleline {
		font-size: 1.5rem;
	}
}
@media (width >= 820px) {
	.section-ttl-doubleline {
		font-size: 1.65rem;
	}
}
.section-ttl-doubleline::after {
	content: '';
	position: absolute;
	bottom: -3px;
	left: 50%;
	transform: translateX(-50%);
	width: 70px;
	height: 3px;
	background-color: var(--color-accent);
}

/* 導入ブロックのタイトルはフォントサイズのみ 21px に */
.sports-intro__heading.section-ttl-doubleline,
.interior-intro__heading.section-ttl-doubleline,
.ec-intro__heading.section-ttl-doubleline,
.dx-intro__heading.section-ttl-doubleline,
.secondhand-intro__heading.section-ttl-doubleline {
	text-align: left;
	font-size: 18px;
	margin-bottom: 1.75em;
}
@media (width >= 640px) {
	.sports-intro__heading.section-ttl-doubleline,
	.interior-intro__heading.section-ttl-doubleline,
	.ec-intro__heading.section-ttl-doubleline,
	.dx-intro__heading.section-ttl-doubleline,
	.secondhand-intro__heading.section-ttl-doubleline {
		font-size: 20px;
	}
}
@media (width >= 820px) {
	.sports-intro__heading.section-ttl-doubleline,
	.interior-intro__heading.section-ttl-doubleline,
	.ec-intro__heading.section-ttl-doubleline,
	.dx-intro__heading.section-ttl-doubleline,
	.secondhand-intro__heading.section-ttl-doubleline {
		font-size: 21px;
	}
}
.sports-intro__heading.section-ttl-doubleline::after,
.interior-intro__heading.section-ttl-doubleline::after,
.ec-intro__heading.section-ttl-doubleline::after,
.dx-intro__heading.section-ttl-doubleline::after,
.secondhand-intro__heading.section-ttl-doubleline::after {
	left: 0;
	transform: none;
}

/* 導入以外の section-ttl-doubleline はフォントサイズをやや大きく・左寄せで sports-intro-heading の形に */
.sports-catalog__title.section-ttl-doubleline,
.sports-flow__title.section-ttl-doubleline,
.sports-cases__title.section-ttl-doubleline,
.interior-catalog__title.section-ttl-doubleline,
.interior-flow__title.section-ttl-doubleline,
.interior-cases__title.section-ttl-doubleline,
.ec-business__title.section-ttl-doubleline,
.ec-shops__title.section-ttl-doubleline,
.dx-business__title.section-ttl-doubleline,
.dx-app__title.section-ttl-doubleline,
.dx-awards__title.section-ttl-doubleline,
.dx-lecture__title.section-ttl-doubleline,
.secondhand-business__title.section-ttl-doubleline,
.secondhand-shops__title.section-ttl-doubleline,
.secondhand-subsidy__title.section-ttl-doubleline,
.company-supplier-ttl.section-ttl-doubleline {
	text-align: center;
	font-size: 1.35rem;
}
@media (width >= 640px) {
	.sports-catalog__title.section-ttl-doubleline,
	.sports-flow__title.section-ttl-doubleline,
	.sports-cases__title.section-ttl-doubleline,
	.interior-catalog__title.section-ttl-doubleline,
	.interior-flow__title.section-ttl-doubleline,
	.interior-cases__title.section-ttl-doubleline,
	.ec-business__title.section-ttl-doubleline,
	.ec-shops__title.section-ttl-doubleline,
	.dx-business__title.section-ttl-doubleline,
	.dx-app__title.section-ttl-doubleline,
	.dx-awards__title.section-ttl-doubleline,
	.dx-lecture__title.section-ttl-doubleline,
	.secondhand-business__title.section-ttl-doubleline,
	.secondhand-shops__title.section-ttl-doubleline,
	.secondhand-subsidy__title.section-ttl-doubleline,
	.company-supplier-ttl.section-ttl-doubleline {
		font-size: 1.5rem;
	}
}
@media (width >= 820px) {
	.sports-catalog__title.section-ttl-doubleline,
	.sports-flow__title.section-ttl-doubleline,
	.sports-cases__title.section-ttl-doubleline,
	.interior-catalog__title.section-ttl-doubleline,
	.interior-flow__title.section-ttl-doubleline,
	.interior-cases__title.section-ttl-doubleline,
	.ec-business__title.section-ttl-doubleline,
	.ec-shops__title.section-ttl-doubleline,
	.dx-business__title.section-ttl-doubleline,
	.dx-app__title.section-ttl-doubleline,
	.dx-awards__title.section-ttl-doubleline,
	.dx-lecture__title.section-ttl-doubleline,
	.secondhand-business__title.section-ttl-doubleline,
	.secondhand-shops__title.section-ttl-doubleline,
	.secondhand-subsidy__title.section-ttl-doubleline,
	.company-supplier-ttl.section-ttl-doubleline {
		font-size: 1.65rem;
	}
}
.section-ttl-doubleline span {
	position: relative;
	display: inline-block;
}

/* 運営サイト：左右にグラデーションライン（ec-shops / secondhand-shops） */
.ec-shops__title.section-ttl-doubleline,
.secondhand-shops__title.section-ttl-doubleline {
	display: flex;
	align-items: center;
	gap: 1.5em;
	padding-bottom: 0;
	margin: 0 0 var(--section-gap);
	font-size: 1.35rem;
}

.ec-shops__title.section-ttl-doubleline::before,
.secondhand-shops__title.section-ttl-doubleline::before {
	content: "";
	flex: 1;
	height: 2px;
	position: static;
	background: linear-gradient(to right, transparent, var(--color-accent));
}

.ec-shops__title.section-ttl-doubleline::after,
.secondhand-shops__title.section-ttl-doubleline::after {
	content: "";
	flex: 1;
	height: 2px;
	position: static;
	background: linear-gradient(to left, transparent, var(--color-accent));
}

.ec-shops__title.section-ttl-doubleline span,
.secondhand-shops__title.section-ttl-doubleline span {
	border-bottom: none;
	padding-bottom: 0;
}

/* 中小企業等事業再構築促進事業：見出しの上下にライン */
.secondhand-subsidy__title.section-ttl-doubleline {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-bottom: 0;
	margin-bottom: 1.25em;
	font-size: 1.05rem;
}

.secondhand-subsidy__title.section-ttl-doubleline::before {
	content: "";
	width: 90%;
	max-width: 100%;
	height: 1px;
	position: static;
	background-color: var(--color-text);
	margin-bottom: 0.75em;
}

.secondhand-subsidy__title.section-ttl-doubleline::after {
	content: "";
	width: 90%;
	max-width: 100%;
	height: 1px;
	position: static;
	background-color: var(--color-text);
	margin-top: 0.75em;
}

.secondhand-subsidy__title.section-ttl-doubleline span {
	border-bottom: none;
	padding-bottom: 0;
}


/* 大見出し（1〜6） */
.privacy__heading {
	margin-top: 44px;
	padding: 14px 0;
	font-size: 1.15rem;
	font-weight: 700;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.privacy__heading span {
	display: inline-block;
}

/* 小見出し */
.privacy__subheading {
	margin-top: 28px;
	font-size: 1rem;
	font-weight: 700;
}

/* リスト（ol/ul） */
.privacy__inner ol {
	margin: 0;
	padding-left: 1.25em;
	line-height: 2;
	font-size: 15px;
}

.privacy__inner ol > li + li {
	margin-top: 10px;
}

.privacy__inner ol ol,
.privacy__inner ol ul {
	margin: 10px 0 0;
	padding-left: 1.2em;
}

.privacy__inner ol li,
.privacy__inner ol ul li {
	color: var(--color-text);
}

/* 縦名（右寄せ） */
.privacy__signature {
	text-align: right;
}

/* ==========================================================================
   SECURITY ACTION（page-security-action.php）
   ========================================================================== */

/* 640px以上でタイトル内の改行をやめて1行表示 */
@media (width >= 640px) {
	.security-action__title br {
		display: none;
	}
}

.security-action__logo img {
	display: block;
	width: 179px;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

/* ロゴ下の余白、本文の段落間を調整 */
.security-action__logo {
	margin-bottom: 28px;
}

/* ==========================================================================
   äº‹æ¥­å†…å®¹ï¼ˆpage-business.phpï¼‰
   ========================================================================== */

.page-content--business {
	background-color: #f9f9f9;
}

.business-message {
	background-color: #fff;
}

.business-message__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.business-cards__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

@media (width < 620px) {
	.business-message__inner,
	.business-cards__inner {
		padding: var(--section-padding-y) var(--section-padding-x);
	}
}

.business-message__en {
	margin: 0;
	text-align: center;
	font-size: 24px;
	font-weight: 600;
	font-family: var(--font-family-en);
}

@media (max-width: 819px) {
	.business-message__en {
		font-size: 18px;
	}
}

.business-message__jp {
	margin: 24px 0 0;
	text-align: center;
	font-weight: 700;
}

.business-message-heading {
	font-family: var(--font-family-en);
}

.business-message__text {
	width: 60%;
	margin: var(--section-gap) auto 0;
	text-align: center;
	font-size: 15px;
	line-height: 2;
}

.business-message__text p {
	margin: 0;
}

.business-message__text p + p {
	margin-top: 14px;
}

@media (width < 820px) {
	.business-message__text {
		width: 100%;
	}
}

.business-cards {
	background-color: var(--color-bg);
}

.business-cards__grid {
	display: grid;
	gap: var(--section-gap);
	grid-template-columns: 1fr;
}

@media (width >= 820px) {
	.business-cards__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.business-cards__single {
	margin-top: var(--section-gap);
	display: grid;
	place-items: center;
}

/* business-card は front-business-card と共通化済み（上の共通ブロック参照） */
.business-card__title {
	padding: 18px 16px 6px;
	font-size: 1.125rem;
	color: var(--color-text);
}

.business-card__desc {
	color: var(--color-text);
}

.business-card__btn {
	display: inline-block;
	margin: 20px auto;
	padding: 10px 18px;
	font-size: 0.95rem;
	font-weight: 700;
	color: #fff;
	background-color: var(--color-accent);
	border-radius: 999px;
	text-align: center;
	align-self: center;
}

.business-card__link:hover .business-card__btn {
	opacity: 0.92;
	color: #fff;
}

@media (width >= 820px) {
	.business-card--single {
		max-width: 50%;
	}
}

.security-action__actions {
	margin-top: 32px;
	display: flex;
	justify-content: center;
}

/* ==========================================================================
   共通ボタン .c-btn（丸・アクセント塗りがデフォルト）
   - 違う色だけ .c-btn--cta、角丸だけ .c-btn--rounded、枠線だけ .c-btn--outline
   ========================================================================== */

.c-btn {
	text-align: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	font-weight: 700;
	text-decoration: none;
	border: 0;
	border-radius: 999px;
	background-color: var(--color-accent);
	color: #fff;
	transition: opacity var(--transition-base), background-color var(--transition-base);
}

.c-btn:hover,
.contact-form__send button:hover {
	opacity: 0.92;
	color: #fff;
}

/* 色だけ変える（フッターCTAなど） */
.c-btn--cta {
	background-color: var(--cta-button-color);
	color: #fff;
}

.c-btn--cta:hover {
	background-color: var(--cta-button-hover);
	color: #fff;
}

/* 角丸（会社案内アクセスなど） */
.c-btn--rounded {
	border-radius: 6px;
}

/* 枠線のみ（お問い合わせフォームの戻る） */
.c-btn--outline {
	background: transparent;
	color: var(--color-accent);
	border: 1px solid var(--color-accent);
}

.company-nav__item {
	margin: 0;
}

.company-nav__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	color: var(--color-accent);
	text-decoration: none;
	font-size: var(--font-size-sm);
	transition: color var(--transition-base);
}

.company-nav__link:hover {
	color: var(--cta-button-hover);
}

.company-nav__label {
	display: block;
}

.company-nav__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	background-color: var(--color-accent);
	color: #fff;
	border-radius: 50%;
}

.company-nav__icon .material-symbols-outlined {
	font-size: 28px;
}

.company-section {
	scroll-margin-top: 80px;
	margin-top: 48px;
}

.company-section:first-of-type {
	margin-top: 0;
}

.company-section-header {
	background-color: #397037b5;
	color: #fff;
	text-align: center;
	padding: 28px 16px 80px;
	min-height: 200px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

@media (width >= 820px) {
	.company-section-header {
		padding: 48px 16px 100px;
	}
}

.company-section-header__title {
	margin: 0;
	font-size: var(--font-size-lg);
	font-weight: 700;
	border-bottom: 3px solid var(--color-accent);
	padding-bottom: 5px;
}

@media (width >= 820px) {
	.company-section-header__title {
		font-size: 1.5rem;
	}
}

.company-section-header__subtitle {
	margin: 5px 0 0;
	font-size: var(--font-size-sm);
	font-weight: 700;
	letter-spacing: 0.05em;
}

/* 経営ビジョン：ヘッダーは縦棒＋タイトル下に細い線＋英字 */
.company-contents-wrap {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 20px;
	background-color: #fff;
}

@media (width >= 620px) {
	.company-contents-wrap {
		padding: 50px;
	}
}

/* 全セクション：コンテンツブロックを見出しに少々被せる */
.company-section .company-section-header + .company-contents-wrap {
	margin-top: -64px;
	position: relative;
	z-index: 1;
}

.company-contents-wrap--center {
	text-align: center;
}

.company-overview-table-wrap {
	overflow-x: visible;
}

.company-overview-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.company-overview-table th,
.company-overview-table td {
	border-top: 1px solid rgba(0, 0, 0, 0.07);
	padding: 12px 16px;
	vertical-align: top;
	text-align: left;
}

.company-overview-table th {
	font-weight: 600;
	text-align: left;
}

/* モバイル：th/td を縦並び（1列表示） */
.company-overview-table,
.company-overview-table tbody,
.company-overview-table tr,
.company-overview-table th,
.company-overview-table td {
	display: block;
	width: 100%;
}

.company-overview-table tr {
	border-top: 1px solid rgba(0, 0, 0, 0.07);
}

.company-overview-table th,
.company-overview-table td {
	border-top: none;
	padding: 10px 12px;
}

.company-overview-table td {
	padding-top: 0;
}

@media (width >= 620px) {
	.company-overview-table-wrap {
		overflow-x: auto;
	}

	.company-overview-table,
	.company-overview-table tbody {
		display: table;
		width: 100%;
	}

	.company-overview-table tr {
		display: table-row;
		border-top: none;
	}

	.company-overview-table th,
	.company-overview-table td {
		display: table-cell;
		width: auto;
		border-top: 1px solid rgba(0, 0, 0, 0.07);
		padding: 12px 16px;
	}

	.company-overview-table th {
		width: 25%;
		text-align: center;
	}

	.company-overview-table td {
		padding-top: 12px;
	}
}

@media (width >= 820px) {
	.company-overview-table th {
		width: 22%;
	}
}

.company-contents-wrap--cols {
	display: block;
}

@media (width >= 820px) {
	.company-contents-wrap--cols {
		display: flex;
		gap: 40px;
		align-items: flex-start;
	}
}

.company-message-block {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

@media (width >= 820px) {
	.company-message-block {
		flex-direction: row;
		gap: 32px;
		align-items: center;
	}
	.company-message-block__thumb {
		flex: 0 0 300px;
		width: 300px;
		max-width: 300px;
	}
	.company-message-block__body {
		flex: 1;
		min-width: 0;
		max-width: 550px;
	}
}

.company-message-block__thumb {
	position: relative;
}

.company-message-block__thumb img {
	display: block;
	width: 100%;
	height: auto;
}

.company-message-block__note {
	margin-top: 8px;
	font-size: var(--font-size-sm);
	color: #00aeef;
	text-decoration: none;
}

.company-message-block__note:hover {
	text-decoration: underline;
}
.company-message-block__note img{
	width: auto;
	margin: 0 0 0 auto;
}
.company-message-block__body {
	font-family: var(--font-family-en);
}

.company-message-block__body p {
	margin: 0 0 1em;
}

.company-message-block__lead {
	font-size: 17px;
	font-family: var(--font-family-en);
}

.company-message-block__sign {
	margin-bottom: 0;
	font-weight: 600;
	font-family: var(--font-family-en);
}

.company-signature {
	vertical-align: middle;
}

.company-section-divider {
	margin: 32px auto;
	max-width: var(--container-max);
	border: 0;
	border-top: 1px solid var(--color-border);
}

.company-contents-wrap--vision {
	text-align: center;
}

.company-contents-wrap--vision .company-vision-intro,
.company-contents-wrap--vision .company-vision-list {
	text-align: left;
}

.company-vision-main-ttl,
.company-supplier-ttl{
	position: relative;
	display: block;
	width: 100%;
	text-align: center;
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 1.25em;
	padding-bottom: 1em;
	color: var(--color-text);
}

@media (width >= 820px) {
	.company-vision-main-ttl,
	.company-supplier-ttl{
		font-size: 1.2rem;
	}
}

/* wrapのpadding内100%の幅いグラデーション（::afterと重なる位置） */
.company-vision-main-ttl::before,
.company-supplier-ttl::before{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background-color: #e0e0e0;
}

/* テキスト幅の約50％・中央の太い縦の太線（::beforeの上に重ねる） */
.company-vision-main-ttl span,
.company-supplier-ttl span{
	position: relative;
	display: inline-block;
}

.company-vision-main-ttl span::after,
.company-supplier-ttl span::after{
	content: "";
	position: absolute;
	left: 50%;
	bottom: -1em;
	width: 50%;
	height: 3px;
	background-color: var(--color-accent);
	transform: translateX(-50%);
}

.company-vision-intro {
	font-size: 17px;
	margin: 0 0 2em;
	font-family: var(--font-family-en);
	line-height: var(--line-height-base);
}

.company-vision-list {
	margin: 0 0 1em;
	font-family: var(--font-family-en);
}

.company-vision-list dt {
	margin: 1.5em 0 0.4em;
	font-weight: 700;
	font-size: var(--font-size-lg);
	font-family: var(--font-family-base);
}

.company-vision-list dt:first-child {
	margin-top: 0;
}

.company-vision-list dd {
	margin: 0.5em 0 0 1.5em;
	padding: 0;
	line-height: 1.9;
	font-family: var(--font-family-en);
}

/* ==========================================================================
   沿線タイムライン（.company-timeline）
   - モバイル: 左ボーダー＋ドットの縦並び
   - PC(820px〜): 中央線＋左右交互カード＋ドット＋三角形コネクタ＋スクロールアニメ
   ========================================================================== */

/* --- コンテナ（共通） --- */
.company-timeline {
	list-style: none;
	margin: 0;
	padding: 0 0 0 24px;
	border-left: 4px solid var(--timeline-line-color);
	position: relative;
}

/* --- 項目・共通 --- */
.company-timeline__item {
	position: relative;
	padding: 0 0 24px 20px;
	transition: opacity 0.7s ease, transform 0.7s ease;
}

/* --- ドット（円マーカー・共通） --- */
.company-timeline__dot {
	position: absolute;
	left: -32px;
	top: 6px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: var(--timeline-dot-color);
}

/* --- 日付・説明文 --- */
.company-timeline__date {
	display: block;
	font-weight: 600;
	font-size: 15px;
	margin-bottom: 4px;
}

.company-timeline__desc {
	display: block;
	font-size: var(--font-size-sm);
	color: var(--color-text);
}

/* --- スクロールアニメーション：初期状態（非表示・左右オフセット） --- */
.company-timeline__item:nth-child(odd) {
	opacity: 0;
	transform: translateX(16px);
}

.company-timeline__item:nth-child(even) {
	opacity: 0;
	transform: translateX(-16px);
}

.company-timeline__item.is-visible:nth-child(odd),
.company-timeline__item.is-visible:nth-child(even) {
	opacity: 1;
	transform: translateX(0);
}

/* 表示時の遅延（0.18s刻み） */
.company-timeline__item:nth-child(1).is-visible { transition-delay: 0s; }
.company-timeline__item:nth-child(2).is-visible { transition-delay: 0.18s; }
.company-timeline__item:nth-child(3).is-visible { transition-delay: 0.36s; }
.company-timeline__item:nth-child(4).is-visible { transition-delay: 0.54s; }
.company-timeline__item:nth-child(5).is-visible { transition-delay: 0.72s; }
.company-timeline__item:nth-child(6).is-visible { transition-delay: 0.9s; }
.company-timeline__item:nth-child(7).is-visible { transition-delay: 1.08s; }
.company-timeline__item:nth-child(8).is-visible { transition-delay: 1.26s; }
.company-timeline__item:nth-child(9).is-visible { transition-delay: 1.44s; }
.company-timeline__item:nth-child(10).is-visible { transition-delay: 1.62s; }

@media (width >= 820px) {
	/* --- コンテナ：3列グリッド＋中央線（背景で高さ100%） --- */
	.company-timeline {
		display: grid;
		grid-template-columns: 1fr var(--timeline-line-width) 1fr;
		align-items: start;
		gap: 0 20px;
		padding: 0;
		border-left: none;
		background-image: linear-gradient(
			to bottom,
			transparent 0%,
			var(--timeline-line-color) 15%,
			var(--timeline-line-color) 85%,
			transparent 100%
		);
		background-size: var(--timeline-line-width) 100%;
		background-position: center 0;
		background-repeat: no-repeat;
	}

	/* --- カード：共通スタイル --- */
	.company-timeline__item {
		width: 100%;
		max-width: 430px;
		padding: 16px 20px;
		margin-bottom: 24px;
		background-color: #fff;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
		border-radius: 8px;
	}

	/* 奇数＝右列 / 偶数＝左列 */
	.company-timeline__item:nth-child(odd) {
		grid-column: 3;
		justify-self: start;
		transform: translateX(24px);
		border-left: 4px solid var(--color-accent);
	}

	.company-timeline__item:nth-child(even) {
		grid-column: 1;
		justify-self: end;
		transform: translateX(-24px);
		border-right: 4px solid var(--color-accent);
	}

	/* 表示時の余白（ジグザグ用） */
	.company-timeline__item.is-visible:nth-child(odd) {
		transform: translateX(0);
		margin-bottom: var(--timeline-item-spacing-visible-bottom);
	}

	.company-timeline__item.is-visible:nth-child(even) {
		transform: translateX(0);
		margin-top: var(--timeline-item-spacing-visible-top);
	}

	/* --- ドット：中央線上の丸（変数でサイズ・オフセット） --- */
	.company-timeline__dot {
		left: auto;
		top: 50%;
		width: var(--timeline-dot-size);
		height: var(--timeline-dot-size);
		margin-top: calc(var(--timeline-dot-size) / -2);
		background-color: var(--timeline-dot-color);
	}

	.company-timeline__item:nth-child(odd) .company-timeline__dot {
		right: 100%;
		left: auto;
		margin-right: var(--timeline-dot-offset);
	}

	.company-timeline__item:nth-child(even) .company-timeline__dot {
		left: 100%;
		margin-left: var(--timeline-dot-offset);
	}

	/* --- コネクタ：カードと中央線を繋ぐ三角形（::before） --- */
	.company-timeline__item::before {
		content: "";
		position: absolute;
		width: var(--timeline-connector-offset);
		transform: translate(0, -50%);
	}

	.company-timeline__item:nth-child(odd)::before {
		border: 15px solid transparent;
		border-right: 15px solid var(--color-accent);
		display: block;
		left: -30px;
		top: 50%;
	}

	.company-timeline__item:nth-child(even)::before {
		border: 15px solid transparent;
		border-left: 15px solid var(--color-accent);
		display: block;
		right: -30px;
		top: 50%;
		transform: translate(0, -50%);
	}
}

.company-supplier-listgroup {
	display: grid;
	gap: 16px;
	margin-bottom: 1rem;
}

@media (width >= 820px) {
	.company-supplier-listgroup {
		grid-template-columns: 1fr 1fr;
	}
}

.company-supplier-list {
	margin: 0;
	padding: 0 0 0 1.25em;
}

.company-supplier-list li {
	margin: 0.5em 0;
}

.company-supplier-note {
	text-align: right;
	margin: 0;
	font-size: var(--font-size-sm);
	color: #777;
}

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

.company-access-wrap {
	display: block;
	gap: 32px;
}

.company-access-info {
	margin-bottom: 32px;
}

@media (width >= 820px) {
	.company-access-wrap {
		display: flex;
		align-items: flex-start;
	}
	.company-access-info {
		flex: 0 0 40%;
		min-width: 0;
		margin-bottom: 0;
	}
	.company-access-map-wrap {
		flex: 1;
		min-width: 0;
	}
}

.company-access-figure {
	margin: 0 0 16px;
}

.company-access-figure img {
	display: block;
	width: 100%;
	max-width: 300px;
	height: auto;
	margin: 0 auto;
}

.company-access-list {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.company-access-list li {
	position: relative;
	margin-bottom: 12px;
	padding-left: 1.25em;
}

.company-access-note {
	font-size: 13px;
}

.company-access-cta {
	margin: 20px 0 0;
	text-align: center;
}

.company-cta-button {
	gap: 8px;
	font-weight: 600;
	transition: background-color var(--transition-base);
}

.company-cta-button:hover {
	background-color: var(--cta-button-hover);
	color: #fff;
}


.company-access-map-wrap iframe {
	display: block;
	width: 100%;
	max-width: 600px;
	height: 277px;
	margin: 0 auto 16px;
}

.company-recruit-ttl {
	text-align: center;
	font-size: 1.1rem;
	margin: 1.5rem 0 0.75rem;
}

.company-recruit-ttl:first-child {
	margin-top: 0;
}

@media (width >= 820px) {
	.company-recruit-ttl {
		font-size: 1.25rem;
		margin: 2rem 0 1rem;
	}
}

.company-recruit-text {
	margin: 0 0 1em;
}

.company-recruit-text--center {
	text-align: center;
}

/* ==========================================================================
   page-content--sports（スポーツ環境事業）・page-content--interior（インテリア事業）共通
   ========================================================================== */

.sports-breadcrumb,
.interior-breadcrumb {
	padding: 12px var(--section-padding-x);
	max-width: var(--container-max);
	margin: 0 auto;
	border-bottom: 3px solid rgba(119, 119, 119, 0.1);
}

.sports-breadcrumb__list,
.interior-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--font-size-sm);
}

.sports-breadcrumb__item:not(:last-child)::after,
.interior-breadcrumb__item:not(:last-child)::after {
	content: ">";
	margin-left: 8px;
	color: var(--color-text);
	opacity: 0.7;
}

.sports-breadcrumb__item a {
	color: var(--color-link);
	text-decoration: none;
}

.sports-breadcrumb__item a:hover {
	text-decoration: underline;
}

.interior-breadcrumb__item a {
	color: var(--color-accent);
	text-decoration: underline;
}

.interior-breadcrumb__item a:hover {
	text-decoration: underline;
}

.sports-breadcrumb__item--current span,
.interior-breadcrumb__item--current span {
	color: var(--color-text);
}

/* intro 共通（モバイルファースト） */
.sports-intro,
.interior-intro {
	background-color: var(--color-bg);
}

.sports-intro__inner,
.interior-intro__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
}

.sports-intro__media,
.interior-intro__media {
	display: none;
}

@media (width >= 820px) {
	.sports-intro__inner,
	.interior-intro__inner {
		flex-direction: row;
		align-items: flex-start;
	}
	.sports-intro__media,
	.interior-intro__media {
		display: block;
		flex: 0 0 22%;
	}
	.sports-intro__content,
	.interior-intro__content {
		flex: 1 1 70%;
		padding-left: clamp(1.5em, 4vw, 2.5em);
	}
}

.sports-intro__img,
.interior-intro__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 9 / 16;
	object-fit: cover;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.sports-intro__heading,
.interior-intro__heading {
	margin: 0 0 0.5em;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.sports-intro__heading,
	.interior-intro__heading {
		font-size: 1.31rem;
	}
}

.sports-intro__content,
.interior-intro__content {
	padding-left: 1.5em;
}

.sports-intro__content p,
.interior-intro__content p {
	margin: 0 0 1em;
	line-height: var(--line-height-base);
}

.sports-intro__gallery,
.interior-intro__gallery {
	display: flex;
	flex-wrap: wrap;
	gap: calc(var(--section-gap) * 0.5);
	margin: var(--section-gap) 0 0;
	padding: 0;
	list-style: none;
}

.sports-intro__gallery li,
.interior-intro__gallery li {
	flex: 1 1 120px;
}

.sports-intro__gallery img,
.interior-intro__gallery img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 1;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

/* 取り扱い商材（sports・interior 共通・モバイルファースト） */
.sports-catalog,
.interior-catalog {
	background-color: #fff;
}

.sports-catalog__inner,
.interior-catalog__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.sports-catalog__title,
.interior-catalog__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.sports-catalog__title,
	.interior-catalog__title {
		font-size: 1.5rem;
	}
}

.sports-catalog__headline {
	text-align: center;
	margin: 0 0 1em;
	font-size: 17px;
}

@media (width >= 820px) {
	.sports-catalog__headline {
		font-size: inherit;
	}
}

.sports-catalog__wrap {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	column-gap: var(--section-gap);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0 auto var(--section-gap);
	max-width: 100%;
}

@media (width >= 768px) {
	.sports-catalog__wrap {
		align-items: center;
		justify-content: center;
		width: 60%;
		overflow: visible;
	}
}

.sports-catalog__cover,
.sports-catalog__spread {
	flex: 0 0 auto;
}

.sports-catalog__cover a,
.sports-catalog__spread a {
	display: block;
}

.sports-catalog__cover img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.sports-catalog__spread img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

@media (width >= 768px) {
	.sports-catalog__wrap .sports-catalog__cover {
		width: 33.33%;
		flex: 0 0 33.33%;
		max-width: 33.33%;
	}
	.sports-catalog__wrap .sports-catalog__spread {
		width: 66.66%;
		flex: 0 0 66.66%;
		max-width: 66.66%;
	}
}

.sports-catalog__download {
	text-align: center;
	margin: 0 0 var(--section-gap);
}


.sports-catalog__honbun {
	margin: 0 0 var(--section-gap);
}

.sports-catalog__honbun p {
	margin: 0 0 0.75em;
	line-height: var(--line-height-base);
}

.sports-catalog__honbun a {
	color: var(--color-accent);
	text-decoration: underline;
}

.sports-catalog__note {
	text-align: center;
	font-size: 12px;
	margin: 0 0 var(--section-gap);
	opacity: 0.9;
}

.sports-catalog__contact-wrap {
	text-align: center;
	margin: 0;
}


/* お取引の流れ（sports・interior 共通・モバイルファースト） */
.sports-flow,
.interior-flow {
	background-color: var(--color-bg);
}

.sports-flow__inner,
.interior-flow__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.sports-flow__title,
.interior-flow__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.sports-flow__title,
	.interior-flow__title {
		font-size: 1.5rem;
	}
}

.sports-flow__list,
.interior-flow__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--section-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (width >= 620px) {
	.sports-flow__list,
	.interior-flow__list {
		grid-template-columns: repeat(4, 1fr);
	}
}

.sports-flow__item,
.interior-flow__item {
	background: #fff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	border-radius: 8px;
	padding: var(--section-gap) var(--section-padding-x);
	text-align: center;
}

.sports-flow__num,
.interior-flow__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0 auto calc(var(--section-gap) * 0.5);
	border-radius: 50%;
	color: #fff;
	font-size: 1.25rem;
	font-weight: 700;
}

.sports-flow__num--1,
.interior-flow__num--1 { background: linear-gradient(135deg, #90c349 0%, #71ce7e 100%); }
.sports-flow__num--2,
.interior-flow__num--2 { background: linear-gradient(135deg, #90c349 0%, #71ce7e 100%); }
.sports-flow__num--3,
.interior-flow__num--3 { background: linear-gradient(135deg, #7fcf00 0%, #06811a 100%); }
.sports-flow__num--4,
.interior-flow__num--4 { background: linear-gradient(135deg, #75b809 0%, #397307 100%); }

.sports-flow__head,
.interior-flow__head {
	margin: 0 0 8px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
}

.sports-flow__text,
.interior-flow__text {
	margin: 0;
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
}

/* アフターメンテナンス（sports・interior 共通・モバイルファースト） */
.sports-maintenance,
.interior-maintenance {
	background-color: var(--color-bg);
}

.sports-maintenance__inner,
.interior-maintenance__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.sports-maintenance-heading,
#interior-maintenance-heading {
	text-align: center;
}

#sports-maintenance-heading,
.sports-maintenance__title,
#interior-maintenance-heading,
.interior-maintenance__title {
	text-align: center;
}

.sports-maintenance__title,
.interior-maintenance__title,
.section-ttl-highlight {
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
	background: linear-gradient(transparent 80%, rgba(255, 253, 107, 0.7) 0%);
}

@media (width >= 820px) {
	.sports-maintenance__title,
	.interior-maintenance__title {
		font-size: 1.5rem;
	}
}

.sports-maintenance__box,
.interior-maintenance__box {
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	padding: 15px;
}

@media (width >= 820px) {
	.sports-maintenance__box,
	.interior-maintenance__box {
		flex-direction: row;
		align-items: center;
	}
	.sports-maintenance__icon-wrap,
	.interior-maintenance__icon-wrap {
		flex: 0 0 15%;
		text-align: center;
	}
	.sports-maintenance__text,
	.interior-maintenance__text {
		flex: 0 0 60%;
		margin: 0;
	}
	.sports-maintenance__img,
	.interior-maintenance__img {
		flex: 0 1 25%;
		min-width: 0;
		margin: 0;
	}
}

.sports-maintenance__icon-label,
.interior-maintenance__icon-label {
	margin: 0 0 8px;
	font-size: 0.85rem;
	color: var(--color-text);
	text-align: center;
}

.sports-maintenance__icon,
.interior-maintenance__icon {
	display: block;
	width: 64px;
	height: 64px;
	margin: 0 auto;
	background-color: #337ab7;
	border-radius: 50%;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E");
	background-size: 2rem;
	background-repeat: no-repeat;
	background-position: center;
}

.sports-maintenance__img img,
.interior-maintenance__img img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* 施工事例スライド（sports・interior 共通・モバイルファースト） */
.sports-cases,
.interior-cases {
	background-color: #fff;
}

.sports-cases__inner,
.interior-cases__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.sports-cases__title,
.interior-cases__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.sports-cases__title,
	.interior-cases__title {
		font-size: 1.5rem;
	}
}

.sports-cases__slider,
.interior-cases__slider {
	position: relative;
	max-width: 100%;
	margin: 0 auto;
}

@media (width >= 820px) {
	.sports-cases__slider,
	.interior-cases__slider {
		max-width: 960px;
	}
}

.sports-cases__track,
.interior-cases__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	gap: 0;
	-webkit-overflow-scrolling: touch;
}

.sports-cases__slide,
.interior-cases__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
	padding: 0 calc(var(--section-padding-x) * 0.5);
}

@media (width >= 820px) {
	.sports-cases__slide,
	.interior-cases__slide {
		flex-direction: row;
		flex: 0 0 100%;
	}
	.sports-cases__figure,
	.interior-cases__figure {
		flex: 0 0 50%;
	}
	.sports-cases__body,
	.interior-cases__body {
		flex: 0 0 50%;
	}
}

.sports-cases__figure,
.interior-cases__figure {
	margin: 0;
}

.sports-cases__figure img,
.interior-cases__figure img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
	border: 8px solid #fff;
}

.sports-cases__body,
.interior-cases__body {
	flex: 1;
}

.sports-cases__slide-title,
.interior-cases__slide-title {
	margin: 0 0 calc(var(--section-gap) * 0.4);
	font-size: 1.05rem;
	line-height: 1.25;
	font-weight: 700;
}

.sports-cases__slide-title-line2,
.interior-cases__slide-title-line2 {
	display: block;
	font-size: 1.35rem;
}

@media (width >= 820px) {
	.sports-cases__slide-title,
	.interior-cases__slide-title {
		font-size: 1.25rem;
		line-height: 1.3;
	}
	.sports-cases__slide-title-line2,
	.interior-cases__slide-title-line2 {
		font-size: 1.8rem;
	}
}

.sports-cases__body p,
.interior-cases__body p {
	margin: 0;
	line-height: var(--line-height-base);
}

.sports-cases__nav,
.interior-cases__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--section-gap);
	margin-top: var(--section-gap);
}

.sports-cases__prev,
.sports-cases__next,
.interior-cases__prev,
.interior-cases__next {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--color-border);
	background: #fff;
	border-radius: 4px;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color var(--transition-base), border-color var(--transition-base);
}

.sports-cases__prev:hover,
.sports-cases__next:hover,
.interior-cases__prev:hover,
.interior-cases__next:hover {
	background: var(--color-bg);
	border-color: var(--color-accent);
}

.sports-cases__pagination,
.interior-cases__pagination {
	font-size: var(--font-size-sm);
}

/* ==========================================================================
   page-content--interior（インテリア事業）※ intro / パンくずは上記 sports と共通
   ========================================================================== */

.sports-catalog__grid,
.interior-catalog__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--section-gap);
	margin: 0 0 var(--section-gap);
	padding: 0;
	list-style: none;
}

@media (width >= 620px) {
	.sports-catalog__grid,
	.interior-catalog__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.sports-catalog__grid li,
.interior-catalog__grid li {
	text-align: center;
}

.sports-catalog__grid figure,
.interior-catalog__grid figure {
	margin: 0 0 8px;
}

.sports-catalog__grid img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.interior-catalog__grid img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 1;
	object-fit: cover;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.sports-catalog__label,
.interior-catalog__label {
	display: block;
	font-size: 1rem;
	font-weight: 700;
}

.interior-catalog__note {
	text-align: center;
	font-size: 12px;
	margin: 0;
	opacity: 0.9;
}

.interior-catalog__note a {
	color: var(--color-accent);
	text-decoration: underline;
}

/* ==========================================================================
   page-content--ecommerce（EC事業）※ トップカバーは共通ブロック
   ========================================================================== */

.ec-breadcrumb {
	padding: 12px var(--section-padding-x);
	max-width: var(--container-max);
	margin: 0 auto;
	border-bottom: 3px solid rgba(119, 119, 119, 0.1);
}

.ec-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--font-size-sm);
}

.ec-breadcrumb__item:not(:last-child)::after {
	content: ">";
	margin-left: 8px;
	color: var(--color-text);
	opacity: 0.7;
}

.ec-breadcrumb__item a {
	color: var(--color-link);
	text-decoration: none;
}

.ec-breadcrumb__item a:hover {
	text-decoration: underline;
}

.ec-breadcrumb__item--current span {
	color: var(--color-text);
}

.ec-intro {
	background-color: var(--color-bg);
}

.ec-intro__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
}

.ec-intro__media {
	display: none;
}

@media (width >= 820px) {
	.ec-intro__inner {
		flex-direction: row;
		align-items: center;
	}
	.ec-intro__content {
		flex: 0 0 65%;
	}
	.ec-intro__media {
		display: block;
		flex: 0 0 30%;
	}
}

.ec-intro__heading {
	margin: 0 0 0.5em;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.ec-intro__heading {
		font-size: 1.31rem;
	}
}

.ec-intro__content p {
	margin: 0 0 1em;
	font-size: 16px;
	line-height: var(--line-height-base);
}

.ec-intro__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 90% 60% 80% 70%;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.ec-business {
	background-color: #fff;
}

.ec-business__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.ec-business__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.ec-business__title {
		font-size: 1.5rem;
	}
}

.ec-business__block {
	display: flex;
	flex-direction: column-reverse;
	gap: var(--section-gap);
}

.ec-business__text {
	padding: 0;
}

.ec-business__figure {
	position: relative;
	margin: 0;
	overflow: hidden;
	aspect-ratio: 1 / 1;
}

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

.ec-business__figure-overlay {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.1);
}

@media (width >= 820px) {
	.ec-business__block {
		flex-direction: row;
		align-items: center;
	}
	.ec-business__figure {
		order: -1;
		flex: 0 0 auto;
		width: 40%;
		margin: 0;
		aspect-ratio: auto;
	}
	.ec-business__figure img {
		height: 430px;
	}
	.ec-business__text {
		order: 0;
		flex: 1;
		padding: 0 0 0 var(--section-gap);
	}
}

.ec-business__subtitle {
	margin: 0 0 1em;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.ec-business__subtitle {
		font-size: 1.5rem;
	}
}

.ec-business__text p {
	margin: 0;
	line-height: var(--line-height-base);
}

.ec-business__text a {
	color: var(--color-accent);
	text-decoration: underline;
}

.ec-shops {
	background-color: #fff;
}

/* 運営サイト（EC事業・古物販売事業 共通）中央文字＋左右グラデーションライン */
.ec-shops__inner,
.secondhand-shops__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.ec-shops__title,
.secondhand-shops__title,
.dx-app__title,
.dx-awards__title {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 var(--section-gap);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--color-text);
	letter-spacing: 0.08em;
}

.ec-shops__title::before,
.ec-shops__title::after,
.secondhand-shops__title::before,
.secondhand-shops__title::after,
.dx-app__title::before,
.dx-app__title::after,
.dx-awards__title::before,
.dx-awards__title::after {
	content: "";
	flex: 1;
	height: 2px;
	opacity: 0.65;
}

.ec-shops__title::before,
.secondhand-shops__title::before,
.dx-app__title::before,
.dx-awards__title::before {
	margin-right: 20px;
	background: -webkit-gradient(linear, right top, left top, from(#397037), to(#fff));
	background: -o-linear-gradient(right, #397037, #fff);
	background: linear-gradient(-90deg, #397037, #fff);
}

.ec-shops__title::after,
.secondhand-shops__title::after,
.dx-app__title::after,
.dx-awards__title::after {
	margin-left: 20px;
	background: -webkit-gradient(linear, left top, right top, from(#397037), to(#fff));
	background: -o-linear-gradient(left, #397037, #fff);
	background: linear-gradient(90deg, #397037, #fff);
}

.ec-shops__title span,
.secondhand-shops__title span,
.dx-app__title span,
.dx-awards__title span {
	padding: 0;
}

@media (width >= 820px) {
	.ec-shops__title,
	.secondhand-shops__title,
	.dx-app__title,
	.dx-awards__title {
		font-size: 1.35rem;
	}
}

.ec-shops__grid,
.secondhand-shops__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--section-gap);
	max-width: 300px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

@media (width >= 620px) {
	.ec-shops__grid {
		grid-template-columns: repeat(3, 300px);
		justify-content: center;
		max-width: none;
	}
	.secondhand-shops__grid {
		grid-template-columns: 300px;
		max-width: 300px;
	}
}

/* 運営サイトカード：EC/古物再販 共通 */
.ec-shop-card,
.secondhand-shop-card {
	background: #fff;
	border: 10px solid #f9f9f9;
	border-radius: 8px;
	padding: var(--section-gap) var(--section-padding-x);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.ec-shop-card__logo,
.secondhand-shop-card__logo {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 0 calc(var(--section-gap) * 0.5);
	object-fit: contain;
}

.ec-shop-card__desc,
.secondhand-shop-card__desc {
	margin: 0 0 calc(var(--section-gap) * 0.5);
	font-size: var(--font-size-sm);
	line-height: var(--line-height-base);
}

.ec-shop-card__links,
.secondhand-shop-card__links {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 100%;
}

.ec-shop-card__link,
.secondhand-shop-card__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 12px 16px;
	border: 1px solid var(--color-accent);
	border-radius: 5px;
	background: #fff;
	color: var(--color-accent);
	font-size: var(--font-size-sm);
	font-weight: 500;
	text-decoration: none;
	box-shadow: none;
	transition: border-color var(--transition-base), color var(--transition-base), background-color var(--transition-base);
}

.ec-shop-card__link::after,
.secondhand-shop-card__link::after {
	content: ">";
	flex-shrink: 0;
	font-weight: 700;
}

.ec-shop-card__link:hover,
.secondhand-shop-card__link:hover {
	color: var(--color-link-hover);
	border-color: var(--color-link-hover);
	background-color: rgba(57, 112, 55, 0.04);
	text-decoration: none;
}

.ec-shop-card__sns {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.ec-shop-card__sns img {
	display: block;
	width: 32px;
	height: 32px;
	object-fit: contain;
}

/* ==========================================================================
   page-content--dxsolution（DXソリューション事業）※ トップカバーは共通ブロック
   ========================================================================== */

.dx-breadcrumb {
	padding: 12px var(--section-padding-x);
	max-width: var(--container-max);
	margin: 0 auto;
	border-bottom: 3px solid rgba(119, 119, 119, 0.1);
}

.dx-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--font-size-sm);
}

.dx-breadcrumb__item:not(:last-child)::after {
	content: ">";
	margin-left: 8px;
	color: var(--color-text);
	opacity: 0.7;
}

.dx-breadcrumb__item a {
	color: var(--color-link);
	text-decoration: none;
}

.dx-breadcrumb__item a:hover {
	text-decoration: underline;
}

.dx-breadcrumb__item--current span {
	color: var(--color-text);
}

.dx-intro {
	background-color: var(--color-bg);
}

.dx-intro__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
}

.dx-intro__media {
	display: none;
}

@media (width >= 820px) {
	.dx-intro__inner {
		flex-direction: row;
		align-items: center;
	}
	.dx-intro__content {
		flex: 0 0 65%;
	}
	.dx-intro__media {
		display: block;
		flex: 0 0 30%;
	}
}

.dx-intro__heading {
	margin: 0 0 0.5em;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.dx-intro__heading {
		font-size: 1.31rem;
	}
}

.dx-intro__text p {
	margin: 0;
	font-size: 16px;
	line-height: var(--line-height-base);
}

.dx-intro__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.dx-business {
	background-color: #fff;
}

.dx-business__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.dx-business__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.dx-business__title {
		font-size: 1.5rem;
	}
}

.dx-business__block {
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
	margin-bottom: var(--section-gap);
}

.dx-business__block--reverse .dx-business__figure {
	order: -1;
}

@media (width >= 820px) {
	.dx-business__block {
		flex-direction: row;
		align-items: center;
	}
	.dx-business__block--reverse {
		flex-direction: row-reverse;
	}
	.dx-business__block--reverse .dx-business__figure {
		order: 0;
	}
	.dx-business__text {
		flex: 1;
		padding: var(--section-padding-y) 0 var(--section-padding-y) var(--section-gap);
	}
	.dx-business__block--reverse .dx-business__text {
		padding: var(--section-padding-y) var(--section-gap) var(--section-padding-y) 0;
	}
	.dx-business__figure {
		flex: 0 0 40%;
		margin: 0;
	}
}

.dx-business__subtitle {
	margin: 0 0 1em;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.dx-business__subtitle {
		font-size: 1.375rem;
	}
}

.dx-business__subtitle a {
	color: var(--color-text);
	text-decoration: none;
}

.dx-business__subtitle a:hover {
	text-decoration: underline;
	color: var(--color-accent);
}

.dx-business__text p {
	margin: 0 0 0.5em;
	line-height: var(--line-height-base);
}

.dx-business__text a {
	color: var(--color-accent);
	text-decoration: underline;
}

.dx-business__note {
	text-align: right;
	font-size: var(--font-size-sm);
	margin: 0.5em 0 0 !important;
}

.dx-business__figure {
	position: relative;
	margin: 0;
	overflow: hidden;
}

.dx-business__figure img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: 36% 49%;
}

.dx-business__figure-overlay {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.1);
}

.dx-app-awards-wrap {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	padding: var(--section-gap);
}

.dx-app {
	padding-bottom: var(--section-gap);
}

.dx-app-awards-wrap .dx-awards__title {
	margin-top: calc(var(--section-gap) * 1.2);
}

.dx-app__lead {
	text-align: center;
	margin: 0 0 0.25em;
}

.dx-app__name {
	text-align: center;
	margin: 0 0 1em;
}

.dx-app__visual {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: var(--section-gap);
	margin: 0 0 1em;
	max-width: 100%;
	min-width: 0;
}

.dx-app__logo-wrap {
	flex: 0 1 auto;
	min-width: 0;
	text-align: center;
}

.dx-app__logo {
	display: block;
	width: 200px;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	object-fit: contain;
}

.dx-app__screenshot {
	margin: 0;
	min-width: 0;
	flex: 0 1 auto;
}

.dx-app__screenshot img {
	display: block;
	width: 200px;
	max-width: 100%;
	height: auto;
	object-fit: contain;
}

.dx-app__device {
	text-align: center;
	margin: 0 0 1em;
	padding: 0 1em;
}

.dx-app__btn-wrap {
	text-align: center;
	margin: 0;
}

.dx-awards__grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: calc(var(--section-gap) * 1.25);
	padding: calc(var(--section-gap) * 0.6) var(--section-padding-x);
}

@media (width >= 620px) {
	.dx-awards__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.dx-award {
	text-align: center;
}

.dx-award img {
	display: block;
	width: 150px;
	height: auto;
	max-height: 118px;
	object-fit: contain;
	margin: 0 auto;
}

.dx-award__name {
	margin: 1em 0 0.25em;
	font-size: var(--font-size-sm);
}

.dx-award__desc {
	margin: 0;
	font-size: var(--font-size-sm);
	line-height: 1.4;
}

.dx-lecture {
	background-color: #fff;
	scroll-margin-top: 80px;
}

.dx-lecture__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.dx-lecture__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	padding-top: 0;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.dx-lecture__title {
		margin: -80px 0 var(--section-gap);
		padding-top: 80px;
		font-size: 1.5rem;
	}
}

.dx-lecture__block {
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
}

@media (width >= 820px) {
	.dx-lecture__block {
		flex-direction: row;
		align-items: center;
	}
	.dx-lecture__content {
		flex: 0 0 65%;
	}
	.dx-lecture__figure {
		flex: 0 0 30%;
		margin: 0;
	}
}

.dx-lecture__heading {
	margin: 0 0 0.5em;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.dx-lecture__heading {
		font-size: 1.31rem;
	}
}

.dx-lecture__content p {
	margin: 0;
	line-height: var(--line-height-base);
}

.dx-lecture__figure img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.dx-lecture__record {
	margin: 1em 0 0.5em 0;
	font-size: 16px;
}

@media (width >= 768px) {
	.dx-lecture__record {
		margin-left: 0.5em;
	}
}

.dx-lecture__list {
	padding-left: 1em;
	margin: 0 10px;
	list-style: disc;
}

.dx-lecture__list li {
	margin-bottom: 0.5em;
	font-size: var(--font-size-xsm);
	line-height: 1.5;
}

.dx-lecture__list li strong {
	margin-left: -8px;
}

@media (width >= 768px) {
	.dx-lecture__list li strong {
		margin-left: 0;
	}
}

.dx-lecture__btn-wrap {
	text-align: center;
	margin: var(--section-gap) 0 0;
}

/* ==========================================================================
   page-content--secondhand（古物販売事業）※ トップカバーは共通ブロック
   ========================================================================== */

.secondhand-breadcrumb {
	padding: 12px var(--section-padding-x);
	max-width: var(--container-max);
	margin: 0 auto;
	border-bottom: 3px solid rgba(119, 119, 119, 0.1);
}

.secondhand-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--font-size-sm);
}

.secondhand-breadcrumb__item:not(:last-child)::after {
	content: ">";
	margin-left: 8px;
	color: var(--color-text);
	opacity: 0.7;
}

.secondhand-breadcrumb__item a {
	color: var(--color-link);
	text-decoration: none;
}

.secondhand-breadcrumb__item a:hover {
	text-decoration: underline;
}

.secondhand-breadcrumb__item--current span {
	color: var(--color-text);
}

.secondhand-intro {
	background-color: var(--color-bg);
}

.secondhand-intro__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
}

.secondhand-intro__media {
	display: none;
}

.secondhand-intro__media--mobile {
	display: block;
	margin: var(--section-gap) 0;
}

.secondhand-intro__media--mobile img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

@media (width >= 820px) {
	.secondhand-intro__inner {
		flex-direction: row;
		align-items: center;
	}
	.secondhand-intro__media {
		display: block;
		flex: 0 0 28%;
		order: -1;
	}
	.secondhand-intro__media--mobile {
		display: none;
	}
	.secondhand-intro__content {
		flex: 1 1 65%;
		padding-left: clamp(1.5em, 4vw, 2.5em);
	}
}

.secondhand-intro__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.secondhand-intro__heading {
	margin: 0 0 0.5em;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.secondhand-intro__heading {
		font-size: 1.31rem;
	}
}

.secondhand-intro__content {
	padding-left: 0;
}

.secondhand-intro__content p {
	margin: 0 0 1em;
	font-size: 16px;
	line-height: var(--line-height-base);
}

/* スマホ時：各事業部の intro__content の padding-left を無効化（secondhand はベースで 0 のため対象外） */
@media (max-width: 819px) {
	.sports-intro__content,
	.interior-intro__content,
	.ec-intro__content,
	.dx-intro__content {
		padding-left: 0;
	}
}

.secondhand-business {
	background-color: #fff;
}

.secondhand-business__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--section-padding-x);
}

.secondhand-business__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.secondhand-business__title {
		font-size: 1.5rem;
	}
}

.secondhand-business__block {
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
	margin-bottom: calc(var(--section-gap) * 2);
}

@media (width >= 820px) {
	.secondhand-business__block {
		flex-direction: row;
		align-items: center;
	}
	.secondhand-business__text {
		flex: 0 0 52%;
		padding: var(--section-padding-y) 0 var(--section-padding-y) var(--section-gap);
	}
	.secondhand-business__figure {
		flex: 0 0 40%;
		margin: 0;
	}
}

.secondhand-business__subtitle {
	margin: 0 0 1em;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-text);
}

@media (width >= 820px) {
	.secondhand-business__subtitle {
		font-size: 1.5rem;
	}
}

.secondhand-business__text p {
	margin: 0 0 0.75em;
	line-height: var(--line-height-base);
}

.secondhand-business__text a {
	color: var(--color-accent);
	text-decoration: underline;
}

.secondhand-business__figure {
	margin: 0;
}

.secondhand-business__img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: 80% 70% 90% 60%;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

/* secondhand-shops の __title / __grid は ec-shops と共通ブロック（運営サイト） */

.secondhand-subsidy {
	background-color: var(--color-bg);
	border-radius: 8px;
}

.secondhand-subsidy__inner {
	width: 90%;
	max-width: var(--container-max);
	margin: var(--section-gap) auto;
	padding: var(--section-padding-y) var(--section-padding-x);
	background: #fff;
	border-radius: 8px;
}

@media (width >= 820px) {
	.secondhand-subsidy__inner {
		width: 60%;
	}
}

.secondhand-subsidy__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	font-size: 18px;
	font-weight: 600;
	color: var(--color-text);
	padding: 10px 20px;
    border-top: 4px double #000;
    border-bottom: 4px double #000;
}

.secondhand-subsidy__inner > p {
	margin: 0 0 var(--section-gap);
	font-size: 15px;
	line-height: var(--line-height-base);
}

.secondhand-subsidy__note {
	margin: 0 !important;
	font-size: var(--font-size-sm);
	line-height: 1.6;
	opacity: 0.9;
}

/* ==========================================================================
   お問い合わせ（contact-intro / contact-form）
   ========================================================================== */

span.cf-required::after {
	content: "*必須" !important;
	background-color: #f66;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	min-width: 10px;
	padding: 3px 7px;
	margin: 0 5px 2px;
	line-height: 1;
	vertical-align: middle;
	text-align: center;
	border-radius: 10px;
	display: inline-block;
}

.page-content--contact .mw_wp_form p:nth-last-child(3) {
	text-align: center;
}
.contact-intro,
.contact-thanks {
  max-width: 100%;
  overflow-x: clip; /* hiddenでも可 */
  margin: 0 auto;
}
.contact-intro {
	background-color: #fff;
	width: 100vw;
	box-sizing: border-box;
}

.contact-intro__inner {
	position: relative;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: calc(var(--section-padding-y) * 1.2) var(--section-padding-x) var(--section-gap);
	box-sizing: border-box;
}

.contact-intro__title {
	text-align: center;
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-text);
}
@media (width >= 640px) {
	.contact-intro__title {
		font-size: 1.375rem;
	}
}
@media (width >= 820px) {
	.contact-intro__title {
		font-size: 1.5rem;
	}
}

.contact-intro__text {
	text-align: center;
	margin: 0;
	padding-bottom: 0;
}

.contact-intro__text p {
	margin: 0 0 0.75em;
}
.contact-intro__text p:last-child {
	margin-bottom: 0;
}

.contact-intro__text--pc {
	display: none;
}

@media (width >= 768px) {
	.contact-intro__text--sp {
		display: none;
	}
	.contact-intro__text--pc {
		display: block;
	}
}

.contact-intro__text b.contact-intro__caveat {
	max-width: 96%;
	margin: 0 auto;
	background-color: #fff9f9;
	border: 1px solid #fcc;
	padding: 15px;
	font-size: 0.9rem;
	color: #d32f2f;
	display: inline-block;
}

.contact-form {
	max-width: var(--container-max);
	margin: 0 auto;
}

/* サンクス表示（MW WP Form 完了時だけ表示） */
.contact-thanks {
	display: none;
	background-color: #fff;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	box-sizing: border-box;
}
.contact-thanks__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: calc(var(--section-padding-y) * 1.2) var(--section-padding-x) var(--section-gap);
	box-sizing: border-box;
	text-align: center;
}
.contact-thanks__title {
	margin: 0 0 var(--section-gap);
	font-size: 1.25rem;
	font-weight: 700;
}
@media (width >= 640px) {
	.contact-thanks__title {
		font-size: 1.375rem;
	}
}
@media (width >= 820px) {
	.contact-thanks__title {
		font-size: 1.5rem;
	}
}
.contact-thanks__actions {
	margin-top: var(--section-gap);
}

/* MW WP Form の状態クラスで表示切り替え */
.mw_wp_form_complete .contact-intro,
.mw_wp_form_complete .contact-form {
	display: none;
}
.mw_wp_form_complete .contact-thanks {
	display: block;
}

.contact-form__inner {
	padding: 2em var(--section-padding-x);
}

.contact-form__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 4px 0;
	margin: 0 0 1.25em;
	padding: 0 0 1.25em;
	border-bottom: 1px solid var(--color-border);
}

.contact-form__label {
	margin: 0;
	padding:.5em 0;
	font-weight: 700;
}

.contact-form__label::after {
	content: "*必須";
	background-color: #f66;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	min-width: 10px;
	padding: 3px 7px;
	margin: 0 5px 2px;
	line-height: 1;
	vertical-align: middle;
	text-align: center;
	border-radius: 10px;
	display: inline-block;
}

.contact-form__field {
	margin: 0;
	padding: 0;
	font-size: 0.9rem;
}

.contact-form__field--input input,
.contact-form__field--input textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-size: var(--font-size-base);
	font-family: inherit;
	box-sizing: border-box;
}

.contact-form__field--input input:focus,
.contact-form__field--input textarea:focus {
	outline: none;
	border-color: var(--color-accent);
}

.contact-form__field--input textarea {
	min-height: 120px;
	resize: vertical;
}

.contact-form__field--kind .mwform-radio-field {
	display: block;
	margin-bottom: 8px;
}

.contact-form__field--kind .mwform-radio-field label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
	cursor: pointer;
}

.contact-form__agree {
	text-align: center;
	margin: 0 0 1.5em;
	padding: 0 var(--section-padding-x);
}

.contact-form__agree > :first-child {
	grid-column: 1;
}

.contact-form__agree > label {
	grid-column: 2;
	min-width: 0;
}

.contact-form__agree label {
	line-height: 1.6;
	text-align: left;
}

.contact-form__agree .mwform-checkbox-field,
.contact-form__agree .mwform-checkbox-field label {
	margin: 0;
}

.contact-form__agree input[type="checkbox"] {
	margin: 0.25em 0 0;
}

.contact-form__agree a {
	color: var(--color-accent);
	text-decoration: underline;
}

.contact-form__actions {
	list-style: none;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
	padding: 0 var(--section-padding-x) var(--section-padding-y);
}

.contact-form__back {
	display: none;
}

.mw_wp_form_preview .contact-form__back,
.mw_wp_form_preview .contact-form__actions li {
	display: inline-block;
	box-sizing: border-box;
	margin: 0 1% 24px;
}

/* フォーム送信＝.c-btn と同じ見た目（HTMLにクラス付けられないためここで指定） */
.contact-form__send button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem 2rem;
	font-weight: 700;
	font-size: 1rem;
	border: 0;
	border-radius: 999px;
	background-color: var(--color-accent);
	color: #fff;
	cursor: pointer;
	transition: opacity var(--transition-base);
}

.contact-form__send button:hover {
	opacity: 0.92;
	color: #fff;
}

.contact-form__back button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem 2rem;
	font-weight: 700;
	border: 1px solid var(--color-accent);
	border-radius: 999px;
	background: transparent;
	color: var(--color-accent);
	cursor: pointer;
}

.page-content--contact .mw_wp_form .contact-explanation {
	font-size: 13px;
}
.page-content--contact .mw_wp_form form {
	font-size: 15px;
}

@media (width >= 768px) {
	.page-content--contact .mw_wp_form .contact-explanation {
		font-size: 14px;
	}
	.page-content--contact .mw_wp_form form {
		font-size: 16px;
	}
}

body.page-id-46 div .widgets.page_footer {
	display: none;
}

/* ==========================================================================
   ローディング（初回表示オーバーレイ）
   ========================================================================== */
/* ローディング中のみヘッダーをフェードイン（非トップは header.php で is-visible 付与済み） */
.site-header {
	opacity: 0;
	transition: opacity 0.5s ease-out;
}
.site-header.is-visible {
	opacity: 1 !important;
	transition: none !important;
}

@keyframes clear-text {
	0% {
		filter: blur(4px);
		opacity: 0;
		visibility: hidden;
	}
	100% {
		filter: blur(0);
		opacity: 1;
		visibility: visible;
	}
}

/* スマホで100vhがアドレスバー分で実際の表示域より大きくなり下端が透けるため、insetで可視領域を確実に覆う */
.loading {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	min-height: 100vh;
	min-height: 100dvh;
	background: #fff;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: env(safe-area-inset-top) 16px env(safe-area-inset-bottom);
	opacity: 1;
	transition: opacity 1.2s ease-out, visibility 1.2s step-end;
	overflow: hidden;
}
.loading.is-loaded {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none;
}

/* body側でスクロールを止める（.loading.is-loaded はbodyに付かないためここは単純化） */
body.is-loading-active {
	overflow: hidden !important;
	height: 100%;
	min-height: 100vh;
	min-height: 100dvh;
	position: fixed;
	width: 100%;
}

.loading svg {
	margin-bottom: 20px;
}
.loading svg path,
.loading svg polygon {
	fill: transparent !important;
	stroke-linejoin: round;
	stroke-linecap: round;
}
.loading #_fouc_1 .svg-elem-1 {
	transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.8s;
}
.loading #_fouc_1.active .svg-elem-1 {
	fill: #000 !important;
}
.loading #_fouc_1 .svg-elem-2 {
	transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.9s;
}
.loading #_fouc_1.active .svg-elem-2 {
	fill: #000 !important;
}
.loading #_fouc_1 .svg-elem-3 {
	transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1s;
}
.loading #_fouc_1.active .svg-elem-3 {
	fill: #000 !important;
}
.loading #_fouc_1 .svg-elem-4 {
	transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.1s;
}
.loading #_fouc_1.active .svg-elem-4 {
	fill: #000 !important;
}
.loading #_fouc_1 .svg-elem-5 {
	transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.2s;
}
.loading #_fouc_1.active .svg-elem-5 {
	fill: #000 !important;
}
.loading #_fouc_1 .svg-elem-6 {
	transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.3s;
}
.loading #_fouc_1.active .svg-elem-6 {
	fill: #000 !important;
}
.loading #_fouc_1 .svg-elem-7 {
	transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.4s;
}
.loading #_fouc_1.active .svg-elem-7 {
	fill: #000 !important;
}
.loading #_fouc_1 .svg-elem-8 {
	transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.5s;
}
.loading #_fouc_1.active .svg-elem-8 {
	fill: #000 !important;
}

.loading-text {
	text-align: center;
	line-height: normal;
	opacity: 0 !important;
	visibility: hidden !important;
}
.loading-text.is-active {
	opacity: 1 !important;
	visibility: visible !important;
	transition: opacity 0.5s ease-out 0s;
}
.loading-text div {
	text-align: center;
	line-height: 1.5;
	margin: 5px 0;
}
.loading-text span {
	display: inline-block;
	margin: 0 1px;
	color: #000;
	opacity: 0;
}
.loading-text .line-en {
	overflow: visible;
	max-width: 90vw;
	margin-left: auto;
	margin-right: auto;
}
.loading-text .line-en span {
	font-family: var(--font-family-en);
	font-size: 18px;
}
.loading-text .line-ja span {
	font-family: var(--font-family-en);
	font-size: 14px;
}

@media (min-width: 820px) {
	.loading-text .line-en span {
		font-size: 20px;
	}
	.loading-text .line-ja span {
		font-size: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.loading,
	.loading-text.is-active {
		transition: none !important;
	}
	.loading-text .line-en span,
	.loading-text .line-ja span {
		animation: none !important;
		opacity: 1 !important;
		filter: none !important;
		visibility: visible !important;
	}
}

/* line-en: 1文字ずつ clear-text アニメーション（delay 2.3s〜） */
.loading-text .line-en span:nth-child(1) { animation: clear-text 1.5s 2.3s forwards; }
.loading-text .line-en span:nth-child(2) { animation: clear-text 1.5s 2.32s forwards; }
.loading-text .line-en span:nth-child(3) { animation: clear-text 1.5s 2.34s forwards; }
.loading-text .line-en span:nth-child(4) { animation: clear-text 1.5s 2.36s forwards; }
.loading-text .line-en span:nth-child(5) { animation: clear-text 1.5s 2.38s forwards; }
.loading-text .line-en span:nth-child(6) { animation: clear-text 1.5s 2.4s forwards; }
.loading-text .line-en span:nth-child(7) { animation: clear-text 1.5s 2.42s forwards; }
.loading-text .line-en span:nth-child(8) { animation: clear-text 1.5s 2.44s forwards; }
.loading-text .line-en span:nth-child(9) { animation: clear-text 1.5s 2.46s forwards; }
.loading-text .line-en span:nth-child(10) { animation: clear-text 1.5s 2.48s forwards; }
.loading-text .line-en span:nth-child(11) { animation: clear-text 1.5s 2.5s forwards; }
.loading-text .line-en span:nth-child(12) { animation: clear-text 1.5s 2.52s forwards; }
.loading-text .line-en span:nth-child(13) { animation: clear-text 1.5s 2.54s forwards; }
.loading-text .line-en span:nth-child(14) { animation: clear-text 1.5s 2.56s forwards; }
.loading-text .line-en span:nth-child(15) { animation: clear-text 1.5s 2.58s forwards; }
.loading-text .line-en span:nth-child(16) { animation: clear-text 1.5s 2.6s forwards; }
.loading-text .line-en span:nth-child(17) { animation: clear-text 1.5s 2.62s forwards; }
.loading-text .line-en span:nth-child(18) { animation: clear-text 1.5s 2.64s forwards; }
.loading-text .line-en span:nth-child(19) { animation: clear-text 1.5s 2.66s forwards; }
.loading-text .line-en span:nth-child(20) { animation: clear-text 1.5s 2.68s forwards; }
.loading-text .line-en span:nth-child(21) { animation: clear-text 1.5s 2.7s forwards; }
.loading-text .line-en span:nth-child(22) { animation: clear-text 1.5s 2.72s forwards; }
.loading-text .line-en span:nth-child(23) { animation: clear-text 1.5s 2.74s forwards; }
.loading-text .line-en span:nth-child(24) { animation: clear-text 1.5s 2.76s forwards; }
.loading-text .line-en span:nth-child(25) { animation: clear-text 1.5s 2.78s forwards; }
.loading-text .line-en span:nth-child(26) { animation: clear-text 1.5s 2.8s forwards; }
.loading-text .line-en span:nth-child(27) { animation: clear-text 1.5s 2.82s forwards; }
.loading-text .line-en span:nth-child(28) { animation: clear-text 1.5s 2.84s forwards; }
.loading-text .line-en span:nth-child(29) { animation: clear-text 1.5s 2.86s forwards; }
.loading-text .line-en span:nth-child(30) { animation: clear-text 1.5s 2.88s forwards; }
.loading-text .line-en span:nth-child(31) { animation: clear-text 1.5s 2.9s forwards; }
.loading-text .line-en span:nth-child(32) { animation: clear-text 1.5s 2.92s forwards; }
.loading-text .line-en span:nth-child(33) { animation: clear-text 1.5s 2.94s forwards; }
.loading-text .line-en span:nth-child(34) { animation: clear-text 1.5s 2.96s forwards; }
.loading-text .line-en span:nth-child(35) { animation: clear-text 1.5s 2.98s forwards; }
.loading-text .line-en span:nth-child(36) { animation: clear-text 1.5s 3s forwards; }
.loading-text .line-en span:nth-child(37) { animation: clear-text 1.5s 3.02s forwards; }
.loading-text .line-en span:nth-child(38) { animation: clear-text 1.5s 3.04s forwards; }
.loading-text .line-en span:nth-child(39) { animation: clear-text 1.5s 3.06s forwards; }
.loading-text .line-en span:nth-child(40) { animation: clear-text 1.5s 3.08s forwards; }
.loading-text .line-en span:nth-child(41) { animation: clear-text 1.5s 3.1s forwards; }
.loading-text .line-en span:nth-child(42) { animation: clear-text 1.5s 3.12s forwards; }
.loading-text .line-en span:nth-child(43) { animation: clear-text 1.5s 3.14s forwards; }
.loading-text .line-en span:nth-child(44) { animation: clear-text 1.5s 3.16s forwards; }
.loading-text .line-en span:nth-child(45) { animation: clear-text 1.5s 3.18s forwards; }
.loading-text .line-en span:nth-child(46) { animation: clear-text 1.5s 3.2s forwards; }
.loading-text .line-en span:nth-child(47) { animation: clear-text 1.5s 3.22s forwards; }
.loading-text .line-en span:nth-child(48) { animation: clear-text 1.5s 3.24s forwards; }
.loading-text .line-en span:nth-child(49) { animation: clear-text 1.5s 3.26s forwards; }

.loading-text .line-ja span:nth-child(1) { animation: clear-text 1.5s 3.3s forwards; }
.loading-text .line-ja span:nth-child(2) { animation: clear-text 1.5s 3.32s forwards; }
.loading-text .line-ja span:nth-child(3) { animation: clear-text 1.5s 3.34s forwards; }
.loading-text .line-ja span:nth-child(4) { animation: clear-text 1.5s 3.36s forwards; }
.loading-text .line-ja span:nth-child(5) { animation: clear-text 1.5s 3.38s forwards; }
.loading-text .line-ja span:nth-child(6) { animation: clear-text 1.5s 3.4s forwards; }
.loading-text .line-ja span:nth-child(7) { animation: clear-text 1.5s 3.42s forwards; }
.loading-text .line-ja span:nth-child(8) { animation: clear-text 1.5s 3.44s forwards; }
.loading-text .line-ja span:nth-child(9) { animation: clear-text 1.5s 3.46s forwards; }
.loading-text .line-ja span:nth-child(10) { animation: clear-text 1.5s 3.48s forwards; }
.loading-text .line-ja span:nth-child(11) { animation: clear-text 1.5s 3.5s forwards; }
.loading-text .line-ja span:nth-child(12) { animation: clear-text 1.5s 3.52s forwards; }
.loading-text .line-ja span:nth-child(13) { animation: clear-text 1.5s 3.54s forwards; }
.loading-text .line-ja span:nth-child(14) { animation: clear-text 1.5s 3.56s forwards; }
.loading-text .line-ja span:nth-child(15) { animation: clear-text 1.5s 3.58s forwards; }
.loading-text .line-ja span:nth-child(16) { animation: clear-text 1.5s 3.6s forwards; }
.loading-text .line-ja span:nth-child(17) { animation: clear-text 1.5s 3.62s forwards; }
.loading-text .line-ja span:nth-child(18) { animation: clear-text 1.5s 3.64s forwards; }
.loading-text .line-ja span:nth-child(19) { animation: clear-text 1.5s 3.66s forwards; }
.loading-text .line-ja span:nth-child(20) { animation: clear-text 1.5s 3.68s forwards; }
.loading-text .line-ja span:nth-child(21) { animation: clear-text 1.5s 3.7s forwards; }
.loading-text .line-ja span:nth-child(22) { animation: clear-text 1.5s 3.72s forwards; }

@media (max-width: 767.98px) {
	.loading-text .line-en span {
		font-size: 16px;
	}
	.loading-text .line-ja span {
		font-size: 14px;
	}
}

/* スマホのみ「born」前で改行 */
@media (width >= 768px) {
	.loading-text .line-en-br {
		display: none;
	}
}
