/*
Theme Name: JobGetr Newspaper Child
Theme URI:    https://jobgetr.ai
Description:  Thin JobGetr child theme for the Newspaper parent. Design tokens and small presentation overrides only - Newspaper owns layout, typography, and responsive behaviour.
Author:       JobGetr
Author URI:   https://jobgetr.ai
Template:     Newspaper
Version:      0.4.1
Requires PHP: 7.4
Text Domain:  jobgetr-newspaper-child
*/

/* ==========================================================================
   1. Design tokens
   Editorial surfaces stay light like the Newspaper donor; dark navy is
   reserved for data and product bands. Newspaper's own globals (base-color-1,
   light-gray, light-border, base-gray) are reused rather than replaced.
   ========================================================================== */
:root {
	/* Brand */
	--jg-accent: #ff6a13;
	--jg-accent-hover: #ff8a3d;
	--jg-navy: var(--base-color-1, #131f49);
	--jg-navy-deep: #0d1533;

	/* Navy interface family (shared with the jobgetr.ai product surfaces).
	   Header, utility rail, ticker, and the above-the-fold band all sit on
	   these so the page reads as one continuous interface. */
	--jg-navy-900: #0a1830;
	--jg-navy-800: #0d2340;
	--jg-navy-700: #122c52;
	--jg-navy-line: rgba(255, 255, 255, 0.10);
	--jg-on-navy: #ffffff;
	--jg-on-navy-soft: rgba(255, 255, 255, 0.64);
	--jg-live: #e8432b;

	/* Editorial surfaces */
	--jg-paper: #ffffff;
	--jg-paper-alt: var(--light-gray, #f1f4f7);
	--jg-border: var(--light-border, #e4e8ef);
	--jg-gray: var(--base-gray, #717176);

	/* Data states. Restrained financial-market tones; the -dark pair is
	   tuned for contrast on the navy surfaces. */
	--jg-positive: #12864f;
	--jg-negative: #d92d20;
	--jg-positive-dark: #34c98a;
	--jg-negative-dark: #f0645c;
	--jg-warning: #b25e02;

	/* Compact terminal typography for figures. System stacks only. */
	--jg-font-mono: ui-monospace, SFMono-Regular, "SF Mono", "Roboto Mono", Menlo, Consolas, "Liberation Mono", monospace;
}

/* ==========================================================================
   2. JobGetr shell pages
   Scoped to the body class added by the platform plugin so Newspaper articles,
   archives, and the donor page are untouched.
   ========================================================================== */
body.jobgetr-page {
	background-color: var(--jg-paper);
}

/* Newspaper page-builder rows already carry their own backgrounds; keep the
   wrapper transparent so the row colours read correctly. */
body.jobgetr-page .td-main-content-wrap,
body.jobgetr-page .td-container-wrap {
	background-color: transparent;
}

/* The homepage is a page-builder layout: suppress the theme page title and
   breadcrumb block so the composition starts at the ticker, like the donor. */
body.jobgetr-home .td-crumb-container,
body.jobgetr-home .td-page-header {
	display: none;
}

/* ==========================================================================
   3. JobGetr tagDiv header template
   ========================================================================== */
.jobgetr-header-row .tdb-logo-a,
.jobgetr-footer-row .tdb-logo-a {
	text-decoration: none;
	display: inline-block;
}

/* Canonical animated logo: never let it crop or overflow its column. */
.jobgetr-header-row .tdb-logo-img,
.jobgetr-footer-row .tdb-logo-img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* Primary navigation stays on one line from 1200px up. */
.jobgetr-header-main .tdb-header-menu .tdb-menu {
	flex-wrap: nowrap;
	white-space: nowrap;
}

.jobgetr-header-main .tdb-header-menu .tdb-menu > li > a {
	white-space: nowrap;
}

.jobgetr-header-row .tdb-head-search-btn i,
.jobgetr-header-row .tdb-search-icon i {
	color: rgba(255, 255, 255, 0.75);
}

.jobgetr-header-mobile .tdb-mobile-menu-button i {
	color: #fff;
}

/* Top advertising row: Newspaper Ad Box reading the Theme Panel header spot.
   The creative is sized by its own width/height attributes; this only keeps it
   centred, fluid, and labelled. */
.jobgetr-header-ad .td-a-rec {
	margin-bottom: 0;
	text-align: center;
}

.jobgetr-header-ad .td-adspot-title {
	display: block;
	font-size: 9px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.38);
	margin-bottom: 4px;
	text-align: center;
}

.jobgetr-header-ad .td-a-rec img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.jobgetr-header-ad .td-a-rec picture {
	display: block;
}

/* Utility rail: Live, date, time, descriptor on one compact line. The
   column wrapper is the flex container Newspaper generates; its blocks must
   size to their content instead of the theme default. */
.jobgetr-header-utility .wpb_wrapper {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 14px;
}

.jobgetr-header-utility .wpb_wrapper > .td_block_wrap,
.jobgetr-header-mobile .wpb_wrapper > .td_block_wrap {
	width: auto;
	flex: 0 0 auto;
}

.jobgetr-header-utility .td_block_wrap,
.jobgetr-header-utility .tdm-descr {
	margin-bottom: 0;
}

.jobgetr-header-utility .jobgetr-utility-text .tdm-descr {
	line-height: 1;
	white-space: nowrap;
}

.jobgetr-header-utility .tdb_header_date .tdb-head-date-txt {
	font-variant-numeric: tabular-nums;
}

.jg-live {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 700;
	color: var(--jg-on-navy);
}

.jg-live__dot {
	position: relative;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background-color: var(--jg-live);
}

.jg-live__dot::after {
	content: "";
	position: absolute;
	inset: -3px;
	border-radius: 50%;
	background-color: var(--jg-live);
	opacity: 0.45;
	animation: jg-live-ping 1.8s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes jg-live-ping {
	75%,
	100% {
		transform: scale(2);
		opacity: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.jg-live__dot::after {
		animation: none;
		opacity: 0;
	}
}

.jg-clock {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.jg-clock[hidden] {
	display: none;
}

.jg-clock .fa {
	font-size: 11px;
	opacity: 0.8;
}

.jg-utility-sep {
	display: inline-block;
	width: 1px;
	height: 11px;
	margin-right: 12px;
	background-color: rgba(255, 255, 255, 0.22);
	vertical-align: middle;
}

.jg-utility-descr {
	color: rgba(255, 255, 255, 0.5);
}

/* The masthead call to action never wraps onto a second line. */
.jobgetr-header-row .tdm-btn {
	white-space: nowrap;
}

/* Primary navigation. The menu block must fill its flex column: Newspaper's
   "More" pulldown measures the available width from the block itself, and a
   content-sized block would keep collapsing items. */
.jobgetr-header-main .tdb_header_menu,
.jobgetr-header-sticky .tdb_header_menu {
	flex: 1 1 auto;
	width: 100%;
}

/* Primary navigation: keep the seven production items on one line and give
   the dropdown a crisp navy panel. */
.jobgetr-header-main .tdb-header-menu .tdb-menu > li > a .tdb-menu-item-text {
	white-space: nowrap;
}

.jobgetr-header-main .tdb-header-menu .tdb-menu .sub-menu,
.jobgetr-header-sticky .tdb-header-menu .tdb-menu .sub-menu {
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.35);
}

.jobgetr-header-main .tdb-head-search-btn i,
.jobgetr-header-row .tdb-search-icon i {
	color: rgba(255, 255, 255, 0.72);
}

/* News and Data carry longer lists: a two-column dropdown on desktop.
   Newspaper still owns showing, hiding and positioning the panel. */
.jobgetr-header-main .tdb_header_menu .tdb-menu > li.jobgetr-menu-two-col > ul.sub-menu,
.jobgetr-header-sticky .tdb_header_menu .tdb-menu > li.jobgetr-menu-two-col > ul.sub-menu {
	/* Newspaper sets every submenu to its configured width with !important. */
	width: 440px !important;
	columns: 2;
	column-gap: 0;
}

/* Newspaper opens desktop submenus on hover only; open them for keyboard
   focus too, so Tab walks into the links. Its script hides closed panels
   with an inline display:none, hence !important. UAT Phase 08G.1: closed
   panels are also parked at top: -999em, so a focused one opened off
   screen; it now sits under its item, where hover puts it. */
.jobgetr-header-main .tdb_header_menu .tdb-menu > li.menu-item-has-children:focus-within > ul.sub-menu,
.jobgetr-header-sticky .tdb_header_menu .tdb-menu > li.menu-item-has-children:focus-within > ul.sub-menu {
	display: block !important;
	top: 100%;
}

.jobgetr-header-main .tdb_header_menu .tdb-menu .sub-menu a:focus-visible,
.jobgetr-header-sticky .tdb_header_menu .tdb-menu .sub-menu a:focus-visible,
#td-mobile-nav [data-jg-toggle]:focus-visible {
	outline: 2px solid var(--jg-accent);
	outline-offset: -2px;
}

.jobgetr-header-main .tdb_header_menu .tdb-menu > li.jobgetr-menu-two-col > ul.sub-menu > li,
.jobgetr-header-sticky .tdb_header_menu .tdb-menu > li.jobgetr-menu-two-col > ul.sub-menu > li {
	break-inside: avoid;
}

/* Newspaper removes a:focus outlines globally; the header and the homepage
   band restore a visible keyboard focus ring. */
.jobgetr-header-row a:focus-visible,
.jobgetr-header-row button:focus-visible,
.jobgetr-header-row input:focus-visible,
.jobgetr-row--ticker a:focus-visible,
.jobgetr-row--intro a:focus-visible,
.jobgetr-row--lead a:focus-visible,
.jobgetr-row--lead video:focus-visible {
	outline: 2px solid var(--jg-accent);
	outline-offset: 2px;
}

/* UAT Phase 08G.1: the closed slide-out menu. Newspaper only translates it
   off screen (and forces it visible once its script loads), so its links
   stayed in the Tab order. While closed it is hidden - after the slide-out,
   so the animation is unchanged; jobgetr-nav.js also makes it inert. The
   open and close icons are named buttons there. */
html body:not(.td-menu-mob-open-menu) #td-mobile-nav {
	visibility: hidden !important;
	transition: transform 0.5s cubic-bezier(0.79, 0.14, 0.15, 0.86), visibility 0s linear 0.5s;
}

/* Inside the open panel, a collapsed submenu is only squeezed to
   max-height 0, so its links were Tab stops too; hidden after it folds. */
#td-mobile-nav .td-mobile-content li:not(.td-sub-menu-open) > .sub-menu {
	visibility: hidden;
	transition: max-height 0.5s cubic-bezier(0.77, 0, 0.175, 1), opacity 0.5s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s linear 0.5s;
}

.jobgetr-header-row .tdb-mobile-menu-button:focus-visible,
#td-mobile-nav .td-mobile-close [data-jg-button]:focus-visible {
	outline: 2px solid var(--jg-accent);
	outline-offset: 2px;
}

/* UAT Phase 08H.5: the Menu button (normal and sticky mobile header) is an
   inline <span role="button">, so its own box was the 44x17 text line while
   the 44x44 icon inside it took the taps. It now fills its 44x44 block, so
   the button's own box, its hit area and its focus ring are the same 44x44
   square; the icon and the header row are unchanged. */
.jobgetr-header-row .tdb-mobile-menu-button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
}

/* UAT Phase 08H.7 (F6): Newspaper's a:active / a:focus reset (outline: none)
   left the footer, the Premium page content, the role page and articles with
   no visible keyboard focus (the browser ring is removed; only the header and
   the JobGetr surfaces restore one). The same 2px ring, on keyboard focus only:
   the deeper on-brand orange #b84a0a on light surfaces (4.7:1 or more on
   white), the site orange on navy. :where() keeps the scope weightless, so
   these rules only outrank Newspaper's reset (same weight, loaded after it)
   and every existing JobGetr focus style still wins. */
:where(.td-footer-template-wrap, .td_module_wrap, .jg-inst, .jobgetr-route-premium .jobgetr-row, .single-post .tdc-content-wrap, .jobgetr-row--industries-head .tdm-descr, .jobgetr-row--occupations-head .tdm-descr) :is(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid #b84a0a;
	outline-offset: 2px;
}

:where(.td-footer-template-wrap, .jobgetr-row--premium-hero) :is(a, button, input, select, textarea, summary):focus-visible {
	outline-color: #ff6a13;
}

/* Newspaper also strips text inputs (input[type]:focus, outline: 0);
   the role page's lookup field matches that weight and comes later. */
input.jg-inst-lookup__input:focus-visible {
	outline: 2px solid #b84a0a;
	outline-offset: 2px;
}

/* Footer link lists: the block clips at the links' own width, which cut the
   ring off. It shows overflow now and stays its own block formatting context
   (flow-root), so nothing moves. */
.td-footer-template-wrap .td_block_wrap.td_block_list_menu {
	display: flow-root;
	overflow: visible;
}

/* Ad spots: an inline link around a block image has no box to outline, so
   the image carries the ring while its link has keyboard focus. */
.td-a-rec a:focus-visible img {
	outline: 2px solid #b84a0a;
	outline-offset: 2px;
}

.jobgetr-header-ad .td-a-rec a:focus-visible img {
	outline-color: #ff6a13;
}

.td-a-rec a:has(img):focus-visible {
	outline: none;
}

/* Skip to main content: off screen until focused, then a white tab with
   navy text at the top left, above the sticky header. */
.jg-skip-link {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 100000;
	padding: 12px 18px;
	background: #ffffff;
	color: #0b0f18;
	font: 700 15px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	text-decoration: underline;
	transform: translateY(-120%);
}

.jg-skip-link:focus,
.jg-skip-link:focus-visible {
	position: fixed;
	top: 8px;
	left: 8px;
	color: #0b0f18;
	transform: none;
	outline: 3px solid var(--jg-accent);
	outline-offset: 0;
	box-shadow: 0 0 0 6px #0b0f18;
}

.jg-skip-target {
	scroll-margin-top: 104px;
}

.jg-skip-target:focus {
	outline: none;
}

/* ==========================================================================
   4. JobGetr tagDiv footer template
   ========================================================================== */
.jobgetr-footer-row .tdm-descr,
.jobgetr-footer-sub .tdm-descr {
	color: rgba(255, 255, 255, 0.6);
	margin-bottom: 0;
	max-width: 34ch;
}

.jobgetr-footer-sub .tdm-descr {
	max-width: none;
}

.jobgetr-footer-sub .tdm-descr a {
	color: rgba(255, 255, 255, 0.78);
}

.jobgetr-footer-sub .tdm-descr a:hover {
	color: var(--jg-accent);
}

/* Newspaper's list menu carries its own outer margins and a 30px line
   box; the footer columns want a tight, heading-led list instead. */
.jobgetr-footer-row .td_block_list_menu ul {
	margin: 0;
	padding: 0;
}

.jobgetr-footer-row .td_block_list_menu ul li {
	border-bottom: 0;
	margin: 0 0 2px;
}

.jobgetr-footer-row .td_block_list_menu ul li a {
	padding: 3px 0;
	font-size: 13px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.62);
}

.jobgetr-footer-row .tdm_block_column_title .tdm-title {
	margin-bottom: 0;
}

/* The News heading links /news/; it keeps the heading's look. */
.jobgetr-footer-row .tdm-title a.jobgetr-footer-heading-link {
	color: inherit;
}

.jobgetr-footer-row .tdm-title a.jobgetr-footer-heading-link:hover,
.jobgetr-footer-row .tdm-title a.jobgetr-footer-heading-link:focus-visible {
	color: var(--jg-accent);
}

.jobgetr-footer-row .td_block_list_menu ul li a:hover {
	color: var(--jg-accent);
}

/* A product listed before its page exists: WordPress renders the item as
   an anchor without an href, so it reads as a label and takes no hover. */
.jobgetr-footer-row .td_block_list_menu ul li.jobgetr-menu-unlinked a,
.jobgetr-footer-row .td_block_list_menu ul li.jobgetr-menu-unlinked a:hover {
	color: rgba(255, 255, 255, 0.62);
	cursor: default;
}

/* Long product names stay on one line where the column allows and wrap
   cleanly, never mid-word, where it does not. */
.jobgetr-footer-row .td_block_list_menu ul li a {
	overflow-wrap: normal;
	word-break: normal;
}

/* Column headings sit brighter than the links beneath them. */
.jobgetr-footer-row .tdm-title {
	opacity: 1;
}

.jobgetr-footer-row .jobgetr-logo-footer .tdb-logo-img {
	max-width: 176px;
}

.jobgetr-footer-row .jobgetr-footer-brand .tdm-descr {
	max-width: 36ch;
}

/* ==========================================================================
   4b. Homepage navy band (ticker, introduction, lead grid)
   The rows themselves are Newspaper rows with their own backgrounds; these
   rules only keep Newspaper blocks flush and legible on navy.
   ========================================================================== */
.jobgetr-row--intro .td_block_wrap,
.jobgetr-row--lead .td_block_wrap {
	margin-bottom: 0;
}

/* The H1 and its supporting line read as one compact introduction: the
   theme's default title margins (10px above, 26px below) are too generous. */
.jobgetr-row--intro .tdm-title {
	margin: 0 0 8px;
}

.jobgetr-row--intro .tdm-descr {
	max-width: 78ch;
	margin-bottom: 0;
}

/* Column titles on navy: the theme line reads through at low alpha. */
.jobgetr-row--lead .tdm-title-line::after,
.jobgetr-row--lead .tdm-title-line::before {
	opacity: 0.9;
}

/* Hot This Week story modules on navy. */
.jobgetr-row--lead .td_module_flex .td-module-thumb {
	background-color: var(--jg-navy-800);
}

.jobgetr-row--lead .td_module_flex .td-module-meta-info {
	color: var(--jg-on-navy-soft);
}

.jobgetr-row--lead .td_module_flex .td-post-date,
.jobgetr-row--lead .td_module_flex .td-post-author-name {
	color: var(--jg-on-navy-soft);
}

.jobgetr-row--lead .td_module_flex .entry-title a {
	color: var(--jg-on-navy);
}

.jobgetr-row--lead .td_module_flex .entry-title a:hover {
	color: var(--jg-accent);
}

.jobgetr-row--lead .td_module_flex .td-post-category {
	color: var(--jg-accent);
	background-color: transparent;
	padding-left: 0;
	letter-spacing: 0.06em;
}

.jobgetr-row--lead .td_module_flex .td-post-category:hover {
	color: var(--jg-on-navy);
	background-color: transparent;
}

.jobgetr-row--lead .td_module_flex .td-image-wrap {
	background-color: var(--jg-navy-800);
}

/* ==========================================================================
   4c. Homepage navy bands: jobgetr.ai Markets, Premium, Job Economy Dashboard
   Newspaper rows, columns, section titles, pricing and list blocks carry
   the layout; these rules only tune the theme blocks for the navy surface.
   ========================================================================== */
.jobgetr-row--markets-head .td_block_wrap,
.jobgetr-row--markets .td_block_wrap,
.jobgetr-row--premium-head .td_block_wrap,
.jobgetr-row--premium .td_block_wrap,
.jobgetr-row--premium-foot .td_block_wrap,
.jobgetr-row--dashboard-head .td_block_wrap,
.jobgetr-row--dashboard .td_block_wrap,
.jobgetr-row--ad .td_block_wrap {
	margin-bottom: 0;
}

.jobgetr-row--markets-head .tdm-descr a,
.jobgetr-row--dashboard-head .tdm-descr a,
.jobgetr-row--premium-head .tdm-descr a {
	color: var(--jg-accent);
	text-decoration: none;
	font-weight: 700;
}

.jobgetr-row--markets-head .tdm-descr,
.jobgetr-row--dashboard-head .tdm-descr,
.jobgetr-row--premium-head .tdm-descr {
	max-width: 88ch;
}

.jobgetr-row--premium-head .tdm-descr strong {
	color: var(--jg-on-navy);
	font-weight: 700;
}

/* Section title line on navy: keep the theme's accent rule, soften the trail. */
.jobgetr-row--markets-head .td-block-title-wrap .td-block-title::after,
.jobgetr-row--premium-head .td-block-title-wrap .td-block-title::after,
.jobgetr-row--dashboard-head .td-block-title-wrap .td-block-title::after,
.jobgetr-row--atlanta-head .td-block-title-wrap .td-block-title::after {
	opacity: 0.9;
}

/* Markets card columns stretch so every card in a row shares a height. */
.jobgetr-row--markets .wpb_column,
.jobgetr-row--markets .wpb_column > .wpb_wrapper,
.jobgetr-row--premium .wpb_column,
.jobgetr-row--premium .wpb_column > .wpb_wrapper,
.jobgetr-row--dashboard .wpb_column,
.jobgetr-row--dashboard .wpb_column > .wpb_wrapper {
	display: flex;
	flex-direction: column;
}

.jobgetr-row--markets .wpb_column > .wpb_wrapper,
.jobgetr-row--premium .wpb_column > .wpb_wrapper,
.jobgetr-row--dashboard .wpb_column > .wpb_wrapper {
	flex: 1 1 auto;
}

.jobgetr-row--markets .wpb_column > .wpb_wrapper > .td_block_wrap,
.jobgetr-row--premium .wpb_column > .wpb_wrapper > .td_block_wrap,
.jobgetr-row--dashboard .wpb_column > .wpb_wrapper > .td_block_wrap {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
}

/* Bundled-capability list on navy. */
.jobgetr-row--premium-head .tdm_block_list .tdm-list-item {
	font-family: var(--global-font-2, inherit);
	padding-right: 18px;
	box-sizing: border-box;
}

/* The list's column split is not responsive in the block; single column
   on phones. */
@media (max-width: 767px) {
	.jobgetr-row--premium-head .tdm_block_list .tdm-list-item {
		width: 100% !important;
		padding-right: 0;
	}
}

/* Premium tiers: Newspaper pricing block on the navy surface. The block
   keeps its own padding; card surface, border and the Coming Soon badge are
   set here because the block's own ribbon is a rotated corner sash. */
.jobgetr-tier.tdm_block_pricing {
	position: relative;
	height: 100%;
	background-color: var(--jg-navy-900);
	border: 1px solid var(--jg-navy-line);
}

.jobgetr-tier--featured.tdm_block_pricing {
	border-color: var(--jg-accent);
}

.jobgetr-tier .tdm-pricing-wrap {
	height: 100%;
	box-shadow: none;
	background: transparent;
}

.jobgetr-tier .tdm-pricing-header {
	padding: 0 0 12px;
	margin-bottom: 12px;
	border-bottom: 1px solid var(--jg-navy-line);
	background: transparent;
}

.jobgetr-tier .tdm-pricing-price {
	margin-top: 8px;
	color: var(--jg-on-navy);
}

.jobgetr-tier .tdm-pricing-period {
	color: var(--jg-on-navy-soft);
}

.jobgetr-tier .tdm-descr {
	margin-bottom: 12px;
	color: var(--jg-on-navy-soft);
}

.jobgetr-tier .tdm-pricing-features {
	margin: 0;
	padding: 0;
	list-style: none;
}

.jobgetr-tier .tdm-pricing-feature {
	padding: 5px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	color: rgba(255, 255, 255, 0.86);
	font-size: 13px;
	line-height: 1.4;
}

.jobgetr-tier .tdm-pricing-feature:last-child {
	border-bottom: 0;
}

.jobgetr-tier.tds_pricing1_block .tdm-pricing-ribbon-wrap {
	position: absolute !important;
	top: 14px !important;
	right: 14px !important;
	left: auto !important;
	overflow: visible !important;
	width: auto !important;
	height: auto !important;
	pointer-events: none;
}

.jobgetr-tier.tds_pricing1_block .tdm-pricing-ribbon {
	position: static !important;
	transform: none !important;
	width: auto !important;
	padding: 3px 8px !important;
	border-radius: 2px;
	font-size: 10px !important;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1.4 !important;
	text-transform: uppercase;
	text-align: center;
}

.jobgetr-tier--featured .tdm-pricing-wrap {
	background: rgba(255, 122, 26, 0.06);
}

/* Advertisements on navy: the mid-page row, and the Ad Box that closes the
   jobgetr.ai TV column under the briefing copy. Both take the same
   treatment - the creative centred in its column at its own size, under a
   quiet label - so a placement does not look different for sitting in a
   column rather than a row. */
.jobgetr-row--ad .td-a-rec,
.jobgetr-row--lead .jobgetr-ad-box--tv.td-a-rec {
	text-align: center;
	margin-bottom: 0;
}

.jobgetr-row--ad .td-adspot-title,
.jobgetr-row--lead .jobgetr-ad-box--tv .td-adspot-title {
	display: block;
	font-size: 9px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.38);
	margin-bottom: 4px;
}

.jobgetr-row--ad .td-a-rec img,
.jobgetr-row--lead .jobgetr-ad-box--tv.td-a-rec img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

/* ==========================================================================
   4d. Lower homepage: Industries, Occupations, Atlanta, newsroom, ads
   ========================================================================== */
.jobgetr-row--industries-head .td_block_wrap,
.jobgetr-row--industries .td_block_wrap,
.jobgetr-row--occupations-head .td_block_wrap,
.jobgetr-row--occupations .td_block_wrap,
.jobgetr-row--atlanta-head .td_block_wrap,
.jobgetr-row--atlanta .td_block_wrap,
.jobgetr-row--sections .td_block_wrap,
.jobgetr-row--ad-light .td_block_wrap {
	margin-bottom: 0;
}

.jobgetr-row--industries-head .tdm-descr,
.jobgetr-row--occupations-head .tdm-descr,
.jobgetr-row--atlanta .tdm-descr {
	max-width: 92ch;
}

.jobgetr-row--industries-head .tdm-descr a,
.jobgetr-row--occupations-head .tdm-descr a,
.jobgetr-row--atlanta .tdm-descr a,
.jobgetr-rail-entry .tdm-descr a {
	color: var(--jg-accent);
	font-weight: 700;
	text-decoration: none;
}

/* The Atlanta subtitle opens the roles column (UAT Phase 07C). */
.jobgetr-row--atlanta .tdm-descr code {
	font-family: var(--jg-font-mono);
	font-size: 12px;
	background: transparent;
	padding: 0;
	color: inherit;
}

/* Atlanta: the three columns stretch to one height; the Premium preview
   module follows Industry pulse directly at a fixed gap (no bottom
   anchoring, so a taller Pay pulse never opens a gap above it). */
.jobgetr-row--atlanta .wpb_column > .wpb_wrapper > * {
	flex: 0 0 auto;
}

.jobgetr-row--atlanta .wpb_column > .wpb_wrapper > .jg-ranked {
	margin-bottom: 22px;
}

.jobgetr-row--atlanta .wpb_column > .wpb_wrapper > .jg-prem--full {
	margin-top: 0;
}

/* Premium band: the masthead columns centre on the rule; the pitch/tool
   row keeps its blocks flush. */
.jobgetr-row--premium-head .td_block_wrap,
.jobgetr-row--premium-body .td_block_wrap,
.jobgetr-row--premium-foot .td_block_wrap,
.jobgetr-row--premium-hero .td_block_wrap,
.jobgetr-row--premium-compare .td_block_wrap,
.jobgetr-row--premium-explore .td_block_wrap {
	margin-bottom: 0;
}

.jobgetr-row--premium-head .td-block-title-wrap .td-block-title::after,
.jobgetr-row--premium-hero .td-block-title-wrap .td-block-title::after {
	opacity: 0.9;
}

.jobgetr-row--premium-hero .tdm-descr strong {
	color: var(--jg-accent);
}

.jobgetr-row--premium-compare .tdm-descr {
	max-width: none;
}

.jobgetr-row--premium-explore .tdm-descr a {
	color: var(--jg-accent);
	font-weight: 700;
	text-decoration: none;
}

/* Market terminals: the panel column and the table column start at the
   same top edge; the table dominates the width. */
.jobgetr-row--terminal .td_block_wrap {
	margin-bottom: 0;
}

.jobgetr-row--terminal .wpb_column > .wpb_wrapper > .td_block_wrap {
	display: block;
}

/* Newsroom story blocks fed by a category or tag hide themselves while
   that category has nothing published, so no block needs editing when
   stories arrive. */
.jobgetr-row--stories .td_block_wrap.tdc-no-posts {
	display: none;
}

/* Stories 2 hides its heading too when the feed has run out. */
.tdc-row:has(+ .tdc-row > .jobgetr-row--stories-two .td_block_wrap.tdc-no-posts),
.tdc-row:has(> .jobgetr-row--stories-two .td_block_wrap.tdc-no-posts) {
	display: none;
}

/* Stories 1 and 2 show no heading: the title stays in the outline for
   screen readers, and the accent rule runs across the full content width. */
.jobgetr-row--stories-one-head .td-block-title > span,
.jobgetr-row--stories-two-head .td-block-title > span {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0 !important;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.jobgetr-row--stories-one-head .td-block-title::after,
.jobgetr-row--stories-two-head .td-block-title::after {
	content: "";
	display: block;
	height: 4px;
	background-color: var(--jg-accent, #ff6a13);
}

/* Six compact stories beside the live surface: tight rows, small thumbs. */
.jobgetr-row--lead .jobgetr-lead-six .td_module_flex .td-module-container {
	padding-bottom: 0;
}

.jobgetr-row--lead .jobgetr-lead-six .td_module_flex .entry-title {
	margin-bottom: 0;
}

/* Square Ad Box under the occupation comparison panel. */
.jobgetr-row--occupations .jobgetr-ad-box--panel .td-a-rec {
	text-align: center;
	margin-bottom: 0;
}

.jobgetr-row--occupations .jobgetr-ad-box--panel .td-adspot-title {
	display: block;
	font-size: 9px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--jg-gray);
	margin-bottom: 4px;
}

.jobgetr-row--occupations .jobgetr-ad-box--panel .td-a-rec img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.jobgetr-row--picks .td_block_wrap {
	margin-bottom: 0;
}

/* Newsroom (Stories 1): the centre list panel and the 2x2 grid. */
.jobgetr-row--stories-one .tdm_block_column_title .tdm-title {
	margin-bottom: 0;
}

.jobgetr-row--stories-one .jobgetr-stories-list .td_module_flex .td-module-container {
	padding-bottom: 0;
}

.jobgetr-row--stories-one .jobgetr-stories-list .entry-title,
.jobgetr-row--stories-one .jobgetr-stories-stack .entry-title {
	margin-bottom: 0;
}

/* Stories 2: category columns - lead story, thumbnail list, text links. */
.jobgetr-row--stories-two .jobgetr-story-column-lead .td-module-container,
.jobgetr-row--stories-two .jobgetr-story-column-links .td-module-container {
	padding-bottom: 0;
}

.jobgetr-row--stories-two .jobgetr-story-column-links .entry-title {
	margin-bottom: 0;
}


.jobgetr-row--stories .td_block_wrap {
	margin-bottom: 0;
}

/* Stories 1: secondary stories sit beside the lead as one compact module. */
.jobgetr-row--stories-one .td_module_flex .entry-title {
	margin-bottom: 0;
}

.jobgetr-rail-entry .tdm-descr strong {
	display: block;
	margin-bottom: 4px;
	font-size: 14px;
	color: var(--jg-navy);
}

.jobgetr-rail-entry .tdm-descr strong + br {
	display: none;
}

.jobgetr-ad-box--editorial .td-a-rec,
.jobgetr-ad-box--rail .td-a-rec {
	text-align: center;
	margin-bottom: 0;
}

.jobgetr-ad-box--editorial .td-adspot-title,
.jobgetr-ad-box--rail .td-adspot-title {
	display: block;
	font-size: 9px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--jg-gray);
	margin-bottom: 4px;
}

.jobgetr-ad-box--editorial .td-a-rec img,
.jobgetr-ad-box--rail .td-a-rec img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.jobgetr-row--ad-light .td-pb-row {
	border-top: 1px solid var(--jg-border);
	border-bottom: 1px solid var(--jg-border);
}

/* ==========================================================================
   5. Homepage row accents
   Small adjustments to Newspaper blocks inside JobGetr rows. Layout, spacing,
   and responsive behaviour remain the theme's.
   ========================================================================== */
.jobgetr-row--ticker .td_block_wrap {
	margin-bottom: 0;
}

/* Dark employer band: keep Newspaper blocks flush inside it. */
.jobgetr-row--employer .td_block_wrap {
	margin-bottom: 0;
}

/* Header utility bar: tighten the tagDiv menu inside the thin top strip. */
.jobgetr-header-utility .tdb-header-menu .tdb-menu > li > a {
	line-height: 1;
}

/* ==========================================================================
   6. Route shell pages
   ========================================================================== */
body.jobgetr-page .jg-route {
	padding-bottom: 8px;
}

@media (max-width: 1018px) {
	/* Tablet portrait: the descriptor gives way to the essentials. */
	.jobgetr-header-utility .jobgetr-utility-descr {
		display: none;
	}
}

@media (max-width: 767px) {
	.jobgetr-header-utility .tdc-column {
		gap: 4px 12px;
	}

	.jobgetr-header-utility .jobgetr-utility-text .tdm-descr,
	.jobgetr-header-utility .tdb-head-date-txt {
		font-size: 10.5px;
	}

	/* Phone masthead: hamburger at the left, the logo centred in the rest of
	   the row (offset by the button's width so it sits on the true centre). */
	.jobgetr-header-mobile .tdb-logo-img,
	.jobgetr-logo-mobile .tdb-logo-img {
		max-width: 122px;
	}

	.jobgetr-header-mobile .wpb_wrapper > .jobgetr-logo-mobile {
		flex: 1 1 auto;
		padding-right: 44px;
	}

	.jobgetr-header-mobile .jobgetr-logo-mobile .tdb-logo-a {
		justify-content: center;
	}

	/* Narrow phones (390px class): keep the logo inside the viewport. */
	@media (max-width: 400px) {
		.jobgetr-header-mobile .tdb-logo-img,
		.jobgetr-logo-mobile .tdb-logo-img {
			max-width: 104px;
		}
	}

	.jobgetr-footer-row .td_block_list_menu ul li a {
		padding-top: 6px;
		padding-bottom: 6px;
	}

	body.jobgetr-page .jg-route__actions .jg-btn {
		flex: 1 1 100%;
	}
}


/* ==========================================================================
   Single article - space beneath the global header
   ========================================================================== */

/* The tagDiv single-post template opens its content wrap flush against the
   header template above it: every level from the content wrap down to the
   category row carries a zero top margin and padding, so the first thing a
   reader meets - the category and read time - begins in the same pixel the
   navigation ends. The article reads as part of the chrome rather than as
   its own page.

   The space goes on the content wrap, which is the one element that holds
   both the article column and its right rail, so the article header and
   the sidebar move together and stay on the same line. The header
   advertisement sits above this wrap, inside the header template, and is
   deliberately left where it is.

   Scoped to body.single-post: WordPress sets that class on every single
   post whichever tagDiv template renders it, so a second article template
   would inherit this without being named here. No jobgetr surface carries
   it - the homepage, Markets, Roles and Occupations are all pages - so
   none of them is touched. */
body.single-post .td-main-content-wrap {
	padding-top: 28px;
}

@media (max-width: 1018px) {
	body.single-post .td-main-content-wrap {
		padding-top: 24px;
	}
}

@media (max-width: 767px) {
	body.single-post .td-main-content-wrap {
		padding-top: 18px;
	}
}
