/*
Theme Name: Broadsid
Author: Broadsid Publishing
Description: A traditional publishing and nautical-log styled theme for digital-asset market commentary. Broadsheet typography, gold double rules and a navy/ivory palette carry an editorial dispatch aesthetic across the front page, archives and single dispatches.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: broadsid
Tags: blog, news, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* ==========================================================================
   0. Design tokens — the Broadsid dispatch palette
   ========================================================================== */
:root {
	--bsd-ink:        #1B3A5C;  /* navy — dominant structure */
	--bsd-gold:       #C5A55A;  /* gold — accents, rules, numerals */
	--bsd-paper:      #FFFFFF;  /* white — the broadsheet sheet */
	--bsd-mist:       #EDF2F7;  /* pale blue-grey — quiet fills */
	--bsd-slate:      #2D3748;  /* deep grey — body copy */
	--bsd-ink-soft:   #33536f;  /* navy lift for hover */
	--bsd-gold-soft:  #d8bd81;  /* gold lift */
	--bsd-rule:       rgba(27, 58, 92, 0.16);
	--bsd-serif:      Georgia, "Palatino Linotype", Palatino, "Book Antiqua", serif;
	--bsd-shell:      1200px;
	--bsd-col:        680px;
	--bsd-ease:       cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ==========================================================================
   1. Reset & base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--bsd-serif);
	font-size: 17px;
	line-height: 1.7;
	color: var(--bsd-slate);
	background-color: var(--bsd-paper);
	background-image:
		radial-gradient(circle at 12% 8%, rgba(197, 165, 90, 0.05), transparent 42%),
		radial-gradient(circle at 88% 92%, rgba(27, 58, 92, 0.04), transparent 46%);
	background-attachment: fixed;
	-webkit-font-smoothing: antialiased;
}

/* faint laid-paper grain over the whole sheet */
body::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 9998;
	opacity: 0.35;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--bsd-serif);
	color: var(--bsd-ink);
	line-height: 1.22;
	font-weight: 700;
	margin: 0 0 0.5em;
	letter-spacing: -0.01em;
}

p { margin: 0 0 1.1em; }

a {
	color: var(--bsd-ink);
	text-decoration: none;
	transition: color 0.25s var(--bsd-ease), opacity 0.25s var(--bsd-ease);
}
a:hover { color: var(--bsd-gold); }

img { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 1.1em; padding-left: 1.2em; }

blockquote {
	margin: 1.6em 0;
	padding: 0.2em 0 0.2em 1.4em;
	border-left: 3px solid var(--bsd-gold);
	font-style: italic;
	font-size: 1.16em;
	color: var(--bsd-ink);
}

hr { border: 0; border-top: 3px double var(--bsd-gold); margin: 2.4em 0; }

::selection { background: var(--bsd-gold); color: var(--bsd-paper); }

/* ==========================================================================
   2. Layout shell & shared section furniture
   ========================================================================== */
.bsd-shell {
	width: 100%;
	max-width: var(--bsd-shell);
	margin: 0 auto;
	padding: 0 28px;
}

.bsd-narrow { max-width: var(--bsd-col); margin: 0 auto; }

/* every front-page band is divided by the gold double rule (spec H) */
.bsd-section { padding: 64px 0; position: relative; }
.bsd-section + .bsd-section { border-top: 3px double var(--bsd-gold); }

.bsd-kicker {
	display: inline-block;
	font-size: 0.72rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--bsd-gold);
	font-weight: 700;
	margin-bottom: 12px;
}

.bsd-heading {
	font-size: clamp(1.7rem, 3.4vw, 2.5rem);
	margin: 0 0 10px;
}

.bsd-heading--rule {
	text-align: center;
	position: relative;
	padding-bottom: 18px;
}
.bsd-heading--rule::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 84px;
	border-bottom: 3px double var(--bsd-gold);
}

.bsd-lede {
	color: var(--bsd-slate);
	opacity: 0.82;
	max-width: 620px;
	margin: 0 auto 8px;
	text-align: center;
	font-size: 1.02rem;
}

.bsd-secthead { text-align: center; margin-bottom: 40px; }

/* small decorative compass mark used beside kickers */
.bsd-mark {
	font-size: 0.9rem;
	color: var(--bsd-gold);
	letter-spacing: 0.2em;
}

/* ==========================================================================
   3. Masthead / navigation (spec A — centred serif logo)
   ========================================================================== */
.bsd-topbar {
	border-bottom: 1px solid var(--bsd-rule);
	background: var(--bsd-mist);
	font-size: 0.76rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bsd-ink);
}
.bsd-topbar__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 8px 28px;
	max-width: var(--bsd-shell);
	margin: 0 auto;
}
.bsd-topbar__date { opacity: 0.7; }
.bsd-langswitch { display: inline-flex; gap: 6px; align-items: center; }
.bsd-langswitch a {
	padding: 2px 8px;
	border: 1px solid transparent;
	color: var(--bsd-ink);
	opacity: 0.6;
	font-size: 0.74rem;
	letter-spacing: 0.1em;
}
.bsd-langswitch a.bsd-active,
.bsd-langswitch a:hover {
	opacity: 1;
	color: var(--bsd-gold);
	border-color: var(--bsd-gold);
}

.bsd-masthead {
	background: var(--bsd-paper);
	text-align: center;
	padding: 26px 0 0;
	position: relative;
}
.bsd-masthead__inner {
	max-width: var(--bsd-shell);
	margin: 0 auto;
	padding: 0 28px;
}
.bsd-brand {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.bsd-brand__logo img { max-height: 74px; width: auto; }
.bsd-brand__word {
	font-size: clamp(2rem, 5vw, 3.1rem);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bsd-ink);
	line-height: 1;
}
.bsd-brand__word span { color: var(--bsd-gold); }
.bsd-brand__tag {
	font-size: 0.72rem;
	letter-spacing: 0.34em;
	text-transform: uppercase;
	color: var(--bsd-slate);
	opacity: 0.66;
	margin-top: 2px;
}
/* gold hairline beneath the wordmark (spec A) */
.bsd-brand__rule {
	width: 200px;
	max-width: 60vw;
	border-bottom: 1px solid var(--bsd-gold);
	margin: 12px auto 0;
	position: relative;
}
.bsd-brand__rule::after {
	content: "\2693"; /* anchor */
	position: absolute;
	left: 50%;
	top: -12px;
	transform: translateX(-50%);
	background: var(--bsd-paper);
	padding: 0 10px;
	color: var(--bsd-gold);
	font-size: 0.9rem;
}

.bsd-nav {
	margin-top: 18px;
	border-top: 1px solid var(--bsd-rule);
	border-bottom: 3px double var(--bsd-gold);
	background: var(--bsd-paper);
}
.bsd-nav__inner {
	max-width: var(--bsd-shell);
	margin: 0 auto;
	padding: 0 28px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-height: 58px;
}
.bsd-menu {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 30px;
	flex: 1;
	justify-content: center;
}
.bsd-menu > li > a {
	display: block;
	padding: 18px 2px;
	font-size: 0.86rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bsd-ink);
	position: relative;
	font-weight: 700;
}
.bsd-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 12px;
	border-bottom: 1px solid var(--bsd-gold);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.3s var(--bsd-ease);
}
.bsd-menu > li > a:hover::after,
.bsd-menu > li.current-menu-item > a::after { transform: scaleX(1); }
.bsd-menu > li.current-menu-item > a { color: var(--bsd-gold); }
.bsd-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 210px;
	list-style: none;
	margin: 0;
	padding: 8px 0;
	background: var(--bsd-paper);
	border: 1px solid var(--bsd-rule);
	border-top: 2px solid var(--bsd-gold);
	box-shadow: 0 16px 34px rgba(27, 58, 92, 0.14);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: all 0.25s var(--bsd-ease);
	z-index: 60;
	text-align: left;
}
.bsd-menu > li { position: relative; }
.bsd-menu > li:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.bsd-menu .sub-menu a {
	display: block;
	padding: 8px 18px;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	color: var(--bsd-slate);
}
.bsd-menu .sub-menu a:hover { color: var(--bsd-gold); background: var(--bsd-mist); }

.bsd-nav__side { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }

.bsd-btn {
	display: inline-block;
	font-family: var(--bsd-serif);
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 700;
	padding: 10px 20px;
	border: 1px solid var(--bsd-ink);
	color: var(--bsd-ink);
	background: transparent;
	cursor: pointer;
	transition: all 0.28s var(--bsd-ease);
	white-space: nowrap;
}
.bsd-btn:hover { background: var(--bsd-ink); color: var(--bsd-paper); }
.bsd-btn--ghost { border-color: var(--bsd-rule); color: var(--bsd-ink); }
.bsd-btn--gold {
	background: var(--bsd-ink);
	border-color: var(--bsd-ink);
	color: var(--bsd-gold);
}
.bsd-btn--gold:hover { background: var(--bsd-gold); border-color: var(--bsd-gold); color: var(--bsd-ink); }
.bsd-btn--solid { background: var(--bsd-gold); border-color: var(--bsd-gold); color: var(--bsd-ink); }
.bsd-btn--solid:hover { background: var(--bsd-ink); border-color: var(--bsd-ink); color: var(--bsd-gold); }
.bsd-btn--lg { padding: 14px 30px; font-size: 0.84rem; }

.bsd-navtoggle {
	display: none;
	background: transparent;
	border: 1px solid var(--bsd-rule);
	padding: 8px 12px;
	color: var(--bsd-ink);
	font-size: 1.1rem;
	cursor: pointer;
	line-height: 1;
}

/* ==========================================================================
   4. Hero — split broadsheet (spec B)
   ========================================================================== */
.bsd-hero { padding: 0; position: relative; overflow: hidden; }
.bsd-hero__banner {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.14;
	pointer-events: none;
	z-index: 0;
}
.bsd-hero > .bsd-shell { position: relative; z-index: 1; }
.bsd-hero__split {
	display: grid;
	grid-template-columns: 55% 45%;
	border-top: 3px double var(--bsd-gold);
}
/* gold vertical rule dividing the two columns */
.bsd-hero__feature {
	position: relative;
	padding: 40px 44px 40px 0;
	border-right: 1px solid var(--bsd-gold);
}
.bsd-hero__feature::after {
	content: "";
	position: absolute;
	top: 40px; bottom: 40px; right: -3px;
	width: 1px;
	background: var(--bsd-gold);
	opacity: 0.5;
}
.bsd-hero__latest { padding: 40px 0 40px 44px; }

.bsd-featured-card {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--bsd-ink);
	min-height: 420px;
	border: 1px solid var(--bsd-rule);
}
.bsd-featured-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.72;
	transition: transform 0.9s var(--bsd-ease), opacity 0.6s var(--bsd-ease);
	filter: sepia(0.18) saturate(0.9);
}
.bsd-featured-card:hover .bsd-featured-card__img { transform: scale(1.05); opacity: 0.82; }
.bsd-featured-card__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(27, 58, 92, 0.95) 8%, rgba(27, 58, 92, 0.4) 52%, rgba(27, 58, 92, 0.08) 100%);
}
.bsd-featured-card__body {
	position: relative;
	z-index: 2;
	height: 100%;
	min-height: 420px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 34px;
	color: var(--bsd-paper);
}
.bsd-featured-card__cat {
	align-self: flex-start;
	font-size: 0.7rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--bsd-ink);
	background: var(--bsd-gold);
	padding: 5px 12px;
	margin-bottom: 14px;
	font-weight: 700;
}
.bsd-featured-card__title {
	color: var(--bsd-paper);
	font-size: clamp(1.6rem, 3.4vw, 2.5rem);
	line-height: 1.14;
	margin: 0 0 12px;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.4);
}
.bsd-featured-card__title a { color: inherit; }
.bsd-featured-card__title a:hover { color: var(--bsd-gold-soft); }
.bsd-featured-card__excerpt {
	color: rgba(255, 255, 255, 0.86);
	font-size: 1rem;
	max-width: 540px;
	margin: 0 0 16px;
}
.bsd-featured-card__meta {
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bsd-gold-soft);
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}
.bsd-featured-card__actions { margin-top: 20px; }
.bsd-featured-card__actions .bsd-btn { box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28); }

.bsd-latest-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	border-bottom: 1px solid var(--bsd-rule);
	padding-bottom: 10px;
	margin-bottom: 6px;
}
.bsd-latest-head h2 {
	font-size: 1rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin: 0;
}
.bsd-latest-head a { font-size: 0.76rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--bsd-gold); }

.bsd-latest-list { list-style: none; margin: 0; padding: 0; }
.bsd-latest-list li { border-bottom: 1px dotted var(--bsd-rule); }
.bsd-latest-list li:last-child { border-bottom: 0; }
.bsd-latest-item { display: flex; gap: 14px; padding: 14px 0; align-items: flex-start; }
.bsd-latest-item__no {
	font-size: 1.5rem;
	color: var(--bsd-gold);
	font-weight: 700;
	line-height: 1;
	min-width: 34px;
	font-variant-numeric: tabular-nums;
	opacity: 0.85;
}
.bsd-latest-item__body { flex: 1; }
.bsd-latest-item__title {
	font-size: 1.02rem;
	line-height: 1.35;
	margin: 0 0 5px;
	font-weight: 700;
}
.bsd-latest-item__title a { color: var(--bsd-ink); }
.bsd-latest-item__title a:hover { color: var(--bsd-gold); }
.bsd-latest-item__meta {
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bsd-slate);
	opacity: 0.66;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.bsd-latest-item__meta .bsd-dot { color: var(--bsd-gold); }

/* ==========================================================================
   5. Market data table (front section 3)
   ========================================================================== */
.bsd-market { background: var(--bsd-mist); }
.bsd-market__table-wrap {
	border: 2px solid var(--bsd-ink);
	background: var(--bsd-paper);
	overflow-x: auto;
	box-shadow: 6px 6px 0 rgba(27, 58, 92, 0.1);
}
table.bsd-market__table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--bsd-serif);
	min-width: 620px;
}
.bsd-market__table caption {
	caption-side: top;
	text-align: left;
	padding: 14px 20px;
	font-size: 0.78rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--bsd-gold);
	border-bottom: 3px double var(--bsd-gold);
	font-weight: 700;
}
.bsd-market__table thead th {
	background: var(--bsd-ink);
	color: var(--bsd-paper);
	font-size: 0.74rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-align: left;
	padding: 12px 20px;
	font-weight: 700;
}
.bsd-market__table tbody td {
	padding: 13px 20px;
	border-bottom: 1px solid var(--bsd-rule);
	font-size: 0.95rem;
	vertical-align: middle;
}
.bsd-market__table tbody tr:nth-child(even) { background: rgba(237, 242, 247, 0.5); }
.bsd-market__table tbody tr:hover { background: rgba(197, 165, 90, 0.1); }
.bsd-market__pair { font-weight: 700; color: var(--bsd-ink); letter-spacing: 0.04em; }
.bsd-market__num { font-variant-numeric: tabular-nums; }
.bsd-up { color: #2f6b46; font-weight: 700; }
.bsd-down { color: #9a3b32; font-weight: 700; }
.bsd-market__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	padding: 14px 20px;
	border-top: 3px double var(--bsd-gold);
	font-size: 0.78rem;
	color: var(--bsd-slate);
	opacity: 0.8;
}

/* ==========================================================================
   6. Dense dispatch list (spec C + front section 4)
   ========================================================================== */
.bsd-dispatches { list-style: none; margin: 0; padding: 0; }
.bsd-dispatch {
	display: grid;
	grid-template-columns: 80px 1fr auto;
	gap: 22px;
	align-items: center;
	padding: 18px 4px;
	border-bottom: 1px solid var(--bsd-gold);
	transition: background 0.25s var(--bsd-ease);
}
.bsd-dispatch:last-child { border-bottom: 0; }
.bsd-dispatch:hover { background: rgba(237, 242, 247, 0.6); }
.bsd-dispatch__thumb {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border: 1px solid var(--bsd-rule);
	filter: sepia(0.14) saturate(0.92);
	background: var(--bsd-mist);
}
.bsd-dispatch__title {
	font-size: 1.16rem;
	line-height: 1.35;
	margin: 0 0 6px;
	font-weight: 700;
}
.bsd-dispatch__title a { color: var(--bsd-ink); }
.bsd-dispatch__title a:hover { color: var(--bsd-gold); }
.bsd-dispatch__excerpt {
	font-size: 0.9rem;
	color: var(--bsd-slate);
	opacity: 0.78;
	margin: 0 0 6px;
	max-width: 640px;
}
.bsd-dispatch__meta {
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bsd-slate);
	opacity: 0.66;
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	align-items: center;
}
.bsd-tagcat {
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bsd-ink);
	border: 1px solid var(--bsd-ink);
	padding: 2px 9px;
	font-weight: 700;
}
.bsd-dispatch__date {
	text-align: right;
	font-size: 0.76rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bsd-gold);
	font-weight: 700;
	white-space: nowrap;
}
.bsd-dispatch__date small {
	display: block;
	color: var(--bsd-slate);
	opacity: 0.6;
	font-size: 0.68rem;
	letter-spacing: 0.08em;
}

/* Inline CTA band injected every 5 dispatches (spec G) */
.bsd-inline-cta {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	background: var(--bsd-ink);
	color: var(--bsd-paper);
	padding: 22px 28px;
	margin: 14px 0;
	border-left: 4px solid var(--bsd-gold);
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.7s var(--bsd-ease), transform 0.7s var(--bsd-ease);
}
.bsd-inline-cta.bsd-in { opacity: 1; transform: translateY(0); }
.bsd-inline-cta__text h3 {
	color: var(--bsd-gold);
	font-size: 1.14rem;
	margin: 0 0 4px;
	letter-spacing: 0.02em;
}
.bsd-inline-cta__text p {
	margin: 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.9rem;
}
.bsd-inline-cta .bsd-btn--solid { flex-shrink: 0; }

/* ==========================================================================
   7. Trading instruments — 4 columns, gold circle frames (front section 5)
   ========================================================================== */
.bsd-instruments { background: var(--bsd-paper); }
.bsd-instr-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}
.bsd-instr {
	text-align: center;
	padding: 30px 18px;
	border: 1px solid var(--bsd-rule);
	background: var(--bsd-paper);
	transition: transform 0.32s var(--bsd-ease), box-shadow 0.32s var(--bsd-ease), border-color 0.32s var(--bsd-ease);
}
.bsd-instr:hover {
	transform: translateY(-6px);
	border-color: var(--bsd-gold);
	box-shadow: 0 18px 34px rgba(27, 58, 92, 0.12);
}
.bsd-instr__icon {
	width: 78px;
	height: 78px;
	margin: 0 auto 18px;
	border: 2px solid var(--bsd-gold);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--bsd-ink);
	font-size: 1.9rem;
	background: radial-gradient(circle at 50% 30%, var(--bsd-mist), var(--bsd-paper));
	position: relative;
}
.bsd-instr__icon::after {
	content: "";
	position: absolute;
	inset: 6px;
	border: 1px solid rgba(197, 165, 90, 0.4);
	border-radius: 50%;
}
.bsd-instr h3 { font-size: 1.12rem; margin: 0 0 8px; letter-spacing: 0.02em; }
.bsd-instr p { font-size: 0.88rem; color: var(--bsd-slate); opacity: 0.76; margin: 0 0 16px; }

/* ==========================================================================
   8. Platform advantages — 2 columns (front section 6)
   ========================================================================== */
.bsd-advantages { background: var(--bsd-mist); }
.bsd-adv-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 34px; }
.bsd-adv {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 22px;
	align-items: start;
	background: var(--bsd-paper);
	border: 1px solid var(--bsd-rule);
	border-top: 3px double var(--bsd-gold);
	padding: 26px;
}
.bsd-adv__fig {
	width: 96px;
	height: 96px;
	object-fit: cover;
	border: 1px solid var(--bsd-gold);
	filter: sepia(0.2) saturate(0.9);
}
.bsd-adv h3 { font-size: 1.16rem; margin: 0 0 8px; }
.bsd-adv p { font-size: 0.92rem; margin: 0; color: var(--bsd-slate); opacity: 0.82; }
.bsd-adv__no {
	font-size: 0.72rem;
	letter-spacing: 0.2em;
	color: var(--bsd-gold);
	font-weight: 700;
	display: block;
	margin-bottom: 6px;
}

/* ==========================================================================
   9. Key figures — gold serif numerals (front section 7)
   ========================================================================== */
.bsd-stats { background: var(--bsd-ink); color: var(--bsd-paper); }
.bsd-stats + .bsd-section { border-top: 3px double var(--bsd-gold); }
.bsd-stats .bsd-kicker { color: var(--bsd-gold-soft); }
.bsd-stats .bsd-heading { color: var(--bsd-paper); }
.bsd-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	text-align: center;
}
.bsd-stat__num {
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	color: var(--bsd-gold);
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
}
.bsd-stat__label {
	margin-top: 12px;
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}
.bsd-stat {
	padding: 24px 12px;
	border: 1px solid rgba(197, 165, 90, 0.28);
	position: relative;
}
.bsd-stat::before {
	content: "";
	position: absolute;
	top: -1px; left: 50%;
	transform: translateX(-50%);
	width: 40px;
	border-top: 2px solid var(--bsd-gold);
}

/* ==========================================================================
   10. Editor's picks — 3 large horizontal cards (front section 8)
   ========================================================================== */
.bsd-picks__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }

/* spec D — horizontal minimal card (small square image + title + date) */
.bsd-card {
	display: grid;
	grid-template-columns: 92px 1fr;
	gap: 18px;
	align-items: start;
	padding: 20px;
	border: 1px solid var(--bsd-rule);
	background: var(--bsd-paper);
	transition: border-color 0.3s var(--bsd-ease), transform 0.3s var(--bsd-ease), box-shadow 0.3s var(--bsd-ease);
}
.bsd-card:hover {
	border-color: var(--bsd-gold);
	transform: translateY(-4px);
	box-shadow: 0 16px 30px rgba(27, 58, 92, 0.11);
}
.bsd-card__thumb {
	width: 92px;
	height: 92px;
	object-fit: cover;
	border: 0;
	filter: sepia(0.14) saturate(0.92);
	background: var(--bsd-mist);
}
.bsd-card__cat {
	display: inline-block;
	font-size: 0.66rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--bsd-ink);
	font-weight: 700;
	margin-bottom: 6px;
	border-bottom: 1px solid var(--bsd-gold);
	padding-bottom: 2px;
}
.bsd-card__title { font-size: 1.06rem; line-height: 1.34; margin: 0 0 8px; }
.bsd-card__title a { color: var(--bsd-ink); }
.bsd-card__title a:hover { color: var(--bsd-gold); }
.bsd-card__date {
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bsd-slate);
	opacity: 0.6;
}

/* ==========================================================================
   11. Single dispatch (spec E — centred narrow serif, drop cap)
   ========================================================================== */
.bsd-single { padding: 56px 0 72px; }
.bsd-single__head { text-align: center; max-width: var(--bsd-col); margin: 0 auto 34px; }
.bsd-single__cat {
	display: inline-block;
	font-size: 0.72rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--bsd-gold);
	border: 1px solid var(--bsd-gold);
	padding: 4px 14px;
	margin-bottom: 18px;
	font-weight: 700;
}
.bsd-single__title {
	font-size: clamp(1.9rem, 4.6vw, 2.9rem);
	line-height: 1.16;
	margin: 0 0 18px;
}
.bsd-single__meta {
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bsd-slate);
	opacity: 0.7;
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
	padding-top: 16px;
	border-top: 1px solid var(--bsd-rule);
}
.bsd-single__meta .bsd-dot { color: var(--bsd-gold); }
.bsd-single__feat {
	max-width: 900px;
	margin: 0 auto 40px;
	border: 1px solid var(--bsd-rule);
	border-top: 3px double var(--bsd-gold);
	border-bottom: 3px double var(--bsd-gold);
}
.bsd-single__feat img { width: 100%; filter: sepia(0.12) saturate(0.94); }

.bsd-entry {
	max-width: var(--bsd-col);
	margin: 0 auto;
	font-size: 1.14rem;
	line-height: 2.0;          /* spec E — generous leading */
	color: var(--bsd-slate);
}
.bsd-entry > p:first-of-type::first-letter,
.bsd-entry.bsd-dropcap > p:first-of-type::first-letter {
	float: left;
	font-size: 4.2em;
	line-height: 0.82;
	padding: 6px 12px 0 0;
	color: var(--bsd-ink);
	font-weight: 700;
}
.bsd-entry h2 {
	font-size: 1.6rem;
	margin: 1.8em 0 0.6em;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--bsd-gold);
}
.bsd-entry h3 { font-size: 1.3rem; margin: 1.6em 0 0.5em; }
.bsd-entry a { color: var(--bsd-ink); border-bottom: 1px solid var(--bsd-gold); }
.bsd-entry a:hover { color: var(--bsd-gold); }
.bsd-entry ul, .bsd-entry ol { padding-left: 1.4em; }
.bsd-entry li { margin-bottom: 0.5em; }
.bsd-entry img { margin: 1.4em auto; }
.bsd-entry table { width: 100%; border-collapse: collapse; margin: 1.4em 0; }
.bsd-entry th, .bsd-entry td { border: 1px solid var(--bsd-rule); padding: 10px 14px; text-align: left; }
.bsd-entry th { background: var(--bsd-mist); color: var(--bsd-ink); }

/* article tags */
.bsd-tags { max-width: var(--bsd-col); margin: 34px auto 0; display: flex; gap: 10px; flex-wrap: wrap; }
.bsd-tags a {
	font-size: 0.74rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border: 1px solid var(--bsd-rule);
	padding: 5px 12px;
	color: var(--bsd-slate);
}
.bsd-tags a:hover { border-color: var(--bsd-gold); color: var(--bsd-gold); }

/* end-of-article CTA (slot 6) */
.bsd-endcta {
	max-width: var(--bsd-col);
	margin: 44px auto 0;
	background: var(--bsd-ink);
	color: var(--bsd-paper);
	text-align: center;
	padding: 40px 34px;
	border: 1px solid var(--bsd-ink);
	position: relative;
}
.bsd-endcta::before, .bsd-endcta::after {
	content: "";
	position: absolute;
	left: 22px; right: 22px;
	border-top: 3px double var(--bsd-gold);
}
.bsd-endcta::before { top: 10px; }
.bsd-endcta::after { bottom: 10px; }
.bsd-endcta h3 { color: var(--bsd-gold); font-size: 1.5rem; margin: 0 0 10px; }
.bsd-endcta p { color: rgba(255, 255, 255, 0.8); margin: 0 0 20px; }

/* author + related block (spec E bottom) */
.bsd-authorbox {
	max-width: var(--bsd-col);
	margin: 44px auto 0;
	display: flex;
	gap: 20px;
	align-items: center;
	padding: 24px;
	border: 1px solid var(--bsd-rule);
	border-left: 3px solid var(--bsd-gold);
	background: var(--bsd-mist);
}
.bsd-avatar {
	width: 62px;
	height: 62px;
	border-radius: 50%;
	border: 2px solid var(--bsd-gold);
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bsd-ink);
	color: var(--bsd-gold);
	font-size: 1.3rem;
	font-weight: 700;
	flex-shrink: 0;
}
.bsd-authorbox__name { font-size: 1.06rem; margin: 0 0 4px; color: var(--bsd-ink); }
.bsd-authorbox__bio { font-size: 0.86rem; margin: 0; color: var(--bsd-slate); opacity: 0.8; }

.bsd-related { max-width: 900px; margin: 56px auto 0; }
.bsd-related__head {
	text-align: center;
	font-size: 1rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin: 0 0 26px;
	padding-bottom: 12px;
	border-bottom: 3px double var(--bsd-gold);
}
.bsd-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

/* comments */
.bsd-comments { max-width: var(--bsd-col); margin: 56px auto 0; }
.bsd-comments__title {
	font-size: 1.1rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--bsd-gold);
	padding-bottom: 10px;
}
.bsd-comments .comment-list { list-style: none; padding: 0; }
.bsd-comments .comment { padding: 18px 0; border-bottom: 1px dotted var(--bsd-rule); }
.bsd-comments .comment-author { font-weight: 700; color: var(--bsd-ink); }
.bsd-comments .comment-metadata { font-size: 0.76rem; opacity: 0.6; }
.bsd-comments .comment-metadata a { color: var(--bsd-slate); }
.bsd-comment-form label { display: block; font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; margin: 12px 0 4px; color: var(--bsd-ink); }
.bsd-comment-form input[type="text"],
.bsd-comment-form input[type="email"],
.bsd-comment-form input[type="url"],
.bsd-comment-form textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--bsd-rule);
	font-family: var(--bsd-serif);
	font-size: 0.96rem;
	color: var(--bsd-slate);
	background: var(--bsd-paper);
}
.bsd-comment-form input:focus, .bsd-comment-form textarea:focus { outline: none; border-color: var(--bsd-gold); }

/* ==========================================================================
   12. Archive / index / search headers
   ========================================================================== */
.bsd-pagehead {
	text-align: center;
	padding: 56px 0 40px;
	border-bottom: 3px double var(--bsd-gold);
	background: var(--bsd-mist);
}
.bsd-pagehead__title { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: 0 0 10px; }
.bsd-pagehead__desc { max-width: 620px; margin: 0 auto; color: var(--bsd-slate); opacity: 0.8; }
.bsd-pagehead .bsd-kicker { margin-bottom: 8px; }

.bsd-archive { padding: 52px 0 68px; }
.bsd-archive__list { max-width: 900px; margin: 0 auto; }

/* pagination */
.bsd-pagination { max-width: 900px; margin: 46px auto 0; text-align: center; }
.bsd-pagination .nav-links {
	display: inline-flex;
	gap: 6px;
	flex-wrap: wrap;
	justify-content: center;
	border-top: 1px solid var(--bsd-rule);
	border-bottom: 1px solid var(--bsd-rule);
	padding: 12px 0;
}
.bsd-pagination .page-numbers {
	font-family: var(--bsd-serif);
	min-width: 40px;
	padding: 8px 14px;
	font-size: 0.88rem;
	letter-spacing: 0.06em;
	color: var(--bsd-ink);
	border: 1px solid transparent;
	font-variant-numeric: tabular-nums;
}
.bsd-pagination .page-numbers:hover { border-color: var(--bsd-gold); color: var(--bsd-gold); }
.bsd-pagination .page-numbers.current { background: var(--bsd-ink); color: var(--bsd-gold); border-color: var(--bsd-ink); }

/* ==========================================================================
   13. Search form (spec — searchform.php)
   ========================================================================== */
.bsd-searchform { display: flex; gap: 0; max-width: 520px; }
.bsd-searchform .bsd-search-field {
	flex: 1;
	padding: 13px 16px;
	border: 1px solid var(--bsd-ink);
	border-right: 0;
	font-family: var(--bsd-serif);
	font-size: 0.98rem;
	color: var(--bsd-slate);
	background: var(--bsd-paper);
}
.bsd-searchform .bsd-search-field:focus { outline: none; border-color: var(--bsd-gold); }
.bsd-searchform .bsd-search-submit {
	padding: 13px 26px;
	background: var(--bsd-ink);
	color: var(--bsd-gold);
	border: 1px solid var(--bsd-ink);
	font-family: var(--bsd-serif);
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 700;
	cursor: pointer;
	transition: all 0.28s var(--bsd-ease);
}
.bsd-searchform .bsd-search-submit:hover { background: var(--bsd-gold); color: var(--bsd-ink); border-color: var(--bsd-gold); }
.bsd-searchform--center { margin: 0 auto; }

/* ==========================================================================
   14. 404
   ========================================================================== */
.bsd-error { text-align: center; padding: 90px 0 100px; }
.bsd-error__code {
	font-size: clamp(4rem, 14vw, 9rem);
	color: var(--bsd-gold);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.04em;
}
.bsd-error__title { font-size: 1.7rem; margin: 14px 0 10px; }
.bsd-error__text { max-width: 480px; margin: 0 auto 28px; opacity: 0.8; }

/* ==========================================================================
   15. Footer — 4 columns, navy (spec F)
   ========================================================================== */
.bsd-footer {
	background: var(--bsd-ink);
	color: rgba(255, 255, 255, 0.78);
	padding: 62px 0 0;
	font-size: 0.92rem;
}
.bsd-footer a { color: rgba(255, 255, 255, 0.78); }
.bsd-footer a:hover { color: var(--bsd-gold); }
.bsd-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(3, 1fr);
	gap: 40px;
	padding-bottom: 44px;
}
.bsd-footer__brand .bsd-brand__word { color: var(--bsd-paper); font-size: 1.7rem; }
.bsd-footer__brand .bsd-brand__word span { color: var(--bsd-gold); }
.bsd-footer__about { margin: 14px 0 18px; opacity: 0.72; font-size: 0.88rem; line-height: 1.7; }
.bsd-footer__title {
	color: var(--bsd-gold);
	font-size: 0.82rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(197, 165, 90, 0.32);
}
.bsd-footer__list { list-style: none; margin: 0; padding: 0; }
.bsd-footer__list li { margin-bottom: 11px; }
.bsd-footer__list a {
	font-size: 0.9rem;
	position: relative;
	padding-left: 16px;
	display: inline-block;
}
.bsd-footer__list a::before {
	content: "\203A"; /* single right angle quote */
	position: absolute;
	left: 0;
	color: var(--bsd-gold);
}
.bsd-footer__cta { margin-top: 8px; }
.bsd-footer__bottom {
	border-top: 3px double var(--bsd-gold);
	padding: 22px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	color: rgba(255, 255, 255, 0.6);
}
.bsd-footer__bottom nav { display: flex; gap: 20px; flex-wrap: wrap; }
.bsd-footer__risk {
	max-width: var(--bsd-shell);
	margin: 0 auto;
	padding: 0 28px 20px;
	font-size: 0.74rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.44);
}

/* ==========================================================================
   16. Reveal-on-scroll utility
   ========================================================================== */
.bsd-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.7s var(--bsd-ease), transform 0.7s var(--bsd-ease); }
.bsd-reveal.bsd-in { opacity: 1; transform: translateY(0); }

/* ==========================================================================
   17. Responsive — split folds, grids collapse
   ========================================================================== */
@media (max-width: 1024px) {
	.bsd-instr-grid { grid-template-columns: repeat(2, 1fr); }
	.bsd-stats__grid { grid-template-columns: repeat(2, 1fr); }
	.bsd-picks__grid { grid-template-columns: 1fr; }
	.bsd-related__grid { grid-template-columns: 1fr; }
	.bsd-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 860px) {
	/* hero split folds to a single stacked column (spec — main.js collapse) */
	.bsd-hero__split { grid-template-columns: 1fr; }
	.bsd-hero__feature {
		padding: 32px 0;
		border-right: 0;
		border-bottom: 3px double var(--bsd-gold);
	}
	.bsd-hero__feature::after { display: none; }
	.bsd-hero__latest { padding: 32px 0; }
	.bsd-adv-grid { grid-template-columns: 1fr; }

	.bsd-navtoggle { display: inline-block; }
	.bsd-nav__inner { flex-wrap: wrap; justify-content: flex-end; }
	.bsd-menu {
		order: 3;
		flex-basis: 100%;
		flex-direction: column;
		gap: 0;
		display: none;
		border-top: 1px solid var(--bsd-rule);
		padding: 8px 0;
	}
	.bsd-menu.bsd-open { display: flex; }
	.bsd-menu > li > a { padding: 13px 4px; text-align: center; }
	.bsd-menu > li > a::after { display: none; }
	.bsd-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		border-top: 1px solid var(--bsd-rule);
		text-align: center;
		display: none;
	}
	.bsd-menu > li:hover > .sub-menu,
	.bsd-menu > li.bsd-open > .sub-menu { display: block; }
	.bsd-nav__side { margin-left: auto; }

	.bsd-dispatch { grid-template-columns: 64px 1fr; gap: 16px; }
	.bsd-dispatch__thumb { width: 64px; height: 64px; }
	.bsd-dispatch__date { grid-column: 2; text-align: left; }
}

@media (max-width: 600px) {
	body { font-size: 16px; }
	.bsd-shell { padding: 0 18px; }
	.bsd-topbar__inner { padding: 8px 18px; font-size: 0.7rem; }
	.bsd-topbar__date { display: none; }
	.bsd-section { padding: 46px 0; }
	.bsd-instr-grid { grid-template-columns: 1fr; }
	.bsd-stats__grid { grid-template-columns: 1fr; }
	.bsd-footer__grid { grid-template-columns: 1fr; gap: 30px; }
	.bsd-adv { grid-template-columns: 1fr; }
	.bsd-adv__fig { width: 100%; height: 150px; }
	.bsd-card { grid-template-columns: 72px 1fr; }
	.bsd-card__thumb { width: 72px; height: 72px; }
	.bsd-entry { font-size: 1.06rem; line-height: 1.95; }
	.bsd-footer__bottom { flex-direction: column; text-align: center; }
}

/* ==========================================================================
   16b. Supporting components
   ========================================================================== */
.bsd-skip:focus {
	position: fixed !important;
	top: 12px; left: 12px;
	z-index: 9999;
	background: var(--bsd-ink);
	color: var(--bsd-gold);
	padding: 10px 18px;
	border: 1px solid var(--bsd-gold);
	font-size: 0.84rem;
	letter-spacing: 0.1em;
}

.bsd-dispatch__main { min-width: 0; }

.bsd-catnav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	border-bottom: 1px solid var(--bsd-rule);
	padding-bottom: 18px;
}
.bsd-catnav__link {
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border: 1px solid var(--bsd-rule);
	padding: 7px 16px;
	color: var(--bsd-slate);
	transition: all 0.25s var(--bsd-ease);
}
.bsd-catnav__link:hover { border-color: var(--bsd-gold); color: var(--bsd-gold); }
.bsd-catnav__link--active { background: var(--bsd-ink); border-color: var(--bsd-ink); color: var(--bsd-gold); font-weight: 700; }

.bsd-footer__navlist { list-style: none; display: flex; gap: 20px; margin: 0; padding: 0; flex-wrap: wrap; }
.bsd-footer__navlist a { font-size: 0.78rem; letter-spacing: 0.06em; }

.bsd-page-links { max-width: var(--bsd-col); margin: 24px auto; text-align: center; }
.bsd-page-links a, .bsd-page-links > span {
	display: inline-block;
	padding: 4px 12px;
	border: 1px solid var(--bsd-rule);
	margin: 0 3px;
	font-variant-numeric: tabular-nums;
}

/* hero stacked state mirrored from JS (visual handled by media query) */
.bsd-hero__split--stacked { grid-template-columns: 1fr; }

@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.bsd-reveal, .bsd-inline-cta { opacity: 1; transform: none; }
}

/* ==== breadcrumb (added by automation) ==== */
.bsd-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;font-size:.85rem;line-height:1.4;margin:0 0 1.1rem;opacity:.9}
.bsd-crumb a{color:inherit;text-decoration:none}
.bsd-crumb a:hover{text-decoration:underline}
.bsd-crumb .bsd-sep{opacity:.45}
.bsd-crumb .bsd-current{font-weight:600}
.bsd-crumb-bar{padding-top:16px}
