/**
 * jb2b-core components. Frankfurt News supplies the base look; this file only adds
 * what the theme does not ship: hero, topic tiles, TOC, data tables, FAQ accordion,
 * trade boxes, inquiry form and sidebar boxes.
 *
 * Palette mirrors Frankfurt News: accent #b70b75, ink #1f2024, muted #767676,
 * line #ebebeb, paper #f4f4f5.
 */

:root {
	--jb2b-accent: #b70b75;
	--jb2b-accent-dark: #8f085b;
	--jb2b-ink: #1f2024;
	--jb2b-muted: #767676;
	--jb2b-line: #ebebeb;
	--jb2b-paper: #f4f4f5;
	--jb2b-gold: #a9781f;
}

/* ---------- Section bands ---------- */

.jb2b-band { padding: 1.875rem 0 0.5rem; }
.jb2b-band--hub { padding-top: 1.25rem; }

.jb2b-block { margin: 0 0 2.25rem; }
.jb2b-block-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: -1.25rem 0 1.25rem;
}
.jb2b-block-sub { color: var(--jb2b-muted); margin: 0; }
.jb2b-block-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--jb2b-ink);
	margin: 0 0 1rem;
}

/* ---------- Hero ---------- */

.jb2b-hero {
	background: var(--jb2b-paper);
	border-bottom: 1px solid var(--jb2b-line);
	padding: 3rem 0 2.75rem;
}
.jb2b-hero-eyebrow {
	color: var(--jb2b-accent);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.875rem;
	margin: 0 0 0.75rem;
}
.jb2b-hero-title {
	color: var(--jb2b-ink);
	font-size: 2.25rem;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 1rem;
}
.jb2b-hero-intro { color: var(--jb2b-muted); font-size: 1.125rem; margin: 0 0 1.5rem; }
.jb2b-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0; }

.jb2b-ask {
	background: #fff;
	border: 1px solid var(--jb2b-line);
	padding: 1.5rem 1.5rem 1rem;
	height: 100%;
}
.jb2b-ask-title {
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.875rem;
	letter-spacing: 0.06em;
	color: var(--jb2b-ink);
	margin: 0 0 1rem;
}
.jb2b-asklist { list-style: none; margin: 0; padding: 0; }
.jb2b-asklist li { border-bottom: 1px dashed var(--jb2b-line); }
.jb2b-asklist li:last-child { border-bottom: 0; }
.jb2b-asklist a {
	display: block;
	padding: 0.5rem 0;
	color: var(--jb2b-ink);
	text-decoration: none;
}
.jb2b-asklist a:hover, .jb2b-asklist a:focus { color: var(--jb2b-accent); }
.jb2b-ask-foot { margin: 0.75rem 0 0; }
.jb2b-ask-foot a { color: var(--jb2b-accent); font-weight: 600; }

/* ---------- Topic tiles ---------- */

.jb2b-topics { margin: 0 0 1.5rem; }
.jb2b-topic {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--jb2b-line);
	padding: 1.125rem 1.25rem;
	text-decoration: none;
	height: 100%;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.jb2b-topic:hover, .jb2b-topic:focus {
	border-color: var(--jb2b-accent);
	box-shadow: 0 6px 18px rgba(31, 32, 36, 0.08);
	text-decoration: none;
}
.jb2b-topic-name { color: var(--jb2b-ink); font-weight: 700; font-size: 1.063rem; }
.jb2b-topic:hover .jb2b-topic-name { color: var(--jb2b-accent); }
.jb2b-icon { width: 1.1em; height: 1.1em; display: inline-block; vertical-align: -0.18em; flex: none; }
footer.site-footer ul.site-info-menu, ul.site-info-menu { flex-wrap: wrap; justify-content: flex-end; row-gap: 0.125rem; }
@media (max-width: 768px) { ul.site-info-menu { justify-content: center; } }
.jb2b-topic-desc { color: var(--jb2b-muted); font-size: 0.938rem; margin-top: 0.375rem; }

/* ---------- Footer "Latest from the desk" band ---------- */

footer.site-footer .row.footer-sidebar > div:has(#newsexo_list_view_news2-3) { flex: 0 0 100%; max-width: 100%; }
footer.site-footer #newsexo_list_view_news2-3 .list-view-post-widget {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1.5rem;
}
footer.site-footer #newsexo_list_view_news2-3 .list-view-post-widget .post {
	border-bottom: none;
	border-left: 1px solid rgba(255, 255, 255, 0.12);
	padding: 0.125rem 0 0.125rem 1.125rem;
	align-items: flex-start;
}
footer.site-footer #newsexo_list_view_news2-3 .list-view-post-widget .post .post-thumbnail { display: none; }
footer.site-footer #newsexo_list_view_news2-3 .list-view-post-widget .post .post-content { min-width: 0; }
footer.site-footer #newsexo_list_view_news2-3 .list-view-post-widget .post .entry-title {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
@media (max-width: 1199.98px) {
	footer.site-footer #newsexo_list_view_news2-3 .list-view-post-widget { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.25rem; }
}
@media (max-width: 767.98px) {
	footer.site-footer #newsexo_list_view_news2-3 .list-view-post-widget { grid-template-columns: 1fr; }
	footer.site-footer #newsexo_list_view_news2-3 .list-view-post-widget .post { border-left: none; padding-left: 0; }
}
.jb2b-topic-count {
	color: var(--jb2b-muted);
	font-size: 0.813rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-top: auto;
	padding-top: 0.75rem;
}

/* ---------- Chips ---------- */

.jb2b-chipgrid { display: flex; flex-wrap: wrap; gap: 0.625rem; margin: 0 0 1.5rem; }
.jb2b-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: #fff;
	border: 1px solid var(--jb2b-line);
	color: var(--jb2b-ink);
	padding: 0.438rem 0.938rem;
	font-size: 0.938rem;
	text-decoration: none;
}
.jb2b-chip:hover, .jb2b-chip:focus { border-color: var(--jb2b-accent); color: var(--jb2b-accent); text-decoration: none; }
.jb2b-chip em { font-style: normal; background: var(--jb2b-paper); color: var(--jb2b-muted); font-size: 0.813rem; padding: 0 0.438rem; }

/* ---------- Card extras ---------- */

.jb2b-card-plate {
	display: flex;
	align-items: flex-end;
	aspect-ratio: 3 / 2;
	background: linear-gradient(135deg, #2a2b31 0%, #44454d 55%, var(--jb2b-accent-dark) 130%);
	color: #fff;
	padding: 1rem 1.25rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.875rem;
	text-decoration: none;
}
.jb2b-trade {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
	margin: 0.75rem 0 0;
	padding: 0;
	border-top: 1px dashed var(--jb2b-line);
	padding-top: 0.75rem;
}
.jb2b-trade li { text-align: center; }
.jb2b-trade li span { display: block; color: var(--jb2b-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; }
.jb2b-trade li strong { color: var(--jb2b-ink); font-size: 0.875rem; }

/* ---------- Headings on hubs and archives ---------- */

.jb2b-head { margin: 0 0 1.5rem; }
.jb2b-eyebrow {
	color: var(--jb2b-accent);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.813rem;
	margin: 0 0 0.375rem;
}
.jb2b-head-title { color: var(--jb2b-ink); font-weight: 800; line-height: 1.2; margin: 0; font-size: 2rem; }
.jb2b-head-intro { color: var(--jb2b-muted); font-size: 1.063rem; margin: 0.625rem 0 0; max-width: 62rem; }

.jb2b-archive-head { margin: 0 0 1.75rem; }
.jb2b-archive-title { color: var(--jb2b-ink); font-weight: 800; margin: 0; font-size: 2rem; }
.jb2b-archive-desc { color: var(--jb2b-muted); max-width: 62rem; margin-top: 0.625rem; }
.jb2b-archive-count { color: var(--jb2b-muted); font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; margin: 0.75rem 0 0; }
.jb2b-hub-body { margin-bottom: 2rem; max-width: 62rem; }

/* ---------- Article header, byline, facts ---------- */

.jb2b-entry-head { margin-bottom: 1.5rem; }
.jb2b-entry-title { color: var(--jb2b-ink); font-weight: 800; line-height: 1.25; font-size: 2.125rem; margin: 0 0 0.75rem; }
.jb2b-entry-lede { color: var(--jb2b-muted); font-size: 1.125rem; margin: 0 0 1rem; }

.jb2b-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--jb2b-accent);
	color: #fff;
	font-weight: 700;
	font-size: 0.75rem;
	flex: 0 0 auto;
	vertical-align: middle;
}

.jb2b-byline {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	border-top: 1px solid var(--jb2b-line);
	border-bottom: 1px solid var(--jb2b-line);
	padding: 0.875rem 0;
	margin: 0 0 1.5rem;
}
.jb2b-byline p { margin: 0; line-height: 1.45; }
.jb2b-byline-author { font-weight: 700; }
.jb2b-byline-author a { color: var(--jb2b-ink); text-decoration: none; }
.jb2b-byline-author a:hover { color: var(--jb2b-accent); }
.jb2b-byline-meta { color: var(--jb2b-muted); font-size: 0.875rem; }
.jb2b-byline-meta span { margin-right: 1rem; }
.jb2b-byline-meta time { color: var(--jb2b-ink); }

.jb2b-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 0.625rem;
	margin: 0 0 1.5rem;
	padding: 0;
}
.jb2b-fact { background: var(--jb2b-paper); border-left: 3px solid var(--jb2b-accent); padding: 0.625rem 0.875rem; }
.jb2b-fact dt { color: var(--jb2b-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; }
.jb2b-fact dd { color: var(--jb2b-ink); font-weight: 700; margin: 0; font-size: 0.938rem; }

/* ---------- Answer, callout, stats, twocol ---------- */

.jb2b-answer {
	background: var(--jb2b-paper);
	border-left: 3px solid var(--jb2b-accent);
	padding: 1rem 1.25rem;
	margin: 0 0 1.75rem;
}
.jb2b-answer-title { font-weight: 700; text-transform: uppercase; font-size: 0.813rem; letter-spacing: 0.06em; color: var(--jb2b-accent); margin: 0 0 0.375rem; }
.jb2b-answer p:last-child { margin-bottom: 0; }

.jb2b-callout {
	background: #fff;
	border: 1px solid var(--jb2b-line);
	border-top: 3px solid var(--jb2b-accent);
	padding: 1.125rem 1.25rem;
	margin: 0 0 1.75rem;
}
.jb2b-callout-title { font-weight: 700; margin: 0 0 0.5rem; color: var(--jb2b-ink); }
.jb2b-callout ul { margin: 0 0 0 1.125rem; }
.jb2b-callout li { margin-bottom: 0.375rem; }

.jb2b-stats { margin: 0 0 1.75rem; }
.jb2b-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.625rem; }
.jb2b-stat { background: var(--jb2b-paper); text-align: center; padding: 1rem 0.75rem; }
.jb2b-stat strong { display: block; color: var(--jb2b-accent); font-size: 1.5rem; line-height: 1.2; }
.jb2b-stat span { color: var(--jb2b-muted); font-size: 0.813rem; }

.jb2b-twocol { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.25rem; margin: 0 0 1.75rem; }
.jb2b-twocol .jb2b-block { margin: 0; }

/* ---------- TOC ---------- */

.jb2b-toc {
	background: var(--jb2b-paper);
	border: 1px solid var(--jb2b-line);
	padding: 1rem 1.25rem;
	margin: 0 0 1.75rem;
	font-size: 0.938rem;
}
.jb2b-toc-title { font-weight: 700; text-transform: uppercase; font-size: 0.813rem; letter-spacing: 0.06em; color: var(--jb2b-ink); margin: 0 0 0.5rem; }
.jb2b-toc-list, .jb2b-toc-list ul { list-style: none; margin: 0; padding: 0; }
.jb2b-toc-list ul { padding-left: 1rem; }
.jb2b-toc-list li { margin-bottom: 0.25rem; }
.jb2b-toc-list a { color: var(--jb2b-ink); text-decoration: none; border-bottom: 1px dotted transparent; }
.jb2b-toc-list a:hover, .jb2b-toc-list a:focus { color: var(--jb2b-accent); border-bottom-color: var(--jb2b-accent); }

/* ---------- Content furniture ---------- */

.jb2b-entry-content { font-size: 1.063rem; color: #3c3d42; }
.jb2b-entry-content h2, .jb2b-entry-content h3 { color: var(--jb2b-ink); font-weight: 700; margin-top: 2rem; scroll-margin-top: 90px; }
.jb2b-entry-content img { max-width: 100%; height: auto; }
.jb2b-featured { margin: 0 0 1.75rem; }
.jb2b-featured img { width: 100%; height: auto; }
.jb2b-featured figcaption { color: var(--jb2b-muted); font-size: 0.875rem; margin-top: 0.5rem; }

.jb2b-tags { margin: 1.75rem 0; }
.jb2b-tags-label { display: block; color: var(--jb2b-muted); font-size: 0.813rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.5rem; }
.jb2b-tag {
	display: inline-block;
	background: var(--jb2b-paper);
	border: 1px solid var(--jb2b-line);
	color: var(--jb2b-ink);
	font-size: 0.875rem;
	padding: 0.25rem 0.75rem;
	margin: 0 0.375rem 0.375rem 0;
	text-decoration: none;
}
.jb2b-tag:hover, .jb2b-tag:focus { border-color: var(--jb2b-accent); color: var(--jb2b-accent); text-decoration: none; }

.jb2b-pagenav { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin: 2rem 0; }
.jb2b-pn {
	border: 1px solid var(--jb2b-line);
	background: #fff;
	padding: 0.875rem 1rem;
	text-decoration: none;
}
.jb2b-pn:hover, .jb2b-pn:focus { border-color: var(--jb2b-accent); text-decoration: none; }
.jb2b-pn span { display: block; color: var(--jb2b-muted); font-size: 0.813rem; text-transform: uppercase; letter-spacing: 0.05em; }
.jb2b-pn strong { color: var(--jb2b-ink); font-size: 0.938rem; line-height: 1.35; }
.jb2b-pn-next { text-align: right; }

.jb2b-pagination { margin: 1.5rem 0 2rem; }
.jb2b-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.375rem; justify-content: center; }
.jb2b-pagination .page-numbers {
	display: inline-block;
	border: 1px solid var(--jb2b-line);
	background: #fff;
	color: var(--jb2b-ink);
	padding: 0.438rem 0.875rem;
	text-decoration: none;
	line-height: 1.4;
}
.jb2b-pagination .page-numbers.current,
.jb2b-pagination .page-numbers:hover, .jb2b-pagination .page-numbers:focus {
	background: var(--jb2b-accent);
	border-color: var(--jb2b-accent);
	color: #fff;
}

.jb2b-empty {
	background: var(--jb2b-paper);
	border: 1px dashed var(--jb2b-line);
	color: var(--jb2b-muted);
	padding: 1.5rem;
	text-align: center;
}
.jb2b-comments { margin: 2rem 0; }

.jb2b-sources { margin: 0 0 1.75rem; }
.jb2b-sources ol { color: var(--jb2b-muted); font-size: 0.938rem; }

/* ---------- Tables, specs, steps, checklist ---------- */

.jb2b-tablewrap { margin: 0 0 1.75rem; }
.jb2b-table-title { font-weight: 700; color: var(--jb2b-ink); margin: 0 0 0.625rem; }
.jb2b-tablescroll { overflow-x: auto; }
.jb2b-table { width: 100%; border-collapse: collapse; font-size: 0.938rem; }
.jb2b-table th, .jb2b-table td { border: 1px solid var(--jb2b-line); padding: 0.563rem 0.75rem; text-align: left; vertical-align: top; }
.jb2b-table thead th { background: var(--jb2b-ink); color: #fff; font-weight: 600; white-space: nowrap; }
.jb2b-table tbody tr:nth-child(even) { background: var(--jb2b-paper); }
.jb2b-table-note { color: var(--jb2b-muted); font-size: 0.813rem; margin: 0.5rem 0 0; }

.jb2b-specs { border: 1px solid var(--jb2b-line); margin: 0 0 1.75rem; }
.jb2b-specs-title { background: var(--jb2b-paper); font-weight: 700; padding: 0.625rem 1rem; margin: 0; border-bottom: 1px solid var(--jb2b-line); color: var(--jb2b-ink); }
.jb2b-specs dl { margin: 0; padding: 0; }
.jb2b-specs .jb2b-dl-row { display: flex; flex-wrap: wrap; padding: 0.563rem 1rem; border-bottom: 1px dashed var(--jb2b-line); }
.jb2b-specs .jb2b-dl-row:last-child { border-bottom: 0; }
.jb2b-specs dt { width: 40%; color: var(--jb2b-muted); }
.jb2b-specs dd { width: 60%; color: var(--jb2b-ink); font-weight: 600; margin: 0; }

.jb2b-steps { counter-reset: jb2bstep; list-style: none; margin: 0 0 1.75rem; padding: 0; }
.jb2b-steps li { counter-increment: jb2bstep; position: relative; padding: 0 0 1.125rem 2.75rem; border-left: 2px solid var(--jb2b-line); margin-left: 1rem; }
.jb2b-steps li:last-child { border-left-color: transparent; padding-bottom: 0; }
.jb2b-steps li:before {
	content: counter(jb2bstep);
	position: absolute;
	left: -1.063rem;
	top: -0.125rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--jb2b-accent);
	color: #fff;
	font-weight: 700;
	font-size: 0.875rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
.jb2b-step-name { font-weight: 700; color: var(--jb2b-ink); display: block; }
.jb2b-step-desc { color: var(--jb2b-muted); }

.jb2b-checklist { background: #fff; border: 1px solid var(--jb2b-line); padding: 1.125rem 1.25rem; margin: 0 0 1.75rem; }
.jb2b-checklist-title { font-weight: 700; color: var(--jb2b-ink); margin: 0 0 0.625rem; }
.jb2b-checklist ul { list-style: none; margin: 0; padding: 0; }
.jb2b-checklist li { position: relative; padding: 0.25rem 0 0.25rem 1.75rem; }
.jb2b-checklist li:before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: 0.25rem;
	color: var(--jb2b-accent);
	font-weight: 700;
}

.jb2b-note { background: var(--jb2b-paper); border-left: 3px solid var(--jb2b-gold); padding: 0.875rem 1.125rem; margin: 0 0 1.75rem; font-size: 0.938rem; }
.jb2b-note--warn { border-left-color: #c0392b; background: #fdf3f2; }
.jb2b-note-title { font-weight: 700; color: var(--jb2b-ink); margin: 0 0 0.25rem; }

.jb2b-ticks { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.jb2b-ticks li { position: relative; padding: 0.25rem 0 0.25rem 1.625rem; }
.jb2b-ticks li:before { content: "\2713"; position: absolute; left: 0; color: var(--jb2b-accent); font-weight: 700; }

.jb2b-dl { margin: 0 0 1.5rem; }
.jb2b-dl--tight .jb2b-dl-row { padding: 0.375rem 0; }
.jb2b-dl-row { display: flex; flex-wrap: wrap; gap: 0.375rem 1rem; border-bottom: 1px dashed var(--jb2b-line); padding: 0.5rem 0; }
.jb2b-dl-row dt { color: var(--jb2b-muted); min-width: 8.75rem; }
.jb2b-dl-row dd { color: var(--jb2b-ink); font-weight: 600; margin: 0; }

/* ---------- Trade box, FAQ accordion, CTA panel ---------- */

.jb2b-tradebox { background: var(--jb2b-paper); border: 1px solid var(--jb2b-line); padding: 1.125rem 1.25rem; margin: 0 0 1.75rem; }
.jb2b-tradebox-title { font-weight: 700; text-transform: uppercase; font-size: 0.813rem; letter-spacing: 0.06em; color: var(--jb2b-ink); margin: 0 0 0.625rem; }

.jb2b-accordion { border: 1px solid var(--jb2b-line); margin: 0 0 1.75rem; }
.jb2b-acc-item { border-bottom: 1px solid var(--jb2b-line); }
.jb2b-acc-item:last-child { border-bottom: 0; }
.jb2b-acc-head {
	width: 100%;
	background: #fff;
	border: 0;
	text-align: left;
	padding: 0.875rem 1rem;
	font-weight: 600;
	color: var(--jb2b-ink);
	font-size: 1rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	cursor: pointer;
}
.jb2b-acc-head:hover, .jb2b-acc-head:focus { color: var(--jb2b-accent); }
.jb2b-acc-mark { color: var(--jb2b-accent); font-weight: 700; flex: 0 0 auto; }
.jb2b-acc-panel[hidden] { display: none; }
.jb2b-acc-panel { padding: 0 1rem 1rem; color: #3c3d42; }
.jb2b-acc-panel p:last-child { margin-bottom: 0; }
.jb2b-acc-more { padding: 0.75rem 1rem; margin: 0; border-top: 1px dashed var(--jb2b-line); }
.jb2b-acc-more a { color: var(--jb2b-accent); font-weight: 600; }

.jb2b-cta {
	background: var(--jb2b-ink);
	color: #fff;
	padding: 2rem 1.5rem;
	margin: 0 0 2.25rem;
}
.jb2b-cta-title { color: #fff; font-size: 1.375rem; font-weight: 700; margin: 0 0 0.5rem; }
.jb2b-cta-text { color: rgba(255, 255, 255, 0.82); margin: 0 0 1.125rem; max-width: 46rem; }
.jb2b-cta .btn-default { border: 2px solid var(--jb2b-accent); }
.jb2b-cta-action { color: #fff !important; }
.jb2b-cta-alt { color: rgba(255, 255, 255, 0.72); margin: 0.75rem 0 0; font-size: 0.875rem; }
.jb2b-cta-alt a { color: #fff; }

/* ---------- Inquiry form ---------- */

.jb2b-form { background: #fff; border: 1px solid var(--jb2b-line); padding: 1.5rem; margin: 0 0 2rem; }
.jb2b-form-title { font-weight: 700; font-size: 1.25rem; color: var(--jb2b-ink); margin: 0 0 1rem; }
.jb2b-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.875rem; }
.jb2b-field { display: flex; flex-direction: column; gap: 0.313rem; }
.jb2b-field--half { grid-column: span 1; }
.jb2b-field--full { grid-column: 1 / -1; }
.jb2b-field label { color: var(--jb2b-ink); font-weight: 600; font-size: 0.875rem; }
.jb2b-field input, .jb2b-field select, .jb2b-field textarea {
	border: 1px solid var(--jb2b-line);
	background: var(--jb2b-paper);
	padding: 0.625rem 0.75rem;
	font-size: 0.938rem;
	width: 100%;
}
.jb2b-field input:focus, .jb2b-field select:focus, .jb2b-field textarea:focus {
	outline: 2px solid var(--jb2b-accent);
	outline-offset: -1px;
	background: #fff;
}
.jb2b-form-actions { grid-column: 1 / -1; }
.jb2b-form-note { color: var(--jb2b-muted); font-size: 0.813rem; margin: 0.75rem 0 0; }
.jb2b-form-privacy { color: var(--jb2b-muted); font-size: 0.813rem; }
.jb2b-form--done { border-left: 3px solid #1e7e34; padding-left: 1rem; }
.jb2b-form--error { border-left: 3px solid #c0392b; padding-left: 1rem; }

.jb2b-gate { background: var(--jb2b-paper); border: 1px solid var(--jb2b-line); padding: 1.25rem; margin: 0 0 1.75rem; }

/* ---------- Sidebar boxes ---------- */

.jb2b-sidebox {
	background: #fff;
	border: 1px solid var(--jb2b-line);
	padding: 1.125rem 1.25rem;
	margin: 0 0 1.5rem;
}
.jb2b-sidebox-title { font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.813rem; color: var(--jb2b-ink); margin: 0 0 0.75rem; }
.jb2b-sidelist { list-style: none; margin: 0; padding: 0; }
.jb2b-sidelist li { border-bottom: 1px dashed var(--jb2b-line); }
.jb2b-sidelist li:last-child { border-bottom: 0; }
.jb2b-sidelist a {
	display: block;
	padding: 0.5rem 0;
	color: var(--jb2b-ink);
	font-size: 0.938rem;
	line-height: 1.45;
	text-decoration: none;
}
.jb2b-sidelist a:hover, .jb2b-sidelist a:focus { color: var(--jb2b-accent); }
.jb2b-sidebox--cta { background: var(--jb2b-paper); }
.jb2b-sidebox .common-btn { width: 100%; text-align: center; }

/* ---------- Product page ---------- */

.jb2b-product { display: grid; grid-template-columns: 1.2fr 1fr; gap: 1.5rem; margin: 0 0 1.75rem; }
.jb2b-product-media { margin: 0; }
.jb2b-product-media img { width: 100%; height: auto; }
.jb2b-product-side > * + * { margin-top: 1rem; }
.jb2b-product-cta { display: grid; gap: 0.625rem; }
.jb2b-product-links-label { display: block; color: var(--jb2b-muted); font-size: 0.813rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.375rem; }
.jb2b-inquiry-anchor { scroll-margin-top: 90px; }

/* ---------- Legacy button aliases ---------- */

.jb2b-btn { display: inline-block; text-decoration: none; }
.jb2b-btn--gold, .jb2b-btn--ink { border: 2px solid var(--jb2b-accent); color: var(--jb2b-accent) !important; padding: 0.813rem 1.75rem; font-weight: 600; }
.jb2b-btn--gold:hover, .jb2b-btn--ink:hover { background: var(--jb2b-accent); color: #fff !important; }
.jb2b-btn--ghost { border: 1px solid var(--jb2b-line); color: var(--jb2b-ink) !important; padding: 0.813rem 1.75rem; font-weight: 600; }
.jb2b-btn--ghost:hover { border-color: var(--jb2b-accent); color: var(--jb2b-accent) !important; }
.jb2b-btn--block { display: block; text-align: center; }
.jb2b-btn-block { display: block; text-align: center; }

/* ---------- Admin cols helper kept out of front end ---------- */

/* ---------- Responsive ---------- */

@media (max-width: 991.98px) {
	.jb2b-product { grid-template-columns: 1fr; }
	.jb2b-hero-title { font-size: 1.75rem; }
	.jb2b-head-title, .jb2b-archive-title, .jb2b-entry-title { font-size: 1.625rem; }
}
@media (max-width: 575.98px) {
	.jb2b-form-grid { grid-template-columns: 1fr; }
	.jb2b-field--half { grid-column: 1 / -1; }
	.jb2b-pagenav { grid-template-columns: 1fr; }
	.jb2b-trade { grid-template-columns: 1fr 1fr; }
	.jb2b-hero { padding: 2rem 0; }
}
