/*
Theme Name: KeySessionOriginal
Theme URI: https://keysession.jp/
Author: KeySession
Author URI: https://keysession.jp/
Description: KeySession公式WordPressテーマ。本体サイトのヘッダー/フッターを共有し、記事表示に特化。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: keysession-original
*/

/* ===== CSS Variables ===== */
:root {
	--ks-primary-dark: #182b38;
	--ks-primary-mid: #45546c;
	--ks-accent-gold: #fab549;
	--ks-accent-green: #77b800;
	--ks-neutral-ivory: #faf6e4;
	--ks-neutral-white: #ffffff;
	--ks-muted-teal: #799aa3;
	--ks-accent-red: #b82e12;
	--ks-text-dark: #212529;
	--ks-text-muted: #6c757d;
	--ks-bg-light: #f8f9fb;
	--ks-border: #e9ecef;
}

/* ===== Base ===== */
.ks-main {
	padding: 2rem 0;
	min-height: 60vh;
	background: #fff;
}

/* ===== Breadcrumb ===== */
.ks-breadcrumb {
	padding: 0.75rem 0;
	font-size: 0.8rem;
}

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

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

.ks-breadcrumb span {
	color: var(--ks-text-muted);
	margin: 0 0.4rem;
}

.ks-breadcrumb .current {
	color: var(--ks-primary-dark);
	font-weight: 500;
}

/* ===== Archive / Index: Post Card Grid ===== */
.ks-archive-header {
	margin-bottom: 2rem;
}

.ks-archive-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--ks-primary-dark);
	margin: 0;
}

.ks-archive-desc {
	font-size: 0.88rem;
	color: var(--ks-text-muted);
	margin-top: 0.3rem;
}

.post-card {
	background: var(--ks-neutral-white);
	border-radius: 12px;
	border: 1px solid var(--ks-border);
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	height: 100%;
	display: flex;
	flex-direction: column;
}

.post-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.post-card a {
	text-decoration: none;
	color: inherit;
}

.post-card a:hover {
	text-decoration: none;
	color: inherit;
}

.post-card-img {
	position: relative;
	height: 180px;
	overflow: hidden;
	background: #f0f2f5;
}

.post-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.post-card:hover .post-card-img img {
	transform: scale(1.05);
}

.post-card-cat {
	position: absolute;
	top: 10px;
	left: 10px;
	display: flex;
	gap: 0.3rem;
	flex-wrap: wrap;
}

.post-card-cat a {
	background: var(--ks-primary-dark);
	color: #fff;
	font-size: 0.65rem;
	font-weight: 600;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
}

.post-card-body {
	padding: 1.25rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.post-card-title {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ks-primary-dark);
	margin: 0 0 0.5rem 0;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.post-card-excerpt {
	font-size: 0.82rem;
	color: var(--ks-text-muted);
	line-height: 1.6;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: 0.75rem;
}

.post-card-meta {
	font-size: 0.75rem;
	color: #adb5bd;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: auto;
}

.post-card-meta i {
	margin-right: 0.2rem;
}

/* ===== Single Post ===== */
.ks-single-header {
	margin-bottom: 1.5rem;
}

.ks-single-cats {
	display: flex;
	gap: 0.4rem;
	flex-wrap: wrap;
	margin-bottom: 0.75rem;
}

.ks-single-cats a {
	background: var(--ks-primary-dark);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 600;
	padding: 0.25rem 0.6rem;
	border-radius: 4px;
	text-decoration: none;
	transition: background 0.2s;
}

.ks-single-cats a:hover {
	background: var(--ks-accent-gold);
	color: var(--ks-primary-dark);
}

.ks-single-title {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--ks-primary-dark);
	line-height: 1.5;
	margin: 0 0 0.75rem 0;
}

.ks-single-meta {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	font-size: 0.82rem;
	color: var(--ks-text-muted);
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--ks-border);
}

.ks-single-meta i {
	margin-right: 0.25rem;
	color: var(--ks-accent-gold);
}

.ks-single-meta a {
	color: var(--ks-text-muted);
	text-decoration: none;
}

.ks-single-meta a:hover {
	color: var(--ks-accent-gold);
}

.ks-single-thumbnail {
	margin-bottom: 2rem;
	border-radius: 12px;
	overflow: hidden;
}

.ks-single-thumbnail img {
	width: 100%;
	height: auto;
	display: block;
}

/* Entry Content */
.entry-content {
	font-size: 17px;
	line-height: 1.9;
	color: var(--ks-text-dark);
}

.entry-content h2 {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--ks-primary-dark);
	margin: 2.5rem 0 1rem;
	padding: 0.6rem 0;
	border-bottom: 3px solid var(--ks-accent-gold);
	scroll-margin-top: 120px;
}

.entry-content h3 {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--ks-primary-dark);
	margin: 2rem 0 0.75rem;
	padding-left: 0.75rem;
	border-left: 4px solid var(--ks-accent-gold);
	scroll-margin-top: 120px;
}

.entry-content h4 {
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--ks-primary-dark);
	/* margin: 1.5rem 0 0.5rem; */
}

.entry-content p {
	font-size: 17px;
	color: #333;
}

.entry-content img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

.entry-content a {
	color: #1a3a5c;
	outline: none !important;
}

.entry-content a:hover {
	color: var(--ks-accent-gold);
}

/* 本文直下のリストのみカスタムスタイル適用 */
.entry-content > ul,
.entry-content > ol,
.entry-content > div > ul,
.entry-content > div > ol {
	margin-bottom: 1.25rem;
	padding-left: 0;
	list-style: none;
}

.entry-content > ol,
.entry-content > div > ol {
	counter-reset: ol-counter;
}

.entry-content > ul > li,
.entry-content > ol > li,
.entry-content > div > ul > li,
.entry-content > div > ol > li {
	position: relative;
	padding-left: 1.5em;
	margin-bottom: 0.5em;
	font-size: 15px;
	line-height: 1.7;
	color: #333;
}

.entry-content > ul > li::before,
.entry-content > div > ul > li::before {
	content: "";
	position: absolute;
	top: 0.6em;
	left: 0.2em;
	width: 0;
	height: 0;
	border-width: 5px;
	border-style: solid;
	border-color: transparent transparent transparent #b82e12;
}

.entry-content > ol > li,
.entry-content > div > ol > li {
	counter-increment: ol-counter;
}

.entry-content > ol > li::before,
.entry-content > div > ol > li::before {
	content: counter(ol-counter) ".";
	position: absolute;
	left: 0;
	top: 0;
	font-weight: 700;
	color: #45546c;
	font-size: 0.9em;
}

/* Inline text styles (記事内で使用) */
/* 本体custom.cssの.underline（背景グラデーション）を無効化 */
.entry-content .underline {
	background: none;
	padding: 0;
	display: inline;
	line-height: inherit;
}

.entry-content a.underline,
a.underline {
	color: #1e73be;
	text-decoration: underline;
}

.entry-content a.underline:hover,
a.underline:hover {
	color: var(--ks-accent-gold);
}

.c-blue {
	color: #45546c;
	background: linear-gradient(transparent 50%, #dfe4eb 0%);
	font-weight: bold;
}

.c-green {
	color: #77b800;
	background: linear-gradient(transparent 50%, #e6feb7 0%);
	font-weight: bold;
}

.c-red {
	color: #ff3008;
}

span.marker {
	background: linear-gradient(transparent 40%, #ffff66 0%);
	line-height: 1.3em;
	font-weight: 600;
}

.entry-content blockquote {
	background: var(--ks-bg-light);
	border-left: 4px solid var(--ks-accent-gold);
	padding: 1.25rem 1.5rem;
	margin: 1.5rem 0;
	border-radius: 0 8px 8px 0;
	font-style: italic;
	color: var(--ks-primary-mid);
}

/* base table styles are in Diver compatibility section below */

/* ===== Table of Contents ===== */
.ks-toc {
	background: var(--ks-bg-light);
	border: 1px solid var(--ks-border);
	border-radius: 10px;
	padding: 1.25rem 1.5rem;
	margin-bottom: 2rem;
}

.ks-toc-title {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ks-primary-dark);
	margin-bottom: 0.75rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--ks-accent-gold);
}

.ks-toc ol {
	margin: 0;
	padding-left: 1.4rem;
	counter-reset: toc-counter;
	list-style: none;
}

.ks-toc ol li {
	counter-increment: toc-counter;
	margin-bottom: 0.4rem;
	padding-left: 0.25rem;
	position: relative;
	line-height: 1.6;
}

.ks-toc ol li::before {
	content: counter(toc-counter) ".";
	color: var(--ks-accent-gold);
	font-weight: 700;
	font-size: 0.85rem;
	position: absolute;
	left: -1.4rem;
	top: 0;
	line-height: 1.9;
}

.ks-toc ol li a {
	color: var(--ks-primary-mid);
	text-decoration: none;
	font-size: 0.88rem;
	line-height: 1.6;
	transition: color 0.2s;
}

.ks-toc ol li a:hover {
	color: var(--ks-accent-gold);
}

/* Tags */
.ks-single-tags {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--ks-border);
}

.ks-single-tags a {
	display: inline-block;
	background: var(--ks-bg-light);
	color: var(--ks-primary-mid);
	font-size: 0.78rem;
	padding: 0.3rem 0.7rem;
	border-radius: 4px;
	margin: 0 0.3rem 0.3rem 0;
	text-decoration: none;
	transition: all 0.2s;
}

.ks-single-tags a:hover {
	background: var(--ks-accent-gold);
	color: var(--ks-primary-dark);
}

/* ===== Author Box ===== */
.ks-author-box {
	margin-top: 2.5rem;
	border: 1px solid var(--ks-border);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}

.ks-author-box-title {
	background: var(--ks-primary-dark);
	color: #fff;
	font-size: 0.88rem;
	font-weight: 700;
	padding: 0.55em 1em;
}

.ks-author-box-inner {
	display: flex;
	gap: 1.2rem;
	padding: 1.25rem;
}

.ks-author-avatar {
	flex-shrink: 0;
}

.ks-author-avatar img {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
}

.ks-author-name {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 0.4em;
}

.ks-author-name a {
	color: var(--ks-primary-dark);
	text-decoration: none;
}

.ks-author-name a:hover {
	color: var(--ks-accent-gold);
}

.ks-author-desc {
	font-size: 0.85rem;
	line-height: 1.7;
	color: var(--ks-text-muted);
}

@media (max-width: 575px) {
	.ks-author-box-inner {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
}

/* ===== Main column bottom margin ===== */
.col-md-8 {
	margin-bottom: 2rem;
}

/* ===== Sidebar ===== */
.ks-sidebar-widget {
	background: var(--ks-neutral-white);
	border-radius: 12px;
	border: 1px solid var(--ks-border);
	padding: 1.25rem;
	margin-bottom: 1.25rem;
}

.ks-sidebar-widget h3 {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ks-primary-dark);
	margin: 0 0 1rem 0;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--ks-accent-gold);
}

.ks-sidebar-widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ks-sidebar-widget li {
	margin-bottom: 0.3rem;
	display: flex;
	align-items: baseline;
	padding: 0.4rem 0.5rem;
	border-radius: 6px;
	font-size: 0.85rem;
	color: var(--ks-text-muted);
	transition: background 0.2s;
}

.ks-sidebar-widget li.cat-item {
	display: list-item;
	white-space: nowrap;
}

.ks-sidebar-widget ul.children {
	padding-left: 0.5rem;
	margin: 0.2rem 0 0;
	list-style: none;
}

.ks-sidebar-widget ul.children li::before {
	content: "└ ";
	color: var(--ks-text-muted);
}

.ks-sidebar-widget ul.children li {
	font-size: 0.8rem;
}

.ks-sidebar-widget li.current-cat > a,
.ks-sidebar-widget li.current-cat-parent > a {
	color: var(--ks-primary-dark);
	font-weight: 600;
}

.ks-sidebar-widget li:hover {
	background: var(--ks-bg-light);
}

.ks-sidebar-widget li a {
	display: inline;
	padding: 0;
	border-radius: 6px;
	color: var(--ks-primary-mid);
	text-decoration: none;
	font-size: 0.85rem;
	transition: background 0.2s, color 0.2s;
}

.ks-sidebar-widget li a:hover {
	color: var(--ks-primary-dark);
}

/* Sidebar sticky */
.ks-sidebar-sticky {
	position: sticky;
	top: 100px;
	z-index: 10;
}

.ks-sidebar-sticky .ks-sidebar-widget {
	border: none;
	padding: 0;
}

.form-page h2,
.textwidget .form-page h2 {
	color: #ffffff;
	background: #45546c;
	padding: 15px 20px;
}

/* Sidebar TOC */
.ks-sidebar-toc {
	height: 450px;
	overflow-y: auto;
	background: #f8f9fa;
	border-radius: 8px;
	padding: 16px;
}

.ks-sidebar-toc-title {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ks-primary-dark);
	margin-bottom: 0.75rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--ks-accent-gold);
}

.ks-sidebar-toc ol {
	margin: 0;
	padding-left: 1.4rem;
	counter-reset: stoc-counter;
	list-style: none;
}

.ks-sidebar-toc ol li {
	counter-increment: stoc-counter;
	margin-bottom: 0.3rem;
	padding-left: 0.25rem;
	position: relative;
	line-height: 1.5;
}

.ks-sidebar-toc ol li::before {
	content: counter(stoc-counter) ".";
	color: var(--ks-accent-gold);
	font-weight: 700;
	font-size: 0.8rem;
	position: absolute;
	left: -1.4rem;
	top: 0;
	line-height: 2.2;
}

.ks-sidebar-toc ol li a {
	color: var(--ks-primary-mid);
	text-decoration: none;
	font-size: 0.82rem;
	line-height: 1.5;
	transition: color 0.2s;
}

.ks-sidebar-toc ol li a:hover {
	color: var(--ks-accent-gold);
}

.ks-sidebar-toc ol li.ks-stoc-h3 {
	counter-increment: none;
	padding-left: 1rem;
	font-size: 0.78rem;
}

.ks-sidebar-toc ol li.ks-stoc-h3::before {
	content: "–";
	left: -0.5rem;
	font-size: 0.75rem;
}

.ks-sidebar-toc ol li.active a {
	color: var(--ks-accent-gold);
	font-weight: 600;
}

/* Scrollbar */
.ks-sidebar-toc::-webkit-scrollbar {
	width: 4px;
}

.ks-sidebar-toc::-webkit-scrollbar-track {
	background: transparent;
}

.ks-sidebar-toc::-webkit-scrollbar-thumb {
	background: var(--ks-border);
	border-radius: 2px;
}

.ks-sidebar-widget.ks-sidebar-search {
	padding: 0;
	border: none;
}

/* Sidebar search */
.ks-sidebar-search .search-form {
	display: flex;
	gap: 0;
}

.ks-sidebar-search .search-form label {
	margin-bottom: 0;
	flex: 1;
}

.ks-sidebar-search .search-field {
	width: 100%;
	border: 1px solid var(--ks-border);
	border-right: none;
	border-radius: 6px 0 0 6px;
	padding: 0.5rem 0.75rem;
	font-size: 0.85rem;
	outline: none;
}

.ks-sidebar-search .search-field:focus {
	border-color: var(--ks-accent-gold);
}

.ks-sidebar-search .search-submit {
	background: var(--ks-primary-dark);
	color: #fff;
	border: none;
	border-radius: 0 6px 6px 0;
	padding: 0.5rem 1rem;
	font-size: 0.85rem;
	cursor: pointer;
	transition: background 0.2s;
}

.ks-sidebar-search .search-submit:hover {
	background: var(--ks-accent-gold);
	color: var(--ks-primary-dark);
}


/* ===== Pagination ===== */
.ks-pagination {
	margin-top: 2rem;
	margin-bottom: 2rem;
	display: flex;
	justify-content: center;
	gap: 0.3rem;
}

.ks-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 0.5rem;
	border-radius: 6px;
	border: 1px solid var(--ks-border);
	background: var(--ks-neutral-white);
	color: var(--ks-primary-mid);
	font-size: 0.85rem;
	text-decoration: none;
	transition: all 0.2s;
}

.ks-pagination .page-numbers:hover {
	border-color: var(--ks-accent-gold);
	color: var(--ks-accent-gold);
}

.ks-pagination .page-numbers.current {
	background: var(--ks-primary-dark);
	color: #fff;
	border-color: var(--ks-primary-dark);
}

/* ===== 404 ===== */
.ks-404 {
	text-align: center;
	padding: 4rem 0;
}

.ks-404 h1 {
	font-size: 5rem;
	font-weight: 800;
	color: var(--ks-accent-gold);
	margin-bottom: 0.5rem;
}

.ks-404 h2 {
	font-size: 1.3rem;
	color: var(--ks-primary-dark);
	margin-bottom: 1rem;
}

.ks-404 p {
	color: var(--ks-text-muted);
	margin-bottom: 2rem;
}

/* ===== Diver互換: ショートコード・記事内コンポーネント ===== */

/* clearfix */
.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

/* --- Column layout --- */
.col2, .sc_col2 { width: 50%; float: left; padding: 10px; box-sizing: border-box; }
.col3, .sc_col3 { width: 33.333333%; float: left; padding: 10px; box-sizing: border-box; }
.col3_2, .sc_col3_2 { width: 66.666666%; float: left; padding: 10px; box-sizing: border-box; }
.col4, .sc_col4 { width: 25%; float: left; padding: 10px; box-sizing: border-box; }
.col4_3, .sc_col4_3 { width: 75%; float: left; padding: 10px; box-sizing: border-box; }
.col2 img, .col3 img, .col3_2 img, .col4 img, .col4_3 img,
.sc_col2 img, .sc_col3 img, .sc_col3_2 img, .sc_col4 img, .sc_col4_3 img { max-width: 100%; height: auto; }
.row.sp::after { content: ""; display: block; clear: both; }

/* --- Plan CTA card wrapper --- */
.entry-content > div[style*="background-color:#f7f7f7"] {
	background: #fff !important;
	border: 1px solid #e8eaed !important;
	border-radius: 14px !important;
	padding: 0 !important;
	margin: 1.5em 0 !important;
	box-shadow: 0 1px 6px rgba(0,0,0,0.04);
	overflow: hidden;
	transition: box-shadow 0.3s, transform 0.3s;
}
.entry-content > div[style*="background-color:#f7f7f7"]:hover {
	box-shadow: 0 6px 20px rgba(0,0,0,0.08);
	transform: translateY(-2px);
}

/* --- Plan card: row.sp (image + text) --- */
.entry-content .row.sp {
	background: transparent;
	border: none;
	border-radius: 0;
	overflow: visible;
	margin-bottom: 0;
	display: flex;
	align-items: stretch;
	box-shadow: none;
	transition: none;
}
.entry-content .row.sp:hover {
	box-shadow: none;
	transform: none;
}
.entry-content .row.sp .sc_col3 {
	float: none;
	width: auto;
	flex-shrink: 0;
	padding: 0;
	overflow: hidden;
}
.entry-content .row.sp .sc_col3 a {
	display: block;
	height: 100%;
}
.entry-content .row.sp .sc_col3 img {
	width: 200px;
	display: block;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover;
	transition: transform 0.3s;
}
.entry-content > div[style*="background-color:#f7f7f7"]:hover .sc_col3 img {
	transform: scale(1.05);
}
.entry-content .row.sp .sc_col3_2 {
	float: none;
	width: auto;
	flex: 1;
	padding: 18px 22px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.entry-content .row.sp .sc_col3_2 p {
	margin: 0 0 6px !important;
	padding: 0 !important;
}
.entry-content .row.sp .sc_col3_2 p:first-child {
	margin-bottom: 8px !important;
}
.entry-content .row.sp .sc_col3_2 p:first-child a {
	font-size: 16px;
	font-weight: 700 !important;
	color: #1a2a3a !important;
	text-decoration: none;
	line-height: 1.5;
	border: none !important;
	background-color: transparent !important;
}
.entry-content .row.sp .sc_col3_2 p:first-child a:hover {
	color: #ff3008 !important;
}
.entry-content .row.sp .sc_col3_2 p:first-child small {
	font-size: 12px !important;
	color: #888;
	font-weight: 400;
}
.entry-content .row.sp .sc_col3_2 p:nth-child(2) {
	font-size: 13px !important;
	color: #555;
	line-height: 1.75;
	margin-bottom: 12px !important;
}
.entry-content .row.sp .sc_col3_2 .button.btn {
	margin: auto 0 0 !important;
}
.entry-content .row.sp .sc_col3_2 .button.btn a {
	display: inline-block;
	background: #ff3008 !important;
	color: #fff !important;
	border: none !important;
	font-size: 13px;
	font-weight: 700;
	padding: 8px 24px;
	border-radius: 6px;
	text-decoration: none;
	transition: background 0.2s, transform 0.15s;
}
.entry-content .row.sp .sc_col3_2 .button.btn a:hover {
	background: #e02a06 !important;
	transform: translateY(-1px);
}

/* --- Plan card: border divider --- */
.entry-content > div[style*="background-color:#f7f7f7"] > .border {
	border-color: #eee !important;
	border-top-width: 1px !important;
	margin: 0 20px !important;
	height: 0 !important;
}

/* --- Plan card: company info (voice) --- */
.entry-content > div[style*="background-color:#f7f7f7"] .voice {
	margin: 0 !important;
	padding: 12px 22px 14px !important;
	display: flex;
	align-items: center;
	clear: both;
}
.entry-content > div[style*="background-color:#f7f7f7"] .voice .icon {
	float: none !important;
	margin: 0 14px 0 0 !important;
	flex-shrink: 0;
}
.entry-content > div[style*="background-color:#f7f7f7"] .voice .icon img {
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	border: 1px solid #e8eaed !important;
	float: none !important;
	margin: 0 !important;
}
.entry-content > div[style*="background-color:#f7f7f7"] .voice .white {
	overflow: visible;
}
.entry-content > div[style*="background-color:#f7f7f7"] .voice .white:first-of-type a {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #1a2a3a !important;
	text-decoration: none;
}
.entry-content > div[style*="background-color:#f7f7f7"] .voice .white:first-of-type a:hover {
	color: #ff3008 !important;
}
.entry-content > div[style*="background-color:#f7f7f7"] .voice .white:last-of-type {
	font-size: 11px !important;
	color: #888 !important;
	margin-bottom: 0 !important;
	line-height: 1.4;
}

/* --- テーブル内の card in card 防止 --- */
.entry-content table .row.sp {
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	margin-bottom: 0;
}
.entry-content table .row.sp:hover {
	box-shadow: none;
	transform: none;
}

/* --- Border divider --- */
.border {
	width: 100%;
	height: 2px;
	border-top: 2px solid #ccc;
	margin: 10px 0;
}

/* --- sc_marker --- */
.sc_marker { background: linear-gradient(transparent 50%, #ff6 50%); }
.sc_marker.red { background: linear-gradient(transparent 50%, #ffd9d9 50%); }
.sc_marker.blue { background: linear-gradient(transparent 50%, #cfdbff 50%); }

/* --- Button (Diver) --- */
.button { text-align: center; margin: 10px 5px; }
.entry-content .button { margin-top: 0; margin-bottom: 1.2em; }
.button a, .entry-content .button a {
	padding: .6em 2em;
	display: inline-block;
	position: relative;
	background-color: #70b8f1;
	border-style: solid;
	border-width: 0;
	color: #fff;
	font-weight: bold;
	text-decoration: none !important;
	letter-spacing: 2px;
	border-radius: 3px;
}
.button a i { vertical-align: baseline; line-height: 1; }
.button a i.before { margin-right: 1em; }
.button a i.after { margin-left: 1em; }
.button a i span { display: none; }
i span { display: none; }
.button a.medium, .button a.midium { padding: .5em 1.8em; font-size: 16px; }
.button a.big { padding: .8em 2.5em; font-size: 18px; }
.button a.small { padding: .5em 1.3em; font-size: 13px; }
.button.big a { width: 100%; }
.button a:hover { filter: brightness(.95); }
.button.inline { display: inline-block; }
.button.block .sc_frame_title + .sc_frame .button { margin-bottom: 0; }

/* solid */
.button.solid a { position: relative; box-shadow: 0 5px 0 #ccc; top: 0; text-shadow: 0 1px 1px rgba(0,0,0,.4); }
.button.solid a:hover { top: 5px; box-shadow: none; }
/* shadow */
.button.shadow a { box-shadow: 0 2px 10px 1px rgba(0,0,0,.2); }
.button.shadow a:hover { box-shadow: none; }
/* radius */
.button.radius a { border-radius: 50px; }
/* oborder */
.button.oborder a { border: 2px solid #70b8f1; background: #fff; color: #70b8f1; }

/* color variants */
.button.blue a { background-color: #70b8f1; color: #fff; }
.button.solid.blue a { box-shadow: 0 5px 0 #5c96cc; }
.button.green a { background-color: #2ac113; color: #fff; }
.button.solid.green a { box-shadow: 0 5px 0 #3da008; }
.button.red a { background-color: #ff8178; color: #fff; }
.button.solid.red a { box-shadow: 0 5px 0 #dc6c60; }
.button.yellow a { background-color: #ffe822; color: #fff; }
.button.solid.yellow a { box-shadow: 0 5px 0 #dac700; }
.button.orange a { background-color: #ffa30d; color: #fff; }
.button.solid.orange a { box-shadow: 0 5px 0 #d28900; }
.button.gray a { background-color: #ccc; color: #505050; }
.button.solid.gray a { box-shadow: 0 5px 0 #d8d8d8; }
.button.black a { background-color: #000; color: #fff; }
.button.solid.black a { box-shadow: 0 5px 0 #696969; }
.button.white a { background-color: #fff; color: #000; }
.button.solid.white a { box-shadow: 0 5px 0 #dcdcdc; }

/* midium btn */
.midium { display: inline-block; margin: 0.3em 0.2em; }
.midium.btn a, .midium a {
	display: inline-block; padding: 0.4em 1.2em; border-radius: 4px;
	text-decoration: none; font-weight: 600; font-size: 0.85em; transition: opacity 0.2s;
}
.midium.btn a:hover, .midium a:hover { opacity: 0.8; }
.btn-company a { background: var(--ks-primary-dark); color: #fff !important; border: 1px solid var(--ks-primary-dark); }
.btn-plan a { background: #fff; color: var(--ks-primary-dark) !important; border: 1px solid var(--ks-primary-dark); }

/* --- sc_frame (枠ボックス) --- */
.sc_frame_wrap { margin-bottom: 1.2em; position: relative; }
.sc_frame {
	overflow: auto; border: 3px solid #ccc; padding: 1em 1.5em;
	position: relative; border-radius: 5px; background: #fff; color: #000;
}
.sc_frame p:last-child { padding-bottom: 0; }
.entry-content .sc_frame ul, .entry-content .sc_frame ol { padding: 0 1.2em; margin-bottom: 0; }
.sc_frame_title {
	padding: 2px 1em; position: relative; font-weight: bold; color: #fff; background: #ccc; top: 1px;
}
.sc_frame_title p { padding: 0; margin: 0; display: inline-block; }
.sc_frame_title i { margin-right: .2em; }
.sc_frame_icon { display: inline-block; }
.sc_frame .sc_frame_icon { float: left; font-size: 1.3em; line-height: 1.2; padding: .2em 0; vertical-align: middle; margin-right: .8em; }
.sc_frame_text p:last-child { padding-bottom: 0 !important; }

/* frame layout variants */
.sc_frame_wrap.block .sc_frame_title { border-radius: 5px 5px 0 0; }
.sc_frame_wrap.block .sc_frame { border-radius: 0 0 5px 5px; }
.sc_frame_wrap.inline .sc_frame_title { display: inline-block; margin: 0 1em; border-radius: 5px 5px 0 0; }
.sc_frame_wrap.inframe .sc_frame { overflow: inherit; padding-top: 3em; }
.sc_frame_wrap.inframe .sc_frame_title { float: left; border-radius: 5px 0 5px 0; z-index: 1; }
.sc_frame_wrap.onframe .sc_frame_title { position: absolute; display: inline-block; top: -1em; left: 1.8em; z-index: 1; padding: 1px 9px; border-radius: 5px; background: #fff; color: var(--ks-primary-dark); font-size: 0.95em; }
.survery4hr_cta { margin-top: 2em; }

/* frame color variants */
.sc_frame_wrap.blue .sc_frame { border-color: #70b8f1; }
.sc_frame_wrap.blue .sc_frame_title { background-color: #70b8f1; }
.sc_frame_wrap.green .sc_frame { border-color: #2ac113; }
.sc_frame_wrap.green .sc_frame_title { background-color: #2ac113; }
.sc_frame_wrap.red .sc_frame { border-color: #ff8178; }
.sc_frame_wrap.red .sc_frame_title { background-color: #ff8178; }
.sc_frame_wrap.yellow .sc_frame { border-color: #ffe822; }
.sc_frame_wrap.yellow .sc_frame_title { background-color: #ffe822; }
.sc_frame_wrap.orange .sc_frame { border-color: #ffa30d; }
.sc_frame_wrap.orange .sc_frame_title { background-color: #ffa30d; }
.sc_frame_wrap.gray .sc_frame { border-color: #ccc; }
.sc_frame_wrap.gray .sc_frame_title { background-color: #ccc; }
.sc_frame_wrap.black .sc_frame { border-color: #000; }
.sc_frame_wrap.black .sc_frame_title { background-color: #000; }

/* --- Voice / testimonial --- */
.voice { margin-bottom: 1.2em; float: none; }
.entry-content .voice p { padding: 0; }
.voice .icon { text-align: center; line-height: 0; margin-bottom: 10px; }
.voice .icon img { border-radius: 50%; border: 2px solid #eee; width: 70px; height: 70px; object-fit: cover; margin: 0; overflow: hidden; }
.voice .name { font-size: .8em; }
.voice .text { max-width: 75%; }
.voice .white { overflow: hidden; }

.voice.left .icon img { float: left; margin-right: 20px; }
.voice.left .icon .name { text-align: left; position: relative; top: 12px; }
.voice.left .text { float: left; }
.voice.right .icon img { float: right; margin-left: 20px; }
.voice.right .icon .name { text-align: right; position: relative; top: 12px; }
.voice.right .text { float: right; }

.voice.left.n_bottom .icon { float: left; }
.voice.left.n_bottom .icon img { float: none; }
.voice.left.n_bottom .icon .name { margin-right: 20px; text-align: center; line-height: 1; max-width: 70px; margin-top: -10px; }
.voice.right.n_bottom .icon { float: right; }
.voice.right.n_bottom .icon img { float: none; }
.voice.right.n_bottom .icon .name { margin-left: 20px; text-align: center; line-height: 1; max-width: 70px; margin-top: -10px; }

.custom_voice { display: inline-block; position: absolute; }

/* voice balloon */
.voice .text.sc_balloon, .voice .think_balloon {
	padding: .5em 1em; margin: 0; border-width: 2px; font-size: .9em; margin-top: 15px; font-weight: bold;
}
.sc_balloon {
	color: #333; position: relative; display: inline-block; padding: 1em 2em; margin: 10px;
	background: #fff; border: 2px solid #ccc; z-index: 0; border-radius: 5px;
}
.voice.left .text.sc_balloon { border-radius: 0 15px 15px 15px; }
.voice.right .text.sc_balloon { border-radius: 15px 0 15px 15px; }

/* --- Definition List (dl/dt/dd) --- */
.entry-content dl {
	margin: 1.2em 0;
	padding: 0;
}
.entry-content dt {
	font-weight: 700;
	color: #1a2a3a;
	padding: 8px 0 4px;
	background: none;
	border: none;
	margin-top: 1em;
}
.entry-content dt:first-child {
	margin-top: 0;
}
.entry-content dd {
	color: #444;
	line-height: 1.8;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid #eee;
}
.entry-content dd:last-child {
	border-bottom: none;
}

/* --- Badge --- */
.badge {
	background: #333; color: #fff; padding: .2em 9px .1em; margin: 0 3px;
	font-size: .8em; border-radius: 3px; display: inline-block; position: relative; font-weight: bold;
}
.badge.radius { border-radius: 50px; padding: 5px 15px; }
.badge.blue { background-color: #70b8f1; }
.badge.green { background-color: #2ac113; }
.badge.red { background-color: #ff8178; }
.badge.orange { background-color: #ffa30d; }
.badge.yellow { background-color: #ffe822; color: #505050; }
.badge.red_issue { background-color: #b82e12; }
.badge.blue_goal { background-color: #799aa3; }
.badge.badge-category { background-color: #45546c; border-radius: 50px; padding: 4px 14px; }
.badge.badge-category, .badge.badge-category:hover { color: #fff; text-decoration: none; }
.badge i { vertical-align: baseline; font-weight: bold; }
.badge i.before { margin-right: .5em; }
.badge i.after { margin-left: .5em; }

/* --- More button --- */
.entry-content button.more {
	width: auto !important;
	background: #fff;
	color: #45546c;
	border: 2px solid #dfe3e8;
	border-radius: 50px;
	padding: 12px 40px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(0,0,0,0.06);
	transition: all 0.25s ease;
	position: relative;
	letter-spacing: 0.03em;
}
.entry-content button.more::after {
	display: none;
}
.entry-content button.more:hover {
	background: #45546c;
	color: #fff;
	border-color: #45546c;
	box-shadow: 0 4px 14px rgba(69,84,108,0.25);
	transform: translateY(-2px);
}
.entry-content button.more:hover::after {
	transform: translateY(3px);
}
.entry-content button.more:active {
	transform: translateY(0);
	box-shadow: 0 2px 6px rgba(69,84,108,0.15);
}

.entry-content .table-responsive table {
	margin: 0;
}

/* --- Table: comparison --- */
.entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	margin: 1em 0;
}
.entry-content table caption {
	caption-side: top;
	font-size: 0.9em;
	font-weight: 700;
	color: #333;
	padding: 2px 0;
	margin: 0;
	text-align: left;
}
.entry-content table thead th {
	background-color: #45546c !important;
	color: #fff;
	font-weight: bold;
	text-align: center;
	padding: 10px 12px;
	border: 1px solid #3a4a5e;
}
.entry-content table thead th a {
	color: #fff !important;
	text-decoration: none;
}
.entry-content table tbody th {
	background-color: #FAF6E4 !important;
	font-weight: bold;
	padding: 10px;
	border: 1px solid #e8e3cc;
	vertical-align: middle;
	color: #333;
	width: 140px;
}
.entry-content table tbody td {
	background-color: #fff;
	padding: 10px;
	border: 1px solid #dee2e6;
	vertical-align: middle;
	color: #333;
}
.entry-content table tbody td ul {
	margin: 0.3em 0;
	padding-left: 0;
	list-style: none;
}
.entry-content table tbody td ul li {
	font-weight: 400;
	font-size: 13px;
	margin-bottom: 0.3em;
	padding-left: 1.2em;
	position: relative;
	line-height: 1.6;
}
.entry-content table tbody td ul li::before {
	position: absolute;
	left: 0;
	top: 0;
}
.entry-content .tp-curriculum-table td ul li::before {
	content: "\f0da";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: var(--ks-accent-gold);
	font-size: 11px;
	top: 0.2em;
}
.entry-content table tbody td ul.training_option_name,
table.simple ul.training_option_name {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.entry-content table tbody td ul.training_option_name li,
table.simple ul.training_option_name li {
	display: inline-flex;
	align-items: center;
	background-color: var(--ks-accent-gold, #fab549);
	color: var(--ks-primary-dark, #182b38);
	padding: 0.35rem 0.75rem;
	border-radius: 100px;
	font-size: 0.82rem;
	font-weight: 500;
	white-space: nowrap;
	position: static;
	margin: 0;
}
.entry-content table tbody td ul.training_option_name li::before {
	content: none;
}
.entry-content table tbody td ul.training_option_name li i {
	margin-right: 0.35rem;
	font-size: 0.78rem;
}
.entry-content table tbody td ul.issue li::before {
	content: "\f11a";
	font-family: "Font Awesome 5 Free";
	font-weight: 400;
	color: #b82e12;
	font-size: 11px;
}
.entry-content table tbody td ul.goal li::before {
	content: "\f024";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: #799aa3;
	font-size: 11px;
}
table.company_comparison tbody td {
	width: 350px;
}
.entry-content table tbody td p {
	padding: 0;
	margin: 0;
	font-size: 14px;
}
.entry-content table a {
	color: #1e73be;
	text-decoration: underline;
}
.entry-content table a:hover {
	color: var(--ks-accent-gold);
}
.entry-content table tbody th a {
	color: #333;
}
.entry-content table .btn-std {
	white-space: nowrap;
	color: #fff !important;
}

/* flex-content (table内 ロゴ+テキスト横並び) */
.flex-content {
	display: flex;
	align-items: center;
	width: 100%;
	margin: 0.5em 0 !important;
}
.flex-content p {
	margin: 0 !important;
	padding: 0 !important;
}
.flex-container-logo {
	width: 35px;
	height: 35px;
	border-radius: 6px;
	object-fit: contain;
	margin-right: 10px !important;
	margin-bottom: 0 !important;
	flex-shrink: 0;
}
.flex-container-image {
	width: 80px;
	height: auto;
	border-radius: 6px;
	object-fit: cover;
	margin-right: 10px !important;
	margin-bottom: 0 !important;
	flex-shrink: 0;
}
.flex-content p.text {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 14px;
	line-height: 1.5;
	color: #333;
}
.flex-content p.text a {
	color: #333;
	text-decoration: none;
}
.flex-content p.text a:hover {
	color: #ff3008;
}
.flex-content p.text .small {
	margin-left: 4px;
	font-size: 0.85em;
	color: #999;
}

/* --- sc_toggle (accordion) --- */
.sc_toggle_box {
	box-shadow: 1px 1px 5px rgba(0,0,0,.15); border-radius: 3px 3px 0 0;
	background: #fff; margin-bottom: 1.2em;
}
.sc_toggle_box + .sc_toggle_box { border-radius: 0 0 3px 3px; border-top: none; margin-top: -1.2em; }
.sc_toggle_title {
	padding: 10px 20px; position: relative; padding-right: calc(20px + 1.5em); cursor: pointer;
}
.sc_toggle_title:after {
	content: '\f078'; right: .5em; top: 50%; position: absolute;
	color: #e0e0e0; font-family: FontAwesome;
	transform: translateY(-50%) translateX(-50%);
}
.sc_toggle_title.active:after { content: '\f077'; }
.sc_toggle_title.active:before {
	content: ""; border-left: 10px solid transparent; border-right: 10px solid transparent;
	border-top: 10px solid #fff; position: absolute; bottom: -10px; left: 30px;
}
.sc_toggle_content { padding: 10px 20px; display: none; background: #efefef; }
.sc_toggle_title.active + .sc_toggle_content { display: block; }

/* --- sc_designlist --- */
.sc_designlist ul { list-style: none; padding: 0; margin: 0; }
.sc_designlist li { padding: 0.3em 0; border-bottom: 1px dotted #ddd; }
.sc_designlist li:last-child { border-bottom: none; }
.sc_designlist li a { color: var(--ks-primary-mid); text-decoration: none; font-size: 0.88em; }
.sc_designlist li a:hover { color: var(--ks-accent-gold); }

/* sc_designlist icons */
.sc_designlist.li ul { padding-left: 1.5em !important; }
.sc_designlist.li ul li { position: relative; padding-left: 0; border-bottom: none; }
.sc_designlist.li ul li::before {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	position: absolute;
	left: -1.5em;
}
.sc_designlist.fa_check ul li::before { content: "\f00c"; }
.sc_designlist.fa_angle ul li::before { content: "\f105"; }
.sc_designlist.fa_angle_d ul li::before { content: "\f101"; }
.sc_designlist.fa_angle_o ul li::before { content: "\f138"; }
.sc_designlist.fa_caret ul li::before { content: "\f0da"; }
.sc_designlist.fa_arrow ul li::before { content: "\f061"; }

/* sc_designlist color variants */
.sc_designlist.blue ul li::before { color: #70b8f1; }
.sc_designlist.green ul li::before { color: #2ac113; }
.sc_designlist.red ul li::before { color: #ff8178; }
.sc_designlist.orange ul li::before { color: #ffa30d; }

/* --- CTA block: sc_frame 内の sc_col3_2 --- */
.sc_frame .row.sp {
	display: flex;
	align-items: stretch;
}
.sc_frame .sc_col3_2 {
	float: none;
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 10px 15px;
}
.sc_frame .sc_col3_2 > p:first-child {
	font-size: 12px;
	font-weight: 600;
	margin: 0 0 4px;
	padding: 0;
	color: #666;
}
.sc_frame .sc_col3_2 > p:nth-child(2) {
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 8px;
	padding: 0;
	color: var(--ks-primary-dark);
	line-height: 1.4;
}
.sc_frame .sc_col3_2 > p:nth-child(3) {
	font-size: 13px;
	margin: 0 0 10px;
	padding: 0;
	color: #555;
	line-height: 1.6;
}
.sc_frame .sc_col3_2 .sc_designlist {
	margin-bottom: 12px;
	font-size: 13px;
}
.sc_frame .sc_col3_2 .sc_designlist ul {
	padding: 0 0 0 1.5em;
}
.sc_frame .sc_col3_2 .sc_designlist li {
	padding: 0.25em 0 0.25em 0;
	line-height: 1.5;
}
.sc_frame .sc_col3_2 .button {
	margin-top: auto;
}
.sc_frame .sc_col3_2 .button a {
	display: block;
	text-align: center;
}
.sc_frame .sc_col3_2 .button a i span {
	display: none;
}

@media (max-width: 767px) {
	.sc_frame .row.sp {
		flex-direction: column;
	}
	.sc_frame .sc_col3_2 > p:nth-child(2) {
		font-size: 18px;
	}
}

/* --- sc_getpost (関連記事カード) --- */
.sc_getpost {
	box-shadow: 0 2px 5px rgba(100,100,100,.25); position: relative;
	transition-duration: .2s; margin: 1em 0; border: 1px solid #ddd; background: #fff;
}
.sc_getpost:hover { background: #eee; }
.sc_getpost a, .entry-content .sc_getpost a {
	text-decoration: none; color: #000; padding: 10px; display: block; overflow: hidden;
}
.entry-content .sc_getpost p { padding: 0; display: none; }
.sc_getpost_thumb { width: 150px; float: left; margin-right: 10px; }
.sc_getpost .title {
	font-weight: bold; font-size: .9em; overflow: hidden;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.sc_getpost .substr {
	font-size: .8em; line-height: 1.5; color: #666; margin-bottom: 1.5em;
	overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3;
}
.sc_getpost .date { font-size: .8em; position: absolute; right: 15px; bottom: 5px; }
.sc_getpost .badge { font-size: .8em; padding: .1em 7px; margin-right: 5px; }

/* --- offer-card-horizontal --- */
.offer-card-horizontal {
	display: flex; flex-direction: row; border-radius: 8px; overflow: hidden;
	margin-bottom: 1rem; background: #fff; transition: box-shadow 0.3s;
}
.offer-card-horizontal:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.1); }
.offer-card-horizontal .col-md-4 { flex: 0 0 180px; }
.offer-card-horizontal img { width: 100%; height: 100%; object-fit: cover; }

/* --- 導入実績カード (entry-content内) --- */
.entry-content .offer-card-horizontal {
	display: block;
	border: none;
	border-radius: 10px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.07);
	margin-bottom: 0;
	background: #fff;
	overflow: hidden;
	transition: box-shadow 0.2s, transform 0.2s;
}
.entry-content .offer-card-horizontal:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,0.12);
	transform: translateY(-2px);
}
.entry-content .offer-card-horizontal .card-body {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 20px;
}

/* ロゴ */
.entry-content .achievement-logo {
	flex-shrink: 0;
	width: 72px;
	height: 72px;
	border-radius: 8px;
	overflow: hidden;
	background: #f5f5f5;
	display: flex;
	align-items: center;
	justify-content: center;
}
.entry-content .achievement-logo .card-img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 0;
}

/* コンテンツ */
.entry-content .achievement-content {
	flex: 1;
	min-width: 0;
}
.entry-content .achievement-content p {
	margin: 0 !important;
	padding: 0 !important;
}
.entry-content .client-name {
	font-size: 14px;
	font-weight: 700;
	color: #45546c;
	margin-bottom: 4px !important;
}
.entry-content .training-info {
	font-size: 13px;
	color: #555;
	line-height: 1.5;
	margin-bottom: 6px !important;
}
.entry-content .training-info a {
	color: #1e73be;
	text-decoration: none;
}
.entry-content .training-info a:hover {
	text-decoration: underline;
}
.entry-content .training-details {
	font-size: 12px;
	color: #999;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 14px;
}
.entry-content .training-details i {
	margin-right: 3px;
	font-size: 11px;
}

/* 実績コンテナ行間 */
#achievement-container_1 .col-md-12 {
	margin-bottom: 12px;
}
[id^="achievement-container"] .col-md-12 {
	margin-bottom: 12px;
}

/* --- tp-voices (testimonial plugin) --- */
.tp-voices-section h3 { font-size: 1.4rem; font-weight: 600; color: var(--ks-primary-dark); margin-bottom: 1rem; }
.tp-voices-container { margin-bottom: 1rem; }

/* --- fontsize shortcode --- */
.fontsize.\31 { font-size: .8em; }
.fontsize.\32 { font-size: .9em; }
.fontsize.\33 { font-size: 1.1em; }
.fontsize.\34 { font-size: 1.3em; }
.fontsize.\35 { font-size: 1.4em; }
.fontsize.\36 { font-size: 1.5em; }
.fontsize.\37 { font-size: 1.6em; }
.fontsize.\38 { font-size: 1.7em; }
.fontsize.\39 { font-size: 2em; }

/* ===== Responsive ===== */
@media (max-width: 768px) {
	.ks-single-title {
		font-size: 1.25rem;
	}

	.entry-content h2 {
		font-size: 1.15rem;
	}

	.entry-content h3 {
		font-size: 1.05rem;
	}

	.post-card-img {
		height: 150px;
	}


	/* Diver互換: SP対応 */
	.sc_col3,
	.sc_col3_2 {
		width: 100%;
		float: none;
	}
	.entry-content .row.sp {
		flex-direction: column;
	}
	.entry-content .row.sp .sc_col3 img {
		width: 100%;
		height: 160px;
	}
	.entry-content .row.sp .sc_col3_2 {
		padding: 14px 16px;
	}
	.entry-content .row.sp .sc_col3_2 p:first-child a {
		font-size: 15px;
	}
	.entry-content > div[style*="background-color:#f7f7f7"] .voice {
		padding: 10px 16px 12px !important;
	}
	.voice.left .icon img {
		width: 50px;
		height: 50px;
	}

	.entry-content table {
		font-size: 13px;
	}
	.entry-content table thead th,
	.entry-content table tbody th,
	.entry-content table tbody td {
		padding: 6px 8px;
	}
	.flex-container-logo {
		width: 28px;
		height: 28px;
	}
	.flex-container-image {
		width: 60px;
	}
	.flex-content p.text {
		font-size: 12px;
	}

	.offer-card-horizontal {
		flex-direction: column;
	}
	.offer-card-horizontal .col-md-4 {
		flex: none;
	}
	.entry-content .offer-card-horizontal .card-body {
		gap: 12px;
		padding: 12px 14px;
	}
	.entry-content .achievement-logo {
		width: 56px;
		height: 56px;
	}
	.entry-content .client-name {
		font-size: 13px;
	}
	.entry-content .training-info {
		font-size: 12px;
	}
	.entry-content .training-details {
		font-size: 11px;
	}
}

/* =============================================
   ブログカード
   ============================================= */
.ks-blogcard {
	box-shadow: 0 2px 5px rgba(100, 100, 100, 0.2);
	border: 1px solid #e0e0e0;
	border-radius: 3px;
	background: #fff;
	margin: 1.2em 0;
	transition: background 0.2s ease, box-shadow 0.2s ease;
	overflow: hidden;
}
.ks-blogcard:hover {
	background: #f8f9fa;
	box-shadow: 0 4px 12px rgba(100, 100, 100, 0.2);
}
.ks-blogcard a {
	display: flex;
	align-items: stretch;
	text-decoration: none !important;
	color: #333;
	padding: 0;
}
.ks-blogcard-thumb {
	display: block;
	flex-shrink: 0;
	width: 160px;
	overflow: hidden;
	line-height: 0;
}
.ks-blogcard-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	padding: 0;
	border-radius: 3px 0 0 3px;
}
.ks-blogcard-content {
	flex: 1;
	min-width: 0;
	padding: 12px 16px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.ks-blogcard-title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-weight: bold;
	font-size: 0.85em;
	line-height: 1.5;
	color: #1a3a5c;
	margin-bottom: 0.3em;
}
.ks-blogcard-excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-size: 0.75em;
	line-height: 1.6;
	color: #888;
	margin-bottom: 0.3em;
}
.ks-blogcard-date {
	display: block;
	font-size: 0.7em;
	color: #aaa;
}
@media screen and (max-width: 768px) {
	.ks-blogcard-thumb {
		width: 110px;
	}
	.ks-blogcard-content {
		padding: 10px 12px;
	}
	.ks-blogcard-title {
		font-size: 0.85em;
	}
	.ks-blogcard-excerpt {
		display: none;
	}
}
