/* ========================================
   CBG Gallery：Hero
======================================== */

.cbg-gallery {
	width: 100%;
	margin: 0;
}

.cbg-gallery-hero {
	position: relative;
	width: 100%;
	height: var(--cbg-hero-height, 300px);
	overflow: hidden;
	background: #222;
}

.cbg-gallery-hero__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	object-position:
		var(--cbg-hero-position-x, 50%)
		var(--cbg-hero-position-y, 50%);
}

.cbg-gallery-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			to right,
			rgba(0, 0, 0, 0.55) 0%,
			rgba(0, 0, 0, 0.30) 45%,
			rgba(0, 0, 0, 0.10) 100%
		);
	pointer-events: none;
}

.cbg-gallery-hero__inner {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	width: min(100% - 48px, 1200px);
	height: 100%;
	margin-inline: auto;
}

.cbg-gallery-hero__title {
	max-width: 760px;
	margin: 0;
	color: #fff;
	font-size: clamp(2.6rem, 4vw, 5.2rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.02em;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
}

.cbg-gallery-hero--no-image {
	height: auto;
	min-height: 180px;
	background: #071b3f;
}

.cbg-gallery-hero--no-image .cbg-gallery-hero__inner {
	min-height: 180px;
	padding-block: 40px;
}


/* ========================================
   OceanWP側の余白を打ち消す
======================================== */

.single-cbg_gallery #main,
.single-cbg_gallery #content-wrap,
.single-cbg_gallery #primary,
.single-cbg_gallery .content-area {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.single-cbg_gallery #right-sidebar {
	display: none;
}


/* ========================================
   商品情報エリア全体
======================================== */

.cbg-product {
	position: relative;
	width: min(100% - 48px, 1200px);
	margin: 0 auto;
	padding: 18px 0 80px;
}


/* ========================================
   商品説明・商品詳細
======================================== */

.cbg-product-info {
	position: relative;
	z-index: 1;
	overflow: visible;
	isolation: isolate;
}


/* ========================================
   左側の背景装飾
======================================== */

.cbg-product-info__decoration {
	position: absolute;
	top: 0;
	left: 0;
	bottom: -440px;
	z-index: 0;
	width: 88px;

	pointer-events: none;
	user-select: none;
}


/*
 * 033
 *
 * 数字自体は通常の横組みですが、
 * 要素全体を90度回転させて縦向きにします。
 * モックのように「033」が一続きのまま縦になります。
 */

.cbg-product-info__number {
	display: block;
	margin-left: -8px;

	color: rgba(20, 20, 20, 0.05);
	font-size: 13.5rem;
	font-weight: 800;
	line-height: 0.7;
	letter-spacing: -0.08em;
	white-space: nowrap;

	writing-mode: vertical-rl;
	text-orientation: mixed;
}

/*
 * POSTCARD / POSTER
 *
 * モックに合わせて、大きく薄い縦文字にします。
 */

.cbg-product-info__type {
	display: block;
	margin-top: 18px;
	margin-left: 2px;

	color: rgba(20, 20, 20, 0.05);
	font-size: 5.2rem;
	font-weight: 800;
	line-height: 0.85;
	letter-spacing: -0.02em;
	white-space: nowrap;

	writing-mode: vertical-rl;
	text-orientation: mixed;
}


/* ========================================
   説明文レイヤー
======================================== */

.cbg-product-info__content {
	position: relative;
	z-index: 1;

	max-width: none;
	padding: 4px 24px 10px 88px;
}

.cbg-product-info__description,
.cbg-product-info__details {
	color: #333;
	font-size: 1.35rem;
	line-height: 1.7;
}

.cbg-product-info__description {
	margin-bottom: 10px;
}


/* ACF入力欄の改行・段落を反映 */

.cbg-product-info__description p,
.cbg-product-info__details p {
	margin-top: 0;
	margin-bottom: 0.45em;
}

.cbg-product-info__description p:last-child,
.cbg-product-info__details p:last-child {
	margin-bottom: 0;
}


/* ========================================
   横長購入カード
======================================== */

.cbg-buy-card {
	position: relative;
	z-index: 2;

	width: calc(100% - 88px);
	margin: 8px 0 0 88px;
	padding: 20px 24px;

	border: 1px solid #ddd;
	border-radius: 16px;

	background: #fff;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

.cbg-buy-card__message {
	margin: 0 0 16px;
	padding-bottom: 15px;

	border-bottom: 1px solid #e4e4e4;

	color: #333;
	font-size: 1.45rem;
	font-weight: 600;
	line-height: 1.7;
	text-align: center;
}

.cbg-buy-card__main {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 26px;
}

.cbg-buy-card__information {
	display: flex;
	align-items: center;
	gap: 18px;
}

.cbg-buy-card__price {
	display: flex;
	align-items: baseline;
	gap: 10px;

	color: #222;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.cbg-buy-card__unit {
	font-size: 2rem;
}

.cbg-buy-card__amount {
	font-size: 2.8rem;
}

.cbg-buy-card__tax {
	font-size: 1.3rem;
	font-weight: 400;
}

.cbg-buy-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 275px;
	min-height: 56px;
	padding: 14px 28px;

	border-radius: 8px;

	background: #d94e2b;
	color: #fff;

	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;

	transition:
		background-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

.cbg-buy-card__button:hover,
.cbg-buy-card__button:focus-visible {
	background: #bd3f20;
	color: #fff;
	text-decoration: none;

	transform: translateY(-1px);
	box-shadow: 0 5px 14px rgba(0, 0, 0, 0.14);
}

.cbg-buy-card__button:active {
	transform: translateY(0);
	box-shadow: none;
}

/* ========================================
   商品エリア：
   背景装飾文字の表示範囲を確保
======================================== */

.cbg-product {
	position: relative;
	min-height: 780px;
	overflow: hidden;
}

.cbg-product-info__decoration {
	left: 24px;
	width: 145px;
	overflow: visible;
	pointer-events: none;
}

/*
 * 背番号・NEW部分
 */
.cbg-product-info__number {
	display: block;
	max-width: 145px;

	font-size: clamp(82px, 8vw, 128px);
	line-height: 0.9;
	letter-spacing: -0.08em;

	transform: scaleX(0.82);
	transform-origin: left top;
}

/*
 * POSTCARD / POSTER部分
 */
.cbg-product-info__type {
	display: block;
	max-width: 145px;

	font-size: clamp(48px, 5vw, 76px);
	line-height: 0.9;
	letter-spacing: 0.02em;

	transform: scaleX(0.82);
	transform-origin: left top;
}

/* ========================================
   ポストカード画像ギャラリー
======================================== */

.cbg-postcard-gallery-section {
	width: calc(100% - 88px);
	margin: 12px 0 0 88px;
}

.cbg-postcard-gallery-section__guide {
	margin: 0 0 10px;

	color: #444;
	font-size: 1.2rem;
	line-height: 1.6;
}

/* ========================================
   CBG：戻るリンク
======================================== */

.cbg-back-link-wrap {
	width: 100%;
	border-bottom: 1px solid #ececec;
}

.cbg-back-link {
	box-sizing: border-box;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 11px 14px;
}

.cbg-back-link__anchor {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #071B3F;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none;
	transition:
		color 0.2s ease,
		opacity 0.2s ease;
}

.cbg-back-link__arrow {
	display: inline-block;
	transition: transform 0.2s ease;
}

.cbg-back-link__anchor:hover {
	color: #D94E2B;
	opacity: 0.8;
}

.cbg-back-link__anchor:hover .cbg-back-link__arrow {
	transform: translateX(-4px);
}

.cbg-back-link__anchor:focus-visible {
	outline: 2px solid #071B3F;
	outline-offset: 4px;
	border-radius: 2px;
}

@media screen and (max-width: 749px) {
	.cbg-back-link {
		padding: 7px 10px;
	}

	.cbg-back-link__anchor {
		font-size: 0.9rem;
	}
}

/* ========================================
   タブレット
======================================== */

@media (max-width: 900px) {

	.cbg-product-info__content {
		padding-right: 8px;
	}

	.cbg-buy-card__main {
		flex-wrap: wrap;
	}

	.cbg-buy-card__information {
		flex: 1 1 auto;
	}

	.cbg-buy-card__button {
		flex: 0 0 auto;
		min-width: 240px;
	}

}


/* ========================================
   スマートフォン
======================================== */

@media (max-width: 767px) {

	.cbg-gallery-hero {
		height: min(var(--cbg-hero-height, 300px), 300px);
	}

	.cbg-gallery-hero__inner {
		align-items: flex-end;
		width: min(100% - 32px, 1200px);
		padding-bottom: 30px;
	}

	.cbg-gallery-hero__title {
		font-size: clamp(2.4rem, 8vw, 3.8rem);
	}

	.cbg-gallery-hero__overlay {
		background:
			linear-gradient(
				to top,
				rgba(0, 0, 0, 0.68) 0%,
				rgba(0, 0, 0, 0.28) 65%,
				rgba(0, 0, 0, 0.08) 100%
			);
	}


	/* 商品情報 */

	.cbg-product {
		width: min(100% - 32px, 1200px);
		padding: 22px 0 56px;
		min-height: 0;	}

	.cbg-product-info {
		min-height: 0;
	}

	.cbg-product-info__decoration {
		top: 0;
		left: 0;
		bottom: -220px;
		width: 48px;
	}
	
	.cbg-product-info__number {
		margin-left: -9px;

		font-size: 6rem;
		line-height: 0.8;
	}

	.cbg-product-info__type {
		margin-top: 12px;
		margin-left: -10px;

		font-size: 2.5rem;
		line-height: 0.86;
	}

	.cbg-product-info__content {
		padding: 2px 0 10px 30px;
	}

	.cbg-product-info__description,
	.cbg-product-info__details {
		font-size: 1.4rem;
		line-height: 1.8;
	}


	/* 購入カード */

	.cbg-buy-card {
		width: 100%;
		margin: 10px 0 0 0;
		padding: 20px;
	}

	.cbg-buy-card__message {
		font-size: 1.35rem;
		text-align: left;
	}

	.cbg-buy-card__main {
		display: block;
	}

	.cbg-buy-card__information {
		display: block;
		margin-bottom: 18px;
	}

	.cbg-buy-card__price {
		flex-wrap: wrap;
		gap: 6px 8px;
	}

	.cbg-buy-card__unit {
		font-size: 1.7rem;
	}

	.cbg-buy-card__amount {
		font-size: 2.5rem;
	}

	.cbg-buy-card__button {
		display: flex;
		width: 100%;
		min-width: 0;
	}
	
	.cbg-postcard-gallery-section {
		width: 100%;
		margin-left: 0;
	}

	.cbg-postcard-gallery-section__guide {
		font-size: 1.2rem;
	}

}

/* ========================================
   Goods Single：基本レイアウト
======================================== */

.cbg-goods-single {
	width: min(100% - 48px, 1200px);
	margin: 40px auto 80px;
}

.cbg-goods-single__inner {
	display: grid;
	grid-template-columns:
		minmax(0, 620px)
		minmax(320px, 420px);
	justify-content: center;
	align-items: start;
	column-gap: 50px;
}

.cbg-goods-single__gallery,
.cbg-goods-single__content {
	min-width: 0;
	margin: 0;
}

/* ========================================
   Goods Single：メイン画像
======================================== */

.cbg-goods-main-image {
	overflow: hidden;
	aspect-ratio: 3 / 2;
	border-radius: 12px;
	background: #f3f3f3;
}

.cbg-goods-main-image__button {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: inherit;
	background: transparent;
	cursor: pointer;
}

.cbg-goods-main-image__img,
#cbg-goods-main-image {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0;
	object-fit: cover !important;
	object-position: center center;
	transition: transform 0.25s ease, opacity 0.25s ease;
}

.cbg-goods-main-image__button:hover .cbg-goods-main-image__img {
	transform: scale(1.015);
	opacity: 0.96;
}

.cbg-goods-main-image__button:focus-visible {
	outline: 3px solid #333;
	outline-offset: -3px;
}

.cbg-goods-main-image__empty {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	margin: 0;
	padding: 24px;
	color: #777;
	font-size: 1.3rem;
	text-align: center;
}

/* ========================================
   Goods Single：画像名・画像説明
======================================== */

.cbg-goods-image-info {
	display: block;
	margin: 10px 0 0;
	padding: 0;
}

.cbg-goods-image-info[hidden],
.cbg-goods-image-info__title[hidden],
.cbg-goods-image-info__comment[hidden] {
	display: none;
}

.cbg-goods-single .cbg-goods-image-info > p {
	margin: 0 !important;
	padding: 0 !important;
}

.cbg-goods-single .cbg-goods-image-info__title {
	color: #333;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.3;
}

.cbg-goods-single .cbg-goods-image-info__comment {
	margin-top: 1px !important;
	color: #666;
	font-size: 1.3rem;
	line-height: 1.5;
	white-space: pre-line;
}

/* ========================================
   Goods Single：サムネイル
======================================== */

.cbg-goods-thumbnails {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
}

.cbg-goods-thumbnail {
	display: block;
	width: 80px;
	height: 80px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid #ddd;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
}

.cbg-goods-thumbnail.is-active {
	border-color: #333;
	box-shadow: 0 0 0 1px #333;
}

.cbg-goods-thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: contain;
}

/* ========================================
   Goods Single：商品情報
======================================== */

.cbg-goods-single__brand {
	margin: 0 0 10px;
	color: #777;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.12em;
}

.cbg-goods-single__title {
	margin: 0;
	color: #222;
	font-size: clamp(24px, 2.3vw, 34px);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
}

.cbg-goods-single__purchase-info {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px 24px;
	margin-top: 28px;
	padding: 18px 0;
	border-top: 1px solid #e3e3e3;
	border-bottom: 1px solid #e3e3e3;
}

.cbg-goods-status {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 26px;
	padding: 4px 11px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
}

.cbg-goods-status.is-new {
    background: #c8102e;
    border: 1px solid #c8102e;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.cbg-goods-status.is-available {
	border-color: #bad6c0;
	background: #edf7ef;
	color: #286638;
}

.cbg-goods-status.is-waiting {
	border-color: #e2cf9e;
	background: #fff8e5;
	color: #80601d;
}

.cbg-goods-status.is-ended {
	border-color: #d1d1d1;
	background: #f1f1f1;
	color: #666;
}

.cbg-goods-single__price {
	margin: 0;
	color: #222;
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
}

.cbg-goods-single__section {
	margin-top: 34px;
}

.cbg-goods-single__section-title {
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid #e3e3e3;
	color: #333;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.03em;
}

.cbg-goods-single__section-body {
	color: #444;
	font-size: 15px;
	line-height: 1.9;
}

.cbg-price__main {
	display: inline;
}

.cbg-price__tax {
	display: inline-block;
	margin-left: 0.25em;
	color: #666;
	font-size: 0.5em;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0;
	white-space: nowrap;
	vertical-align: baseline;
}

.cbg-goods-single__section-body > :first-child {
	margin-top: 0;
}

.cbg-goods-single__section-body > :last-child {
	margin-bottom: 0;
}

.cbg-goods-single__section-body p {
	margin: 0 0 1em;
}

.cbg-goods-single__section-body ul,
.cbg-goods-single__section-body ol {
	margin: 0 0 1em;
	padding-left: 1.5em;
}

.cbg-goods-single__section-body li + li {
	margin-top: 5px;
}

.cbg-goods-store-notice {
	position: relative;
	margin-top: 36px;
	padding: 18px 20px 18px 24px;
	border: 1px solid #ead8d2;
	border-radius: 4px;
	background: #fffaf8;
	color: #554641;
	font-size: 13px;
	line-height: 1.8;
}

.cbg-goods-store-notice::before {
	position: absolute;
	top: 14px;
	bottom: 14px;
	left: 0;
	width: 4px;
	background: #d94e2b;
	content: "";
}

.cbg-goods-store-notice p {
	margin: 0;
	padding: 0;
}

/* ========================================
   Goods Single：モーダル
======================================== */

body.cbg-goods-modal-open {
	overflow: hidden;
}

.cbg-goods-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(0, 0, 0, 0.82);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.cbg-goods-modal.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.cbg-goods-modal__dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(1100px, 100%);
	max-height: calc(100vh - 48px);
	overflow: hidden;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.cbg-goods-modal__close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
	font-size: 30px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
}

.cbg-goods-modal__close:hover {
	background: #000;
}

.cbg-goods-modal__image-area {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 300px;
	overflow: hidden;
	background: #f3f3f3;
}

.cbg-goods-modal__image {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: calc(100vh - 190px);
	margin: 0;
	object-fit: contain;
	user-select: none;
	-webkit-user-drag: none;
}

.cbg-goods-modal__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 64px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: rgba(0, 0, 0, 0.5);
	color: #fff;
	font-size: 46px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}

.cbg-goods-modal__nav:hover {
	background: rgba(0, 0, 0, 0.8);
}

.cbg-goods-modal__nav[hidden] {
	display: none;
}

.cbg-goods-modal__nav--prev {
	left: 16px;
}

.cbg-goods-modal__nav--next {
	right: 16px;
}

.cbg-goods-modal__footer {
	position: relative;
	flex: 0 0 auto;
	padding: 16px 72px 18px 24px;
	background: #fff;
}

.cbg-goods-modal__title {
	margin: 0;
	color: #333;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
}

.cbg-goods-modal__comment {
	margin: 4px 0 0;
	color: #666;
	font-size: 1.3rem;
	line-height: 1.7;
	white-space: pre-line;
}

.cbg-goods-modal__title[hidden],
.cbg-goods-modal__comment[hidden] {
	display: none;
}

.cbg-goods-modal__counter {
	position: absolute;
	right: 24px;
	bottom: 18px;
	margin: 0;
	color: #777;
	font-size: 1.3rem;
	line-height: 1.5;
}

@media screen and (max-width: 1100px) {
	.cbg-goods-single__inner {
		grid-template-columns:
			minmax(0, 3fr)
			minmax(300px, 2fr);
	}
}

@media screen and (max-width: 767px) {
	.cbg-goods-single {
		width: min(100% - 32px, 1200px);
		margin: 28px auto 56px;
	}

	.cbg-goods-single__inner {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 30px;
	}

	.cbg-goods-single__brand {
		margin-bottom: 8px;
		font-size: 10px;
	}

	.cbg-goods-single__purchase-info {
		align-items: flex-start;
		margin-top: 22px;
		padding: 15px 0;
	}

	.cbg-goods-single__price {
		width: 100%;
	}

	.cbg-goods-single__section {
		margin-top: 28px;
	}

	.cbg-goods-single__section-title {
		margin-bottom: 12px;
		font-size: 16px;
	}

	.cbg-goods-single__section-body {
		font-size: 14px;
		line-height: 1.85;
	}

	.cbg-goods-store-notice {
		margin-top: 30px;
		padding: 16px 16px 16px 20px;
		font-size: 12px;
	}

	.cbg-goods-modal {
		padding: 12px;
	}

	.cbg-goods-modal__dialog {
		max-height: calc(100vh - 24px);
		border-radius: 8px;
	}

	.cbg-goods-modal__image {
		max-height: calc(100vh - 180px);
	}

	.cbg-goods-modal__nav {
		width: 40px;
		height: 56px;
		font-size: 38px;
	}

	.cbg-goods-modal__nav--prev {
		left: 8px;
	}

	.cbg-goods-modal__nav--next {
		right: 8px;
	}

	.cbg-goods-modal__footer {
		padding: 14px 56px 16px 16px;
	}

	.cbg-goods-modal__counter {
		right: 16px;
		bottom: 16px;
	}
}


/* ========================================
   CBG Goods：シリーズ商品
======================================== */

.cbg-goods-series {
	width: 100%;
	padding: 0 24px 80px;
}

.cbg-goods-series__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}


/* ========================================
   シリーズ上部
======================================== */

.cbg-goods-series__header {
	align-items: start;
	margin-top: 30px;
}

.cbg-goods-series--has-image .cbg-goods-series__header {
	display: grid;
	grid-template-columns:
		minmax(0, 620px)
		minmax(320px, 420px);
	justify-content: center;
	column-gap: 35px;
}

.cbg-goods-series--no-image .cbg-goods-series__header {
	max-width: 1200px;
	margin-right: auto;
	margin-left: auto;
}

.cbg-goods-series--no-image .cbg-goods-series__summary {
	text-align: center;
}

.cbg-goods-series--no-image .cbg-goods-single__section,
.cbg-goods-series--no-image .cbg-goods-store-notice {
	text-align: left;
}

.cbg-goods-series__visual,
.cbg-goods-series__summary {
	min-width: 0;
}


/* ========================================
   シリーズ代表画像

   クリック・モーダルなし
======================================== */

.cbg-goods-series__visual {
	width: 100%;
}

.cbg-goods-series__image {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 12px;
	background: #f4f4f4;
}

.cbg-goods-series__main-image,
.cbg-goods-series__image img {
	position: absolute !important;
	inset: 0 !important;

	display: block !important;

	width: 100% !important;
	height: 100% !important;

	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;

	margin: 0 !important;
	padding: 0 !important;

	object-fit: cover !important;
	object-position: center center !important;

	border: 0 !important;
	border-radius: 0 !important;
}


/* ========================================
   販売状況
======================================== */

.cbg-goods-series__purchase-info {
	display: flex;
	align-items: center;
	margin-top: 28px;
	padding: 18px 0;

	border-top: 1px solid #e3e3e3;
	border-bottom: 1px solid #e3e3e3;
}

.cbg-goods-series--no-image
.cbg-goods-series__purchase-info {
	justify-content: center;
}


/* ========================================
   バリアント一覧
======================================== */

.cbg-goods-series__products {
	margin-top: 70px;
}

.cbg-goods-series__products-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;

	margin-bottom: 24px;
	padding-bottom: 12px;

	border-bottom: 1px solid #ddd;
}

.cbg-goods-series__products-title {
	margin: 0;

	color: #222;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
}

.cbg-goods-series__products-count {
	flex: 0 0 auto;
	margin: 0;

	color: #777;
	font-size: 13px;
	line-height: 1.5;
	white-space: nowrap;
}


/* ========================================
   バリアントグリッド

   PC：5列
======================================== */

.cbg-goods-series-grid {
	display: grid;
	grid-template-columns:
		repeat(5, minmax(0, 1fr));

	align-items: start;
	gap: 30px 18px;

	width: 100%;
}

/* ========================================
   少数バリアントの中央配置

   --cbg-grid-count：
   実際に並べる列数

   --cbg-grid-card-width：
   通常グリッド1列分の幅
======================================== */

.cbg-goods-series-grid.is-count-1,
.cbg-goods-series-grid.is-count-2,
.cbg-goods-series-grid.is-count-3,
.cbg-goods-series-grid.is-count-4 {
	grid-template-columns:
		repeat(
			var(--cbg-grid-count),
			minmax(0, var(--cbg-grid-card-width))
		);

	justify-content: center;

	--cbg-grid-card-width:
		calc((100% - 72px) / 5);
}

.cbg-goods-series-grid.is-count-1 {
	--cbg-grid-count: 1;
}

.cbg-goods-series-grid.is-count-2 {
	--cbg-grid-count: 2;
}

.cbg-goods-series-grid.is-count-3 {
	--cbg-grid-count: 3;
}

.cbg-goods-series-grid.is-count-4 {
	--cbg-grid-count: 4;
}

/* ========================================
   バリアントカード
======================================== */

.cbg-goods-series-card {
	display: block;
	min-width: 0;
	margin: 0;
}

.cbg-goods-series-card__body {
	padding-top: 10px;
}

.cbg-goods-series-card__title {
	margin: 0;

	text-align:center;
	color: #222;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.01em;

	overflow-wrap: anywhere;
}


/* ========================================
   バリアント画像ボタン
======================================== */

.cbg-variant-modal-trigger{
	position:absolute;
	inset:0;

	display:block;

	width:100%;
	height:100%;

	margin:0;
	padding:0;

	overflow:hidden;

	border:0;
	border-radius:inherit;

	background:#f4f4f4;

	cursor:pointer;

	appearance:none;
	-webkit-appearance:none;
}


/* ========================================
   バリアント画像枠

   横4：縦3
======================================== */

.cbg-goods-series-card__image{
	position:relative;
	aspect-ratio:4 / 3;
	overflow:hidden;

	background:#fff;

	border:1px solid #e5e5e5;
	border-radius:6px;

	transition:
		border-color .25s ease,
		box-shadow .25s ease,
		transform .25s ease;
}


/* ========================================
   バリアント画像

   OceanWP・WordPress側より強く指定
======================================== */

.cbg-goods-series-card__image img,
.cbg-goods-series-card__image button img,
.cbg-goods-series-card img.cbg-goods-series-card__thumbnail,
.cbg-goods-series-card__thumbnail{

	position:absolute !important;
	inset:0 !important;

	display:block !important;

	width:100% !important;
	height:100% !important;

	min-width:100% !important;
	min-height:100% !important;

	max-width:none !important;
	max-height:none !important;

	margin:0 !important;
	padding:0 !important;

	object-fit:cover !important;
	object-position:center center !important;

	border:0 !important;
	border-radius:0 !important;
}


/* ========================================
   バリアント画像 hover
======================================== */

.cbg-variant-modal-trigger:hover
.cbg-goods-series-card__thumbnail,
.cbg-variant-modal-trigger:focus-visible
.cbg-goods-series-card__thumbnail {
	transform: scale(1.035);
}

.cbg-variant-modal-trigger:hover
.cbg-goods-series-card__thumbnail {
	opacity: 0.96;
}


/* ========================================
   キーボードフォーカス
======================================== */

.cbg-variant-modal-trigger:focus-visible {
	outline: 3px solid #333;
	outline-offset: 3px;
}


/* ========================================
   画像未設定
======================================== */

.cbg-goods-series-card__placeholder {
	position: absolute;
	inset: 0;

	display: grid;
	width: 100%;
	height: 100%;
	padding: 16px;

	place-items: center;

	color: #888;
	font-size: 13px;
	line-height: 1.5;
	text-align: center;
}


/* ========================================
   販売状況ラベル
======================================== */

.cbg-goods-series-card__status {
	position: absolute;
	top: 7px;
	left: 7px;
	z-index: 2;

	min-height: 20px;
	padding: 3px 10px;

	box-shadow:
		0 1px 5px rgba(0, 0, 0, 0.10);
	font-size: 12px !important;
	pointer-events:none;
}


/* ========================================
   バリアントがない場合
======================================== */

.cbg-goods-series__empty {
	margin: 0;
	padding: 28px;

	border-radius: 6px;
	background: #f7f7f5;

	color: #666;
	line-height: 1.7;
	text-align: center;
}


/* ========================================
   バリアントモーダル
======================================== */

.cbg-variant-modal .cbg-goods-modal__dialog {
	width: min(1100px, 100%);
}

.cbg-variant-modal .cbg-goods-modal__image-area {
	padding-inline: 56px;
}

.cbg-variant-modal .cbg-goods-modal__image {
	display: block;

	width: auto;
	height: auto;
	max-width: min(100%, 1000px);
	max-height: calc(100vh - 190px);

	margin: 0;

	object-fit: contain;
	object-position: center center;
}

.cbg-variant-modal .cbg-goods-modal__footer {
	min-height: 62px;
}


/* ========================================
   PC・小型デスクトップ

   1100px以下：4列
======================================== */

@media screen and (max-width: 1100px) {

	.cbg-goods-series--has-image
	.cbg-goods-series__header {
		grid-template-columns:
			minmax(0, 1.2fr)
			minmax(300px, 0.8fr);

		column-gap: 28px;
	}

	.cbg-goods-series-grid {
		grid-template-columns:
			repeat(4, minmax(0, 1fr));

		gap: 28px 18px;
	}

	.cbg-goods-series-grid.is-count-1,
	.cbg-goods-series-grid.is-count-2,
	.cbg-goods-series-grid.is-count-3,
	.cbg-goods-series-grid.is-count-4 {
		--cbg-grid-card-width:
			calc((100% - 54px) / 4);
	}

}

/* ========================================
   タブレット

   900px以下：3列
======================================== */

@media screen and (max-width: 900px) {

	.cbg-goods-series--has-image
	.cbg-goods-series__header {
		grid-template-columns:
			minmax(0, 1.1fr)
			minmax(280px, 0.9fr);

		column-gap: 24px;
	}

	.cbg-goods-series-grid {
		grid-template-columns:
			repeat(3, minmax(0, 1fr));

		gap: 28px 18px;
	}

	.cbg-goods-series-grid.is-count-1,
	.cbg-goods-series-grid.is-count-2,
	.cbg-goods-series-grid.is-count-3,
	.cbg-goods-series-grid.is-count-4 {
		--cbg-grid-card-width:
			calc((100% - 36px) / 3);
	}

	.cbg-goods-series-grid.is-count-4 {
		--cbg-grid-count: 2;
	}

}


/* ========================================
   スマートフォン・縦向きタブレット

   767px以下：2列
======================================== */

@media screen and (max-width: 767px) {

	.cbg-goods-series {
		padding-right: 18px;
		padding-bottom: 60px;
		padding-left: 18px;
	}

	.cbg-goods-series__header {
		margin-top: 24px;
	}

	.cbg-goods-series--has-image
	.cbg-goods-series__header {
		display: block;
	}

	.cbg-goods-series--has-image
	.cbg-goods-series__summary {
		margin-top: 26px;
	}

	.cbg-goods-series--no-image
	.cbg-goods-series__summary {
		margin-top: 0;
	}

	.cbg-goods-series__main-image {
		border-radius: 10px;
	}

	.cbg-goods-series__products {
		margin-top: 52px;
	}

	.cbg-goods-series__products-heading {
		margin-bottom: 20px;
	}

	.cbg-goods-series-grid {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));

		gap: 26px 14px;
	}

	.cbg-goods-series-grid.is-count-1,
	.cbg-goods-series-grid.is-count-2,
	.cbg-goods-series-grid.is-count-3,
	.cbg-goods-series-grid.is-count-4 {
		--cbg-grid-card-width:
			calc((100% - 14px) / 2);

		--cbg-grid-count: 2;
	}

	.cbg-goods-series-grid.is-count-1 {
		--cbg-grid-count: 1;
	}

	.cbg-goods-series-grid.is-count-3
	.cbg-goods-series-card:last-child {
		grid-column: 1 / -1;
		width: var(--cbg-grid-card-width);
		justify-self: center;
	}

	.cbg-goods-series-card__title {
		font-size: 14px;
		line-height: 1.5;
	}

	.cbg-variant-modal .cbg-goods-modal__image-area {
		padding-inline: 0;
	}

	.cbg-variant-modal .cbg-goods-modal__image {
		max-width: 100%;
		max-height: calc(100vh - 180px);
	}

}


/* ========================================
   小さいスマートフォン
======================================== */

@media screen and (max-width: 480px) {

	.cbg-goods-series {
		padding-right: 14px;
		padding-left: 14px;
	}

	.cbg-goods-series__products-heading {
		align-items: flex-end;
		gap: 12px;

		margin-bottom: 18px;
	}

	.cbg-goods-series__products-title {
		font-size: 21px;
	}

	.cbg-goods-series__products-count {
		font-size: 12px;
	}

	.cbg-goods-series-grid {
		gap: 24px 12px;
	}

	.cbg-goods-series-grid.is-count-1,
	.cbg-goods-series-grid.is-count-2,
	.cbg-goods-series-grid.is-count-3,
	.cbg-goods-series-grid.is-count-4 {
		--cbg-grid-card-width:
			calc((100% - 12px) / 2);
	}

	.cbg-variant-modal-trigger {
		border-radius: 6px;
	}

	.cbg-goods-series-card__body {
		padding-top: 10px;
	}

	.cbg-goods-series-card__title {
		font-size: 13px;
		line-height: 1.5;
	}

	.cbg-goods-series-card__status {
		top: 7px;
		left: 7px;

		min-height: 18px;
		padding: 3px 8px;

		font-size: 10px;
	}

}

/* ========================================
   発売日詳細ページ：タイトル
======================================== */

/* OceanWPの固定ページ標準タイトルを非表示 */
.cbg-release-detail-page .page-header,
.cbg-release-detail-page .entry-header {
	display: none;
}

/* シリーズ投稿ページと同じ横幅・上位置 */
.cbg-release-detail {
	box-sizing: border-box;
	width: min(100% - 48px, 1200px);
	margin: 30px auto 80px;
}

.cbg-release-detail__header {
	margin: 0 0 34px;
}

.cbg-release-detail__title {
	margin: 0;
	text-align: center;
}

@media (max-width: 767px) {

	.cbg-release-detail {
		width: min(100% - 32px, 1200px);
		margin-top: 28px;
		margin-bottom: 60px;
	}

	.cbg-release-detail__header {
		margin-bottom: 26px;
	}
}


/* ========================================
   コンテンツが少ないページでも
   フッターを画面下へ配置
======================================== */

html,
body {
	min-height: 100%;
}

#outer-wrap,
#wrap {
	min-height: 100vh;
	min-height: 100dvh;
}

#wrap {
	display: flex;
	flex-direction: column;
}

#main {
	flex: 1 0 auto;
}

#footer {
	flex-shrink: 0;
	margin-top: auto;
}

/* ========================================
   シリーズ商品：発売予定バリアント
======================================== */

/*
 * 発売予定は「販売できない商品」ではなく、
 * これから追加される商品として見せるため、
 * 全体をグレーアウトせず控えめに薄くします。
 */
.cbg-goods-series-card.is-scheduled
.cbg-goods-series-card__image {
	border-color: #d9e4ef;
	background: #f8fbfe;
}

.cbg-goods-series-card.is-scheduled
.cbg-goods-series-card__thumbnail {
	opacity: 0.50;
}

.cbg-goods-series-card.is-scheduled
.cbg-goods-series-card__title {
	color: #5f6872;
	font-weight: 600;
}

/*
 * 発売予定日ラベル
 */
.cbg-goods-status.is-scheduled {
	border-color: #86bdf7;
	background: #e8f3ff;
	color: #005eb8;
}

/*
 * 発売予定カードでも、
 * hover時は画像が少し見やすくなるようにします。
 */
.cbg-goods-series-card.is-scheduled
.cbg-variant-modal-trigger:hover
.cbg-goods-series-card__thumbnail,
.cbg-goods-series-card.is-scheduled
.cbg-variant-modal-trigger:focus-visible
.cbg-goods-series-card__thumbnail {
	opacity: 0.97;
}


/* ========================================
   バリアントモーダル：発売予定表示
======================================== */

.cbg-variant-modal__scheduled {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	min-height: 26px;
	margin: 0 0 8px;
	padding: 4px 11px;
	border: 1px solid #86bdf7;
	border-radius: 999px;
	background: #e8f3ff;
	color: #005eb8;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
}

.cbg-variant-modal__scheduled[hidden] {
	display: none;
}


/* ========================================
   発売日詳細ページ：少数カードの中央配置
======================================== */

.cbg-release-detail__grid.is-count-1,
.cbg-release-detail__grid.is-count-2,
.cbg-release-detail__grid.is-count-3 {
	grid-template-columns:
		repeat(
			var(--cbg-release-grid-count),
			minmax(0, 360px)
		);
	justify-content: center;
}

.cbg-release-detail__grid.is-count-1 {
	--cbg-release-grid-count: 1;
}

.cbg-release-detail__grid.is-count-2 {
	--cbg-release-grid-count: 2;
}

.cbg-release-detail__grid.is-count-3 {
	--cbg-release-grid-count: 3;
}

@media screen and (max-width: 900px) {

	.cbg-release-detail__grid.is-count-3 {
		grid-template-columns:
			repeat(2, minmax(0, 360px));
	}

	.cbg-release-detail__grid.is-count-3
	.cbg-release-detail-card:last-child {
		grid-column: 1 / -1;
		width: min(100%, 360px);
		justify-self: center;
	}
}

@media screen and (max-width: 767px) {

	.cbg-release-detail__grid.is-count-1,
	.cbg-release-detail__grid.is-count-2,
	.cbg-release-detail__grid.is-count-3 {
		grid-template-columns:
			minmax(0, 1fr);
	}

	.cbg-release-detail__grid.is-count-3
	.cbg-release-detail-card:last-child {
		grid-column: auto;
		width: auto;
	}
}


/* ========================================
   新着商品カード：商品数
======================================== */

.cbg-product-card__count {
	position: absolute;
	top: 11px;
	right: 11px;
	z-index: 2;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 29px;
	padding: 4px 11px;

	border: 1px solid #ded8d0;
	border-radius: 999px;

	background: rgba(255, 255, 255, 0.94);
	color: #333;

	box-shadow: 0 2px 7px rgba(0, 0, 0, 0.10);

	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
}

@media screen and (max-width: 767px) {

	.cbg-product-card__count {
		top: 8px;
		right: 8px;

		min-height: 25px;
		padding: 3px 9px;

		font-size: 11px;
	}
}


/* ========================================
   CBG 営業日カレンダー
   ※ 重複していた基本・微調整・月送り用CSSを統合
======================================== */

.cbg-calendar {
	--cbg-calendar-accent: #d94e2b;
	--cbg-calendar-accent-dark: #b83d20;
	--cbg-calendar-navy: #17324d;
	--cbg-calendar-text: #333;
	--cbg-calendar-muted: #777;
	--cbg-calendar-border: #e5e2dc;
	--cbg-calendar-bg: #fff;
	--cbg-calendar-soft-bg: #fafaf8;
	--cbg-calendar-open-bg: #fff;
	--cbg-calendar-closed-bg: #fbeae5;
	--cbg-calendar-special-bg: #edf6ee;

	width: 100%;
	color: var(--cbg-calendar-text);
	font-family: inherit;
}

/* PHP側のタイトルはElementor見出しを使うため非表示 */
.cbg-calendar__title {
	display: none;
}

/* ========================================
   本日の営業案内
======================================== */

.cbg-calendar-today {
	position: relative;
	margin-bottom: 22px;
	padding: 18px 20px;
	overflow: hidden;
	border: 1px solid var(--cbg-calendar-border);
	border-radius: 14px;
	background: var(--cbg-calendar-bg);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
	text-align: center;
}

.cbg-calendar-today::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 5px;
	background: var(--cbg-calendar-accent);
	content: "";
}

.cbg-calendar-today.is-closed::before {
	background: var(--cbg-calendar-navy);
}

.cbg-calendar .cbg-calendar-today p.cbg-calendar-today__date {
	margin: 0 0 5px !important;
	color: var(--cbg-calendar-muted);
	font-size: 13px !important;
	font-weight: 500;
	line-height: 1.5 !important;
	letter-spacing: 0.04em;
}

.cbg-calendar .cbg-calendar-today p.cbg-calendar-today__status {
	margin: 0 !important;
	color: var(--cbg-calendar-accent);
	font-size: 24px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: 0.02em !important;
}

.cbg-calendar-today.is-closed .cbg-calendar-today__status {
	color: var(--cbg-calendar-navy);
}

.cbg-calendar .cbg-calendar-today p.cbg-calendar-today__reason {
	display: inline-block;
	margin: 7px 0 0 !important;
	padding: 3px 10px !important;
	border-radius: 999px;
	background: var(--cbg-calendar-soft-bg);
	color: var(--cbg-calendar-muted);
	font-size: 10px !important;
	font-weight: 500;
	line-height: 1.5 !important;
}

/* 1階ショップ・2階ギャラリーの営業時間 */
.cbg-calendar-today__hours {
	display: grid;
	gap: 5px;
	width: fit-content;
	margin: 15px auto 0;
	text-align: left;
}

.cbg-calendar-today__hours-row {
	display: grid;
	grid-template-columns: 30px minmax(116px, auto) auto;
	align-items: baseline;
	column-gap: 9px;
}

.cbg-calendar-today__hours-floor {
	color: var(--cbg-calendar-muted);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	white-space: nowrap;
}

.cbg-calendar-today__hours-name {
	color: var(--cbg-calendar-text);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
}

.cbg-calendar-today__hours-value {
	color: var(--cbg-calendar-text);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* ========================================
   月間カレンダー外枠・月送り
======================================== */

.cbg-calendar__month-container {
	position: relative;
	width: 100%;
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity 0.18s ease,
		transform 0.18s ease;
}

.cbg-calendar-month {
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--cbg-calendar-border);
	border-radius: 14px;
	background: var(--cbg-calendar-bg);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.cbg-calendar-month__header {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr) 40px;
	align-items: center;
	gap: 16px;
	padding: 12px 16px;
	border-bottom: 1px solid var(--cbg-calendar-border);
	background: var(--cbg-calendar-soft-bg);
}

.cbg-calendar-month__heading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

.cbg-calendar .cbg-calendar-month__header h2.cbg-calendar-month__title {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--cbg-calendar-navy);
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: 0.03em !important;
	text-align: center;
}

.cbg-calendar-month__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--cbg-calendar-border);
	border-radius: 50%;
	background: #fff;
	color: var(--cbg-calendar-navy);
	font-family: inherit;
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	transition:
		transform 0.2s ease,
		border-color 0.2s ease,
		background-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease;
	appearance: none;
	-webkit-appearance: none;
}

.cbg-calendar-month__nav:hover {
	border-color: var(--cbg-calendar-accent);
	background: var(--cbg-calendar-accent);
	color: #fff;
	box-shadow: 0 5px 12px rgba(217, 78, 43, 0.2);
	transform: translateY(-2px);
}

.cbg-calendar-month__nav:focus-visible {
	outline: 3px solid rgba(217, 78, 43, 0.25);
	outline-offset: 3px;
}

.cbg-calendar-month__nav:disabled {
	opacity: 0.35;
	cursor: default;
	transform: none;
}

.cbg-calendar-month__today-button {
	margin: 4px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #777;
	font-family: inherit;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: underline;
	text-decoration-color: rgba(119, 119, 119, 0.45);
	text-underline-offset: 3px;
	cursor: pointer;
	transition:
		color 0.2s ease,
		text-decoration-color 0.2s ease;
	appearance: none;
	-webkit-appearance: none;
}

.cbg-calendar-month__today-button:hover {
	color: var(--cbg-calendar-accent);
	text-decoration-color: var(--cbg-calendar-accent);
}

.cbg-calendar-month__today-button:focus-visible {
	outline: 2px solid rgba(217, 78, 43, 0.4);
	outline-offset: 4px;
	border-radius: 2px;
}

.cbg-calendar-month__today-button:disabled {
	opacity: 0.4;
	cursor: default;
}

.cbg-calendar-month__today-button[hidden] {
	display: none !important;
}

/* ========================================
   カレンダーテーブル
======================================== */

.cbg-calendar-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	border-spacing: 0;
	table-layout: fixed;
	background: #fff;
}

.cbg-calendar-table th,
.cbg-calendar-table td {
	border: 0;
}

.cbg-calendar-table__weekday {
	height: 38px;
	padding: 7px 2px;
	border-right: 1px solid var(--cbg-calendar-border) !important;
	border-bottom: 1px solid var(--cbg-calendar-border) !important;
	background: #fff;
	color: var(--cbg-calendar-text);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
}

.cbg-calendar-table__weekday:last-child {
	border-right: 0 !important;
}

.cbg-calendar-table__weekday.is-sunday {
	color: #c74735;
}

.cbg-calendar-table__weekday.is-saturday {
	color: #336b9c;
}

.cbg-calendar-table__day,
.cbg-calendar-table__empty {
	position: relative;
	height: 53px;
	padding: 0;
	border-right: 1px solid var(--cbg-calendar-border) !important;
	border-bottom: 1px solid var(--cbg-calendar-border) !important;
	vertical-align: top;
}

.cbg-calendar-table tr:last-child .cbg-calendar-table__day,
.cbg-calendar-table tr:last-child .cbg-calendar-table__empty {
	border-bottom: 0 !important;
}

.cbg-calendar-table__day:last-child,
.cbg-calendar-table__empty:last-child {
	border-right: 0 !important;
}

.cbg-calendar-table__empty {
	background: #f7f6f3;
}

.cbg-calendar-table__day {
	background: var(--cbg-calendar-open-bg);
	transition:
		background-color 0.2s ease,
		box-shadow 0.2s ease;
}

.cbg-calendar-table__day:hover {
	z-index: 2;
	box-shadow: inset 0 0 0 2px rgba(217, 78, 43, 0.18);
}

.cbg-calendar-table__day-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 54px;
	padding: 7px 8px;
}

.cbg-calendar-table__date {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	min-width: 22px;
	height: 22px;
	padding: 0;
	border-radius: 50%;
	color: var(--cbg-calendar-text);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
}

.cbg-calendar-table__day.is-sunday .cbg-calendar-table__date,
.cbg-calendar-table__day.is-holiday .cbg-calendar-table__date {
	color: #c74735;
}

.cbg-calendar-table__day.is-saturday .cbg-calendar-table__date {
	color: #336b9c;
}

/* 今日 */
.cbg-calendar-table__day.is-today {
	box-shadow: none;
}

.cbg-calendar-table__day.is-today:hover {
	box-shadow: inset 0 0 0 2px rgba(34, 34, 34, 0.15);
}

.cbg-calendar-table__day.is-today .cbg-calendar-table__date {
	background: #222;
	color: #fff;
}

/* 休業日 */
.cbg-calendar-table__day.is-closed {
	background: var(--cbg-calendar-closed-bg);
}

.cbg-calendar-table__day.is-closed::after {
	position: absolute;
	top: 5px;
	right: 5px;
	padding: 2px 5px;
	border-radius: 999px;
	background: rgba(184, 61, 32, 0.1);
	color: var(--cbg-calendar-accent-dark);
	font-size: 8px;
	font-weight: 700;
	line-height: 1.3;
	content: "休";
}

/* 祝日は背景を付けず、日付のみ赤 */
.cbg-calendar-table__day.is-holiday:not(.is-closed) {
	background: #fff;
}

/* 臨時営業 */
.cbg-calendar-table__day.is-special:not(.is-closed) {
	background: var(--cbg-calendar-special-bg);
}

.cbg-calendar-table__day.is-special:not(.is-closed)::after {
	position: absolute;
	top: 5px;
	right: 5px;
	padding: 2px 5px;
	border-radius: 999px;
	background: rgba(56, 121, 71, 0.12);
	color: #347241;
	font-size: 8px;
	font-weight: 700;
	line-height: 1.3;
	content: "臨時";
}

/* セル内の補足文字は現在非表示 */
.cbg-calendar-table__subtext {
	display: none;
}

/* ========================================
   凡例・備考・確認表示
======================================== */

.cbg-calendar-legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.cbg-calendar-legend__item {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	color: var(--cbg-calendar-muted);
	font-size: 11px;
	line-height: 1.5;
}

/* 祝日の凡例は非表示 */
.cbg-calendar-legend__item:last-child {
	display: none;
}

.cbg-calendar-legend__mark {
	display: inline-block;
	width: 15px;
	height: 15px;
	flex: 0 0 auto;
	border: 1px solid var(--cbg-calendar-border);
	border-radius: 4px;
	background: #fff;
}

.cbg-calendar-legend__mark.is-today {
	width: 18px;
	height: 18px;
	border: 0;
	border-radius: 50%;
	background: #222;
}

.cbg-calendar-legend__mark.is-closed {
	border-color: #f0cec4;
	background: var(--cbg-calendar-closed-bg);
}

.cbg-calendar__note {
	margin: 12px 0 0;
	padding: 12px 14px;
	border-left: 4px solid var(--cbg-calendar-accent);
	background: var(--cbg-calendar-soft-bg);
	color: var(--cbg-calendar-muted);
	font-size: 12px;
	line-height: 1.7;
}

.cbg-calendar-status-test {
	margin: 20px 0;
	padding: 18px;
	overflow-x: auto;
	border: 1px solid var(--cbg-calendar-border);
	border-radius: 8px;
	background: #f7f7f7;
	color: #333;
	font-size: 13px;
	line-height: 1.8;
}

/* ========================================
   月切り替え中・アニメーション
======================================== */

.cbg-calendar.is-loading .cbg-calendar__month-container {
	opacity: 0.55;
	pointer-events: none;
}

.cbg-calendar.is-loading .cbg-calendar__month-container::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 28px;
	height: 28px;
	border: 3px solid rgba(23, 50, 77, 0.18);
	border-top-color: var(--cbg-calendar-navy);
	border-radius: 50%;
	content: "";
	transform: translate(-50%, -50%);
	animation: cbg-calendar-loading 0.8s linear infinite;
}

@keyframes cbg-calendar-loading {
	to {
		transform:
			translate(-50%, -50%)
			rotate(360deg);
	}
}

.cbg-calendar.is-fading-out .cbg-calendar__month-container {
	opacity: 0;
	transform: translateY(4px);
}

.cbg-calendar.is-fading-in .cbg-calendar__month-container {
	animation: cbg-calendar-month-fade-in 0.22s ease both;
}

@keyframes cbg-calendar-month-fade-in {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ========================================
   レスポンシブ
======================================== */

@media screen and (max-width: 600px) {
	.cbg-calendar-today {
		padding: 16px 14px;
		border-radius: 10px;
	}

	.cbg-calendar .cbg-calendar-today p.cbg-calendar-today__date {
		font-size: 12px !important;
	}

	.cbg-calendar .cbg-calendar-today p.cbg-calendar-today__status {
		font-size: 21px !important;
	}

	.cbg-calendar-today__hours {
		gap: 4px;
		margin-top: 13px;
	}

	.cbg-calendar-today__hours-row {
		grid-template-columns: 27px minmax(104px, auto) auto;
		column-gap: 6px;
	}

	.cbg-calendar-today__hours-floor {
		font-size: 10px;
	}

	.cbg-calendar-today__hours-name {
		font-size: 11px;
	}

	.cbg-calendar-today__hours-value {
		font-size: 14px;
	}

	.cbg-calendar-month__header {
		grid-template-columns: 34px minmax(0, 1fr) 34px;
		gap: 8px;
		padding: 10px 12px;
	}

	.cbg-calendar .cbg-calendar-month__header h2.cbg-calendar-month__title {
		font-size: 17px !important;
	}

	.cbg-calendar-month__nav {
		width: 32px;
		height: 32px;
		font-size: 20px;
	}

	.cbg-calendar-month__today-button {
		margin-top: 2px;
		font-size: 9px;
	}

	.cbg-calendar-table__day,
	.cbg-calendar-table__empty {
		height: 52px;
	}

	.cbg-calendar-table__day-inner {
		min-height: 52px;
		padding: 6px;
	}

	.cbg-calendar-table__date {
		width: 20px;
		min-width: 20px;
		height: 20px;
		font-size: 12px;
	}

	.cbg-calendar-table__day.is-closed::after,
	.cbg-calendar-table__day.is-special:not(.is-closed)::after {
		top: 4px;
		right: 4px;
		padding: 1px 4px;
		font-size: 7px;
	}
}

@media screen and (max-width: 420px) {
	.cbg-calendar-table__day.is-closed::after,
	.cbg-calendar-table__day.is-special:not(.is-closed)::after {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cbg-calendar-month__nav,
	.cbg-calendar-table__day,
	.cbg-calendar__month-container {
		transition: none;
	}

	.cbg-calendar.is-loading .cbg-calendar__month-container::after,
	.cbg-calendar.is-fading-in .cbg-calendar__month-container {
		animation: none;
	}
}


/* ========================================
   CBG 施設案内
======================================== */

.cbg-facility-info {
	--cbg-info-navy: #17324d;
	--cbg-info-accent: #d94e2b;
	--cbg-info-text: #333;
	--cbg-info-muted: #777;
	--cbg-info-border: #e5e2dc;
	--cbg-info-soft: #fafaf8;

	width: 100%;
	overflow: hidden;
	border: 1px solid var(--cbg-info-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
	color: var(--cbg-info-text);
	font-family: inherit;
}

.cbg-facility-info::before {
	display: block;
	width: 100%;
	height: 5px;
	background: var(--cbg-info-navy);
	content: "";
}


/* 見出し */
.cbg-facility-info__header {
	padding: 24px 28px 20px;
	border-bottom: 1px solid var(--cbg-info-border);
}

.cbg-facility-info__en {
	margin: 0 0 6px;
	color: var(--cbg-info-accent);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cbg-facility-info__name {
	margin: 0;
	padding: 0;
	color: var(--cbg-info-navy);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.03em;
}


/* 本文 */
.cbg-facility-info__body {
	padding: 4px 28px 10px;
}

.cbg-facility-info__list {
	margin: 0;
}

.cbg-facility-info__row {
	display: grid;
	grid-template-columns: 100px minmax(0, 1fr);
	gap: 20px;
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid var(--cbg-info-border);
}

.cbg-facility-info__row:last-child {
	border-bottom: 0;
}

.cbg-facility-info__row dt {
	margin: 0;
	color: var(--cbg-info-muted);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.8;
}

.cbg-facility-info__row dd {
	margin: 0;
	color: var(--cbg-info-text);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.8;
}

.cbg-facility-info__row a {
	color: var(--cbg-info-navy);
	font-weight: 700;
	text-decoration: none;
	transition: color 0.2s ease;
}

.cbg-facility-info__row a:hover {
	color: var(--cbg-info-accent);
}

.cbg-facility-info__row strong {
	color: var(--cbg-info-navy);
	font-size: 17px;
	font-weight: 700;
}


/* 入場無料ラベル */
.cbg-facility-info__free {
	display: inline-block;
	margin-left: 10px;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--cbg-info-soft);
	color: var(--cbg-info-accent);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.5;
	vertical-align: middle;
}


/* スマートフォン */
@media screen and (max-width: 767px) {
	.cbg-facility-info {
		border-radius: 10px;
	}

	.cbg-facility-info__header {
		padding: 20px 20px 17px;
	}

	.cbg-facility-info__name {
		font-size: 19px;
	}

	.cbg-facility-info__body {
		padding: 2px 20px 8px;
	}

	.cbg-facility-info__row {
		grid-template-columns: 82px minmax(0, 1fr);
		gap: 14px;
		padding: 14px 0;
	}

	.cbg-facility-info__row dt {
		font-size: 12px;
	}

	.cbg-facility-info__row dd {
		font-size: 13px;
	}

	.cbg-facility-info__row strong {
		font-size: 16px;
	}
}


/* 小さいスマートフォン */
@media screen and (max-width: 420px) {
	.cbg-facility-info__row {
		display: block;
	}

	.cbg-facility-info__row dt {
		margin-bottom: 3px;
	}

	.cbg-facility-info__free {
		margin-top: 6px;
		margin-left: 0;
	}
}

/* ========================================
   CBG 背番号・写真対象インデックス
======================================== */

.cbg-subject-index {
	--cbg-index-accent: #d94e2b;
	--cbg-index-text: #2e2e2e;
	--cbg-index-muted: #777;
	--cbg-index-line: #e2e2df;
	--cbg-index-background: #fafaf8;
	--cbg-index-card-radius: 10px;

	width: 100%;
	color: var(--cbg-index-text);
}


/* ----------------------------------------
   見出し・検索
---------------------------------------- */

/* ========================================
   背番号一覧：タイトルと検索欄
======================================== */

.cbg-subject-index__toolbar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px;
}

.cbg-subject-index__title-group {
	position: relative;
	padding-bottom: 0;
}

/* 以前のタイトルグループ下線を無効化 */
.cbg-subject-index__title-group::after {
	display: none;
}

.cbg-subject-index__heading {
	position: relative;
	margin: 0;
	padding: 0 0 12px;
	color: var(--cbg-index-text);
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.02em;
}

/* オレンジ線は「ポストカード」の直下 */
.cbg-subject-index__heading::after {
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	width: 72px;
	height: 3px;
	background: var(--cbg-index-accent);
	content: "";
}

.cbg-subject-index__subheading {
	margin: 8px 0 0;
	color: #555;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.06em;
}

.cbg-subject-index__search {
	position: relative;
	width: min(100%, 360px);
}

.cbg-subject-index__search-icon {
	position: absolute;
	top: 50%;
	left: 15px;
	z-index: 1;
	display: flex;
	width: 19px;
	height: 19px;
	transform: translateY(-50%);
	color: #777;
	pointer-events: none;
}

.cbg-subject-index__search-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.cbg-subject-index__search-input {
	width: 100%;
	height: 46px;
	margin: 0;
	padding: 0 16px 0 45px;
	border: 1px solid #d8d8d5;
	border-radius: 6px;
	background: #fff;
	color: var(--cbg-index-text);
	font-family: inherit;
	font-size: 14px;
	line-height: 1;
	box-shadow: none;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
	appearance: none;
	-webkit-appearance: none;
}

.cbg-subject-index__search-input::placeholder {
	color: #999;
}

.cbg-subject-index__search-input:focus {
	border-color: var(--cbg-index-accent);
	outline: 0;
	box-shadow:
		0 0 0 3px
		rgba(217, 78, 43, 0.12);
}


/* ----------------------------------------
   検索結果なし
---------------------------------------- */

.cbg-subject-index__no-results {
	margin: 0;
	padding: 28px 20px;
	border: 1px solid var(--cbg-index-line);
	border-radius: 6px;
	background: #fff;
	color: var(--cbg-index-muted);
	font-size: 14px;
	text-align: center;
}


/* ----------------------------------------
   アコーディオン
---------------------------------------- */

.cbg-subject-index__groups {
	overflow: hidden;
	border: 1px solid var(--cbg-index-line);
	border-radius: 8px;
	background: #fff;
}

.cbg-subject-index__group {
	border-bottom: 1px solid var(--cbg-index-line);
}

.cbg-subject-index__group:last-child {
	border-bottom: 0;
}

.cbg-subject-index__group-heading {
	margin: 0;
	font-size: inherit;
	line-height: inherit;
}

.cbg-subject-index__toggle {
	position: relative;
	display: flex;
	align-items: center;
	gap: 13px;
	width: 100%;
	min-height: 58px;
	margin: 0;
	padding: 14px 22px;
	border: 0;
	background: #fff;
	color: var(--cbg-index-text);
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		color 0.2s ease;
	appearance: none;
	-webkit-appearance: none;
}

.cbg-subject-index__toggle:hover {
	background: #faf7f5;
}

.cbg-subject-index__toggle:focus-visible {
	z-index: 1;
	outline: 2px solid rgba(217, 78, 43, 0.45);
	outline-offset: -3px;
}

.cbg-subject-index__toggle::after {
	position: absolute;
	right: 22px;
	top: 50%;
	width: 12px;
	height: 12px;
	border-right: 2px solid var(--cbg-index-accent);
	border-bottom: 2px solid var(--cbg-index-accent);
	transform:
		translateY(-65%)
		rotate(45deg);
	content: "";
	transition: transform 0.25s ease;
}

.cbg-subject-index__group.is-open
	.cbg-subject-index__toggle::after {
	transform:
		translateY(-35%)
		rotate(225deg);
}

.cbg-subject-index__toggle-mark {
	display: block;
	width: 4px;
	height: 20px;
	border-radius: 2px;
	background: #d4d4d0;
	transition:
		height 0.2s ease,
		background-color 0.2s ease;
}

.cbg-subject-index__group.is-open
	.cbg-subject-index__toggle-mark {
	height: 28px;
	background: var(--cbg-index-accent);
}

.cbg-subject-index__group-label {
	display: block;
}


/* アコーディオン開閉 */
.cbg-subject-index__panel {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition:
		grid-template-rows 0.28s ease,
		visibility 0s linear 0.28s;
}

.cbg-subject-index__group.is-open
	.cbg-subject-index__panel {
	grid-template-rows: 1fr;
	visibility: visible;
	transition:
		grid-template-rows 0.28s ease,
		visibility 0s linear 0s;
}

.cbg-subject-index__panel-inner {
	min-height: 0;
	overflow: hidden;
}

.cbg-subject-index__cards {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	padding: 18px 22px 24px;
	border-top: 1px solid
		rgba(217, 78, 43, 0.28);
	background: var(--cbg-index-background);
}


/* ----------------------------------------
   写真カード
---------------------------------------- */

.cbg-subject-index--with-images
	.cbg-subject-index__card {
	position: relative;
	display: block;
	flex: 0 1
		calc(25% - 10.5px);
	min-width: 0;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius:
		var(--cbg-index-card-radius);
	background: #d8d8d5;
	color: #fff;
	text-decoration: none;
	box-shadow:
		0 2px 7px
		rgba(0, 0, 0, 0.08);
	isolation: isolate;
	transition:
		transform 0.22s ease,
		box-shadow 0.22s ease;
}

.cbg-subject-index--with-images
	.cbg-subject-index__card:hover {
	color: #fff;
	text-decoration: none;
	transform: translateY(-2px);
	box-shadow:
		0 7px 16px
		rgba(0, 0, 0, 0.15);
}

.cbg-subject-index__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.cbg-subject-index__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0;
	object-fit: cover;
	object-position:
		var(--cbg-thumb-x, 50%)
		var(--cbg-thumb-y, 50%);
	transform: scale(1);
	filter: brightness(1);
	transition:
		transform 0.55s ease,
		filter 0.35s ease;
}

.cbg-subject-index--with-images
	.cbg-subject-index__card.has-placeholder:hover
	.cbg-subject-index__placeholder {
	filter: brightness(1.04);
	transition: filter 0.3s ease;
}

.cbg-subject-index--with-images
	.cbg-subject-index__card:hover
	.cbg-subject-index__image {
	transform: scale(1.055);
	filter: brightness(1.06);
}


/* 可読性用の黒グラデーション */
.cbg-subject-index__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	background:
		linear-gradient(
			to top,
			rgba(0, 0, 0, 0.78) 0%,
			rgba(0, 0, 0, 0.42) 29%,
			rgba(0, 0, 0, 0.08) 64%,
			rgba(0, 0, 0, 0.04) 100%
		);
	pointer-events: none;
}


/* 左下の背番号・選手名 */
.cbg-subject-index--with-images
	.cbg-subject-index__card-label {
	position: absolute;
	right: 13px;
	bottom: 11px;
	left: 13px;
	z-index: 2;
	display: flex;
	align-items: baseline;
	gap: 7px;
	min-width: 0;
	color: #fff;
	line-height: 1.15;
	text-shadow:
		0 1px 3px
		rgba(0, 0, 0, 0.55);
}

.cbg-subject-index__number {
	flex: 0 0 auto;
	font-size: clamp(23px, 2.3vw, 31px);
	font-weight: 800;
	letter-spacing: -0.035em;
}

.cbg-subject-index__name {
	min-width: 0;
	overflow: hidden;
	font-size: clamp(14px, 1.35vw, 18px);
	font-weight: 700;
	letter-spacing: 0.01em;
	text-overflow: ellipsis;
	white-space: nowrap;
}


/* ----------------------------------------
   画像準備中
---------------------------------------- */

.cbg-subject-index__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding-bottom: 18px;
	background:
		linear-gradient(
			135deg,
			#d94e2b 0%,
			#c43e20 55%,
			#a92f18 100%
		);
	color: rgba(255, 255, 255, 0.78);
}

.cbg-subject-index__placeholder-icon {
	display: block;
	width: 31px;
	height: 31px;
}

.cbg-subject-index__placeholder-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.cbg-subject-index__placeholder-text {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.cbg-subject-index__card.has-placeholder
	.cbg-subject-index__overlay {
	background:
		linear-gradient(
			to top,
			rgba(52, 8, 3, 0.6) 0%,
			rgba(76, 10, 3, 0.2) 48%,
			rgba(76, 10, 3, 0.04) 100%
		);
}


/* ----------------------------------------
   遷移先ページ未作成
---------------------------------------- */

.cbg-subject-index__card.is-page-unavailable {
	cursor: default;
}

.cbg-subject-index__page-status {
	position: absolute;
	top: 9px;
	right: 9px;
	z-index: 3;
	padding: 3px 7px;
	border-radius: 3px;
	background: rgba(0, 0, 0, 0.56);
	color: #fff;
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.04em;
}


/* ----------------------------------------
   画像なし表示
---------------------------------------- */

.cbg-subject-index--text-only
	.cbg-subject-index__card {
	position: relative;
	display: inline-flex;
	align-items: baseline;
	gap: 7px;
	min-height: 43px;
	padding: 9px 15px;
	border: 1px solid #d9d9d5;
	border-radius: 5px;
	background: #fff;
	color: var(--cbg-index-text);
	text-decoration: none;
	transition:
		border-color 0.2s ease,
		background-color 0.2s ease,
		color 0.2s ease;
}

.cbg-subject-index--text-only
	.cbg-subject-index__card:hover {
	border-color: var(--cbg-index-accent);
	background: #fff8f5;
	color: var(--cbg-index-accent);
	text-decoration: none;
}

.cbg-subject-index--text-only
	.cbg-subject-index__number {
	font-size: 18px;
}

.cbg-subject-index--text-only
	.cbg-subject-index__name {
	font-size: 14px;
}


/* WordPressのhiddenを確実に反映 */
.cbg-subject-index [hidden] {
	display: none !important;
}


/* ----------------------------------------
   タブレット
---------------------------------------- */

@media screen and (max-width: 1024px) {

	.cbg-subject-index--with-images
		.cbg-subject-index__card {
		flex-basis:
			calc(33.333% - 9.34px);
	}
}


/* ----------------------------------------
   スマートフォン
---------------------------------------- */

@media screen and (max-width: 767px) {

	.cbg-subject-index__toolbar {
		display: block;
		margin-bottom: 22px;
	}

	.cbg-subject-index__heading {
		margin-bottom: 18px;
		font-size: 23px;
	}

	.cbg-subject-index__search {
		width: 100%;
	}

	.cbg-subject-index__toggle {
		min-height: 52px;
		padding:
			12px 16px;
		font-size: 16px;
	}

	.cbg-subject-index__toggle::after {
		right: 17px;
		width: 10px;
		height: 10px;
	}

	.cbg-subject-index__toggle-mark {
		height: 17px;
	}

	.cbg-subject-index__group.is-open
		.cbg-subject-index__toggle-mark {
		height: 23px;
	}

	.cbg-subject-index__cards {
		gap: 10px;
		padding:
			13px 12px 17px;
	}

	.cbg-subject-index--with-images
		.cbg-subject-index__card {
		flex-basis:
			calc(50% - 5px);
		border-radius: 7px;
	}

	.cbg-subject-index--with-images
		.cbg-subject-index__card-label {
		right: 9px;
		bottom: 8px;
		left: 9px;
		gap: 5px;
	}

	.cbg-subject-index__number {
		font-size: clamp(20px, 7vw, 27px);
	}

	.cbg-subject-index__name {
		font-size: clamp(11px, 3.4vw, 14px);
	}

	.cbg-subject-index__placeholder {
		gap: 4px;
		padding-bottom: 14px;
	}

	.cbg-subject-index__placeholder-icon {
		width: 24px;
		height: 24px;
	}

	.cbg-subject-index__placeholder-text {
		font-size: 10px;
	}
}


/* ----------------------------------------
   小さいスマートフォン
---------------------------------------- */

@media screen and (max-width: 390px) {

	.cbg-subject-index--with-images
		.cbg-subject-index__card {
		flex-basis: 100%;
	}
}


/* 動きを抑える設定 */
@media (prefers-reduced-motion: reduce) {

	.cbg-subject-index__panel,
	.cbg-subject-index__image,
	.cbg-subject-index__card {
		transition: none !important;
	}
}

/* ========================================
   営業日カレンダー：
   本体・凡例・備考を一つの枠にまとめる
======================================== */

.cbg-calendar__panel {
	overflow: hidden;
	border: 1px solid var(--cbg-calendar-border);
	border-radius: 14px;
	background: var(--cbg-calendar-bg);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

/*
 * 外側のpanelが枠と角丸を担当するため、
 * 既存カレンダー本体の枠を外します。
 */
.cbg-calendar__panel .cbg-calendar-month {
	overflow: hidden;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}


/* ========================================
   カレンダー下部
======================================== */

.cbg-calendar__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 51px;
	padding: 8px 14px;
	border-top: 1px solid var(--cbg-calendar-border);
	background: var(--cbg-calendar-soft-bg);
}


/* 凡例 */
.cbg-calendar__footer .cbg-calendar-legend {
	flex: 0 0 auto;
	gap: 8px 14px;
	margin: 0;
	padding: 0;
}

.cbg-calendar__footer .cbg-calendar-legend__item {
	font-size: 10px;
	white-space: nowrap;
}

.cbg-calendar__footer .cbg-calendar-legend__mark {
	width: 13px;
	height: 13px;
}

.cbg-calendar__footer
	.cbg-calendar-legend__mark.is-today {
	width: 15px;
	height: 15px;
}


/* 注意文 */
.cbg-calendar__footer .cbg-calendar__note {
	flex: 1 1 auto;
	margin: 0;
	padding: 2px 0 2px 11px;
	border-left: 3px solid var(--cbg-calendar-accent);
	background: transparent;
	color: var(--cbg-calendar-muted);
	font-size: 10px;
	line-height: 1.5;
	text-align: right;
}

@media screen and (max-width: 767px) {

	.cbg-calendar__panel {
		border-radius: 10px;
	}

	.cbg-calendar__footer {
		display: grid;
		gap: 7px;
		padding: 8px 10px;
	}

	.cbg-calendar__footer .cbg-calendar-legend {
		justify-content: center;
	}

	.cbg-calendar__footer .cbg-calendar__note {
		padding: 5px 0 0;
		border-top: 1px solid var(--cbg-calendar-border);
		border-left: 0;
		font-size: 9px;
		text-align: center;
	}
}

/* ========================================
   グッズ商品：案内エリア
======================================== */

.cbg-product-notice{
	width:100%;
	max-width:70%;
	margin:48px auto 56px;
	border-radius:10px;
	overflow:hidden;
	background:#fff;
}

.cbg-product-notice{
    border:1px solid #e8e8e8;
    box-shadow:0 2px 8px rgba(0,0,0,.04);
}

.cbg-product-notice__image{
	text-align:center;
}

.cbg-product-notice__image img,
.cbg-product-notice__image-element{
	display:block;
	width:100%;
	height:auto;
	margin:0 auto;
	border-radius:10px;
}

.cbg-product-notice__text {
	padding: 16px 20px;
	color: #554641;
	font-size: 14px;
	line-height: 1.8;
}

.cbg-product-notice__text > :first-child {
	margin-top: 0;
}

.cbg-product-notice__text > :last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 767px) {

	.cbg-product-notice {
		margin-top: 24px;
	}

	.cbg-product-notice{
		max-width:100%;
	}
	
	.cbg-product-notice__text {
		padding: 14px 16px;
		font-size: 13px;
	}
}

.cbg-goods-series > .cbg-goods-series__inner > .cbg-product-notice {
	margin-top: 48px;
	margin-bottom: 0;
}

.cbg-goods-series > .cbg-goods-series__inner
.cbg-product-notice + .cbg-goods-series__products {
	margin-top: 48px;
}