/**
 * 仁頼ブロック v2.0 — Frontend Styles
 */

/* === CTA Section Variants === */
.jinrai-cta-dark { background: var(--sumi, #1a1a1a); padding: 80px 0; text-align: center; }
.jinrai-cta-dark .cta-title { font-family: var(--font-mincho); font-size: 2rem; color: var(--washi, #faf6eb); letter-spacing: 0.08em; margin-bottom: 16px; }
.jinrai-cta-dark .cta-desc { color: rgba(250,246,235,0.7); font-size: 1rem; }
.jinrai-cta-light { background: var(--shironeri, #f3efe0); padding: 80px 0; text-align: center; }
.jinrai-cta-light .cta-title { font-family: var(--font-mincho); font-size: 2rem; color: var(--sumi, #1a1a1a); letter-spacing: 0.08em; margin-bottom: 16px; }
.jinrai-cta-gold { background: linear-gradient(135deg, var(--kincha, #c49a6c), var(--gold-light, #daa520)); padding: 80px 0; text-align: center; }
.jinrai-cta-gold .cta-title { font-family: var(--font-mincho); font-size: 2rem; color: #fff; letter-spacing: 0.08em; margin-bottom: 16px; }
.jinrai-cta-gold .cta-desc { color: rgba(255,255,255,0.85); }

/* === Stats Variants === */
.jinrai-stats-dark { background: var(--sumi, #1a1a1a); color: var(--washi, #faf6eb); }
.jinrai-stats-dark .result-label { color: rgba(250,246,235,0.6); }
.jinrai-stats-light { background: var(--shironeri, #f3efe0); }

/* =========================================
   v2.0 — Heading Block
   ========================================= */
.jb-heading { position: relative; }
.jb-heading-data { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-family: var(--font-mincho, "Noto Serif JP", serif); font-size: 5rem; color: rgba(196,154,108,0.08); pointer-events: none; white-space: nowrap; z-index: 0; line-height: 1; }
.jb-heading-main { position: relative; z-index: 1; }
.jb-heading-sub { display: block; font-size: 0.8rem; color: var(--kincha, #c49a6c); letter-spacing: 0.2em; }
.jb-heading-sub--above { margin-bottom: 4px; }
.jb-heading-sub--below { margin-top: 4px; }

/* Heading Decorations */
.jb-heading--left-border .jb-heading-main { border-left: 4px solid var(--kincha, #c49a6c); padding-left: 16px; }
.jb-heading--bottom-line .jb-heading-main { border-bottom: 3px solid var(--kincha, #c49a6c); padding-bottom: 8px; }
.jb-heading--bottom-line-short .jb-heading-main { position: relative; padding-bottom: 16px; }
.jb-heading--bottom-line-short .jb-heading-main::after { content: ''; position: absolute; bottom: 0; left: 0; width: 60px; height: 3px; background: var(--kincha, #c49a6c); }
.jb-heading--bottom-line-short[style*="text-align:center"] .jb-heading-main::after,
.jb-heading--bottom-line-short[style*="text-align: center"] .jb-heading-main::after { left: 50%; transform: translateX(-50%); }
.jb-heading--bottom-line-gradient .jb-heading-main { border-bottom: 3px solid transparent; border-image: linear-gradient(to right, var(--kincha, #c49a6c), var(--gold-light, #daa520)) 1; padding-bottom: 8px; }
.jb-heading--border .jb-heading-main { border: 2px solid var(--kincha, #c49a6c); padding: 16px 20px; }
.jb-heading--balloon .jb-heading-main { background: var(--washi, #faf6eb); padding: 16px 20px; position: relative; border: 1px solid var(--shironeri, #f3efe0); }
.jb-heading--balloon .jb-heading-main::after { content: ''; position: absolute; bottom: -10px; left: 24px; border-style: solid; border-width: 10px 8px 0 8px; border-color: var(--washi, #faf6eb) transparent transparent transparent; }
.jb-heading--balloon-round .jb-heading-main { background: var(--washi, #faf6eb); padding: 16px 20px; border-radius: 12px; position: relative; border: 1px solid var(--shironeri, #f3efe0); }
.jb-heading--balloon-round .jb-heading-main::after { content: ''; position: absolute; bottom: -10px; left: 24px; border-style: solid; border-width: 10px 8px 0 8px; border-color: var(--washi, #faf6eb) transparent transparent transparent; }
.jb-heading--bg-fill .jb-heading-main { background: var(--sumi, #1a1a1a); color: var(--washi, #faf6eb); padding: 12px 20px; }
.jb-heading--ribbon .jb-heading-main { background: var(--kincha, #c49a6c); color: #fff; padding: 10px 24px 10px 20px; display: inline-block; position: relative; }
.jb-heading--ribbon .jb-heading-main::before { content: ''; position: absolute; right: -12px; top: 0; bottom: 0; border-style: solid; border-width: 0 0 50px 12px; border-color: transparent transparent transparent var(--kincha, #c49a6c); }
.jb-heading--wave .jb-heading-main { border-bottom: 3px dotted var(--kincha, #c49a6c); padding-bottom: 8px; }
.jb-heading--stripe-bg .jb-heading-main { background: repeating-linear-gradient(-45deg, transparent, transparent 4px, rgba(196,154,108,0.06) 4px, rgba(196,154,108,0.06) 8px); padding: 12px 20px; border-left: 4px solid var(--kincha, #c49a6c); }
.jb-heading--double-line .jb-heading-main { border-top: 3px double var(--kincha, #c49a6c); border-bottom: 3px double var(--kincha, #c49a6c); padding: 12px 0; }

/* =========================================
   v2.0 — Button Block
   ========================================= */
.jb-btn-wrap { margin: 16px 0; }
.jb-btn-wrap--left { text-align: left; }
.jb-btn-wrap--center { text-align: center; }
.jb-btn-wrap--right { text-align: right; }
.jb-micro-copy { display: block; font-size: 0.8rem; color: var(--kincha, #c49a6c); text-align: center; }
.jb-micro-copy--top { margin-bottom: 4px; }
.jb-micro-copy--bottom { margin-top: 4px; }
.jb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 600; letter-spacing: 0.1em; cursor: pointer; border: none; text-decoration: none; transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94); position: relative; overflow: hidden; }
.jb-btn--primary { background: var(--sumi, #1a1a1a); color: var(--washi, #faf6eb); }
.jb-btn--gold { background: linear-gradient(135deg, var(--kincha, #c49a6c), var(--gold-light, #daa520)); color: #fff; }
.jb-btn--outline { background: transparent; color: var(--sumi, #1a1a1a); border: 2px solid var(--sumi, #1a1a1a); }
.jb-btn--outline-gold { background: transparent; color: var(--kincha, #c49a6c); border: 2px solid var(--kincha, #c49a6c); }
.jb-btn--circle { border-radius: 50px; background: linear-gradient(135deg, var(--kincha, #c49a6c), var(--gold-light, #daa520)); color: #fff; }
.jb-btn--circle-outline { border-radius: 50px; background: transparent; color: var(--kincha, #c49a6c); border: 2px solid var(--kincha, #c49a6c); }
.jb-btn--small { padding: 10px 20px; font-size: 0.85rem; }
.jb-btn--medium { padding: 16px 36px; font-size: 0.95rem; }
.jb-btn--large { padding: 20px 48px; font-size: 1.1rem; }

/* Hover effects */
.jb-btn--hover-float:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0,0,0,0.15); }
.jb-btn--hover-shine { overflow: hidden; }
.jb-btn--hover-shine::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); transition: left 0.5s; }
.jb-btn--hover-shine:hover::before { left: 100%; }
.jb-btn--hover-pulse:hover { animation: jbPulse 0.6s ease; }
@keyframes jbPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }

/* =========================================
   v2.0 — Balloon Block
   ========================================= */
.jb-balloon { display: flex; align-items: flex-start; gap: 20px; margin: 24px 0; }
.jb-balloon--right { flex-direction: row-reverse; }
.jb-balloon-person { flex-shrink: 0; text-align: center; }
.jb-balloon-img { width: 80px; height: 80px; border-radius: 50%; overflow: hidden; background: var(--shironeri, #f3efe0); }
.jb-balloon-img img { width: 100%; height: 100%; object-fit: cover; }
.jb-balloon-img--border { border: 2px solid var(--kincha, #c49a6c); }
.jb-balloon-name { font-size: 0.75rem; color: #666; margin-top: 4px; }
.jb-balloon-body { flex: 1; position: relative; padding: 16px 20px; background: var(--washi, #faf6eb); border: 1px solid var(--shironeri, #f3efe0); border-radius: 8px; line-height: 1.8; }
.jb-balloon--serif .jb-balloon-body::before { content: ''; position: absolute; top: 16px; border-style: solid; border-width: 8px; }
.jb-balloon--serif:not(.jb-balloon--right) .jb-balloon-body::before { left: -16px; border-color: transparent var(--washi, #faf6eb) transparent transparent; }
.jb-balloon--serif.jb-balloon--right .jb-balloon-body::before { right: -16px; border-color: transparent transparent transparent var(--washi, #faf6eb); }
.jb-balloon--think .jb-balloon-body { border-radius: 20px; }
.jb-balloon--flat .jb-balloon-body { border-radius: 0; }

/* =========================================
   v2.0 — Box Block
   ========================================= */
.jb-box { border: 2px solid var(--kincha, #c49a6c); padding: 24px; margin: 24px 0; }
.jb-box--dashed { border-style: dashed; }
.jb-box--double { border-style: double; border-width: 4px; }
.jb-box--none { border: none; background: var(--washi, #faf6eb); }
.jb-box-heading { font-family: var(--font-mincho, "Noto Serif JP", serif); font-weight: 700; padding: 8px 16px; margin: -24px -24px 16px; background: var(--washi, #faf6eb); border-bottom: 1px solid var(--shironeri, #f3efe0); }
.jb-box--narrow .jb-box-heading { background: var(--kincha, #c49a6c); color: #fff; }
.jb-box--inner .jb-box-heading { background: var(--sumi, #1a1a1a); color: var(--washi, #faf6eb); }
.jb-box--center .jb-box-heading { text-align: center; background: var(--kincha, #c49a6c); color: #fff; }
.jb-box--balloon { position: relative; }
.jb-box--balloon::after { content: ''; position: absolute; bottom: -12px; left: 24px; border-style: solid; border-width: 12px 10px 0 10px; border-color: var(--kincha, #c49a6c) transparent transparent transparent; }

/* =========================================
   v2.0 — Tab Block
   ========================================= */
.jb-tabs { border: 1px solid var(--shironeri, #f3efe0); margin: 24px 0; }
.jb-tabs-nav { display: flex; border-bottom: 2px solid var(--kincha, #c49a6c); background: var(--washi, #faf6eb); }
.jb-tabs-nav-item { padding: 12px 24px; cursor: pointer; font-weight: 600; font-size: 0.95rem; border-bottom: 2px solid transparent; margin-bottom: -2px; color: #666; transition: all 0.3s; user-select: none; }
.jb-tabs-nav-item:hover { color: var(--kincha, #c49a6c); }
.jb-tabs-nav-item.active { color: var(--kincha, #c49a6c); border-bottom-color: var(--kincha, #c49a6c); background: #fff; }
.jb-tabs-panel { padding: 24px; display: none; }
.jb-tabs-panel.active { display: block; }

/* =========================================
   v2.0 — Icon Block
   ========================================= */
.jb-icon-wrap { display: inline-flex; flex-direction: column; align-items: center; gap: 12px; text-decoration: none; color: inherit; transition: all 0.3s; }
.jb-icon-circle { width: 80px; height: 80px; border-radius: 50%; background: var(--washi, #faf6eb); display: flex; align-items: center; justify-content: center; border: 2px solid var(--kincha, #c49a6c); transition: all 0.3s; }
.jb-icon-circle svg { width: 32px; height: 32px; color: var(--kincha, #c49a6c); }
.jb-icon-text { font-size: 0.95rem; }
.jb-icon-wrap:hover .jb-icon-circle { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0,0,0,0.1); }
.jb-icon--bounce:hover .jb-icon-circle { animation: jbBounce 0.6s ease; }
.jb-icon--rotate:hover .jb-icon-circle { animation: jbRotate 0.6s ease; }
.jb-icon--pulse:hover .jb-icon-circle { animation: jbPulse 0.6s ease; }
@keyframes jbBounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes jbRotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* =========================================
   v2.0 — Panel Block
   ========================================= */
.jb-panel { position: relative; border: 1px solid var(--shironeri, #f3efe0); padding: 24px; margin: 24px 0; }
.jb-panel-number { position: absolute; top: -16px; left: 16px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.9rem; z-index: 1; }
.jb-panel-number--circle { background: var(--kincha, #c49a6c); color: #fff; border-radius: 50%; }
.jb-panel-number--rounded { background: var(--kincha, #c49a6c); color: #fff; border-radius: 6px; }
.jb-panel-number--square { background: var(--kincha, #c49a6c); color: #fff; }
.jb-panel-number--circle-outline { border: 2px solid var(--kincha, #c49a6c); color: var(--kincha, #c49a6c); border-radius: 50%; background: #fff; }
.jb-panel-number--rounded-outline { border: 2px solid var(--kincha, #c49a6c); color: var(--kincha, #c49a6c); border-radius: 6px; background: #fff; }

/* =========================================
   v2.0 — Menu List Block
   ========================================= */
.jb-menu-list { list-style: none; padding: 0; margin: 24px 0; }
.jb-menu-list-item { display: flex; align-items: baseline; gap: 8px; padding: 12px 0; border-bottom: 1px dotted #ccc; }
.jb-menu-list-item:last-child { border-bottom: none; }
.jb-menu-list-item .jb-menu-name { font-weight: 600; }
.jb-menu-list-item .jb-menu-dots { flex: 1; border-bottom: 1px dotted #ccc; margin: 0 4px; min-width: 30px; }
.jb-menu-list-item .jb-menu-price { font-family: var(--font-mincho, "Noto Serif JP", serif); color: var(--kincha, #c49a6c); font-weight: 700; white-space: nowrap; }
.jb-menu-list-item .jb-menu-tax { font-size: 0.75rem; color: #999; margin-left: 4px; }

/* =========================================
   v2.0 — Text Decoration
   ========================================= */
.jb-marker-yellow { background: linear-gradient(transparent 60%, #fff44f 60%); }
.jb-marker-pink { background: linear-gradient(transparent 60%, #ffb6c1 60%); }
.jb-marker-blue { background: linear-gradient(transparent 60%, #87ceeb 60%); }
.jb-underline-kincha { border-bottom: 2px solid var(--kincha, #c49a6c); padding-bottom: 1px; }
.jb-underline-dotted { border-bottom: 2px dotted var(--kincha, #c49a6c); padding-bottom: 1px; }
.jb-text-large { font-size: 1.2em; }
.jb-text-small { font-size: 0.8em; }

/* =========================================
   v2.0 — Animation
   ========================================= */
[data-jb-anim] { opacity: 0; }
[data-jb-anim].jb-anim-visible { opacity: 1; }
[data-jb-anim="fadeIn"].jb-anim-visible { animation: jbFadeIn var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim="fadeInUp"].jb-anim-visible { animation: jbFadeInUp var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim="fadeInDown"].jb-anim-visible { animation: jbFadeInDown var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim="fadeInLeft"].jb-anim-visible { animation: jbFadeInLeft var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim="fadeInRight"].jb-anim-visible { animation: jbFadeInRight var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim="slideUp"].jb-anim-visible { animation: jbSlideUp var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim="slideDown"].jb-anim-visible { animation: jbSlideDown var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim="scaleUp"].jb-anim-visible { animation: jbScaleUp var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim="zoomIn"].jb-anim-visible { animation: jbZoomIn var(--jb-anim-dur, 0.8s) ease var(--jb-anim-delay, 0s) forwards; }
[data-jb-anim-repeat="infinite"].jb-anim-visible { animation-iteration-count: infinite; }

@keyframes jbFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes jbFadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes jbFadeInDown { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes jbFadeInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes jbFadeInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes jbSlideUp { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: translateY(0); } }
@keyframes jbSlideDown { from { opacity: 0; transform: translateY(-60px); } to { opacity: 1; transform: translateY(0); } }
@keyframes jbScaleUp { from { opacity: 0; transform: scale(0.8); } to { opacity: 1; transform: scale(1); } }
@keyframes jbZoomIn { from { opacity: 0; transform: scale(0.5); } to { opacity: 1; transform: scale(1); } }

/* =========================================
   v2.0 — Posts Grid Block
   ========================================= */
.jb-posts-grid {
	display: grid;
	grid-template-columns: repeat( var(--jb-pg-columns, 3), 1fr );
	gap: 30px;
}
.jb-posts-grid-item {
	text-decoration: none;
	color: var(--sumi, #1a1a1a);
	display: block;
	transition: var(--transition-smooth, all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94));
}
/* Card style */
.jb-posts-grid--card .jb-posts-grid-item {
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.jb-posts-grid--card .jb-posts-grid-item:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}
/* Border style */
.jb-posts-grid--border .jb-posts-grid-item {
	border: 1px solid var(--shironeri-dark, #e8e2cf);
	border-radius: 4px;
	overflow: hidden;
}
.jb-posts-grid--border .jb-posts-grid-item:hover {
	border-color: var(--kincha, #c49a6c);
}
/* Flat style */
.jb-posts-grid--flat .jb-posts-grid-item {
	overflow: hidden;
}
.jb-posts-grid--flat .jb-posts-grid-item:hover {
	opacity: 0.85;
}
/* Simple style */
.jb-posts-grid--simple .jb-posts-grid-item {
	overflow: hidden;
}
.jb-posts-grid--simple .jb-posts-grid-item:hover .jb-posts-grid-title {
	color: var(--kincha, #c49a6c);
}
/* List style */
.jb-posts-grid--list {
	grid-template-columns: 1fr !important;
	gap: 0;
}
.jb-posts-grid--list .jb-posts-grid-item {
	display: flex;
	align-items: stretch;
	border-bottom: 1px solid var(--shironeri-dark, #e8e2cf);
	padding: 20px 0;
}
.jb-posts-grid--list .jb-posts-grid-item:first-child {
	border-top: 1px solid var(--shironeri-dark, #e8e2cf);
}
.jb-posts-grid--list .jb-posts-grid-item:hover {
	background: var(--washi, #faf6eb);
}
.jb-posts-grid--list .jb-posts-grid-thumb {
	width: 200px;
	flex-shrink: 0;
	border-radius: 4px;
	overflow: hidden;
	margin-right: 24px;
}

/* Thumbnail */
.jb-posts-grid-thumb {
	overflow: hidden;
	background: var(--shironeri, #f3efe0);
}
.jb-posts-grid-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.jb-posts-grid-item:hover .jb-posts-grid-thumb img {
	transform: scale(1.05);
}
.jb-posts-grid-nothumb {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--shironeri, #f3efe0) 0%, #e8e0d4 100%);
	font-family: var(--font-en, sans-serif);
	font-size: 0.8rem;
	letter-spacing: 0.15em;
	color: var(--kincha, #c49a6c);
	opacity: 0.5;
}

/* Body */
.jb-posts-grid-body {
	padding: 16px 20px 20px;
}
.jb-posts-grid--list .jb-posts-grid-body {
	padding: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Category */
.jb-posts-grid-cat {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: #fff;
	background: var(--kincha, #c49a6c);
	padding: 2px 10px;
	border-radius: 2px;
	margin-bottom: 8px;
}

/* Date */
.jb-posts-grid-date {
	font-size: 0.75rem;
	color: var(--sumi-light, #2d2d2d);
	display: block;
	margin-bottom: 6px;
	opacity: 0.6;
}

/* Title */
.jb-posts-grid-title {
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color 0.3s;
}

/* Author */
.jb-posts-grid-author {
	font-size: 0.75rem;
	color: #888;
	margin-top: 8px;
	display: block;
}
.jb-posts-grid-author::before {
	content: '\270E ';
}

/* Excerpt */
.jb-posts-grid-excerpt {
	font-size: 0.85rem;
	color: #666;
	line-height: 1.7;
	margin-top: 10px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Read More */
.jb-posts-grid-readmore {
	display: inline-block;
	margin-top: 12px;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--kincha, #c49a6c);
	letter-spacing: 0.05em;
	transition: color 0.3s;
}
.jb-posts-grid-item:hover .jb-posts-grid-readmore {
	color: var(--gold, #b8860b);
}

/* Empty */
.jb-posts-grid-empty {
	text-align: center;
	color: #999;
	padding: 40px;
	font-size: 0.95rem;
}

/* =========================================
   v2.0 — Divider Block
   ========================================= */
.jb-divider {
	position: relative;
	display: block;
}

/* Color variants */
.jb-divider-color--kincha { --jb-div-color: var(--kincha, #c49a6c); }
.jb-divider-color--sumi { --jb-div-color: var(--sumi, #1a1a1a); }
.jb-divider-color--shironeri { --jb-div-color: var(--shironeri-dark, #e8e2cf); }
.jb-divider-color--aka { --jb-div-color: var(--aka, #b33b24); }
.jb-divider-color--ai { --jb-div-color: var(--ai, #264348); }

/* Line styles */
.jb-divider--line {
	border: none;
	border-top-style: solid;
	border-top-color: var(--jb-div-color, #c49a6c);
}
.jb-divider--dashed {
	border: none;
	border-top-style: dashed;
	border-top-color: var(--jb-div-color, #c49a6c);
}
.jb-divider--dotted {
	border: none;
	border-top-style: dotted;
	border-top-color: var(--jb-div-color, #c49a6c);
}
.jb-divider--double {
	border: none;
	border-top-style: double;
	border-top-color: var(--jb-div-color, #c49a6c);
}
.jb-divider--gradient {
	height: 2px;
	background: linear-gradient(to right, transparent, var(--jb-div-color, #c49a6c), transparent);
	border: none;
}
.jb-divider--fade {
	height: 1px;
	background: linear-gradient(to right, transparent 0%, var(--jb-div-color, #c49a6c) 20%, var(--jb-div-color, #c49a6c) 80%, transparent 100%);
	border: none;
}

/* Diamond pattern */
.jb-divider--diamond {
	height: 20px;
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
.jb-divider--diamond::before,
.jb-divider--diamond::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--jb-div-color, #c49a6c);
}
.jb-divider--diamond .jb-divider-ornament {
	display: flex;
	gap: 6px;
}
.jb-divider--diamond .jb-divider-ornament span {
	width: 8px;
	height: 8px;
	background: var(--jb-div-color, #c49a6c);
	transform: rotate(45deg);
	display: block;
}

/* Tomoe pattern */
.jb-divider--tomoe {
	height: 32px;
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}
.jb-divider--tomoe::before,
.jb-divider--tomoe::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--jb-div-color, #c49a6c);
}
.jb-divider--tomoe .jb-divider-ornament {
	font-size: 1.4rem;
	color: var(--jb-div-color, #c49a6c);
	line-height: 1;
}

/* Wave pattern */
.jb-divider--wave {
	height: 16px;
	border: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='16' viewBox='0 0 40 16'%3E%3Cpath d='M0 8c5 0 5 -6 10 -6s5 6 10 6 5 -6 10 -6 5 6 10 6' fill='none' stroke='%23c49a6c' stroke-width='1.5'/%3E%3C/svg%3E") repeat-x center;
}
.jb-divider-color--sumi .jb-divider--wave,
.jb-divider--wave.jb-divider-color--sumi {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='16' viewBox='0 0 40 16'%3E%3Cpath d='M0 8c5 0 5 -6 10 -6s5 6 10 6 5 -6 10 -6 5 6 10 6' fill='none' stroke='%231a1a1a' stroke-width='1.5'/%3E%3C/svg%3E");
}

/* Kamon style */
.jb-divider--kamon {
	height: 40px;
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}
.jb-divider--kamon::before,
.jb-divider--kamon::after {
	content: '';
	flex: 1;
	height: 1px;
	background: linear-gradient(to right, transparent, var(--jb-div-color, #c49a6c));
}
.jb-divider--kamon::after {
	background: linear-gradient(to left, transparent, var(--jb-div-color, #c49a6c));
}
.jb-divider--kamon .jb-divider-ornament {
	width: 32px;
	height: 32px;
	border: 2px solid var(--jb-div-color, #c49a6c);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.jb-divider--kamon .jb-divider-ornament::before {
	content: '';
	width: 12px;
	height: 12px;
	background: var(--jb-div-color, #c49a6c);
	border-radius: 50%;
}

/* =========================================
   Responsive
   ========================================= */
/* Posts Grid Responsive */
@media (max-width: 1024px) {
	.jb-posts-grid {
		grid-template-columns: repeat( min( var(--jb-pg-columns, 3), 2 ), 1fr ) !important;
	}
}
@media (max-width: 600px) {
	.jb-posts-grid {
		grid-template-columns: 1fr !important;
		gap: 20px;
	}
	.jb-posts-grid--list .jb-posts-grid-item {
		flex-direction: column;
	}
	.jb-posts-grid--list .jb-posts-grid-thumb {
		width: 100%;
		margin-right: 0;
		margin-bottom: 12px;
	}
}

@media (max-width: 768px) {
	.jb-balloon { gap: 12px; }
	.jb-balloon-img { width: 60px; height: 60px; }
	.jb-tabs-nav { flex-wrap: wrap; }
	.jb-tabs-nav-item { padding: 10px 16px; font-size: 0.85rem; }
	.jb-heading-data { font-size: 3rem; }
}
