@charset "UTF-8";
/* ==========================================================================
   製造実例（2026改修版）
   - トップページ「製造実例」セクション（.caseN__*）
   - 製造実例ページ（.pf__*）
   ========================================================================== */

/* ----- 共通：カテゴリタグ・生産タイプ ----- */
.cs-tag {
	display: inline-block;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
	padding: 2px 10px;
	border: 1px solid currentColor;
	border-radius: 20px;
	background: #fff;
}
.cs-tag--health { color: #B87F00; }
.cs-tag--ip { color: #3B5F8F; }
.cs-tag--novelty { color: #6F8F2A; }
.cs-type {
	display: inline-block;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
	padding: 2px 10px;
	border: 1px solid #434343;
	color: #212121;
	background: #fff;
	border-radius: 20px;
}
.cs-type--full {
	background: #434343;
	color: #fff;
}
.cs-wip {
	display: inline-block;
	font-size: 1.1rem;
	font-weight: 700;
	padding: 3px 8px;
	background: #E3007F;
	color: #fff;
}

/* ----- トップ：製造実例セクション ----- */
.caseN__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: -18px 0 28px;
}
.caseN__chip {
	font-size: 1.4rem;
	font-weight: 700;
	color: #212121;
	text-decoration: none;
	background: #fff;
	border: 1px solid #D7D7D7;
	padding: 8px 18px;
	border-radius: 30px;
}
.caseN__chip:hover {
	border-color: #E3007F;
	color: #E3007F;
}
.caseN__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}
.caseN__item a {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	text-decoration: none;
	color: #212121;
	box-shadow: 0 0 3px rgba(0, 0, 0, .15);
}
.caseN__item a:hover { opacity: .75; }
.caseN__thumb {
	aspect-ratio: 4 / 3;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin: 0;
}
.caseN__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.caseN__detail {
	padding: 15px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.caseN__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}
.caseN__ttl {
	font-size: 1.6rem;
	font-weight: 700;
}
.caseN__catch {
	font-size: 1.3rem;
	color: #555;
	line-height: 1.6;
}
.caseN__cat {
	font-size: 1.2rem;
	color: #212121;
}
.caseN__more {
	text-align: center;
	margin-top: 30px;
}
.caseN__more .more-bt { display: inline-block; }

/* ----- 製造実例ページ ----- */
.pf { padding: 60px 0 100px; }
.pf__wrap {
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 20px;
}
.pf__lead {
	text-align: center;
	margin-bottom: 36px;
}
.pf__lead .internal__ttl { margin-bottom: 12px; }
.pf__count {
	font-size: 1.4rem;
	color: #555;
}
.pf__count b {
	font-size: 2rem;
	color: #212121;
	margin: 0 2px;
}
.pf__filter {
	background: #fff;
	box-shadow: 0 0 6px rgba(0, 0, 0, .08);
	padding: 22px 28px;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 14px 20px;
	align-items: center;
	margin-bottom: 24px;
}
.pf__flabel {
	font-size: 1.4rem;
	font-weight: 700;
	white-space: nowrap;
}
.pf__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.pf__chip {
	font: 700 1.4rem/1 "Noto Sans JP", sans-serif;
	color: #212121;
	background: #fff;
	border: 1px solid #D7D7D7;
	padding: 10px 18px;
	border-radius: 30px;
	cursor: pointer;
}
.pf__chip:hover { border-color: #E3007F; }
.pf__chip.is-on {
	background: #434343;
	border-color: #434343;
	color: #fff;
}
.pf__lp {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	background: #FFFBE6;
	border: 1px solid #F3E39A;
	padding: 18px 26px;
	margin-bottom: 28px;
}
.pf__lp.is-show { display: flex; }
.pf__lp p {
	font-size: 1.5rem;
	font-weight: 700;
}
.pf__lp a {
	font-size: 1.4rem;
	font-weight: 700;
	color: #212121;
	text-decoration: none;
	background: #FFE106;
	padding: 12px 22px;
	white-space: nowrap;
}
.pf__lp a:hover {
	background: #E3007F;
	color: #fff;
}
.pf__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}
.pf__card {
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: 0 0 6px rgba(0, 0, 0, .1);
}
.pf__card[hidden] { display: none; }
.pf__thumb {
	aspect-ratio: 4 / 3;
	margin: 0;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;
}
.pf__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pf__thumb.is-fit,
.caseN__thumb.is-fit {
	padding: 9% 18%;
	box-sizing: border-box;
}
.pf__thumb.is-fit img,
.caseN__thumb.is-fit img { object-fit: contain; }
.pf__thumb .cs-wip {
	position: absolute;
	top: 10px;
	left: 10px;
}
.pf__body {
	padding: 18px 22px 22px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}
.pf__name {
	font-size: 1.9rem;
	font-weight: 700;
	border-bottom: 1px solid #D7D7D7;
	padding-bottom: 8px;
	position: relative;
}
.pf__name::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 60px;
	height: 1px;
	background: #FFE600;
}
.pf__client {
	font-size: 1.3rem;
	color: #555;
}
.pf__catch {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.6;
}
.pf__desc {
	font-size: 1.4rem;
	line-height: 1.8;
	color: #333;
}
.pf__spec {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 18px;
	font-size: 1.3rem;
	background: #F5F5F5;
	padding: 8px 12px;
	color: #333;
}
.pf__spec b {
	font-weight: 700;
	margin-right: 8px;
	color: #212121;
}
.pf__foot {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 6px;
}
.pf__links {
	display: flex;
	gap: 8px;
}
.pf__links .pf__bt {
	flex: 1;
	margin-top: 0;
}
.pf__ig {
	flex: 0 0 50px;
	min-height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #D7D7D7;
	background: #fff;
}
.pf__ig:hover { border-color: #E3007F; }
.pf__bt {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	font-size: 1.4rem;
	font-weight: 700;
	color: #212121;
	text-decoration: none;
	background: #FFE106;
	padding: 13px 18px;
}
.pf__bt::after {
	content: "";
	flex: 0 0 5px;
	width: 5px;
	height: 8px;
	background: url(../img/arrow_icon_bl.svg) center / cover no-repeat;
}
.pf__bt:hover {
	background: #E3007F;
	color: #fff;
}
.pf__bt:hover::after { background-image: url(../img/arrow_icon_wh.svg); }
.pf__bt--sub {
	background: #fff;
	border: 1px solid #D7D7D7;
}
.pf__empty {
	text-align: center;
	padding: 40px;
	font-size: 1.5rem;
}
.pf__empty[hidden] { display: none; }
.pf__cta {
	margin-top: 70px;
	background: #fff;
	box-shadow: 0 0 6px rgba(0, 0, 0, .1);
	padding: 40px;
	text-align: center;
}
.pf__cta h3 {
	font-size: 2.4rem;
	font-weight: 800;
	margin-bottom: 10px;
}
.pf__cta p {
	font-size: 1.5rem;
	margin-bottom: 24px;
}
.pf__cta-bt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 360px;
	height: 64px;
	background: #E3007F;
	color: #fff;
	font-size: 1.7rem;
	font-weight: 700;
	text-decoration: none;
}
.pf__cta-bt:hover { opacity: .85; }
.pf__cta-links {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin-top: 22px;
}
.pf__cta-links a {
	font-size: 1.4rem;
	font-weight: 700;
	color: #212121;
	text-decoration: none;
	border-bottom: 2px solid #FFE106;
	padding-bottom: 3px;
}
.pf__cta-links a:hover {
	color: #E3007F;
	border-color: #E3007F;
}

@media (max-width: 1080px) {
	.caseN__list,
	.pf__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
}

@media (max-width: 640px) {
	.caseN__chips { margin: 0 0 16px; }
	.caseN__list {
		display: flex;
		overflow-x: auto;
		gap: 12px;
		scroll-snap-type: x mandatory;
		padding-bottom: 6px;
	}
	.caseN__item {
		flex: 0 0 215px;
		scroll-snap-align: start;
	}
	.pf { padding: 36px 0 60px; }
	.pf__filter {
		grid-template-columns: 1fr;
		padding: 16px;
	}
	.pf__chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 4px;
	}
	.pf__chip {
		white-space: nowrap;
		font-size: 1.3rem;
	}
	.pf__lp {
		flex-direction: column;
		align-items: stretch;
		padding: 16px;
	}
	.pf__lp a { text-align: center; }
	.pf__grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.pf__cta { padding: 28px 18px; }
	.pf__cta h3 { font-size: 2rem; }
	.pf__cta-bt {
		min-width: 0;
		width: 100%;
	}
}
