:root { --black:#101010; --gold:#C9A227; --red:#8E1B1B; --cream:#FAF6EC; --gray:#444; --line:#e3e3e3; }
* { margin:0; box-sizing:border-box; }
body { font-family:Georgia,serif; color:#333; background:#f0f0f0; }
a { color:var(--red); text-decoration:none; }
.wrap { max-width:1160px; margin:0 auto; }
.narrow { max-width:760px; margin:0 auto; padding:20px 16px; }
.center { text-align:center; }

/* masthead */
.masthead { background:#fff; }
.mast-inner { display:flex; align-items:center; gap:24px; padding:16px; }
.masthead img.logo { width:74px; height:74px; }
.mast-name .n1 { font-family:Helvetica,Arial,sans-serif; font-weight:bold; font-size:21px; color:var(--black); letter-spacing:.5px; display:block; line-height:1.15; }
.mast-name .n2 { font-family:Helvetica,Arial,sans-serif; font-size:11px; color:var(--red); font-weight:bold; letter-spacing:2.5px; }
.mast-name .n3 { font-size:11px; color:#888; font-style:italic; margin-top:2px; }
.banner-slot { flex:1; min-height:70px; background:linear-gradient(90deg,var(--red),var(--gold)); border-radius:4px; display:flex; align-items:center; justify-content:center; color:#fff; font-family:Helvetica,Arial,sans-serif; font-weight:bold; font-size:12px; text-align:center; padding:8px; min-width:240px; }

/* nav */
.mainnav { background:var(--black); }
.navflex { display:flex; flex-wrap:wrap; align-items:center; }
.mainnav .nav { display:flex; flex-wrap:wrap; list-style:none; }
.mainnav .nav li a { color:#eee; padding:12px 15px; display:block; font-family:Helvetica,Arial,sans-serif; font-size:12.5px; font-weight:bold; text-transform:uppercase; }
.mainnav .nav li a:hover, .mainnav .nav-current a { background:var(--gold); color:var(--black); }
.subbtn { margin-left:auto; background:var(--red); color:#fff; padding:12px 16px; font-family:Helvetica,Arial,sans-serif; font-size:12.5px; font-weight:bold; }
.charterbar { background:var(--red); color:#fff; text-align:center; font-family:Helvetica,Arial,sans-serif; font-weight:bold; font-size:12.5px; padding:7px 10px; }
.charterbar a { color:var(--gold); }

/* grid */
.grid { display:grid; grid-template-columns:222px 1fr 242px; gap:14px; padding:14px 16px; }
@media(max-width:900px) { .grid { grid-template-columns:1fr; } }

/* widgets */
.widget { background:#fff; border:1px solid var(--line); margin-bottom:14px; }
.whead { background:var(--black); color:#fff; font-family:Helvetica,Arial,sans-serif; font-weight:bold; font-size:11.5px; letter-spacing:1.5px; padding:9px 12px; border-bottom:3px solid var(--gold); }
.wbody { padding:10px 12px; font-size:12.5px; line-height:1.5; }
.wbody p { margin-bottom:6px; }
.wlink { display:block; font-size:12px; font-weight:bold; padding:4px 0; border-bottom:1px dotted #ddd; }
.wlink:last-child { border:none; }
.wnote { margin-top:8px; font-size:12px; }
.minithumb { width:120px; border:1px solid #ccc; }
.adslot { min-height:200px; background:#fff; border:2px dashed var(--gold); display:flex; flex-direction:column; align-items:center; justify-content:center; color:#999; font-family:Helvetica,Arial,sans-serif; font-size:12px; margin-bottom:14px; text-align:center; padding:12px; }
.adslot b { color:var(--red); font-size:13px; margin-bottom:4px; }

/* cards */
.card { background:#fff; border:1px solid var(--line); margin-bottom:14px; }
.card .body { padding:14px 16px; }
.kick { font-family:Helvetica,Arial,sans-serif; font-size:10.5px; font-weight:bold; letter-spacing:1.5px; color:var(--red); text-transform:uppercase; }
.card h3 { font-family:Helvetica,Arial,sans-serif; font-size:17px; line-height:1.25; margin:4px 0 7px; }
.card h3 a { color:var(--black); }
.card img.hero { width:100%; max-height:340px; object-fit:cover; object-position:top; display:block; }
.byline { font-size:11px; color:#999; font-style:italic; margin-bottom:8px; }
.card p { font-size:13.5px; line-height:1.55; color:#444; }
.rmore { display:inline-block; margin-top:10px; background:var(--black); color:#fff; font-family:Helvetica,Arial,sans-serif; font-size:11px; font-weight:bold; padding:7px 14px; }
.rmore:hover { background:var(--gold); color:var(--black); }
.lock { display:inline-block; background:var(--gold); color:var(--black); font-family:Helvetica,Arial,sans-serif; font-size:10px; font-weight:bold; padding:3px 8px; border-radius:3px; letter-spacing:1px; vertical-align:middle; margin-left:8px; }

/* article */
.article .ptitle { font-family:Helvetica,Arial,sans-serif; font-size:30px; color:var(--black); line-height:1.15; margin:6px 0 8px; }
.article .content { font-size:16.5px; line-height:1.65; margin-top:14px; }
.article .content p { margin-bottom:16px; }
.article .content h2, .article .content h3 { font-family:Helvetica,Arial,sans-serif; color:var(--black); margin:22px 0 10px; }
.article .content img { max-width:100%; }
.article .content figure { margin:18px 0; }
.article .content figcaption { font-size:12px; color:#888; font-style:italic; text-align:center; margin-top:6px; }
.article .content blockquote { border-left:4px solid var(--gold); padding-left:14px; color:#555; font-style:italic; margin:16px 0; }

/* pagination */
.pagination { display:flex; justify-content:space-between; font-family:Helvetica,Arial,sans-serif; font-size:13px; font-weight:bold; padding:8px 2px 20px; }

/* newsletter band */
.newsband { background:var(--black); margin-top:6px; }
.newsflex { display:flex; align-items:center; gap:30px; padding:36px 16px; flex-wrap:wrap; }
.newsband h2 { color:#fff; font-family:Helvetica,Arial,sans-serif; font-size:24px; letter-spacing:1px; }
.newsband p { color:var(--gold); font-style:italic; margin:6px 0 14px; }
.nbform { display:flex; }
.nbform input { padding:12px 16px; border:none; width:280px; max-width:60vw; font-size:14px; }
.nbform button { background:var(--red); color:#fff; border:none; padding:12px 22px; font-weight:bold; cursor:pointer; font-family:Helvetica,Arial,sans-serif; }

/* footer */
footer { background:#0a0a0a; color:#999; font-family:Helvetica,Arial,sans-serif; font-size:12px; }
.footgrid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px; padding:34px 16px; }
@media(max-width:640px) { .footgrid { grid-template-columns:1fr; } .mast-inner { flex-direction:column; text-align:center; } }
footer h4 { color:var(--gold); font-size:12px; letter-spacing:1.5px; margin-bottom:10px; }
footer p { line-height:1.6; }
footer a { color:#ccc; display:block; padding:3px 0; }
.copy { border-top:1px solid #222; text-align:center; padding:14px; color:#666; }

/* Koenig editor cards (required by Ghost) */
.kg-image { max-width: 100%; margin: 0 auto; display: block; }
.kg-width-wide .kg-image { max-width: 1040px; }
.kg-width-full .kg-image { max-width: 100vw; }
.kg-width-wide { position: relative; margin-left: -110px; margin-right: -110px; }
.kg-width-full { position: relative; left: 50%; right: 50%; width: 100vw; margin-left: -50vw; margin-right: -50vw; }
@media (max-width: 1000px) { .kg-width-wide { margin-left: 0; margin-right: 0; } }
.kg-embed-card { display: flex; flex-direction: column; align-items: center; width: 100%; }
.kg-embed-card iframe { max-width: 100%; }
.kg-gallery-container { display: flex; flex-direction: column; max-width: 100%; }
.kg-gallery-row { display: flex; flex-direction: row; justify-content: center; }
.kg-gallery-image img { display: block; margin: 0; width: 100%; height: 100%; }
.kg-gallery-row:not(:first-of-type) { margin: 4px 0 0; }
.kg-gallery-image:not(:first-of-type) { margin: 0 0 0 4px; }
.kg-bookmark-card { width: 100%; }
.kg-bookmark-container { display: flex; text-decoration: none; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; color: #333; }
.kg-bookmark-content { flex-grow: 1; padding: 14px; }
.kg-bookmark-title { font-weight: bold; font-family: Helvetica, Arial, sans-serif; font-size: 15px; }
.kg-bookmark-description { font-size: 13px; color: #666; margin-top: 6px; }
.kg-bookmark-thumbnail img { width: 200px; height: 100%; object-fit: cover; }
.kg-button-card { display: flex; justify-content: center; width: 100%; }
.kg-btn, .kg-button-card a { background: var(--red); color: #fff; padding: 10px 20px; border-radius: 5px; font-family: Helvetica, Arial, sans-serif; font-weight: bold; font-size: 14px; }

/* Ghost content-gating CTA inherits site styles; keep portal button visible */
.gh-post-upgrade-cta { background:var(--cream); border:1.5px solid var(--gold); border-radius:8px; padding:24px; text-align:center; font-family:Helvetica,Arial,sans-serif; }

/* This Week's BCSP headline list */
.weekly-heads { white-space: pre-line; text-align: left; font-size: 12px; line-height: 1.5; margin-top: 10px; color: #333; }
