/*
Theme Name: PL Child Base
Theme URI: https://example.com
Description: Paralegal Life's GeneratePress child theme. Cloned from InhouseBlog's gp-child-base (sister site, same content model) with a distinct teal/terracotta brand system, Newsreader/Work Sans type, and its own logo. Site-specific customizations should be layered via child-of-child or a mu-plugin, not baked into this file.
Author: Paralegal Life / Custom
Template: generatepress
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pl-child-base
*/

/* ==========================================================================
   1. Mixed lead/grid/list layout (home.php) — used on paged/category
   archives, NOT the homepage (see section 6 for the front page).
   ========================================================================== */

.plcb-lead-title,
.plcb-grid-title,
.plcb-list-title {
	margin: 0.4em 0;
}

.plcb-lead-thumb img,
.plcb-grid-thumb img,
.plcb-list-thumb img {
	width: 100%;
	height: auto;
	display: block;
}

.plcb-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5em;
	margin: 1.5em 0;
}

.plcb-list {
	display: flex;
	flex-direction: column;
	gap: 1.5em;
	margin: 1.5em 0;
}

.plcb-list-item {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 1.5em;
	align-items: start;
}

.plcb-image-placeholder {
	display: block;
	background: #eee;
	aspect-ratio: 16 / 9;
}

@media (max-width: 768px) {
	.plcb-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.plcb-list-item {
		grid-template-columns: 1fr;
	}
}

.entry-meta {
	font-size: 0.85em;
	opacity: 0.75;
	margin: 0.3em 0;
}

/* Tighten the gap above the breadcrumb on inner pages — GP's default
   .site-main margin pushes the content (and breadcrumb) down, leaving a
   dead band under the chip bar. Pull it up so the breadcrumb reads as a
   header for the content. */
.plcb-jobs-menu-nav-wrap + #page .site-main,
body:not(.home) .separate-containers .site-main {
	margin-top: 0;
}

body:not(.home) .site-content {
	padding-top: 0;
}

/* Keep the sidebar's top aligned with the main column (GP adds a 20px
   top margin to the sidebar inner wrapper; the main column starts at the
   breadcrumb). Zero it so both columns start at the same y. */
body:not(.home) .separate-containers .inside-right-sidebar {
	margin-top: 0;
}

/* Breadcrumb — a subtle full-width bar directly under the chip bar,
   so it reads as part of the page chrome instead of floating in space. */
.breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 2px;
	margin: 0 0 1.6em;
	padding: 16px 0 10px;
	font-family: 'Work Sans', sans-serif;
	font-size: 0.78rem;
	color: var(--pl-ink-3);
	border-bottom: 1px solid var(--pl-line);
}

.breadcrumb a,
.breadcrumb .bc-text {
	color: var(--pl-ink-3);
	text-decoration: none;
}

.breadcrumb a:hover {
	color: var(--pl-teal);
}

/* The last crumb (current page) reads as the active item. */
.breadcrumb .bc-text {
	color: var(--pl-ink);
	font-weight: 600;
}

/* Insert a chevron separator before every crumb except the first. */
.breadcrumb > span[itemprop="itemListElement"] + span[itemprop="itemListElement"]::before,
.breadcrumb > span[itemprop="itemListElement"] + .bc-text::before {
	content: "\203A"; /* › */
	color: var(--pl-line-2, #c8d0d8);
	margin: 0 8px;
	font-weight: 400;
}

/* ==========================================================================
   2. Third-party plugin / widget style normalization
   ------------------------------------------------------------------------
   Several plugins ship their own CSS with their own font-family, list,
   and spacing rules (Connections directory, Feedzy feed lists, Novashare
   share buttons, widget outputs generally). Reset them to inherit the
   theme's typography instead of fighting it visually against GP.
   ========================================================================== */

/* Sidebar / widget-area wide reset: force every widget to inherit the
   theme's base font stack, size, and line-height regardless of what a
   plugin's own stylesheet declares inline or via a scoped class.
   NOTE: intentionally scoped with :not() so the design's own serif
   sidebar treatments (nav-menu job links, Other Stuff, Hot Jobs titles)
   are NOT clobbered by this reset's !important on inner pages. */
.widget-area .widget:not(.widget_nav_menu):not(.plcb-other-stuff-widget):not(.plcb-hot-jobs-widget),
.widget-area .widget:not(.widget_nav_menu):not(.plcb-other-stuff-widget):not(.plcb-hot-jobs-widget) *,
#connections-list,
#connections-list *,
.rss-widget,
.rss-widget *,
.widget-area .feedzy-rss *,
.wpil-related-posts * {
	font-family: inherit !important;
	color: inherit;
}

.widget-area .widget {
	font-size: 1rem;
	line-height: 1.6;
	margin-bottom: 2em;
}

.widget-area .widget h2,
.widget-area .widget h3,
.widget-area .widget .widgettitle,
.widget-area .widget .widget-title {
	font-family: inherit;
	font-size: 1.1em;
	font-weight: 700;
	margin: 0 0 0.75em;
}

/* Normalize list markup inside widgets (Connections directory entries,
   Feedzy feed items, recent posts, categories, etc.) to a consistent
   unstyled list with theme-controlled spacing. */
.widget-area .widget ul,
.widget-area .widget ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.widget-area .widget ul li,
.widget-area .widget ol li {
	padding: 0.5em 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	font-size: 0.95em;
}

.widget-area .widget ul li:last-child,
.widget-area .widget ol li:last-child {
	border-bottom: none;
}

.widget-area .widget a {
	text-decoration: none;
}

.widget-area .widget:not(.plcb-hot-jobs-widget):not(.plcb-other-stuff-widget) a:hover {
	text-decoration: none;
	color: var(--pl-teal);
}

/* Connections plugin directory output specifically ships its own
   heavy inline-styled font declarations on many elements; reset the
   most common offenders directly. */
#connections-list .cn-entry,
#connections-list .cn-name,
#connections-list .cn-title,
#connections-list .cn-organization,
#connections-list .cn-address,
#connections-list .cn-phone,
#connections-list .cn-email {
	font-family: inherit !important;
	font-size: 1em;
}

/* Feedzy RSS widget/shortcode output */
.rss_ticker,
.feedzy-rss ul,
.feedzy-rss li {
	font-family: inherit !important;
	list-style: none;
}

/* Novashare share buttons: let them keep their icon font but normalize
   surrounding label typography to the theme. */
.novashare-share-buttons .novashare-network-label {
	font-family: inherit !important;
}

/* ==========================================================================
   3. Normalized homepage widget content (plcb-* classes applied when
   widget HTML was rewritten to drop legacy MH Themes markup)
   ========================================================================== */

.plcb-home-columns,
.plcb-home-sidebar {
	font-family: inherit;
}

.plcb-home-zone {
	margin-bottom: 2em;
}

.plcb-home-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5em;
}

@media (max-width: 768px) {
	.plcb-home-split {
		grid-template-columns: 1fr;
	}
}

.plcb-link-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.plcb-link-list li {
	padding: 0.6em 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	font-size: 0.95rem;
}

.plcb-link-list li:last-child {
	border-bottom: none;
}

.plcb-link-list a {
	font-family: inherit;
	text-decoration: none;
}

.plcb-link-list a:hover {
	color: var(--pl-teal);
}

.plcb-callout {
	font-family: inherit;
	font-size: 0.95rem;
	font-style: normal;
	font-weight: 600;
	padding: 0.75em 1em;
	background: rgba(30, 115, 190, 0.06);
	border-radius: 4px;
}

.plcb-banner-slot {
	text-align: center;
	margin: 1em 0;
	line-height: 0;
}

.plcb-banner-slot img {
	max-width: 100%;
	width: auto;
	height: auto;
	border-radius: 4px;
	border: 1px solid var(--pl-line, #dfe4e9);
}

/* Feedzy widget output: with disable_default_style enabled, Feedzy
   emits minimal markup; still guard against any residual inline
   font-family the extension applies via style attributes. Feedzy also
   injects a PER-WIDGET-INSTANCE <style> block (e.g. .feedzy-rss-1,
   .feedzy-rss-2 ...) that forces `ul li{display:inline-block}` —
   this breaks the normal block/stacked list layout every other
   sidebar widget uses, which is why Feedzy items look visually
   different (spacing/wrapping) from Connections/custom-HTML/nav-menu
   widgets even though they're all in the same sidebar. Override with
   higher specificity + !important so ALL widget lists share one
   consistent block-stacked layout regardless of which plugin printed
   them or what per-instance class name it used. */
.rss_body,
.rss_body *,
.rssSummary {
	font-family: inherit !important;
}

.widget-area .widget [class*="feedzy-rss-"] ul,
.widget-area .widget [class^="feedzy-rss-"] ul,
.widget [class*="feedzy-rss-"] ul.feedzy-style2,
.widget ul.feedzy-style2 {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.widget-area .widget [class*="feedzy-rss-"] ul li,
.widget-area .widget [class^="feedzy-rss-"] ul li,
.widget ul.feedzy-style2 li,
.widget .rss_item {
	display: block !important;
	width: auto !important;
	padding: 0.6em 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
	font-size: 0.95rem !important;
	line-height: 1.5 !important;
}

.widget .rss_item:last-child {
	border-bottom: none !important;
}

.widget .rss_item .rss_content_wrap {
	display: block;
}

.widget .rss_item .title,
.widget .rss_item .title a {
	font-family: inherit;
	font-size: 1em;
	font-weight: 500;
	text-decoration: none;
}

.widget .rss_item .title a:hover {
	text-decoration: none;
	color: var(--pl-teal);
}

.widget .rss_item .rss_content {
	font-size: 0.9em;
	color: var(--contrast-2, #575760);
	margin-top: 0.25em;
}

/* Connections directory / cMap plugin: ships inline <style id="cnt-cmap-inline-css">
   that hardcodes color:#000 on many selectors, printed after our
   stylesheet in <head> so it would otherwise win the cascade. Force
   it back to the theme's text color. */
#cn-cmap,
#cn-cmap .cn-list-row h2 .fn,
#cn-cmap .cn-list-row-alternate h2 .fn,
#cn-cmap .cn-list-row,
#cn-cmap .cn-list-row-alternate,
#cn-cmap span.contact-label,
#cn-cmap span.cn-relation-label,
#cn-cmap span.adr span.address-name,
#cn-cmap span.tel span.phone-name,
#cn-cmap span.email span.email-name,
#cn-cmap span.im-network span.im-name,
#cn-cmap span.link span.link-name,
#cn-cmap span.cn-date span.date-name,
#cn-cmap .cn-list-row a,
#cn-cmap .cn-list-row a:visited,
#cn-cmap .cn-list-row-alternate a,
#cn-cmap .cn-list-row-alternate a:visited,
#cn-cmap .cn-content-tray,
#cn-cmap .cn-content-tray a,
#cn-cmap .cn-content-tray a:visited {
	color: var(--contrast, #222222) !important;
	font-family: inherit !important;
}

#cn-cmap .cn-content-tray .cn-bio-tray,
#cn-cmap .cn-content-tray .cn-note-tray,
#cn-cmap .cn-content-tray .cn-gmap {
	background-color: var(--base, #f0f0f0) !important;
}

/* ==========================================================================
   4. Connections directory listing (#cn-list) — the plugin ships its
   own hardcoded px font-size scale (20px/18px/16px/14px/12px) totally
   independent of the theme's rem-based type scale. Normalize the
   whole directory output to inherit theme fonts/weights/sizes so it
   reads as part of the same site instead of a bolted-on widget.
   ========================================================================== */

#cn-list,
#cn-list * {
	font-family: inherit !important;
}

#cn-list .cn-list-section-head h4,
#cn-list h4.cn-alphahead {
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	margin: 1.2em 0 0.5em !important;
}

#cn-list .cn-list-row,
#cn-list .cn-list-row-alternate {
	font-size: 1rem !important;
	line-height: 1.6 !important;
	padding: 0.75em 0 !important;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
}

#cn-list .cn-list-row h3,
#cn-list .cn-list-row-alternate h3,
#cn-list .cn-list-row .fn,
#cn-list .cn-list-row-alternate .fn {
	font-size: 1.05rem !important;
	font-weight: 600 !important;
	margin: 0 0 0.25em !important;
}

#cn-list .cn-list-row a,
#cn-list .cn-list-row-alternate a {
	color: var(--accent, #1e73be) !important;
}

/* cMap card view (used on the recruiter directory page) */
#cn-cmap .cn-entry-cmap-card {
	font-size: 1rem !important;
	padding: 1em !important;
}

#cn-cmap .cn-entry-cmap-card h2 {
	font-size: 1.2rem !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	margin: 0 0 0.4em !important;
}

#cn-cmap .cn-entry-cmap-card h3 {
	font-size: 1.05rem !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	margin: 0 0 0.4em !important;
}

/* Pagination and search controls: align to theme font, drop the
   plugin's tiny 12px page-nav text. */
#cn-page-nav,
#cn-page-nav a,
#cn-page-nav .page-numbers,
#cn-search-input,
input#cn-search-submit,
input#cn-submit {
	font-family: inherit !important;
	font-size: 0.95rem !important;
}

/* ==========================================================================
   5. PARALEGAL LIFE BRAND / DESIGN SYSTEM
   ------------------------------------------------------------------------
   Site-specific implementation of the Paralegal Life brand: deep teal +
   terracotta accent, distinct from sister site InhouseBlog's navy/amber
   system. Everything in this section is Paralegal-Life-specific branding,
   not generic child-theme scaffolding — if this theme is reused for
   another site, this section should be swapped out or moved to a
   grandchild theme.
   ========================================================================== */

:root {
	--pl-teal: #0F6E64;
	--pl-teal-2: #0B564E;
	--pl-teal-3: #083D38;
	--pl-teal-tint: #E7F4F1;
	--pl-teal-tint-2: #D1E9E4;
	--pl-ink: #14201D;
	--pl-ink-2: #3E4A46;
	--pl-ink-3: #708079;
	--pl-line: #DEE7E4;
	--pl-line-2: #EAF0EE;
	--pl-paper: #ffffff;
	--pl-paper-2: #FAFCFB;
	--pl-coral: #C1541A;
	--pl-coral-tint: #FBEBE0;
	--pl-green: #15803D;

	/* Remap GeneratePress's own color variables to the brand palette
	   so core GP chrome (buttons, links, top bar) matches automatically. */
	--contrast: var(--pl-ink);
	--contrast-2: var(--pl-ink-2);
	--contrast-3: var(--pl-ink-3);
	--base: var(--pl-teal-tint);
	--base-2: var(--pl-paper-2);
	--base-3: var(--pl-paper);
	--accent: var(--pl-teal);
}

body {
	font-family: 'Work Sans', system-ui, sans-serif;
	background: var(--pl-paper);
	color: var(--pl-ink);
	line-height: 1.55;
}

.plcb-serif,
.entry-title,
.hero-h1,
.sec-head h2,
.pick-card h3,
.art-card h4,
.side-jobs .sj-title,
.other-list a,
.data-band h2,
.jobs-board .head-left h2,
.news-band h2 {
	font-family: 'Newsreader', Georgia, serif;
	font-weight: 600;
}

a {
	color: var(--pl-teal);
}

a:hover,
a:focus {
	color: var(--pl-ink);
}

/* Site header / masthead — ONE horizontal row: logo | tagline (flex:1,
   left border) | search + buttons, matching the mockup's .mast-inner. */
.site-header {
	border-bottom: 1px solid var(--pl-line);
}

.inside-header {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 32px;
	padding: 16px 40px;
}

.site-branding {
	display: flex;
	align-items: center;
	gap: 32px;
	flex: 1 1 auto;
	min-width: 0;
}

.plcb-logo-title {
	margin: 0;
	flex-shrink: 0;
}

.plcb-logo-img {
	display: block;
	height: 60px;
	width: auto;
}

.plcb-tagline {
	flex: 1 1 auto;
	min-width: 0;
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-size: 0.9rem;
	color: var(--pl-ink-3);
	line-height: 1.35;
	margin: 0;
	border-left: 1px solid var(--pl-line);
	padding-left: 20px;
}

.plcb-tagline-kicker {
	display: block;
	font-family: 'Work Sans', sans-serif;
	font-style: normal;
	font-weight: 700;
	font-size: 0.68rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--pl-teal);
	margin-bottom: 3px;
}

/* Masthead actions: search box + Sign in + Post a Job button */
.plcb-mast-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-left: auto;
	flex-shrink: 0;
}

.plcb-btn-ghost {
	padding: 8px 6px;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--pl-ink-2);
	white-space: nowrap;
}

.plcb-btn-ghost:hover {
	color: var(--pl-teal);
}

.plcb-search-box input[type="search"] {
	background: var(--pl-teal-tint);
	border: 1px solid var(--pl-line);
	padding: 10px 14px;
	border-radius: 6px;
	width: 240px;
	max-width: 40vw;
	font-family: inherit;
	font-size: 0.8rem;
	outline: none;
	color: var(--pl-ink);
}

.plcb-search-box input[type="search"]:focus {
	border-color: var(--pl-teal);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(0, 90, 140, 0.12);
}

.plcb-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 18px;
	border-radius: 6px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border: 1px solid var(--pl-teal);
	background: transparent;
	color: var(--pl-teal);
	white-space: nowrap;
}

.plcb-btn-solid {
	background: var(--pl-teal);
	color: #fff;
}

.plcb-btn-solid:hover {
	background: var(--pl-teal-2);
	color: #fff;
}

/* Must-Read evergreen strip */
.plcb-must-read {
	border-bottom: 1px solid var(--pl-line);
	background: #fff;
	font-size: 0.85rem;
}

.plcb-must-read-inner {
	display: flex;
	align-items: center;
	gap: 22px;
	flex-wrap: wrap;
	max-width: 1100px;
	margin: 0 auto;
	padding: 14px 0;
}

.plcb-must-read-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.68rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--pl-coral);
	font-weight: 700;
	padding: 5px 10px;
	border: 1px solid var(--pl-coral);
	border-radius: 3px;
	flex-shrink: 0;
}

/* Must-Read rotating ticker: a fixed-height window that shows one
   headline at a time; JS toggles .is-active, CSS slides/fades them. */
.plcb-must-read-ticker {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1 1 auto;
	min-width: 0;
	height: 1.4em;
	overflow: hidden;
}

.plcb-must-read-item {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	color: var(--pl-ink-2);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	opacity: 0;
	transform: translateY(-100%);
	transition: opacity 0.45s ease, transform 0.45s ease;
	pointer-events: none;
}

.plcb-must-read-ticker.is-ticking .plcb-must-read-item.is-active {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

/* No-JS / reduced-motion fallback: show every headline stacked, no
   absolute positioning, no animation. */
.plcb-must-read-ticker:not(.is-ticking) {
	height: auto;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 22px;
}

.plcb-must-read-ticker:not(.is-ticking) .plcb-must-read-item {
	position: static;
	width: auto;
	opacity: 1;
	transform: none;
	pointer-events: auto;
}

.plcb-must-read-item a {
	font-weight: 500;
	color: var(--pl-ink);
}

.plcb-must-read-item a:hover {
	color: var(--pl-teal);
}

/* Primary nav — sticky, uppercase, underline-on-active like the design */
.main-navigation {
	background: var(--pl-paper);
	border-bottom: 1px solid var(--pl-ink);
	position: sticky;
	top: 0;
	z-index: 20;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
}

.main-navigation .main-nav > ul {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
}

.main-navigation .main-nav > ul > li > a {
	display: flex;
	align-items: center;
	height: 50px;
	padding: 0 16px;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pl-ink);
	border-bottom: 3px solid transparent;
	white-space: nowrap;
}

.main-navigation .main-nav > ul > li > a:hover,
.main-navigation .main-nav > ul > li.current-menu-item > a {
	color: var(--pl-teal);
	border-bottom-color: var(--pl-teal);
}

/* Only the EXACT current page item should read as "selected". GeneratePress's
   inline CSS uses a wildcard — li[class*="current-menu-"] — which also matches
   current-menu-parent / current-menu-ancestor, so every parent dropdown toggle
   (Category / State / City / Role) lit up as selected whenever you were on one
   of its child pages. Neutralize the ancestor/parent highlight; keep only the
   true current item highlighted. */
.main-navigation .main-nav ul li.current-menu-ancestor:not(.current-menu-item) > a,
.main-navigation .main-nav ul li.current-menu-parent:not(.current-menu-item) > a,
.main-navigation .main-nav ul li.current_page_ancestor:not(.current-menu-item) > a,
.main-navigation .main-nav ul li.current_page_parent:not(.current-menu-item) > a {
	color: var(--pl-ink);
	background-color: transparent;
	border-bottom-color: transparent;
}

/* Restore the intended hover state on those parent toggles (GP's rule
   excluded current-menu-* items from :hover, so re-add it here). */
.main-navigation .main-nav ul li.current-menu-ancestor:not(.current-menu-item):hover > a,
.main-navigation .main-nav ul li.current-menu-parent:not(.current-menu-item):hover > a,
.main-navigation .main-nav ul li.current-menu-ancestor:not(.current-menu-item).sfHover > a,
.main-navigation .main-nav ul li.current-menu-parent:not(.current-menu-item).sfHover > a {
	color: var(--pl-teal);
	background-color: var(--pl-teal-tint);
}

/* Secondary/utility top nav (Upper Nav: About, Post Here, Subscribe...)
   + the right-side "active roles" badge / date, matching the mockup's
   .top-strip left/right split. */
.plcb-secondary-nav-wrap {
	background: var(--pl-ink);
	padding: 8px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.plcb-secondary-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
}

.plcb-secondary-nav a {
	color: #c5cbd3;
	font-size: 0.75rem;
	letter-spacing: 0.02em;
}

.plcb-secondary-nav a:hover {
	color: #fff;
}

.plcb-top-strip-right {
	display: flex;
	align-items: center;
	gap: 18px;
	color: #9aa4b3;
	font-size: 0.72rem;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.plcb-top-strip-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--pl-coral);
	font-weight: 600;
}

.plcb-top-strip-pulse {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--pl-coral);
	box-shadow: 0 0 0 3px rgba(199, 138, 23, 0.2);
	flex-shrink: 0;
}

/* Jobs Menu sub-nav under header */
.plcb-jobs-menu-nav-wrap {
	background: var(--pl-teal-tint);
	border-bottom: 1px solid var(--pl-line);
	padding: 10px 0;
}

.plcb-jobs-menu-nav {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0;
}

.plcb-jobs-menu-nav ul {
	display: contents;
	list-style: none;
	margin: 0;
	padding: 0;
}

.plcb-jobs-menu-nav li {
	margin: 0;
	list-style: none;
}

.plcb-jobs-menu-nav li::before,
.plcb-jobs-menu-nav li::after,
.plcb-jobs-menu-nav li::marker {
	content: none !important;
	display: none !important;
}

.plcb-chip-label {
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pl-teal-3);
	font-weight: 700;
	white-space: nowrap;
	flex-shrink: 0;
}

.plcb-chip-sep {
	width: 1px;
	align-self: stretch;
	min-height: 20px;
	background: var(--pl-line);
	flex-shrink: 0;
	margin: 0 2px;
}

.plcb-jobs-menu-nav a,
.plcb-chip-cat {
	padding: 6px 12px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--pl-line);
	font-family: 'Work Sans', sans-serif;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--pl-ink-2);
	text-decoration: none;
	white-space: nowrap;
}

.plcb-jobs-menu-nav a:hover,
.plcb-chip-cat:hover {
	border-color: var(--pl-teal);
	color: var(--pl-teal);
}

/* Category chips get a subtle accent so they read as a distinct group
   from the job-link chips before them. */
.plcb-jobs-menu-nav a.plcb-chip-cat,
.plcb-jobs-menu-nav a.plcb-chip-cat:visited {
	background: var(--pl-teal);
	color: #fff;
	border-color: var(--pl-teal);
}

.plcb-jobs-menu-nav a.plcb-chip-cat:hover,
.plcb-jobs-menu-nav a.plcb-chip-cat:focus {
	background: var(--pl-teal-2);
	color: #fff;
	border-color: var(--pl-teal-2);
}

/* Footer nav rows */
.plcb-social-nav,
.plcb-other-sites-nav {
	list-style: none;
}

.plcb-social-nav ul,
.plcb-other-sites-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.plcb-social-nav a,
.plcb-other-sites-nav a {
	color: #9aa4b3;
	font-size: 0.8rem;
}

.plcb-social-nav a:hover,
.plcb-other-sites-nav a:hover {
	color: #fff;
}

.site-footer,
footer.site-footer,
#colophon,
.site-info {
	background: var(--pl-ink);
	color: #9aa4b3;
}

/* Center footer-hook content in a container so it aligns with the
   rest of the page instead of sitting flush against the left edge. */
.plcb-footer-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 40px 40px 24px;
}

.site-info .inside-site-info {
	padding-left: 40px;
	padding-right: 40px;
}

.site-footer a {
	color: #9aa4b3;
}

.site-footer a:hover {
	color: #fff;
}

.plcb-footer-brand {
	margin-bottom: 20px;
}

.plcb-footer-logo-img {
	height: 54px;
	width: auto;
	display: block;
	margin-bottom: 12px;
	/* SVG logo has navy/black fills baked in; invert + tint for
	   readability on the dark footer background. */
	filter: brightness(0) invert(1) opacity(0.92);
}

.plcb-footer-tagline {
	font-size: 0.8rem;
	line-height: 1.6;
	max-width: 34ch;
	color: #9aa4b3;
}

/* Widget-area sidebar blocks styled as bordered "cards" with a blue
   header bar, matching the mockup's .side-block/.sb-head pattern. */
.widget-area .widget {
	background: #fff;
	border: 1px solid var(--pl-line);
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 20px;
	padding: 0;
}

.widget-area .widget .widget-title,
.plcb-side-col .widget .widget-title,
#right-sidebar .widget .widget-title,
.plcb-home-zone .widget-title {
	background: #fff;
	color: var(--pl-teal);
	font-family: 'Work Sans', sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 14px 16px 12px;
	margin: 0;
	border-bottom: 3px solid var(--pl-coral);
}

.plcb-side-col .widget,
#right-sidebar .widget {
	background: #fff;
	border: 1px solid var(--pl-line);
	border-radius: 8px;
	overflow: hidden;
	padding: 0;
}

.plcb-side-col .widget > *:not(.widget-title),
#right-sidebar .widget > *:not(.widget-title) {
	padding-left: 16px;
	padding-right: 16px;
	padding-top: 8px;
	padding-bottom: 8px;
}

.plcb-home-zone .widget {
	background: #fff;
	border: 1px solid var(--pl-line);
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 0;
}

.plcb-home-zone .widget > *:not(.widget-title) {
	padding-left: 16px;
	padding-right: 16px;
	padding-top: 8px;
	padding-bottom: 8px;
}

.widget-area .widget > *:not(.widget-title) {
	padding-left: 16px;
	padding-right: 16px;
}

.widget-area .widget .textwidget,
.widget-area .widget .plcb-link-list,
.widget-area .widget ul.menu,
.widget-area .widget [class*="feedzy-rss-"] {
	padding-top: 8px;
	padding-bottom: 8px;
}

.widget-area .widget ul li,
.widget-area .widget .rss_item,
.widget-area .widget .plcb-link-list li {
	border-bottom: 1px dashed var(--pl-line) !important;
}

/* Entry title / meta typography */
.entry-title {
	letter-spacing: -0.015em;
	line-height: 1.15;
}

.entry-meta {
	font-family: 'Work Sans', sans-serif;
}

/* Buttons */
.button,
button,
input[type="submit"] {
	font-family: 'Work Sans', sans-serif;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 0.78rem;
}

/* ==========================================================================
   6. Homepage main grid — hero, editor's picks, article grid, news wire,
   persistent sidebar. Ported from design-5-combined.html.
   ========================================================================== */

.plcb-main-grid {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 40px;
	align-items: start;
	max-width: 1100px;
	margin: 36px auto 48px;
	padding: 0;
}

.plcb-side-col > .widget,
.plcb-side-col > .plcb-home-zone,
#right-sidebar > .inside-right-sidebar > .widget,
#right-sidebar > .inside-right-sidebar > .plcb-home-zone {
	margin-bottom: 20px;
}

.plcb-side-col > .plcb-home-zone:last-child,
.plcb-side-col > .widget:last-child {
	margin-bottom: 0;
}

.plcb-main-col {
	min-width: 0;
}

.plcb-side-col {
	position: sticky;
	top: 20px;
	align-self: start;
}

/* Hero */
.plcb-hero {
	margin-bottom: 8px;
}

.hero-kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--pl-teal);
	margin-bottom: 14px;
}

.hero-h1 {
	font-size: 2.2rem;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--pl-ink);
	margin-bottom: 14px;
}

.hero-h1 a:hover {
	color: var(--pl-teal);
}

.hero-lede {
	font-size: 1.05rem;
	color: var(--pl-ink-2);
	line-height: 1.6;
	margin-bottom: 18px;
	font-family: 'Work Sans', sans-serif;
}

.byline {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 0.85rem;
	color: var(--pl-ink-3);
	padding: 14px 0;
	border-top: 1px solid var(--pl-line);
	border-bottom: 1px solid var(--pl-line);
	margin-bottom: 22px;
}

.byline .avatar {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--pl-teal);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Newsreader', serif;
	font-weight: 600;
	font-size: 0.85rem;
	flex-shrink: 0;
}

.byline strong {
	color: var(--pl-ink);
	font-weight: 600;
}

.hero-lead-art {
	display: block;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 28px;
}

.plcb-hero-bonus {
	margin-top: -8px;
	margin-bottom: 8px;
}

.hero-lead-art img {
	width: 100%;
	height: auto;
	display: block;
}

/* Section headers */
.plcb-sec {
	padding: 30px 0;
}

.plcb-sec .sec-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	margin-bottom: 22px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--pl-ink);
}

.plcb-sec .sec-head .lbl {
	font-size: 0.7rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--pl-coral);
	font-weight: 700;
	margin-bottom: 4px;
}

.plcb-sec .sec-head h2 {
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--pl-ink);
	letter-spacing: -0.015em;
}

.plcb-sec .sec-head .all {
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pl-ink-2);
	font-weight: 700;
}

.plcb-sec .sec-head .all:hover {
	color: var(--pl-teal);
}

/* Editor's picks — 3 cards */
.picks-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.pick-card {
	background: #fff;
	border: 1px solid var(--pl-line);
	border-radius: 8px;
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: all 0.15s;
}

.pick-card:hover {
	border-color: var(--pl-teal);
	transform: translateY(-1px);
	box-shadow: 0 10px 24px -12px rgba(0, 90, 140, 0.18);
}

.pick-card .thumb,
.art-card .thumb {
	display: block;
	margin: -18px -20px 0;
	border-radius: 8px 8px 0 0;
	overflow: hidden;
	aspect-ratio: 16 / 9;
}

.art-card .thumb {
	margin: -20px -22px 0;
}

.pick-card .thumb img,
.art-card .thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Branded placeholder (gavel) — center it on a soft brand tint so it
   reads as an intentional default rather than a cropped photo. */
.thumb--placeholder {
	background: var(--pl-teal-tint);
}

.thumb--placeholder img {
	object-fit: contain !important;
	padding: 14px;
	opacity: 0.85;
}

.pick-card .tag,
.art-card .tag {
	display: inline-block;
	align-self: flex-start;
	padding: 3px 9px;
	border-radius: 4px;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--pl-teal-tint);
	color: var(--pl-teal);
	font-family: 'Work Sans', sans-serif;
	text-decoration: none;
	transition: background 0.12s, color 0.12s;
}

.pick-card .tag:hover,
.art-card .tag:hover {
	background: var(--pl-teal);
	color: #fff;
}

/* Card thumb/title/read are now individual links inside the card; keep
   the card itself the visual unit with a clean hover, and let the whole
   card lift on hover of any part. */
.pick-card-art,
.art-card-art {
	display: block;
	text-decoration: none;
}

.pick-card h3 a,
.art-card h4 a,
.art-card .read {
	text-decoration: none;
	color: inherit;
}

.pick-card h3 {
	font-size: 1.1rem;
	line-height: 1.25;
	letter-spacing: -0.005em;
}

.pick-card h3:hover,
.pick-card:hover h3 {
	color: var(--pl-teal);
}

.pick-card p {
	font-size: 0.85rem;
	color: var(--pl-ink-2);
	line-height: 1.5;
	font-family: 'Work Sans', sans-serif;
}

.pick-card .meta {
	font-size: 0.72rem;
	color: var(--pl-ink-3);
	margin-top: auto;
	padding-top: 6px;
}

/* Article grid — 2 columns */
.grid-2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
}

.art-card {
	background: #fff;
	border: 1px solid var(--pl-line);
	border-radius: 8px;
	padding: 20px 22px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: all 0.15s;
}

.art-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px -14px rgba(0, 90, 140, 0.18);
	border-color: var(--pl-teal);
}

.art-card h4 {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.22;
	letter-spacing: -0.005em;
}

.art-card:hover h4 {
	color: var(--pl-teal);
}

.art-card p {
	font-size: 0.875rem;
	color: var(--pl-ink-2);
	line-height: 1.5;
	font-family: 'Work Sans', sans-serif;
}

.art-card .foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 6px;
	font-size: 0.75rem;
	color: var(--pl-ink-3);
	border-top: 1px solid var(--pl-line-2);
}

.art-card .read {
	font-weight: 700;
	color: var(--pl-teal);
}

/* News wire */
.news-list .row {
	display: grid;
	grid-template-columns: 64px 1fr 100px;
	gap: 16px;
	padding: 14px 0;
	border-top: 1px solid var(--pl-line-2);
	align-items: start;
}

.news-list .row:first-child {
	border-top: none;
	padding-top: 4px;
}

.news-list .date {
	font-size: 0.72rem;
	color: var(--pl-teal);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-family: 'Work Sans', sans-serif;
}

.news-list .ttl {
	font-weight: 600;
	line-height: 1.28;
	font-size: 1rem;
}

.news-list .ttl a:hover {
	color: var(--pl-teal);
}

.news-list .cat {
	font-size: 0.65rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pl-ink-3);
	font-weight: 700;
	text-align: right;
	padding-top: 3px;
	font-family: 'Work Sans', sans-serif;
}

.news-list .cat a {
	color: inherit;
	text-decoration: none;
}

.news-list .cat a:hover {
	color: var(--pl-teal);
}

@media (max-width: 1100px) {
	.plcb-main-grid {
		grid-template-columns: 1fr;
		padding: 0 28px;
	}
	.plcb-jobs-menu-nav {
		padding: 0 28px;
	}
	.plcb-must-read-inner {
		padding: 14px 28px;
	}
	.plcb-side-col {
		position: static;
	}
	.picks-grid,
	.grid-2 {
		grid-template-columns: 1fr;
	}
	.hero-h1 {
		font-size: 1.7rem;
	}
	.news-list .row {
		grid-template-columns: 50px 1fr;
	}
	.news-list .cat {
		display: none;
	}
	.inside-header {
		flex-wrap: wrap;
		row-gap: 12px;
		padding: 16px 20px;
	}
	.plcb-tagline {
		flex-basis: 100%;
		order: 3;
		border-left: none;
		padding-left: 0;
	}
	.plcb-search-box input[type="search"] {
		width: 180px;
	}
	.plcb-secondary-nav-wrap {
		padding: 8px 20px;
	}
}

/* ==========================================================================
   7. Hot Jobs rich sidebar block (plcb_render_hot_jobs)
   Matches DESIGN-TARGET.html's .side-jobs pattern: title + location +
   Remote/On-site/Hybrid badge, with the blue widget header bar.
   ========================================================================== */

.plcb-hot-jobs-widget .plcb-side-jobs {
	padding: 0 !important;
}

.plcb-sj-item {
	padding: 12px 16px;
	border-bottom: 1px solid var(--pl-line-2);
}

.plcb-sj-item:last-of-type {
	border-bottom: none;
}

.plcb-sj-item:hover {
	background: var(--pl-paper-2);
}

.plcb-sj-title {
	display: block;
	font-family: 'Newsreader', Georgia, serif;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pl-ink);
	margin-bottom: 5px;
	text-decoration: none;
}

.plcb-sj-title:hover {
	color: var(--pl-teal);
}

.plcb-sj-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	font-size: 0.75rem;
	color: var(--pl-ink-3);
}

.plcb-sj-loc {
	color: var(--pl-ink-2);
	font-weight: 500;
}

.plcb-badge-sm {
	display: inline-block;
	padding: 1px 7px;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-radius: 3px;
	font-family: 'Work Sans', sans-serif;
}

.plcb-badge-sm.remote {
	background: #dcfce7;
	color: #166534;
}

.plcb-badge-sm.onsite {
	background: var(--pl-teal-tint);
	color: var(--pl-teal);
}

.plcb-badge-sm.hybrid {
	background: var(--pl-coral-tint);
	color: var(--pl-coral);
}

.plcb-sj-all {
	display: block;
	padding: 12px 16px;
	text-align: center;
	font-family: 'Work Sans', sans-serif;
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--pl-teal);
	border-top: 2px solid var(--pl-line);
	text-decoration: none;
}

.plcb-sj-all:hover {
	background: var(--pl-teal);
	color: #fff;
}

/* ==========================================================================
   8. Dark titles + dark sidebar links (blue only on hover)
   The cards are wrapped in <a>, and sidebar lists inherit the blue link
   color; force the design's dark-ink treatment with blue-on-hover.
   ========================================================================== */

/* Card + hero + news-wire titles: dark ink */
.hero-h1,
.hero-h1 a,
.pick-card h3,
.pick-card h3 a,
.art-card h4,
.art-card h4 a,
.news-list .ttl,
.news-list .ttl a {
	color: var(--pl-ink);
}

.hero-h1 a:hover,
.pick-card:hover h3,
.pick-card h3 a:hover,
.art-card:hover h4,
.art-card h4 a:hover,
.news-list .ttl a:hover {
	color: var(--pl-teal);
}

/* Sidebar link lists: Jobs menu + Other Stuff — dark ink */
.plcb-side-col .widget_nav_menu a,
#right-sidebar .widget_nav_menu a,
.plcb-side-col .plcb-link-list a,
#right-sidebar .plcb-link-list a,
.plcb-home-zone .plcb-link-list a {
	color: var(--pl-ink);
}

.plcb-side-col .widget_nav_menu a:hover,
#right-sidebar .widget_nav_menu a:hover,
.plcb-side-col .plcb-link-list a:hover,
#right-sidebar .plcb-link-list a:hover,
.plcb-home-zone .plcb-link-list a:hover {
	color: var(--pl-teal);
}

/* Jobs sidebar menu: serif titles like the other
   sidebar blocks (Hot Jobs, Other Stuff). */
.plcb-side-col .widget_nav_menu a,
#right-sidebar .widget_nav_menu a {
	font-family: 'Newsreader', Georgia, serif;
	font-weight: 600;
}

/* Post a Job button — force solid blue fill + white text regardless of
   the global sidebar/nav link-color overrides above. */
.plcb-mast-actions .plcb-btn.plcb-btn-solid,
.plcb-mast-actions .plcb-btn.plcb-btn-solid:visited {
	background: var(--pl-teal);
	color: #fff;
	border-color: var(--pl-teal);
	text-decoration: none;
}

.plcb-mast-actions .plcb-btn.plcb-btn-solid:hover,
.plcb-mast-actions .plcb-btn.plcb-btn-solid:focus {
	background: var(--pl-teal-2);
	color: #fff;
	border-color: var(--pl-teal-2);
}

/* ==========================================================================
   9. Other Stuff resource list (plcb_render_other_stuff)
   Matches DESIGN-TARGET.html .other-list: serif link title + small
   Inter subtitle, dashed dividers, blue-tint hover.
   ========================================================================== */

.plcb-other-stuff-widget .plcb-other-list {
	list-style: none;
	margin: 0;
	padding: 0 !important;
}

.plcb-other-list li {
	border-bottom: 1px dashed var(--pl-line);
}

.plcb-other-list li:last-child {
	border-bottom: none;
}

.plcb-other-list a {
	display: block;
	padding: 10px 16px;
	font-family: 'Newsreader', Georgia, serif;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--pl-ink);
	text-decoration: none;
	transition: all 0.1s;
}

.plcb-other-list a small {
	display: block;
	font-family: 'Work Sans', sans-serif;
	font-size: 0.72rem;
	color: var(--pl-ink-3);
	font-weight: 400;
	margin-top: 2px;
	letter-spacing: 0.01em;
}

.plcb-other-list a:hover {
	background: var(--pl-teal-tint);
	color: var(--pl-teal);
}

.plcb-other-list a:hover small {
	color: var(--pl-teal);
}

/* ==========================================================================
   10. Jobs nav-menu — per-row treatment matching the
   design's .menu-list (and consistent with Hot Jobs / Other Stuff):
   dashed dividers, row padding, blue bullet, blue-tint hover.
   ========================================================================== */

/* Kill the widget's default outer padding so rows can bleed edge-to-edge. */
.plcb-side-col .widget_nav_menu > div,
#right-sidebar .widget_nav_menu > div,
.plcb-side-col .widget_nav_menu .menu,
#right-sidebar .widget_nav_menu .menu {
	padding: 0 !important;
	margin: 0 !important;
	list-style: none;
}

.plcb-side-col .widget_nav_menu li,
#right-sidebar .widget_nav_menu li {
	border-bottom: 1px dashed var(--pl-line);
	margin: 0;
}

.plcb-side-col .widget_nav_menu li:last-child,
#right-sidebar .widget_nav_menu li:last-child {
	border-bottom: none;
}

.plcb-side-col .widget_nav_menu a,
#right-sidebar .widget_nav_menu a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 16px;
	font-family: 'Newsreader', Georgia, serif;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--pl-ink);
	text-decoration: none;
	transition: all 0.1s;
}

.plcb-side-col .widget_nav_menu a::before,
#right-sidebar .widget_nav_menu a::before {
	content: "\2022";
	color: var(--pl-teal);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1;
	flex: 0 0 auto;
}

.plcb-side-col .widget_nav_menu a:hover,
#right-sidebar .widget_nav_menu a:hover {
	background: var(--pl-teal-tint);
	color: var(--pl-teal);
}

/* ==========================================================================
   11. Feedzy job-listing pages (GC Jobs, Deputy GC, etc.) — style the
   default Feedzy [feedzy-rss] output into clean job cards matching the
   site's aesthetic. Scoped to the main content area so sidebar Feedzy
   (if any) is unaffected.
   ========================================================================== */

/* The real shortcode markup is a bare <ul><li class="rss_item"> with no
   "feedzy-default" class (that class is only added in some template
   modes) — target the actual structure directly instead of a class that
   may not be present, and force block/full-width so items always stack
   in one column regardless of any inline-block behavior elsewhere. */
.site-main .feedzy-rss ul {
	list-style: none;
	margin: 18px 0 0;
	padding: 0;
	display: grid;
	gap: 8px;
}

.site-main .feedzy-rss .rss_item {
	display: block !important;
	float: none !important;
	width: 100% !important;
	padding: 11px 16px !important;
	margin: 0 !important;
	background: #fff;
	border: 1px solid var(--pl-line);
	border-radius: 7px;
	transition: box-shadow 0.12s, border-color 0.12s;
}

.site-main .feedzy-rss .rss_item:hover {
	border-color: var(--pl-teal-3);
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.06);
}

.site-main .feedzy-rss .rss_item .title {
	display: block;
	margin-bottom: 3px;
}

.site-main .feedzy-rss .rss_item .title a {
	font-family: 'Newsreader', Georgia, serif;
	font-size: 1.02rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--pl-ink);
	text-decoration: none;
}

.site-main .feedzy-rss .rss_item .title a:hover {
	color: var(--pl-teal);
}

.site-main .feedzy-rss .rss_content {
	margin: 0;
	padding: 0;
	margin-top: 2px;
	line-height: 1.3;
}

.site-main .feedzy-rss .rss_item .rss_content small,
.site-main .feedzy-rss .rss_item .rss_content > small {
	display: inline-block;
	font-family: 'Work Sans', sans-serif;
	font-size: 0.66rem;
	font-weight: 600;
	font-style: normal;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pl-ink-3);
	margin-bottom: 3px;
}

.site-main .feedzy-rss .rss_content p {
	margin: 0;
	font-family: 'Work Sans', sans-serif;
	font-size: 0.82rem;
	line-height: 1.4;
	color: var(--pl-ink-2);
}

/* ==========================================================================
   12. Consistent column widths on inner pages
   The homepage uses a 1fr + 340px grid. GeneratePress's default inner
   layout uses grid-75 / grid-25 (~275px sidebar), making inner sidebars
   noticeably narrower. Pin the GP right-sidebar to the same 340px so the
   main column + sidebar widths match the homepage across the site.
   ========================================================================== */
@media (min-width: 769px) {
	.separate-containers .site-content,
	.one-container .site-content {
		display: flex;
		align-items: flex-start;
		gap: 40px;
	}

	/* unsemantic-grid.css gives .site-content a float-clearfix ::after
	   with content:"" — CSS counts any pseudo-element with real content
	   (even "") as a genuine flex item once the parent is display:flex,
	   so it silently became a second flex item alongside #primary,
	   reserving one extra `gap` (40px) it was never meant to consume.
	   Clearfix is a no-op on a flex container anyway (nothing floats). */
	.separate-containers .site-content::after,
	.one-container .site-content::after {
		content: none;
	}

	.site-content #primary.content-area.grid-75 {
		/* flex-basis:0 (not auto) — auto measured ~40px narrower than the
		   full available width on pages where #primary is the sole flex
		   child (front page, no #right-sidebar), for reasons that didn't
		   trace to any padding/margin/border on #primary or .site-content
		   in computed styles. flex-basis:0 ignores intrinsic content size
		   entirely and distributes purely by flex-grow, sidestepping it. */
		width: auto;
		flex: 1 1 0%;
		min-width: 0;
		max-width: none;
		float: none;
		margin: 0;
		padding: 0;
	}

	.site-content #right-sidebar.grid-25 {
		width: 340px;
		flex: 0 0 340px;
		max-width: 340px;
		margin: 0;
		padding: 0;
		float: none;
		/* Homepage's fake sidebar (.plcb-side-col) is position:sticky —
		   the real sidebar used on every other page type never got the
		   same treatment. */
		position: sticky;
		top: 20px;
		align-self: start;
	}
}

/* ==========================================================================
   13. Feedzy job-card title line + meta (cleaned via functions.php filters)
   ========================================================================== */

.site-main .feedzy-rss .rss_item .title .plcb-job-titleline {
	display: block;
}

.site-main .feedzy-rss .rss_item .plcb-job-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 3px;
}

.site-main .feedzy-rss .rss_item .plcb-job-loc {
	font-family: 'Work Sans', sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--pl-ink-2);
}

/* Reuse the sidebar badge styles for On-site / Remote / Hybrid. */
.site-main .feedzy-rss .rss_item .plcb-badge-sm {
	display: inline-block;
	padding: 1px 7px;
	font-family: 'Work Sans', sans-serif;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-radius: 3px;
}

.site-main .feedzy-rss .rss_item .plcb-badge-sm.remote {
	background: #dcfce7;
	color: #166534;
}

.site-main .feedzy-rss .rss_item .plcb-badge-sm.onsite {
	background: var(--pl-teal-tint);
	color: var(--pl-teal);
}

.site-main .feedzy-rss .rss_item .plcb-badge-sm.hybrid {
	background: var(--pl-coral-tint);
	color: var(--pl-coral);
}

/* The plugin puts the date <small> and our summary inside .rss_content;
   space them from the title/meta above. */
.site-main .feedzy-rss .rss_content {
	margin-top: 10px;
}

.site-main .feedzy-rss .plcb-job-summary {
	margin: 3px 0 0;
	font-family: 'Work Sans', sans-serif;
	font-size: 0.82rem;
	line-height: 1.4;
	color: var(--pl-ink-2);
}

/* ==========================================================================
   14. Consistent sidebar link hover — the homepage sidebar (.plcb-side-col)
   and inner-page sidebar (#right-sidebar) render the same blocks, but link
   types previously handled underline-on-hover inconsistently (some had an
   explicit underline, others relied on browser defaults). Normalize ALL
   sidebar links to: no underline ever, brand-blue on hover. Single source
   of truth so both contexts behave identically.
   ========================================================================== */
.plcb-side-col a,
#right-sidebar a {
	text-decoration: none;
}

.plcb-side-col a:hover:not(.plcb-sj-all),
.plcb-side-col a:focus:not(.plcb-sj-all),
#right-sidebar a:hover:not(.plcb-sj-all),
#right-sidebar a:focus:not(.plcb-sj-all) {
	text-decoration: none;
	color: var(--pl-teal);
}

/* ==========================================================================
   15. Archive list (category / tag / author / date archives)
   Clean, compact editorial rows: thumbnail + dark serif title + muted
   meta (date · category) + excerpt. Matches the rest of the site instead
   of GeneratePress's default full-content template.
   ========================================================================== */

.plcb-archive-list {
	display: flex;
	flex-direction: column;
}

.plcb-archive-list .plcb-list-item {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 22px;
	align-items: start;
	padding: 24px 0;
	margin: 0;
	border-bottom: 1px solid var(--pl-line);
}

.plcb-archive-list .plcb-list-item:first-child {
	padding-top: 4px;
}

.plcb-archive-list .plcb-list-item:last-child {
	border-bottom: none;
}

.plcb-archive-list .plcb-list-thumb {
	margin: 0;
}

.plcb-archive-list .plcb-list-thumb a {
	display: block;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--pl-teal-tint);
}

.plcb-archive-list .plcb-list-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.plcb-archive-list .plcb-image-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--pl-teal-tint) url('assets/images/placeholder-thumb.jpg') center / contain no-repeat;
	aspect-ratio: 16 / 10;
	opacity: 0.85;
}

.plcb-archive-list .plcb-list-header {
	margin: 0;
}

.plcb-archive-list .plcb-list-title {
	margin: 0 0 8px;
	font-family: 'Newsreader', Georgia, serif;
	font-size: 1.4rem;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.plcb-archive-list .plcb-list-title a {
	color: var(--pl-ink);
	text-decoration: none;
}

.plcb-archive-list .plcb-list-title a:hover {
	color: var(--pl-teal);
}

.plcb-archive-list .entry-meta {
	font-family: 'Work Sans', sans-serif;
	font-size: 0.75rem;
	letter-spacing: 0.02em;
	color: var(--pl-ink-3);
	opacity: 1;
	margin: 0 0 10px;
}

.plcb-archive-list .entry-meta a {
	color: var(--pl-ink-3);
	text-decoration: none;
}

.plcb-archive-list .entry-meta a:hover {
	color: var(--pl-teal);
}

.plcb-archive-list .plcb-list-excerpt {
	font-family: 'Work Sans', sans-serif;
	font-size: 0.92rem;
	line-height: 1.6;
	color: var(--pl-ink-2);
}

.plcb-archive-list .plcb-list-excerpt p {
	margin: 0 0 0.6em;
}

.plcb-archive-list .plcb-list-excerpt .more-link {
	font-family: 'Work Sans', sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pl-teal);
	text-decoration: none;
}

.plcb-archive-list .plcb-list-excerpt .more-link:hover {
	color: var(--pl-teal-2);
}

@media (max-width: 640px) {
	.plcb-archive-list .plcb-list-item {
		grid-template-columns: 1fr;
		gap: 14px;
	}
}

/* ==========================================================================
   16. Inline content links — make links inside body copy (page/post intro
   text, article bodies) more prominent: bold weight, brand blue, with an
   underline on hover so they read clearly as links.
   ========================================================================== */
.site-main .entry-content a {
	color: var(--pl-teal);
	font-weight: 500;
	text-decoration: none;
}

.site-main .entry-content a:hover,
.site-main .entry-content a:focus {
	color: var(--pl-teal-2, #003f63);
	text-decoration: underline;
}

/* Don't force bold/blue on links that are really buttons or wrap block
   elements (images, headings). */
.site-main .entry-content a.plcb-btn,
.site-main .entry-content h1 a,
.site-main .entry-content h2 a,
.site-main .entry-content h3 a,
.site-main .entry-content h4 a,
.site-main .entry-content a:has(> img) {
	font-weight: inherit;
	color: inherit;
}
