/* 施工データ（記事側）。黒背景・白背景のどちらでも読めるよう、文字色はテーマに合わせる。 */
.cvcd {
	--cvcd-red: #e3343f;
	--cvcd-soft: rgba(128, 128, 128, .12);
	--cvcd-line: rgba(128, 128, 128, .28);
	--cvcd-muted: .66;
	font-size: 15px;
	line-height: 1.75;
	color: inherit;
}
.cvcd *,
.cvcd *::before,
.cvcd *::after { box-sizing: border-box; }
.cvcd p { margin: 0; }
.cvcd a { text-decoration: none !important; }

/* 施工データ枠 */
.cvcd-data {
	background: var(--cvcd-soft);
	border-left: 4px solid var(--cvcd-red);
	border-radius: 10px;
	padding: 18px 22px;
	margin: 0 0 28px;
}
.cvcd-data__ttl {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--cvcd-red);
	margin: 0 0 10px !important;
}
.cvcd-data dl {
	display: grid;
	grid-template-columns: 7.5em 1fr;
	gap: 8px 14px;
	margin: 0;
}
.cvcd-data dt {
	font-size: 13px;
	font-weight: 400;
	opacity: var(--cvcd-muted);
	margin: 0;
	padding-top: 1px;
	white-space: nowrap;
}
.cvcd-data dd { margin: 0; font-weight: 700; }
.cvcd-data dd a {
	color: inherit !important;
	border-bottom: 1px solid var(--cvcd-line);
}
.cvcd-data dd a:hover { border-bottom-color: var(--cvcd-red); }

/* スタッフより */
.cvcd-comment {
	margin: 28px 0 0;
	padding: 18px 22px;
	border: 1px solid var(--cvcd-line);
	border-radius: 10px;
}
.cvcd-comment .cvcd-sub { padding: 0; border: 0; margin-bottom: 6px; }
.cvcd-comment p { margin: 0 !important; }
.cvcd-comment p + p { margin-top: .8em !important; }

/* 施工メニューのカード */
.cvcd-menu { margin: 40px 0 8px; }
.cvcd-h {
	font-size: 20px !important;
	font-weight: 700;
	line-height: 1.5 !important;
	margin: 0 0 18px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: inherit !important;
}
.cvcd-h::before,
.cvcd-h::after { display: none !important; }
.cvcd-h small {
	display: block;
	font-size: 11px;
	letter-spacing: .16em;
	color: var(--cvcd-red);
	font-weight: 700;
}
.cvcd-sub {
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 14px !important;
	padding-top: 22px;
	border-top: 1px solid var(--cvcd-line);
}
.cvcd-plan {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 24px;
	align-items: center;
	color: inherit !important;
	margin: 0 0 30px;
}
.cvcd-plan img,
.cvcd-item img {
	display: block;
	width: 100%;
	height: auto !important;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	border-radius: 10px;
	transition: transform .25s, opacity .25s;
}
.cvcd-plan:hover img,
.cvcd-item:hover img { transform: translateY(-2px); opacity: .92; }
.cvcd-plan__body { display: block; }
.cvcd-plan__nm {
	display: block;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 16px;
}
.cvcd-plan__pr {
	display: block;
	font-size: 20px;
	font-weight: 700;
	margin: -6px 0 16px;
}
.cvcd-item__pr {
	display: block;
	font-size: 14px;
	font-weight: 700;
	margin-top: 4px;
}
.cvcd-plan__pr small,
.cvcd-item__pr small {
	font-size: 11px;
	font-weight: 400;
	opacity: var(--cvcd-muted);
	margin-left: 2px;
}
.cvcd-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	padding: 5px 10px;
	border-radius: 999px;
	background: var(--cvcd-soft);
	margin: 0 0 8px;
}
.cvcd-tag.is-red { background: var(--cvcd-red); color: #fff; }
.cvcd-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--cvcd-red);
	color: #fff !important;
	border-radius: 999px;
	padding: 10px 22px;
	font-size: 13px;
	font-weight: 700;
}
.cvcd-btn::after { content: "\2192"; }
.cvcd-items {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px 14px;
	margin: 0 0 12px;
}
.cvcd-item { display: block; color: inherit !important; }
.cvcd-item .cvcd-tag { margin: 10px 0 4px; }
.cvcd-item__nm {
	display: block;
	font-size: 13px;
	line-height: 1.55;
	font-weight: 700;
}

@media (max-width: 600px) {
	.cvcd-data,
	.cvcd-comment { padding: 16px; }
	.cvcd-data dl { grid-template-columns: 1fr; gap: 0; }
	.cvcd-data dt { font-size: 12px; }
	.cvcd-data dd { margin: 0 0 10px; }
	.cvcd-data dd:last-child { margin-bottom: 0; }
	.cvcd-plan { grid-template-columns: 120px 1fr; gap: 14px; align-items: start; }
	.cvcd-plan__nm { font-size: 16px; margin-bottom: 12px; }
	.cvcd-plan__pr { font-size: 17px; margin-bottom: 12px; }
	.cvcd-btn { padding: 9px 16px; }
	.cvcd-items { grid-template-columns: repeat(2, 1fr); gap: 20px 12px; }
}

/* 記事内の商品ページへのリンク（テーマの青は黒背景で読みにくいので赤に）。ほかのリンクはテーマのまま */
body.cvcd-on .bs-blog-post.single a[href*="?pid="]:not(.cvcd-plan):not(.cvcd-item):not(.cvcd-btn) {
	color: #ff4d57 !important;
	text-decoration: underline;
	text-decoration-color: currentColor;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	border-bottom: 0 !important;
}
body.cvcd-on .bs-blog-post.single a[href*="?pid="]:not(.cvcd-plan):not(.cvcd-item):not(.cvcd-btn):hover {
	color: #ff8a90 !important;
}

/* 店長プロフィール */
.cvcd-profile { margin: 48px 0 8px; }
.cvcd-profile__card {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--cvcd-line);
	border-radius: 14px;
	padding: 28px 28px 28px 32px;
	background:
		linear-gradient(135deg, rgba(227, 52, 63, .18) 0%, rgba(227, 52, 63, 0) 42%),
		var(--cvcd-soft);
}
.cvcd-profile__card::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--cvcd-red);
}
.cvcd-profile__head {
	display: grid;
	grid-template-columns: 168px 1fr;
	gap: 28px;
	align-items: center;
}
.cvcd-profile__ph {
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .12), 8px 8px 0 0 var(--cvcd-red);
}
.cvcd-profile__ph img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}
.cvcd-profile__shop {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	margin: 0 0 6px !important;
}
.cvcd-profile__shop .cvcd-tag { margin: 0 10px 0 0; vertical-align: 1px; }
.cvcd-profile__nm {
	font-size: 28px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .06em;
	margin: 0 !important;
}
.cvcd-profile__en {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--cvcd-red);
	margin: 4px 0 14px !important;
}
.cvcd-profile__lic {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
}
.cvcd-profile__lic li {
	margin: 0 !important;
	padding: 5px 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	border: 1px solid var(--cvcd-line);
	border-radius: 999px;
	list-style: none !important;
}
.cvcd-profile__lic li::before,
.cvcd-profile__lic li::marker { content: none !important; display: none !important; }
.cvcd-profile__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 18px;
	margin: 0;
	font-size: 13px;
}
.cvcd-profile__meta div { display: flex; gap: 8px; }
.cvcd-profile__meta dt { font-weight: 400; opacity: var(--cvcd-muted); margin: 0; }
.cvcd-profile__meta dd { font-weight: 700; margin: 0; }
.cvcd-profile__msg {
	position: relative;
	margin: 24px 0 0 !important;
	padding: 18px 0 0 36px !important;
	border: 0 !important;
	border-top: 1px solid var(--cvcd-line) !important;
	background: none !important;
	font-size: 14px;
	font-style: normal !important;
	line-height: 1.9;
	quotes: none;
}
.cvcd-profile__msg::before {
	content: "\201C";
	position: absolute;
	left: 0;
	top: 8px;
	font-family: Georgia, serif;
	font-size: 52px;
	line-height: 1;
	color: var(--cvcd-red);
}
.cvcd-profile__msg::after { display: none !important; }
.cvcd-profile__msg p { margin: 0 !important; font-size: inherit !important; font-style: normal !important; }
.cvcd-profile__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--cvcd-line);
}
.cvcd-profile__stats { display: flex; gap: 32px; margin: 0; }
.cvcd-profile__stats dt {
	font-size: 11px;
	font-weight: 400;
	opacity: var(--cvcd-muted);
	margin: 0;
}
.cvcd-profile__stats dd {
	font-size: 24px;
	font-weight: 800;
	line-height: 1.2;
	margin: 2px 0 0;
}
.cvcd-btn.is-ghost {
	background: transparent;
	border: 1px solid var(--cvcd-red);
	color: inherit !important;
}
.cvcd-btn.is-ghost:hover { background: var(--cvcd-red); color: #fff !important; }

@media (max-width: 600px) {
	.cvcd-profile__card { padding: 22px 18px 22px 22px; }
	.cvcd-profile__head { grid-template-columns: 96px 1fr; column-gap: 18px; row-gap: 0; align-items: start; }
	.cvcd-profile__ph { grid-row: 1 / span 3; box-shadow: 0 0 0 1px rgba(255, 255, 255, .12), 5px 5px 0 0 var(--cvcd-red); }
	.cvcd-profile__id { display: contents; }
	.cvcd-profile__shop,
	.cvcd-profile__nm,
	.cvcd-profile__en { grid-column: 2; }
	.cvcd-profile__shop { font-size: 11px; white-space: nowrap; margin-top: 4px !important; }
	.cvcd-profile__nm { font-size: 22px; }
	.cvcd-profile__en { font-size: 10px; letter-spacing: .2em; margin-bottom: 0 !important; }
	.cvcd-profile__lic,
	.cvcd-profile__meta { grid-column: 1 / -1; }
	.cvcd-profile__lic { margin-top: 20px !important; }
	.cvcd-profile__lic li { font-size: 11px; padding: 5px 9px; }
	.cvcd-profile__msg { font-size: 13.5px; padding-left: 28px !important; }
	.cvcd-profile__msg::before { font-size: 42px; }
	.cvcd-profile__stats { gap: 24px; }
	.cvcd-profile__stats dd { font-size: 20px; }
	.cvcd-profile__foot .cvcd-btn { width: 100%; justify-content: center; }
}

/* 導入文 */
.cvcd-intro {
	margin: -8px 0 24px !important;
	font-size: 15px;
	line-height: 1.9;
}

/* 関連する施工事例 */
.cvcd-related { margin: 44px 0 8px; }
.cvcd-related__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px 14px;
}
.cvcd-related__item { display: block; color: inherit !important; }
.cvcd-related__item img,
.cvcd-related__noimg {
	display: block;
	width: 100%;
	height: auto !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 8px;
	background: var(--cvcd-soft);
}
.cvcd-related__ttl {
	display: block;
	margin-top: 8px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.55;
}
.cvcd-related__item:hover .cvcd-related__ttl { color: var(--cvcd-red); }
@media (max-width: 600px) {
	.cvcd-related__list { grid-template-columns: repeat(2, 1fr); }
}

/* カテゴリのラベル：ブログ全体で赤にそろえる（本番では render.php から全ページに、ここはプレビュー用） */
body.cvcd-on a.blogus-categories,
body.cvcd-on a.blogus-categories:hover { background: #e3343f; color: #fff; }

/* 縦長のアイキャッチ：横長の枠に写真全体を収め、左右はぼかした同じ写真で埋める */
body.cvcd-on .bs-blog-thumb:has(> .cvcd-thumb-bg) {
	position: relative;
	aspect-ratio: 4 / 3;
	max-height: 78vh;
	overflow: hidden;
	background: #0d0e10;
	border-radius: 6px;
}
body.cvcd-on .cvcd-thumb-bg {
	position: absolute;
	inset: -40px;
	background-size: cover;
	background-position: center;
	filter: blur(28px) brightness(.5) saturate(1.1);
	transform: scale(1.1);
}
body.cvcd-on .bs-blog-thumb:has(> .cvcd-thumb-bg) img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	box-shadow: none;
}

/* 2枚目以降の写真：横にめくるスライダー（JSなしでも横スクロールで見られる） */
.cvcd-slider { position: relative; margin: 1.6em 0 2em; }
.cvcd-slider__track {
	display: flex;
	gap: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	border-radius: 6px;
	background: #0d0e10;
	overscroll-behavior-x: contain;
}
.cvcd-slider__track::-webkit-scrollbar { display: none; }
.cvcd-slider__track > figure.wp-block-image {
	position: relative;
	flex: 0 0 100%;
	margin: 0 !important;
	scroll-snap-align: center;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.cvcd-slide-bg {
	position: absolute;
	inset: -40px;
	background-size: cover;
	background-position: center;
	filter: blur(28px) brightness(.45);
	transform: scale(1.1);
}
.cvcd-slider__track > figure.wp-block-image img {
	position: relative;
	z-index: 1;
	flex: 1;
	min-height: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
}
.cvcd-slider__track figcaption.wp-element-caption {
	position: absolute;
	z-index: 2;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 28px 16px 14px;
	background: linear-gradient(to top, rgba(0, 0, 0, .78), rgba(0, 0, 0, 0));
	color: #fff;
	font-size: 14px;
	line-height: 1.6;
	text-align: left;
}
.cvcd-slider button.cvcd-slider__btn {
	position: absolute;
	z-index: 3;
	top: calc(50% - 40px);
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	font-size: 20px;
	line-height: 44px;
	text-align: center;
	cursor: pointer;
	backdrop-filter: blur(4px);
	transition: background-color .15s, opacity .15s;
}
.cvcd-slider button.cvcd-slider__btn:hover { background: #e3343f; }
.cvcd-slider button.cvcd-slider__btn:disabled { opacity: 0; pointer-events: none; }
.cvcd-slider button.cvcd-slider__btn.is-prev { left: 10px; }
.cvcd-slider button.cvcd-slider__btn.is-next { right: 10px; }
.cvcd-slider__count {
	position: absolute;
	z-index: 3;
	top: 10px;
	right: 10px;
	padding: 3px 10px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .6);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.cvcd-slider__thumbs { display: flex; gap: 6px; margin-top: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.cvcd-slider__thumbs::-webkit-scrollbar { display: none; }
.cvcd-slider .cvcd-slider__thumbs button {
	flex: 0 0 64px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 4px;
	overflow: hidden;
	opacity: .5;
	cursor: pointer;
	background: #0d0e10;
	transition: opacity .15s, box-shadow .15s;
}
.cvcd-slider__thumbs button img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cvcd-slider .cvcd-slider__thumbs button:hover { opacity: .85; }
.cvcd-slider .cvcd-slider__thumbs button.is-on { opacity: 1; box-shadow: 0 0 0 2px #e3343f; }
.cvcd-slider.is-single .cvcd-slider__btn,
.cvcd-slider.is-single .cvcd-slider__count,
.cvcd-slider.is-single .cvcd-slider__thumbs { display: none; }
@media (max-width: 600px) {
	.cvcd-slider button.cvcd-slider__btn { width: 38px; height: 38px; line-height: 38px; font-size: 17px; }
	.cvcd-slider .cvcd-slider__thumbs button { flex-basis: 52px; height: 40px; }
}
