@charset "UTF-8";
/*
 * Lacks Japan 導入事例カード
 *
 * 方針
 *  - フォントは指定しない。テーマ(SWELL)の設定をそのまま継承する。
 *  - ブレークポイントはテーマと同じ 600px / 960px のみ。独自の区切りを増やさない。
 *  - width:100vw を使わない。器は既存の l-container（swell-block-fullWide__inner）に任せる。
 *  - 外部フォント・外部画像を読み込まない。
 *  - すべて .lj-cc 配下にスコープし、他ページ・他要素へ影響させない。
 */

.lj-cc {
	--lj-cc-ink: var(--color_main, #12003e);
	--lj-cc-accent: var(--color_link, #00abcd);
	--lj-cc-text: #1d1b2b;
	--lj-cc-muted: #6d6b84;
	--lj-cc-line: rgba(18, 0, 62, .12);
	--lj-cc-surface: #fff;
	--lj-cc-gap: 24px;
	--lj-cc-radius: 6px;

	color: var(--lj-cc-text);
}

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

/* ---- テーマ既定装飾の打ち消し（カード内に限定） ---- */
.lj-cc .lj-cc-card {
	color: inherit;
	text-decoration: none;
	background: none;
	box-shadow: none;
}

.lj-cc .lj-cc-card__heading,
.lj-cc .lj-cc-card__client,
.lj-cc .lj-cc-card__excerpt,
.lj-cc .lj-cc-card__foot {
	margin: 0 !important;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
}

.lj-cc .lj-cc-card__heading::before,
.lj-cc .lj-cc-card__heading::after {
	content: none;
}

.lj-cc .lj-cc-card__tags {
	margin: 0;
	padding: 0;
	list-style: none;
	background: none;
	border: 0;
}

.lj-cc .lj-cc-card__tags li {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	list-style: none;
}

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

/* ---- グリッド ----
 * 列数は「公開されている事例の総数」から決める（そのページに載っている枚数ではない）。
 *   1件 → 1列（幅を絞る）  2件 → 2列で横幅を使い切る  3件以上 → 3列
 * 一覧の2ページ目だけカードが大きくなる、といったページ間のばらつきを防ぐ。
 * 中央寄せにはしない。カードの左端をセクション見出し・あしらいの左端にそろえる。
 */
.lj-cc-grid {
	display: grid;
	gap: var(--lj-cc-gap);
	grid-template-columns: minmax(0, 1fr);
}

/* 1件しかないときだけ、カードが間延びしないよう幅を抑える */
.lj-cc-grid--single {
	max-width: 480px;
}

@media screen and (min-width: 600px) {
	.lj-cc-grid {
		grid-template-columns: repeat(var(--lj-cc-cols-tab, 2), minmax(0, 1fr));
	}
}

@media screen and (min-width: 960px) {
	.lj-cc-grid {
		grid-template-columns: repeat(var(--lj-cc-cols-pc, 3), minmax(0, 1fr));
	}
}

/* ---- カード（仮デザイン。参考デザイン確定後にここを差し替える） ---- */
.lj-cc-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--lj-cc-surface);
	border: 1px solid var(--lj-cc-line);
	border-radius: var(--lj-cc-radius);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.lj-cc-card:hover,
.lj-cc-card:focus-visible {
	transform: translateY(-3px);
	border-color: rgba(18, 0, 62, .2);
	box-shadow: 0 12px 28px -14px rgba(18, 0, 62, .35);
}

.lj-cc-card__thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #eef1f5;
}

.lj-cc-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.lj-cc-card:hover .lj-cc-card__img {
	transform: scale(1.04);
}

.lj-cc-card__noimg {
	display: block;
	width: 100%;
	height: 100%;
	background: repeating-linear-gradient(-45deg, #eef1f5 0 10px, #e6eaf0 10px 20px);
}

.lj-cc-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 10px;
	padding: 18px 18px 16px;
}

.lj-cc-card__client {
	font-size: 12px;
	line-height: 1.6;
	color: var(--lj-cc-muted);
}

.lj-cc-card__sep {
	opacity: .6;
}

.lj-cc-card__heading {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.55;
	color: var(--lj-cc-ink);
}

.lj-cc-card__excerpt {
	font-size: 13px;
	line-height: 1.9;
	color: var(--lj-cc-muted);
}

.lj-cc-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.lj-cc-card__tags li {
	padding: 3px 9px;
	font-size: 11px;
	line-height: 1.5;
	color: var(--lj-cc-ink);
	background: rgba(0, 171, 205, .08);
	border-radius: 999px;
}

.lj-cc .lj-cc-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	/* リセット側（.lj-cc .lj-cc-card__foot { margin:0 !important }）と同じ詳細度にして、
	   カード下部の行を必ずカード下端へそろえる */
	margin-top: auto !important;
	padding-top: 12px;
	border-top: 1px solid var(--lj-cc-line);
}

.lj-cc-card__date {
	font-size: 12px;
	color: var(--lj-cc-muted);
}

.lj-cc-card__more {
	font-size: 12px;
	font-weight: 700;
	color: var(--lj-cc-accent);
}

.lj-cc-card__more::after {
	content: "→";
	display: inline-block;
	margin-left: 6px;
	transition: transform .25s ease;
}

.lj-cc-card:hover .lj-cc-card__more::after {
	transform: translateX(3px);
}

@media screen and (min-width: 960px) {
	.lj-cc-card__heading {
		font-size: 17px;
	}
}

/* ---- 成果数値（採用デザインB） ----
 * 数値があればここを出し、無ければ .lj-cc-card__excerpt を出す。
 * 切り替えはカード1枚ごと（templates/card.php）。混在しても崩れない。
 */
.lj-cc-metrics {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	padding: 14px;
	background: #f4f8fb;
	border-left: 3px solid var(--lj-cc-accent);
	border-radius: 4px;
}

.lj-cc .lj-cc-metric__num {
	margin: 0 !important;
	font-size: 13px;
	line-height: 1.3;
	color: var(--lj-cc-muted);
	white-space: nowrap;
}

.lj-cc-metric__num strong {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: .01em;
	color: var(--lj-cc-ink);
}

.lj-cc-metric__num i {
	margin-left: 2px;
	font-size: 12px;
	font-style: normal;
	color: var(--lj-cc-muted);
}

.lj-cc-metric__from {
	font-size: 13px;
}

.lj-cc-metric__arrow {
	margin: 0 5px;
	font-weight: 700;
	color: var(--lj-cc-accent);
}

.lj-cc .lj-cc-metric__label {
	margin: 0 !important;
	font-size: 11px;
	line-height: 1.5;
	color: var(--lj-cc-muted);
}

@media screen and (min-width: 960px) {
	.lj-cc-metric__num strong {
		font-size: 26px;
	}
}

/* ---- スライダー ---- */
.lj-cc-slider {
	position: relative;
}

.lj-cc-slider .swiper {
	/* カードの影が切れないよう、はみ出しぶんだけ余白を持たせる */
	margin: -6px;
	padding: 6px;
}

.lj-cc-slider .swiper-slide {
	height: auto;
}

.lj-cc-slider__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: 20px;
}

.lj-cc-slider__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 40px;
	height: 40px;
	padding: 0;
	font-size: 15px;
	line-height: 1;
	color: var(--lj-cc-ink);
	cursor: pointer;
	background: #fff;
	border: 1px solid var(--lj-cc-line);
	border-radius: 50%;
	transition: background-color .2s ease, color .2s ease;
}

.lj-cc-slider__btn--prev::before {
	content: "\2190";
}

.lj-cc-slider__btn--next::before {
	content: "\2192";
}

.lj-cc-slider__btn:hover {
	color: #fff;
	background: var(--lj-cc-ink);
}

.lj-cc-slider__btn.swiper-button-disabled {
	opacity: .35;
	cursor: default;
}

.lj-cc-slider__pagination {
	/* Swiper が付ける swiper-pagination-horizontal は width:100% を持つ。
	   操作ボタンが左右端まで押し出されるので、内容幅に戻す。 */
	display: flex;
	flex: 0 0 auto;
	gap: 8px;
	justify-content: center;
	width: auto !important;
}

.lj-cc-slider__pagination .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	cursor: pointer;
	background: rgba(18, 0, 62, .2);
	border-radius: 50%;
	transition: background-color .2s ease, transform .2s ease;
}

.lj-cc-slider__pagination .swiper-pagination-bullet-active {
	background: var(--lj-cc-accent);
	transform: scale(1.25);
}


/* ---- 一覧 ---- */
.lj-cc--archive .c-pagination {
	margin: 2.5em 0 0;
}

.lj-cc-empty {
	margin: 0;
	color: var(--lj-cc-muted);
}

@media (prefers-reduced-motion: reduce) {
	.lj-cc-card,
	.lj-cc-card__img,
	.lj-cc-card__more::after,
	.lj-cc-slider__pagination .swiper-pagination-bullet {
		transition: none;
	}

	.lj-cc-card:hover {
		transform: none;
	}

	.lj-cc-card:hover .lj-cc-card__img {
		transform: none;
	}
}

/* ---- セクション見出し ----
 * 既存TOPは PC / タブレット / SP のブロックを3つ作り分けて文字サイズを変えている。
 * 今回は1ブロックで済ませるため、同じ見た目をCSSの 600 / 960 で再現する。
 *   PC  : EN 64px / JA 22px  … WORK・COMPANY と同じ（ABOUTだけが 32px の例外）
 *   SP  : EN 42px / JA 18px  … ABOUT・WORK・COMPANY のSP版すべてと同じ
 */
.lj-cc-sechead {
	line-height: 1.3;
}

.lj-cc-sechead__en,
.lj-cc-sechead__ja {
	display: inline-block;
	font-weight: 700;
}

.lj-cc-sechead__en {
	font-size: 42px;
	line-height: 1.2;
}

.lj-cc-sechead__ja {
	font-size: 18px;
	line-height: 1.6;
}

@media screen and (min-width: 960px) {
	.lj-cc-sechead__en {
		font-size: 64px;
	}

	.lj-cc-sechead__ja {
		font-size: 22px;
	}
}

.lj-cc-seclead {
	margin-bottom: 2em;
}
