/**
* Theme Name: Kadence Child
* Theme URI: https://example.com
* Description: Kadence の子テーマ
* Author: あなたの名前
* Author URI: https://example.com
* Template: kadence
* Version: 1.0.0
*/

.single .sidebar-inner-wrap .content-bg {background:none !important;}

/* single-products投稿タイプ専用の上部余白調整 */
.single-products #primary.content-area { margin-top: 5rem; }
.single-products .content-container { margin-top: 2rem; }

/* events投稿タイプ専用調整 */
@media screen and (min-width: 1025px){
	.single-event .content-container { xmax-width: 1200px !important; grid-template-columns: 5fr 2.3fr;}
}
.single-event .content-container {color:#777;}
.single-event .content-area { margin-top: 4.3rem;}
.single-event .primary-sidebar {padding:2.5rem 0 0 0;}
.single-event .entry-content { font-size:0.9rem;}
.single-event .entry.single-entry { box-shadow: none;}

/* LABO ARCHIVE */
.single-labo #primary.content-area { margin-top: 68px; margin-bottom: 3rem; }
.single-labo .entry-header {padding-top:1.5rem;}
@media (max-width: 768px) {
	.single-labo #primary.content-area { margin-top: 52px; margin-bottom: 0rem; }
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
	.single-products #primary.content-area { margin-top: 2rem; }
	.single-products .content-container { margin-top: 2rem; }
}

/* テーブル内余白制御 */
.kb-table p {margin:0; padding:0;}


/* ===========================================
   基本レイアウト（2カラム構造）- 上端揃え調整
   =========================================== */
.cpt-two-column .cpt-main-content { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin-bottom: 3rem; align-items: start; }
.cpt-image-column { position: sticky; top: 120px; height: fit-content; }
.cpt-content-column { padding-left: 1rem; padding-top: 0; }

/* ===========================================
   メイン画像・サムネイル関連
   =========================================== */
.cpt-hero { margin: 0 0 1rem 0; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); }
.cpt-hero__img { width: 100%; height: auto; display: block; }
.main-image-container { position: relative; }
.main-image { width: 100%; height: auto; display: block; transition: opacity 0.3s ease; }

/* サムネイルギャラリー */
.thumbnail-gallery { display: flex; gap: 0.5rem; flex-wrap: wrap; justify-content: flex-start; margin-top: 1rem; }
.thumbnail-item { width: 94px; cursor: pointer; transition: all 0.3s ease; position: relative; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; }
.thumbnail-item:hover .thumbnail-img { border-color: #60879a; transform: scale(1.05); box-shadow: 0 2px 8px rgba(0, 124, 186, 0.3); }
.thumbnail-item.active .thumbnail-img { border-color: #60879a; box-shadow: 0 0 10px rgba(0, 124, 186, 0.5); }
.thumbnail-item.active::after { content: '✓'; position: absolute; top: 2px; right: 2px; background: #60879a; color: white; width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: bold; line-height: 1; z-index: 1; }
.thumbnail-img { width: 100%; height: 94px; object-fit: contain; display: block; background: #f8f9fa; border-radius: 6px; border: 1px solid #eee; transition: all 0.3s ease; }
.thumbnail-caption { font-size: 0.65rem; color: #666; text-align: center; padding: 0.25rem 0; line-height: 1.2; word-wrap: break-word; overflow-wrap: break-word; margin-top: 0.25rem; width: 100%; }

/* レスポンシブ対応（768px以下） */
@media (max-width: 768px) {
	.thumbnail-gallery { gap: 0.75rem; padding-bottom:15px;}
	.thumbnail-item { width: 70px; margin-bottom: 0.5rem; }
	.thumbnail-img { height: 70px; }
	.thumbnail-item.active::after { width: 16px; height: 16px; font-size: 10px; top: 2px; right: 2px; }
	.thumbnail-caption { font-size: 0.65rem; padding: 0.25rem 0; margin-top: 0.2rem; }
}



/* ===========================================
   コンテンツエリア（タイトル・商品情報）- 上端揃え調整
   =========================================== */
.cpt-article__header { margin-top: 0; padding-top: 0; }
.cpt-title { font-size: 2rem; margin: 0 0 1.5rem 0; line-height: 1.3; }
.cpt-content-top { margin-bottom: 1.5rem; line-height: 1.6; color: #666; }
.cpt-content-bottom { background: #fff3cd; border: 1px solid #ffeeba; padding: 1rem; border-radius: 6px; margin-top: 1rem; }
.cpt-content-bottom h4 { margin: 0 0 0.5rem 0; color: #856404; font-size: 1rem; }

/* キャッチコピー（タイトル下） */
.cpt-catchcopy { font-size: 1.1rem; color: #666; margin: 0.5rem 0 1.5rem 0; line-height: 1.4; font-weight: 400; }

/* 商品スペック（背景色そのまま、購入ボタン除く） */
.cpt-meta { background: #f8f9fa; padding: 1.5rem; border-radius: 8px; margin-bottom: 1.5rem; }
.meta-row { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid #dee2e6; }
.meta-row:last-child { border-bottom: none; }
.meta-row span { color: #6c757d; font-weight: 500; min-width: 120px; font-size: 0.8rem; }
.meta-row strong { color: #212529; text-align: right; flex: 1; font-weight: 600; font-size: 0.8rem; }

/* 購入ボタン（独立エリア） */
.cpt-purchase-button { text-align: center; margin: 1.5rem 0; }
.purchase-btn { background: #0073aa; color: white; padding: .5rem 2.5rem; border-radius: 8px; text-decoration: none; font-size: 1rem; font-weight: 400; transition: all 0.3s ease; display: inline-block; box-shadow: 0 2px 8px rgba(0, 115, 170, 0.3); }
.purchase-btn:hover { background: #005177; color: white; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 115, 170, 0.4); }

/* ===========================================
   ブロックエディタ コンテンツエリア
   =========================================== */
/* 右カラムエリア（moreタグまで） */
.cpt-content-summary { margin: 1.5rem 0; padding: 0; line-height: 1.6; }
.cpt-content-summary h2, .cpt-content-summary h3, .cpt-content-summary h4 { font-size: 1.1rem; margin: 1rem 0 0.5rem 0; color: #333; }
.cpt-content-summary p { margin-bottom: 1rem; color: #666; font-size: 0.95rem; }
.cpt-content-summary ul, .cpt-content-summary ol { margin: 0.75rem 0; padding-left: 1.5rem; }
.cpt-content-summary li { margin-bottom: 0.25rem; color: #666; font-size: 0.95rem; }

/* 全幅エリア（moreタグ以降） */
.cpt-content-full { margin-top: 2rem; padding-top: 2rem; xborder-top: 2px solid #f0f0f0; }
.full-width-content { max-width: none; line-height: 1.7; }
.full-width-content h2 { font-size: 1.75rem; margin: 2rem 0 1rem 0; padding-bottom: 0.5rem; xborder-bottom: 2px solid #007cba; color: #333; }
.full-width-content h3 { font-size: 1.5rem; margin: 1.5rem 0 1rem 0; color: #333; }
.full-width-content h4 { font-size: 1.25rem; margin: 1.25rem 0 0.75rem 0; color: #333; }
x.full-width-content p { margin-bottom: 1.5rem; color: #666; }
.full-width-content ul, .full-width-content ol { margin: 1rem 0 1.5rem 0; padding-left: 2rem; }
.full-width-content li { margin-bottom: 0.5rem; color: #666; }
.full-width-content .wp-block-image { margin: 2rem 0; }
.full-width-content .wp-block-image img { border-radius: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); }

/* ブロックエディタ 汎用スタイル */
.block-editor-content { max-width: none; line-height: 1.7; }
.block-editor-content h2 { font-size: 1.75rem; margin: 2rem 0 1rem 0; padding-bottom: 0.5rem; border-bottom: 2px solid #007cba; color: #333; }
.block-editor-content h3 { font-size: 1.5rem; margin: 1.5rem 0 1rem 0; color: #333; }
.block-editor-content h4 { font-size: 1.25rem; margin: 1.25rem 0 0.75rem 0; color: #333; }
.block-editor-content p { margin-bottom: 1.5rem; color: #666; }
.block-editor-content ul, .block-editor-content ol { margin: 1rem 0 1.5rem 0; padding-left: 2rem; }
.block-editor-content li { margin-bottom: 0.5rem; color: #666; }
.block-editor-content .wp-block-image { margin: 2rem 0; }
.block-editor-content .wp-block-image img { border-radius: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); }
.block-editor-content .wp-block-image figcaption { margin-top: 0.5rem; font-size: 0.9rem; color: #888; text-align: center; }
.block-editor-content .wp-block-gallery { margin: 2rem 0; }
.block-editor-content .wp-block-quote { border-left: 4px solid #007cba; padding-left: 1.5rem; margin: 2rem 0; font-style: italic; color: #555; }
.block-editor-content .wp-block-table { margin: 2rem 0; }
.block-editor-content .wp-block-table table { width: 100%; border-collapse: collapse; border: 1px solid #ddd; }
.block-editor-content .wp-block-table th, .block-editor-content .wp-block-table td { padding: 0.75rem; border: 1px solid #ddd; text-align: left; }
.block-editor-content .wp-block-table th { background-color: #f8f9fa; font-weight: 600; }
.table_img01 {display:block !important; width:50px; border-radius:100%; margin:0 auto;}



/* ページナビゲーション */
.page-links { margin: 2rem 0; padding: 1rem; background: #f8f9fa; border-radius: 6px; text-align: center; }
.page-links-title { font-weight: 600; margin-right: 1rem; }
.page-links a, .page-links span { display: inline-block; padding: 0.5rem 0.75rem; margin: 0 0.25rem; border-radius: 4px; background: white; border: 1px solid #ddd; text-decoration: none; color: #333; }
.page-links a:hover { background: #007cba; color: white; border-color: #007cba; }

/* ===========================================
   機能無効化・非表示
   =========================================== */
.single-products .wp-block-kadence-advancedgallery, .single-products .kadence-blocks-gallery { display: none; }
.lightbox-overlay, .lightbox-content, .lightbox-image { display: none !important; }

/* ===========================================
 * 機能無効化・非表示
 * =========================================== */

/* デフォルトでKadenceギャラリーとライトボックスを非表示 */
.single-products .wp-block-kadence-advancedgallery,
.single-products .kadence-blocks-gallery {
    display: none;
}

.lightbox-overlay,
.lightbox-content,
.lightbox-image {
    display: none !important;
}

/* ===========================================
 * .gallery_def クラス付きは通常ギャラリーとして表示
 * =========================================== */

/* .gallery_def が付いた場合は表示を有効化 */
.single-products .gallery_def.wp-block-kadence-advancedgallery,
.single-products .gallery_def.kadence-blocks-gallery {
    display: block;
}

/* .gallery_def 内のライトボックスは有効化 */
.gallery_def .lightbox-overlay,
.gallery_def .lightbox-content,
.gallery_def .lightbox-image {
    display: block !important;
}

/* .gallery_def ギャラリーのスタイリング調整（必要に応じて） */
.gallery_def.wp-block-kadence-advancedgallery {
    margin: 1rem 0;
}

.gallery_def .kadence-blocks-gallery {
    margin: 1rem 0;
}

/* ギャラリー画像のホバー効果 */
.gallery_def .kadence-blocks-gallery-item img {
    transition: transform 0.3s ease;
}

.gallery_def .kadence-blocks-gallery-item img:hover {
    transform: scale(1.05);
}

/* ライトボックスのz-index調整 */
.gallery_def .lightbox-overlay {
    z-index: 9999;
}

/* ===========================================
   レスポンシブ対応（768px以下）
   =========================================== */
@media (max-width: 768px) {
	/* レイアウト */
	.cpt-two-column .cpt-main-content { grid-template-columns: 1fr; gap: 2rem; }
	.cpt-image-column { position: static; }
	.cpt-content-column { padding-left: 0; padding-top: 0; }
	
	/* サムネイル */
	x.thumbnail-gallery { justify-content: center; }
	x.thumbnail-item { width: 50px; height: 50px; }
	x.thumbnail-item.active::after { width: 14px; height: 14px; font-size: 9px; top: 1px; right: 1px; }
	
	/* メタ情報 */
	.cpt-catchcopy { font-size: 1rem; margin: 0.5rem 0 1rem 0; }
	.meta-row { padding: 0.75rem 0; }
	.meta-row span { min-width: 100px; font-size: 0.9rem; }
	.meta-row strong { font-size: 0.9rem; }
	.cpt-purchase-button { margin: 1rem 0; }
	.purchase-btn { padding: 0.875rem 2rem; font-size: 0.95rem; }
	
	/* コンテンツエリア */
	.cpt-content-summary { margin: 1rem 0; }
	.cpt-content-full { margin-top: 2rem; padding-top: 2rem; }
	.full-width-content h2 { font-size: 1.5rem; }
	.block-editor-content h2 { font-size: 1.5rem; }
	.block-editor-content h3 { font-size: 1.25rem; }
	.block-editor-content .wp-block-table { overflow-x: auto; }
}

/* ===========================================
   テキスト装飾
   =========================================== */
.border_line_right { display: flex; align-items: center; gap: 1rem; }
.border_line_right::after { content: ""; flex: 1; height: 1px; background-color: #d8dbe7;  }

.label-tag { display: inline-block; background: #000; color: #fff; padding: 3px 8px; margin: 3px 0 0 !important; border-radius: 3px; font-size: 11px; line-height: 1.2; font-weight: 600; }

.font_w200 {font-weight:200;}
.font_w300 {font-weight:300;}
.font_w400 {font-weight:400;}

/* ===========================================
   Timelineの交わる部分の●
   =========================================== */
.timeline-divider {
  position: relative;
}

/* ●ドット（交点） */
.timeline-divider::after {
  content: "";
  position: absolute;
  right: -8px;   /* 横線の右端に配置（左に置きたい場合は left: -6px;） */
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background: #EEE;
  border-radius: 50%;
}


/* ===========================================
   アイキャッチ下バナーエリア（position_u_eyechatch）
   =========================================== */
.eyecatch-banners {
	margin-top: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.eyecatch-banners .position_u_eyechatch {
	width: 100%;
	overflow: hidden;
	box-shadow: none; /* シャドウを削除 */
	transition: transform 0.3s ease;
}

.eyecatch-banners .position_u_eyechatch:hover {
	transform: translateY(-2px);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* ホバー時のみ軽いシャドウ */
}

.eyecatch-banners .position_u_eyechatch img {
	width: 100%;
	height: auto;
	display: block;
}

.eyecatch-banners .position_u_eyechatch a {
	display: block;
	text-decoration: none;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
	.eyecatch-banners {
		margin-top: 1rem;
		gap: 0.75rem;
	}
}

/* ===========================================
    投稿タイプ　EVENT
   =========================================== */
.single-event .loop-entry .entry-content-wrap { padding: 0 0 0 1rem; }
.single-event .widget li:not(.kb-table-of-content-list li) { line-height: 1.4; }
.single-event .entry.loop-entry { box-shadow: none; }
.single-event  ul.kadence-posts-list, .single-content ul.kadence-posts-list {
padding: 0 0 0 15px;
}
@media screen and (min-width: 1025px){
.single-event #secondary {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
	border-left: 1px dashed #ddd;
	}
}