/*
TABLE OF CONTENTS

1. Design Tokens
2. WordPress / WPBakery Global Resets
3. Global Layout and Backgrounds
4. Global Typography
5. Global Utilities
6. Buttons and Links
7. Lists, Labels, and Status Elements
8. Shared Grid Foundation
9. Grid Variants
10. Global Components
11. Page-Specific Styles
12. Footer

*/


/* ==================================================
   1. DESIGN TOKENS
   ================================================== */

:root {

	/* ---------- FONT SIZES ---------- */

  /* Smallest notes / captions -- 10px → 12px */
	--fs-xxs: clamp(0.625rem, 0.54rem + 0.25vw, 0.75rem);
	
	/* Smallest supporting text -- 11px → 13px */
  --fs-xs:  clamp(0.6875rem, 0.61rem + 0.28vw, 0.8125rem); 

  /*  Small UI text -- 12px → 14px */
  --fs-sm: clamp(0.75rem, 0.68rem + 0.30vw, 0.875rem);
	
  /* Primary UI / nav / button text -- 15px → 16px */
  --fs-normal: clamp(0.9375rem, 0.92rem + 0.18vw, 1rem);
	
	/* 13px → 16px */
  --fs-base:   clamp(0.8125rem, 0.74rem + 0.35vw, 1rem);   

	
  /* Slightly larger emphasis text -- 15px → 19px */
  --fs-md: clamp(0.9375rem, 0.96rem + 0.45vw, 1.1875rem);
	
	/* 16px → 28px */
  --fs-lg: clamp(1rem, 1.05rem + 0.85vw, 1.75rem);         

	
  /* ----- Headings ----- */
	
	/* H2-alt 28px → 36px */
  --fs-xl:  clamp(1.75rem, 1.85rem + 0.35vw, 2.25rem);
	
	/* H2 36px → 40px */
  --fs-2xl: clamp(2.25rem, 2.35rem + 0.20vw, 2.5rem);
	
	/* H1 40px → 58px */
  --fs-3xl: clamp(2.5rem, 2.8rem + 0.90vw, 3.625rem);      

	
/* ---------- SPACING ---------- */
	
	/* 0   */
	--space-0:   clamp(0rem, 0rem, 0rem);
	
	/* 4px */
	--space-xxs: clamp(0.25rem, 0.19rem + 0.15vw, 0.33rem);  

	/* 8px */
	--space-xs: clamp(0.5rem,  0.44rem + 0.18vw, 0.63rem);  
	
	/* 12px */
	--space-sm:  clamp(0.75rem, 0.69rem + 0.22vw, 0.81rem);  

	/* 16px */
	--space-d:   clamp(1rem,   0.90rem + 0.26vw, 1.06rem);   
	--space-default: var(--space-d);
	
	/* 20px */
	--space-md:  clamp(1.25rem,1.11rem + 0.30vw, 1.31rem);
	
	/* 24px */
	--space-lg:  clamp(1.5rem, 1.33rem + 0.34vw, 1.56rem);
	
	/* 28px */
	--space-xl:  clamp(1.75rem,1.56rem + 0.38vw, 1.81rem);
	
	/* 32px */
	--space-2xl: clamp(2rem,   1.78rem + 0.42vw, 2.06rem);
	
	/* 40px */
	--space-3xl: clamp(2.5rem, 2.22rem + 0.47vw, 2.63rem);
	
	/* 48px */
	--space-4xl: clamp(3rem,   2.75rem + 0.52vw, 3.13rem);
	
	/* 56px */
	--space-5xl: clamp(3.5rem, 3.20rem + 0.58vw, 3.63rem);
	
	/* 64px */
	--space-6xl: clamp(4rem,   3.65rem + 0.63vw, 4.13rem); 
	
	/* 72px */
	--space-7xl: clamp(4.5rem, 4.12rem + 0.68vw, 4.63rem);
	
	/* 80px */
	--space-8xl: clamp(5rem,   4.55rem + 0.73vw, 5.13rem);
	
	/* 88px */
	--space-9xl: clamp(5.5rem, 5.00rem + 0.78vw, 5.63rem);   

	
/* ---------- GRADIENTS ---------- */
	--jh-linear-gradient: linear-gradient(to left top, var(--background-warm), var(--background-page), var(--text-on-dark));

	
/* ---------- FONT FAMILIES AND SHORTHANDS ---------- */
  --fonts-main: "DM Sans", sans-serif;
  --fonts-special: "DM Sans", sans-serif !important;
	--fonts-headers: "Bebas Neue", sans-serif !important;
	
	
	--gold-bar: 6px solid var(--brand-secondary);
	
}

/* ==================================================
   2. WORDPRESS / WPBAKERY GLOBAL RESETS
   ================================================== */

/* ---------- MAIN TITLE ---------- */

.main-title a {
	text-transform: uppercase !important;

	&:hover {
		color: var(--brand-secondary) !important;
	}
}


/* ---------- SINGLE IMAGES ---------- */

/* Remove WPBakery's default bottom margin */
.wpb_single_image {
	margin-bottom: 0 !important;
}


/* ---------- SEPARATORS ---------- */

.vc_separator .vc_sep_holder .vc_sep_line {
	border-color: var(--border-light);
}


/* ---------- BASE BUTTON RESET ---------- */

/*
Only affects WPBakery buttons inside an element carrying .jh-button.
Variant colors and hover states remain in Section 6.
*/
.jh-button:has(.vc_btn3),
.jh-button.vc_do_btn {
	border: 1px solid transparent;
	margin-bottom: var(--space-0);
	margin-inline-end: var(--space-sm) !important;
	padding: 0 !important;

	a {
		background-image: none;
		border: 1px solid transparent;
		padding-block: var(--space-sm);
		padding-inline: var(--space-xl);
		border-radius: 0 !important;
	}
}

/* ---------- WPBAKERY TABS ---------- */

.vc_tta-tabs .vc_tta-panel-body {
	background-color: var(--background-warm) !important;
}

.vc_tta-tabs-list {
	border-bottom: 1px solid var(--border-light);
}

.vc_tta-tab.vc_active {
	border-bottom: 3px solid var(--brand-secondary);
	color: var(--brand-primary);
	font-weight: var(--semibold);
}

/* ==================================================
   3. GLOBAL LAYOUT AND BACKGROUNDS
   ================================================== */

/* ---------- PAGE SECTIONS ---------- */

.section__full-page {
	background-color: var(--background-warm);
/* 	padding-block: var(--space-2xl); */
	padding-inline: var(--space-xl);
}

.section__block {
	background-color: transparent;
	padding: var(--space-default);
}


/* ---------- AOTW CONTENT BLOCKS ---------- */

/* Use on WPBakery rows with classes beginning with aotw-block-- */
.vc_row[class*="aotw-block"] > .wpb_column,
[class*="aotw-block"] > .vc_row > .wpb_column {
	box-sizing: border-box;
	margin-inline: auto;
	padding-block: var(--space-4xl) !important;
	padding-inline: var(--space-4xl);
	
	@media (width < 1024px) {
		padding-inline: var(--space-lg) !important;
		padding-block: var(--space-xl) !important;
	}
}

/* ---------- AOTW SECTION LAYOUT ---------- */

.vc_section[class*="aotw-block"] {
	padding-block: var(--space-4xl);
}

.vc_section[class*="aotw-block"] > .vc_row {
	margin-inline: auto;
	max-width: 1400px;
	width: 100%;
}

.vc_section[class*="aotw-block"] > .vc_row > .wpb_column {
	padding-block: 0 !important;
}


.aotw-block--default {
	background-color: var(--background-warm);
}

.aotw-block--light {
	background-color: var(--background-page);
	color: currentColor;

	.keyword-list li {
		background-color: var(--background-warm);
		border-color: var(--border-default);
	}
}

.aotw-block--dark {
	background-color: var(--brand-primary);
	color: var(--text-on-dark);
}

/* ---------- BARE CONTENT LINKS ---------- */

.aotw-block--light :where(p, li) > a:not(.vc_btn3),
.aotw-block--default :where(p, li) > a:not(.vc_btn3) {
	color: var(--brand-primary);
	text-decoration: underline;
	text-decoration-color: var(--brand-secondary);
	text-underline-offset: 0.18em;

	&:hover,
	&:focus-visible {
		color: var(--brand-secondary);
	}
}


/* ---------- ALIGNMENT UTILITIES ---------- */

.margin-auto,
.margin-auto .wpb_wrapper iframe {
	margin-inline: auto !important;
}


/* ---------- WIDTH UTILITIES ---------- */

.max-width__860px > .vc_column-inner {
	margin-block: var(--space-xl);
	margin-inline: auto;
	max-width: 860px;
}

/* ==================================================
   4. GLOBAL TYPOGRAPHY
   ================================================== */

/* ---------- TEXT COLORS ---------- */

.text-color__brand-primary {
	color: var(--brand-primary) !important;
}

.text-color__brand-secondary {
	color: var(--brand-secondary) !important;
}

.promo-text,
.highlight {
	color: var(--brand-secondary);
}


/* ---------- TEXT STYLES ---------- */

.text-style__all-caps {
	text-transform: uppercase;
}

.text__fine-print {
	color: var(--text-muted);
	font-size: var(--fs-xs);
	p {
		margin-top: var(--space-xs);
	}
	
	@media (width < 900px) {
		text-align: center;
	}
}


/* ---------- DECORATIVE TEXT ---------- */

.arrows__brand-secondary {
	font-size: var(--fs-sm);

	em {
		color: var(--brand-secondary) !important;
		padding-inline-end: var(--space-xs);
	}
}

.content-title {
	color: currentColor;
	margin-bottom: var(--space-xs);

	em {
		color: var(--brand-secondary);
		font-style: normal;
	}
}

.resource-list__title {
	color: var(--brand-primary);
	font-size: var(--fs-md);
	font-weight: var(--semibold);
	margin-bottom: var(--space-md)
}


/* ---------- EYEBROWS ---------- */

.eyebrow {
	margin-bottom: var(--space-sm);
}

.eyebrow :is(p, h1, h2, h3),
h2.eyebrow {
	align-items: center;
	color: var(--brand-secondary);
	display: flex;
	font-size: var(--fs-xs);
	font-weight: 600;
	gap: var(--space-xs);
	letter-spacing: 0.12em;
	margin-bottom: var(--space-d);
	position: relative;
	text-transform: uppercase;

	&::before {
		background-color: var(--brand-secondary);
		content: "";
		display: inline-block;
		flex-shrink: 0;
		height: 2px;
		width: var(--space-xl);
	}
}

.text-width--reading {
	max-width: 55ch;
}

/* ==================================================
   5. GLOBAL UTILITIES
   ================================================== */

/* ---------- GOLD BARS ---------- */

[class*="gold-bar-"] :is(figure, p) {
	border-inline: var(--gold-bar);
}

.gold-bar-left :is(figure, p) {
	border-inline-end: 0;
}

.gold-bar-right :is(figure, p) {
	border-inline-start: 0;
}

.gold-bar-bottom :is(figure, p, .wpb_video_wrapper) {
	border-bottom: var(--gold-bar);
}


/* ---------- STRETCHED LINKS ---------- */

.stretch-link {
	position: relative;
}

.stretch-link a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.stretch-link a:focus-visible::after {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.stretch-link a:is(:hover, :focus) {
	outline: none;
}


/* ---------- COLOR HEADERS ---------- */

[class$="color-header"] {
	text-transform: uppercase;
}

.color-accent-blue {
	background-color: var(--series-blue);
	color: var(--series-blue-text);
}

.color-accent-green {
	background-color: var(--series-green);
	color: var(--series-green-text);
}


/* ---------- PHOTO CREDITS ---------- */

.photo-credit > .wpb_wrapper {
	color: var(--text-hint);
	display: flex;
	font-family: var(--fonts-main);
	font-weight: var(--semibold);
	justify-content: flex-end;
	padding-inline-start: var(--space-lg);
}


/* ---------- IMAGE SIZES ---------- */

.image-max-350 figure img {
	height: auto;
	max-width: 350px !important;
	width: 100%;
}

.author-photo {
	margin-bottom: var(--space-2xl) !important;
}

/* ==================================================
   KEYBOARD FOCUS
   Appears for keyboard navigation, not normal clicks
   ================================================== */

:where(
	a,
	button,
	input,
	select,
	textarea,
	[tabindex]:not([tabindex="-1"])
):focus-visible {
	outline: 3px solid var(--brand-secondary) !important;
	outline-offset: 3px;
}


/* WPBakery buttons sometimes place focus on the inner anchor */

.vc_btn3:focus-visible {
	outline: 3px solid var(--brand-secondary) !important;
	outline-offset: 3px;
}


/* Full-card links: outline the visible card rather than a hidden link */

.also-book__card:has(a:focus-visible),
.stretch-link:has(a:focus-visible) {
	outline: 3px solid var(--brand-secondary);
	outline-offset: 3px;
}


/*
Prevent the stretched pseudo-link from drawing a second,
misplaced outline.
*/
.stretch-link a:focus-visible::after {
	outline: none;
}

/* ==================================================
   6. BUTTONS AND LINKS
   ================================================== */

/* ---------- BASE BUTTON RESET ---------- */

.jh-button__link {
	margin-top: auto;
}

:is(
	.button__primary,
	.button__primary-inverted
).vc_do_btn {
	margin: var(--space-0);
}

:is(
	.button__primary,
	.button__primary-inverted
) a.vc_btn3-icon-right {
	padding-right: var(--space-4xl) !important;
}


/* ---------- TEXT LINK BUTTON ---------- */

.jh-button__link.vc_do_btn a.vc_btn3 {
	background-color: transparent !important;
	color: var(--brand-secondary) !important;
	font-weight: var(--semibold);
	padding-left: 0;
	text-transform: uppercase;
	transition: translate 0.2s ease-in-out;

	&:hover {
		background-color: unset;
		text-decoration: underline;

		i {
			transform: translate(3px, -7px);
		}
	}
}

.jh-button__link.jh-button__text-only a {
	border-color: transparent !important;
}

.series-cards .jh-button__link {
	margin-top: auto !important;
}


/* ---------- PRIMARY BUTTON ---------- */

.button__primary a {
	background-color: var(--brand-primary) !important;
	color: var(--brand-secondary) !important;

	&:hover {
		background-color: var(--background-off-black) !important;
	}
}


/* ---------- INVERTED PRIMARY BUTTON ---------- */

.button__primary-inverted a {
	background-color: var(--brand-secondary) !important;
	color: var(--brand-primary) !important;

	&:hover {
		background-color: var(--brand-primary) !important;
		color: var(--brand-secondary) !important;
	}
}


/* ---------- SECONDARY BUTTON ---------- */

.button__secondary a,
.button__secondary.vc_btn3-container a[color] {
	background-color: transparent !important;
	border: 1px solid var(--brand-primary) !important;
		
	&:hover {
		background-color: var(--brand-secondary) !important;
		color: var(--brand-primary) !important;
	}
}


.aotw-block--dark .button__secondary a {
	border-color: var(--brand-secondary) !important;
	color: var(--brand-secondary) !important;

	&:hover {
		background-color: #2226 !important;
		box-shadow: 0 0 16px -5px #000;
	}
}


/* ---------- DOWNLOAD BUTTON ---------- */

.download-button.jh-button.button__secondary a {
	color: var(--brand-secondary) !important;
}

/* ---------- BUTTON GROUP ---------- */

.jh-button-group > .wpb_column > .vc_column-inner > .wpb_wrapper,

.jh-button-group .vc_btn3-container {
	display: inline;
	margin: 0;
	margin-right: var(--space-sm);
}

.aotw-cta .jh-button-group .vc_column-inner .wpb_wrapper {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 1em !important;
}

@media (width < 900px) {
	
	.jh-button-group {
		margin-block: var(--space-sm);
	}

	.jh-button-group .vc_btn3-container + .vc_btn3-container a {
		margin-top: var(--space-sm) !important;
	}
	
	.aotw-cta .jh-button-group .vc_column-inner > .wpb_wrapper
	.vc_btn3-container + .vc_btn3-container a {
		margin-top: var(--space-0) !important;
	}
}

@media (width >= 600px) and (width < 900px) {
		.aotw-cta .jh-button-group .vc_column-inner > .wpb_wrapper  {
		flex-direction: row !important;
		justify-content: center;
	}
}

@media (width < 600px) {
		.aotw-cta .jh-button-group .vc_column-inner > .wpb_wrapper  {
		justify-content: center;
		align-items: center;
			
		.vc_btn3-container + .vc_btn3-container a {
			margin-top: var(--space-0) !important;
		}
	}
}


/* ==================================================
   7. LISTS, LABELS, AND STATUS ELEMENTS
   ================================================== */

/* ---------- BASE LIST ---------- */

.aotw-list ul {
	color: var(--text-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--fs-normal);
	gap: var(--space-xs);
	list-style: none;
	margin: 0;
	padding: 0;
}

.aotw-list li {
	padding-block: var(--space-xxs);
	padding-inline: var(--space-d);
	position: relative;
	text-wrap: nowrap;
}

.aotw-list li:has(a) a::after {
	content: "";
	inset: 0;
	position: absolute;
}


/* ---------- BOXED LIST ---------- */

.list-boxes li {
	background-color: var(--background-page);
	border: 1px solid var(--border-light);

	&:hover:has(a) {
		border-color: var(--brand-secondary);
	}
}


/* ---------- KEYWORD LIST ---------- */

.keyword-list {
	padding-bottom: var(--space-2xl);

	ul li {
		background-color: var(--background-page);
		border: 1px solid var(--border-light);
		color: var(--text-on-light);
		font-size: var(--fs-xs);
		font-weight: var(--semibold);
		letter-spacing: 0.1em;
		padding-block: var(--space-xs);
		padding-inline: var(--space-md);
		text-transform: uppercase;
		text-wrap: nowrap;
	}

	li:hover:has(a) {
		border-color: var(--brand-secondary);
	}
}


/* ---------- STATUS LABELS ---------- */

[class*="jh-status"] {
	--status-color: currentColor;
	border: 1px solid var(--status-color);
	color: var(--status-color);

	display: inline-block;
	font-size: var(--fs-xxs, 10px);
	font-weight: 600;
	letter-spacing: 0.14em;
	margin-bottom: 10px;
	padding: 3px 9px;
	text-transform: uppercase;
}

.jh-status--archived {
	--status-color: var(--text-hint);
}

.jh-status--new {
	--status-color: var(--series-rose);
}

.jh-status--updated {
	--status-color: var(--series-purple-text);
}

.jh-status--important {
	--status-color: var(--wp--preset--color--vivid-red);
}

/* ==================================================
   8. SHARED GRID FOUNDATION
   ================================================== */

/* Grids */
:is(
.jh-grid--compact, 
.jh-grid--accent, 
.jh-grid--feature, 
.jh-grid--media
) {
	display: grid;
	gap: var(--space-xxs);
	grid-template-columns: repeat(3, 1fr);
	padding-bottom: var(--space-3xl);
	
	&::before,
	&::after {
		display: none;
	}
	
	@media (width < 900px) {
		grid-template-columns: 1fr;
		
		[class*="__card"] {
			justify-self: center;
		}
		
	}
}


/* ==================================================
   9. GRID VARIANTS
   ================================================== */

.jh-grid--compact {
	counter-reset: small-grid;
	gap: var(--space-lg);
/* 	Example is Stats Grid on Homepage */
	grid-template-columns: repeat(2, 1fr);

	@media (width < 600px) {
		grid-template-columns: 1fr;
		}
}

.jh-grid--compact__card {
	background-color: var(--background-warm);
	border-left: var(--gold-bar);
	padding-block: var(--space-d);
	padding-inline: var(--space-sm);
	
	&::before {
		counter-increment: small-grid;
	}
	.jh-grid--compact__number {
		font-size: var(--fs-xl);
		font-weight: var(--semibold);
	}
	.jh-grid--compact__label {
		color: var(--text-hint);
		text-transform: uppercase;
	}
}

.jh-grid--accent {
	counter-reset: medium-grid;
/* 	Example is Services Grid on homepage */
	gap: var(--space-lg);
}

.jh-grid--accent__card {
	background-color: var(--background-page);
	border-color: transparent;
	border-top: var(--gold-bar);
	counter-increment: medium-grid;
	padding: var(--space-d);
	
	.invert-bkg & {
		background-color: var(--background-warm);
	}
	
	&:hover {
		border-top: var(--gold-bar);
	}
	&::before {
	color: var(--brand-secondary);
	content: counter(medium-grid, decimal-leading-zero);
	font-size: var(--fs-xs);
	font-weight: var(--semibold);
	padding-bottom: var(--space-xs);
	padding-inline: var(--space-sm);
	position: absolute;
	top: var(--space-sm);
		
	}
}

.jh-grid--accent__card > .vc_column-inner {
	height: 100%;
	padding-top: var(--space-xl);
}

.jh-grid--accent__card > .vc_column-inner > .wpb_wrapper {
		display: flex;
		flex-direction: column;
		height: 100%;
	}

.jh-grid--accent__title {
	font-size: var(--fs-md);
	font-weight: var(--semibold);
	margin-bottom: var(--space-xs);
}

.jh-grid--accent__content {
	color: var(--text-on-light);
	font-size: var(--fs-normal);
	margin-bottom: var(--space-xs);
}

.jh-grid--compact__number,
.jh-grid--compact__label {
	margin-bottom: 0 !important;
}
.jh-grid--feature {
/* 	Example is Book Grid on Homepage */
	counter-reset: large-grid;
	
}

.jh-grid--feature__card {
	background-color: transparent;
	border: 1px solid var(--border-dark);
	max-width: 80vw;
	padding: var(--space-3xl);
	position: relative;
	transition: border-color .25s;
	
	&:hover {
		border-color: var(--brand-secondary);
	}
	&.vc_column_container > .vc_column-inner {
		padding: var(--space-0) !important;
		}
}

.series-cards .jh-grid--feature__card>.vc_column-inner {
	height: 100%;
}

.series-cards .jh-grid--feature__card>.vc_column-inner>.wpb_wrapper {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	height: 100%;
	}

.jh-grid--feature__image img {
	height: 260px;
	margin-bottom: var(--space-xl);
  object-fit: cover;
	width: auto;
}

.jh-grid--feature__color-header {
	align-items: center;
	align-self: stretch;
	display: flex;
	height: calc(var(--space-2xl) * 4);
	justify-content: center;
	margin: calc( var(--series-card-space, var(--space-5xl)) * -1);
	margin-bottom: var(--series-card-space, var(--space-lg));
	margin-top: calc(var(--series-card-space, var(--space-3xl)) * -1);
	padding-block: var(--series-card-space, var(--space-5xl));
	padding-inline: var(--series-card-space, var(--space-3xl));
	
	h3 {
		font-size: inherit;
	}
}

.jh-grid--feature__tag {
	color: var(--brand-secondary);
	font-size: var(--fs-sm);
	font-weight: var(--semibold);
	letter-spacing: 0.16em;
	margin-bottom: var(--space-sm);
	text-transform: uppercase;
}

.jh-grid--feature__title :is(a, p) {
	color: var(--text-on-dark);
	font-size: var(--fs-md);
	font-weight: var(--semibold);
	line-height: 1.3;
	margin-bottom: var(--space-sm);
	
	&:hover {
		color: var(--brand-secondary);
	}
}

.jh-grid--feature__title h3 {
	line-height: .5em;
	padding-bottom: .4em;
}

.series-cards .jh-grid--feature__title :is(a,p) {
	color: var(--brand-secondary) !important;
	padding-bottom: var(--space-xs);
	padding-top: var(--space-sm);
	&:hover {
		color: var(--brand-primary) !important;
	}
}

.jh-grid--feature__content {
	color: var(--text-hint);
}

/* Keep semantic headings inside feature tags visually identical to the original plain-text labels */

.jh-grid--feature__tag h3 {
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	margin: 0;
	text-transform: inherit;
}

.jh-grid--media {
	
}

.jh-grid--media__item {
	
	background-color: var(--background-warm);
	padding-block: var(--space-sm);
	
	& .jh-button .vc_btn3-size-xs {
		margin-top: auto;
		padding-block: var(--space-xs);
		padding-inline: var(--space-sm);
		
		text-transform: uppercase;
		
	}
	
	& > .vc_column-inner {
		height: 100%;
	}
	
	& > .vc_column-inner > .wpb_wrapper {
		
		display: flex;
		flex-direction: column;
		height: 100%;
		
	}

}

.jh-grid--media__player {
	margin-bottom: var(--space-0) ;
	padding-bottom: var(--space-xs);
}

.jh-grid--media__image {
	padding-bottom: var(--space-xs);
	
	img {
		aspect-ratio: 16/9;
		object-fit: fill;
		width: 100%;
	}
}

#services .jh-grid--accent {
	counter-reset: services;
	
}

#services .jh-grid--accent .jh-grid--accent__card {
	counter-increment: services;
	
}

#services .jh-grid--accent .jh-grid--accent__card::before {
	content: counter(services, decimal-leading-zero);
}

#about .jh-grid--accent {
	gap: var(--space-xxs);
}

#book-trailer .jh-grid--media {
	grid-template-columns: repeat(2, 1fr) !important;
	.jh-grid--media__item {
		background-color: var(--brand-primary);
	}
	
	@media (width < 900px) {
		grid-template-columns: 1fr !important;
		padding-inline: var(--space-lg);
	}
}

.series-cards {
	--series-card-space: var(--space-md);

	.jh-grid--feature__card  {
		background-color: var(--background-page);
		border-color: var(--border-light);
		padding: var(--series-card-space);
	}

}


.jh-grid--accent.jh-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.jh-grid--compact.jh-grid--info .jh-grid--compact__card {
	background-color: var(--background-page);
	border-left: var(--gold-bar);
}


/* The info cards aren't stats, so don't generate stat numbering */

.jh-grid--compact.jh-grid--info {
	counter-reset: none;
}

.jh-grid--compact.jh-grid--info .jh-grid--compact__card::before {
	content: none;
}


@media (width < 900px) {

	.referral-list ul,
	.jh-grid--accent.jh-grid--4 {
		grid-template-columns: 1fr;
	}
}

/* ==================================================
   10. GLOBAL COMPONENTS
   ================================================== */



/* ==================================================
   SITE HEADER
   GenerateBlocks Site Header Element
   ================================================== */


/* ---------- HEADER SHELL ---------- */

.jh-site-header {
	align-items: center;
	background-color: var(--background-page);
	border-bottom: 1px solid var(--border-light);
	display: flex;
	gap: var(--space-xl);
	justify-content: space-between;
	margin: 0;
	max-width: none;
	min-height: 72px;
	min-width: 0;
	padding-inline: var(--space-3xl);
	position: relative;
	width: 100%;
	z-index: 1000;
}


/* GenerateBlocks sticky state */

.jh-site-header.gb-is-sticky {
	background-color: var(--background-page);
	box-shadow: 0 8px 24px rgb(0 0 0 / 8%);
}


/* ---------- BRAND ---------- */

.jh-site-header__brand {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	justify-content: flex-start;
	white-space: nowrap;
}

.jh-site-header__brand .wp-block-site-title {
	font-family: var(--fonts-main);
	font-size: var(--fs-md);
	font-weight: var(--semibold);
	letter-spacing: 0.12em;
	line-height: 1;
	margin: 0;
	text-transform: uppercase;
}

.jh-site-header__brand .wp-block-site-title a {
	color: var(--brand-primary);
	text-decoration: none;
}

.jh-site-header__brand .wp-block-site-title a:hover,
.jh-site-header__brand .wp-block-site-title a:focus-visible {
	color: var(--brand-secondary);
}


/* ---------- NAVIGATION GROUP ---------- */

.jh-site-header__nav {
	align-items: center;
	display: flex;
	flex: 1 1 auto;
	gap: var(--space-md);
	justify-content: flex-end;
	min-width: 0;
}


/* ---------- PRIMARY NAVIGATION ---------- */

.jh-site-header__nav > .gb-navigation:first-child {
	align-items: center;
	display: flex;
	flex: 0 1 auto;
	justify-content: flex-end;
	min-width: 0;
}

.jh-site-header__nav > .gb-navigation:first-child .gb-menu {
	align-items: center;
	display: flex;
	gap: var(--space-xs);
	margin: 0;
	padding: 0;
}

.jh-site-header__nav > .gb-navigation:first-child .gb-menu-item {
	margin: 0;
	padding: 0;
}

.jh-site-header__nav > .gb-navigation:first-child .gb-menu-link {
	align-items: center;
	color: var(--text-hint);
	display: flex;
	font-family: var(--fonts-main);
	font-size: var(--fs-sm);
	font-weight: var(--medium);
	gap: var(--space-xxs);
	justify-content: space-between;
	letter-spacing: 0.06em;
	line-height: 1;
	padding-block: var(--space-lg);
	padding-inline: var(--space-xs);
	text-decoration: none;
	text-transform: uppercase;
}

.jh-site-header__nav > .gb-navigation:first-child .gb-menu-link:hover,
.jh-site-header__nav > .gb-navigation:first-child .gb-menu-link:focus-visible,
.jh-site-header__nav > .gb-navigation:first-child .current-menu-item > .gb-menu-link,
.jh-site-header__nav > .gb-navigation:first-child .current-menu-ancestor > .gb-menu-link {
	color: var(--brand-secondary);
}


/* ---------- SUBMENU ARROWS ---------- */

.jh-site-header .gb-submenu-toggle-icon {
	flex-shrink: 0;
	height: 0.65em;
	margin-inline-start: var(--space-xxs);
	width: 0.65em;

}


/* ---------- DESKTOP SUBMENUS ---------- */

.jh-site-header__nav > .gb-navigation:first-child .gb-sub-menu {
	background-color: var(--brand-primary);
	border: 1px solid var(--border-dark);
	box-shadow: 0 14px 32px rgb(0 0 0 / 16%);
	min-width: 250px;
	padding-block: var(--space-xs);
}

.jh-site-header__nav > .gb-navigation:first-child .gb-sub-menu .gb-menu-item {
	background-color: transparent;
	color: var(--brand-secondary);
}

.jh-site-header__nav > .gb-navigation:first-child .gb-sub-menu .gb-menu-link {
	color: var(--text-on-dark);
	display: block;
	font-size: var(--fs-xs);
	letter-spacing: 0.04em;
	line-height: 1.4;
	padding-block: var(--space-sm);
	padding-inline: var(--space-md);
	text-transform: none;
}

.jh-site-header__nav > .gb-navigation:first-child .gb-sub-menu .gb-menu-link:hover,
.jh-site-header__nav > .gb-navigation:first-child .gb-sub-menu .gb-menu-link:focus-visible,
.jh-site-header__nav > .gb-navigation:first-child .gb-sub-menu .current-menu-item > .gb-menu-link {
	background-color: var(--text-body);
	color: var(--brand-secondary);
}


/* ---------- SOCIAL NAVIGATION ---------- */

.jh-site-header__social {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	justify-content: flex-end;
	margin: 0;
}

.jh-site-header__social .gb-menu {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: var(--space-xxs);
	margin: 0;
	padding: 0;
}

.jh-site-header__social .gb-menu-item {
	font-size: inherit;
	margin: 0;
	padding: 0;
}

.jh-site-header__social .gb-menu-link {
	align-items: center;
	color: var(--text-hint);
	display: inline-flex;
	font-size: var(--fs-sm);
	height: 2rem;
	justify-content: center;
	line-height: 1;
	padding: 0;
	text-decoration: none;
	width: 2rem;
}

.jh-site-header__social .gb-menu-link:hover,
.jh-site-header__social .gb-menu-link:focus-visible {
	color: var(--brand-secondary);
}


/* ---------- MENU TOGGLES ---------- */

.jh-site-header .gb-menu-toggle {
	align-items: center;
	background-color: transparent;
	border: 1px solid var(--border-light);
	border-radius: 0;
	color: var(--brand-primary);
	display: none;
	height: 2.75rem;
	justify-content: center;
	padding: var(--space-xs);
	width: 2.75rem;
	z-index: 1200;
}

.jh-site-header .gb-menu-toggle:hover,
.jh-site-header .gb-menu-toggle:focus-visible {
	background-color: var(--brand-primary);
	border-color: var(--brand-primary);
	color: var(--brand-secondary);
}

.jh-site-header .gb-menu-toggle svg {
	height: 1.5rem;
	width: 1.5rem;
}


/* ==================================================
   TABLET / PRIMARY MOBILE MENU
   ================================================== */

@media (width <= 1024px) {

	.jh-site-header {
		gap: var(--space-sm);
		min-height: 64px;
		padding-inline: var(--space-lg);
	}

	.jh-site-header__brand {
		flex: 1 1 auto;
		min-width: 0;
	}

	.jh-site-header__nav {
		flex: 0 0 auto;
		flex-direction: row;
		gap: var(--space-xs);
		justify-content: flex-end;
	}

	.jh-site-header__nav > .gb-navigation:first-child {
		flex: 0 0 auto;
	}

	.jh-site-header__nav > .gb-navigation:first-child > .gb-menu-toggle {
		display: inline-flex;
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile {
		background-color: var(--brand-primary);
		color: var(--text-on-dark);
		overflow-y: auto;
		padding: var(--space-6xl) var(--space-xl);
		z-index: 1100;
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile .gb-menu {
		align-items: stretch;
		display: flex;
		flex-direction: column;
		gap: 0;
		margin-inline: auto;
		width: min(100%, 36rem);
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile .gb-menu-link {
		border-bottom: 1px solid rgb(253 252 250 / 14%);
		color: var(--text-on-dark);
		font-size: var(--fs-md);
		line-height: 1.35;
		padding-block: var(--space-md);
		padding-inline: 0;
		width: 100%;
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile .gb-menu-link:hover,
	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile .gb-menu-link:focus-visible {
		color: var(--brand-secondary);
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile .gb-sub-menu {
		background-color: transparent;
		border: 0;
		box-shadow: none;
		min-width: 0;
		padding: 0 0 0 var(--space-md);
		position: static;
		width: 100%;
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile .gb-sub-menu .gb-menu-link {
		border-bottom-color: rgb(253 252 250 / 8%);
		color: rgb(253 252 250 / 72%);
		font-size: var(--fs-normal);
		padding-block: var(--space-sm);
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile .gb-sub-menu .gb-menu-link:hover,
	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-container--mobile .gb-sub-menu .gb-menu-link:focus-visible {
		background-color: transparent;
		color: var(--brand-secondary);
	}
}


/* ==================================================
   MOBILE
   ================================================== */

@media (width <= 767px) {

	.jh-site-header {
		min-height: 60px;
		padding-inline: var(--space-md);
	}

	.jh-site-header__brand .wp-block-site-title {
		font-size: var(--fs-sm);
		letter-spacing: 0.08em;
	}
	.jh-site-header__social > .gb-menu-toggle {
	display: inline-flex;
	}
		.jh-site-header__social .gb-menu-container--mobile .gb-menu {
		align-items: stretch;
		margin-inline: auto;
		width: min(100%, 20rem);
	}

	.jh-site-header__social .gb-menu-container--mobile .gb-menu-item {
		padding: 0;
		width: 100%;
	}

	.jh-site-header__social .gb-menu-container--mobile .gb-menu-link {
		border-bottom: 1px solid rgb(253 252 250 / 14%);
		color: var(--text-on-dark);
		font-size: var(--fs-lg);
		height: auto;
		padding: var(--space-md);
		width: 100%;
	}

	.jh-site-header__social .gb-menu-container--mobile .gb-menu-link:hover,
	.jh-site-header__social .gb-menu-container--mobile .gb-menu-link:focus-visible {
		color: var(--brand-secondary);
	}
}

@media (width > 1024px) and (width <= 1280px) {

	.jh-site-header {
		gap: var(--space-md);
		padding-inline: var(--space-lg);
	}

	.jh-site-header__nav {
		gap: var(--space-sm);
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu {
		gap: 0;
	}

	.jh-site-header__nav > .gb-navigation:first-child .gb-menu-link {
		font-size: var(--fs-xs);
		padding-inline: var(--space-xxs);
	}

	.jh-site-header__social .gb-menu-link {
		width: 1.75rem;
	}
}

/* ==================================================
   SHARED CALL-TO-ACTION COMPONENT
   ================================================== */

.aotw-cta {
	border: 1px solid transparent;
/* 	margin-block: var(--space-xl); */
	padding-block: var(--space-xl);
	
	.vc_cta3 {
		border-color: transparent !important;
	}
		
	.vc_cta3_content-container {
		display: flex;
		flex-direction: column;
		gap: var(--space-lg);
	}
	p.vc_do_custom_heading {
		font-size: var(--fs-2xl);
		line-height: 1em;
		
		em {
			color: var(--brand-secondary);
			font-style: normal;
		}
	}
}

@media (width >= 600px) and (width < 900px) {

	.aotw-cta > .wpb_column {
		float: none;
		width: 100%;
	}

	.aotw-cta > .wpb_column + .wpb_column {
		margin-top: var(--space-0);
	}
	
	.aotw-cta .vc_cta3_content-container {
		align-items: center;
		
		.jh-button {
			display: flex;
			justify-content: center;
		}
	}

	
}

/* ==================================================
   HERO LABELS
   ================================================== */

[class*="hero__label"] {
	background-color: var(--brand-primary);
	bottom: var(--space-xl);
	color: var(--brand-secondary);
	left: var(--space-xl);
	padding-block: var(--space-xs);
	padding-inline: var(--space-sm);
	position: absolute;
}

.hero__label-bottom-right {
	left: unset;
	right: var(--space-xl);
}

.hero__label-top-right {
	bottom: unset;
	left: unset;
	right: var(--space-xl);
	top: var(--space-xl);
}

.hero__label-top-left {
	bottom: unset;
	top: var(--space-xl);
}

/* ---------- HERO TITLES ---------- */

.hero__container .hero__text,
.book-about-content .book-content {
	font-size: var(--fs-normal);
	line-height: 1.75;
	max-width: 55ch;
}

.hero__container h1 {
	color: currentColor;
	font-size: var(--fs-3xl);
		@media (width <= 600px) {
		font-size: var(--fs-2xl) !important;
	}
}

.hero__container h1 em {
	color: var(--brand-secondary);
	font-style: normal;
}


/* Dark hero */

.hero__container.aotw-block--dark {
	color: var(--text-on-dark);
}

.hero__container.aotw-block--dark h1,
.hero__container.aotw-block--dark .hero__title {
	color: var(--text-on-dark) !important;
}

/* Mainly Home, but also elsewhere */
.hero__title {
	color: var(--text-hint);
	margin-bottom: var(--space-xs);
	text-transform: uppercase;
	
	em {
		color: var(--brand-secondary);
		font-style: normal
	}
	
	h3 {
		font-size: inherit;
	}
}

/* ==================================================
   HERO COLOR VARIANTS
   ================================================== */

/* Warm Paper hero */

.hero--warm {
	background-color: var(--background-warm);
	color: var(--brand-primary);
}

.hero--warm h1,
.hero--warm .hero__title,
.hero--warm .hero__text {
	color: var(--brand-primary);
}

/*
Do not use gold as the main large-text color
on Warm Paper.
*/
.hero--warm h1 em,
.hero--warm .hero__title em {
	color: var(--brand-primary);
}


/* Use gold as a visible accent instead */

.hero--warm h1 em,
.hero--warm .hero__title em {
	display: inline;
	position: relative;
}

.hero--warm h1 em::after,
.hero--warm .hero__title em::after {
	background-color: var(--brand-secondary);
	bottom: -0.08em;
	content: "";
	height: 0.12em;
	left: 0;
	position: absolute;
	right: 0;
}

/* ==================================================
   CREDENTIALS / BRAG STRIP
   ================================================== */

.brag-strip .wpb_text_column > .wpb_wrapper {
	align-content: center;
	
	background: var(--brand-primary);
	display: flex;
	flex-direction: row;
	gap: var(--space-d);
	justify-content: center;
	padding: 18px var(--space-5xl);
	
	@media (width < 800px) {
		align-items: center;
		flex-direction: column;
	}
	
	p {
		margin: var(--space-0);
		padding: var(--space-0);
	}
	
	em {
		color: var(--brand-secondary);
		font-style: normal;
		text-transform: uppercase;
	}
	

	li {
		align-items: center;
		color: var(--text-on-dark);
		display: flex;
		font-size: var(--fs-sm);
		font-weight: 500;
		justify-content: center;
		letter-spacing: 0.1em;
		padding: 0;
		position: relative;
		text-transform: uppercase;
		
		
		&::before {
			background: var(--brand-secondary);
			border-radius: 50%;
			content: '';
			flex-shrink: 0;
			height: 5px;
			margin-right: var(--space-xs);
			width: 4px;
		}
	}
	
}

.brag-strip {
	@media (width > 1800px) {
		padding: var(--space-0) !important;
	}
}

/* Warm Paper version of the credentials strip */
.brag-strip--warm .wpb_text_column > .wpb_wrapper {
	background: var(--background-warm);
	border-bottom: 1px solid var(--border-light);
	border-top: 1px solid var(--border-light);
	color: var(--brand-primary);
}

.brag-strip--warm p,
.brag-strip--warm li {
	color: var(--brand-primary);
}

/* Keep the introductory label strong without using gold text */
.brag-strip--warm em {
	color: var(--brand-primary);
}

/* Gold remains an accent rather than body text */
.brag-strip--warm li::before {
	background-color: var(--brand-secondary);
}
/* ==================================================
   WARM CREDENTIALS / BRAG STRIP
   Overrides both .brag-strip and .aotw-list defaults
   ================================================== */

.brag-strip.brag-strip--warm .wpb_text_column > .wpb_wrapper {
	background: var(--background-warm);
	border-block: 1px solid var(--border-light);
}


/* “As seen on & in” */

.brag-strip.brag-strip--warm .aotw-list > .wpb_wrapper > p em {
	color: var(--brand-primary) !important;
	font-weight: var(--semibold);
}


/* Override .aotw-list ul text color */

.brag-strip.brag-strip--warm .aotw-list ul {
	color: var(--brand-primary);
}


/* Override the original white brag-strip list text */

.brag-strip.brag-strip--warm .aotw-list li,
.brag-strip.brag-strip--warm .aotw-list li a {
	color: var(--brand-primary) !important;
}


/* Linked credentials */

.brag-strip.brag-strip--warm .aotw-list li a:hover,
.brag-strip.brag-strip--warm .aotw-list li a:focus-visible {
	color: var(--brand-secondary) !important;
}


/* Preserve the existing gold dots */

.brag-strip.brag-strip--warm .aotw-list li::before {
	background-color: var(--brand-secondary);
}

/* ---------- REFERRAL LIST ---------- */

.referral-list ul {
	display: block;
}

.referral-list li {
	border-bottom: 1px solid var(--border-light);
	padding-block: var(--space-sm);
	padding-inline-start: var(--space-lg);
	text-wrap: wrap;
}

.referral-list li::before {
	background-color: var(--brand-secondary);
	border-radius: 50%;
	content: "";
	height: 6px;
	left: 0;
	position: absolute;
	top: 1.15em;
	top: calc(50% - .3em);
	width: 6px;
}

#retain-dr-judy .referral-list li {
	border-bottom: 1px solid transparent;
	color: var(--text-on-light);
}

@media (width < 1024px) {
	#retain-dr-judy .wpb_column {
		width: 100%;
	}
}

.panel-content > .vc_column-inner {
	padding-top: var(--space-3xl) !important;
}

/* ==================================================
   11. PAGE-SPECIFIC STYLES
   ================================================== */

/* ==================================================
   HOMEPAGE
   ================================================== */

/* Style the homepage */

.hero--homepage__name {
	h1
	{
		color: var(--brand-primary);
		font-size: var(--fs-3xl);
	}
	h1 em {
		color: var(--brand-secondary);
	}
	
}

/* ==================================================
   HOMEPAGE HERO
   ================================================== */

.hero--homepage {
	background-color: var(--brand-primary);
	color: var(--text-on-dark);
	min-height: min(760px, calc(100vh - 100px));
	overflow: hidden;
	position: relative;
}


/* Subtle background treatment */

.hero--homepage::before {
	background:
		radial-gradient(
			circle at 82% 35%,
			rgb(212 146 10 / 14%),
			transparent 34%
		);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}


/* Keep content above the decorative background */

.hero--homepage > .wpb_column {
	position: relative;
	z-index: 1;
}


/* ---------- CONTENT ---------- */

.hero--homepage__content > .vc_column-inner {
	margin-inline-start: auto;
	max-width: 48rem;
}

.hero--homepage .eyebrow {
	margin-bottom: var(--space-md);
}

.hero--homepage__name {
	margin-bottom: var(--space-md) !important;
}

.hero--homepage__name h1 {
	color: var(--text-on-dark);
	font-family: var(--fonts-main);
	font-size: var(--fs-3xl);
	font-weight: var(--medium);
	letter-spacing: -0.08em;
	line-height: 0.9;
	margin: 0;
	text-transform: uppercase;
	white-space: nowrap;
	word-spacing: .01em;
}

.hero--homepage__name h1 em {
	color: var(--brand-secondary);
	font-style: normal;
}


/* Main positioning statement */

.hero--homepage .hero__title {
	color: var(--text-on-dark);
	font-family: var(--fonts-main);
	font-size: var(--fs-xl);
	font-weight: var(--semibold);
	line-height: 1.15;
	margin-bottom: var(--space-md);
	max-width: 22ch;
	text-transform: none;
}

.hero--homepage .hero__title em {
	color: var(--brand-secondary);
	font-style: normal;
}


/* Supporting text */

.hero--homepage .hero__text {
	color: rgb(253 252 250 / 82%);
	font-size: var(--fs-normal);
	line-height: 1.7;
	margin-bottom: var(--space-xl);
	max-width: 58ch;
}


/* ---------- BUTTONS ---------- */

.hero--homepage__buttons > .wpb_column {
	padding: 0;
}

.hero--homepage__buttons .wpb_wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}

.hero--homepage__buttons .vc_btn3-container {
	margin: 0;
}

.hero--homepage .button__primary-inverted a {
	background-color: var(--brand-secondary) !important;
	border-color: var(--brand-secondary) !important;
	color: var(--brand-primary) !important;
}

.hero--homepage .button__primary-inverted a:hover {
	background-color: var(--background-page) !important;
	border-color: var(--background-page) !important;
	color: var(--brand-primary) !important;
}

.hero--homepage .button__secondary a {
	background-color: transparent !important;
	border-color: rgb(253 252 250 / 55%) !important;
	color: var(--text-on-dark) !important;
}

.hero--homepage .button__secondary a:hover {
	background-color: var(--text-on-dark) !important;
	border-color: var(--text-on-dark) !important;
	color: var(--brand-primary) !important;
}

/* Light separation for the dark hero portrait */
.hero--homepage .hero__image img {
	box-shadow: 0 0 30px -10px rgb(255 255 255 / 22%);
}


/* Inverted photo-credit label for dark homepage hero */
.hero--homepage .hero__label {
	background-color: var(--brand-secondary);
	color: var(--brand-primary);
}

.hero--homepage .hero__label :is(p, a) {
	color: inherit;
}

/* ---------- RESPONSIVE ---------- */

@media (width < 600px) {

	.hero--homepage .hero__title {
		font-size: var(--fs-lg);
		margin-top: var(--space-sm);
	}

	.hero--homepage__buttons .wpb_wrapper {
		align-items: stretch;
		flex-direction: column;
	}

	.hero--homepage__buttons .vc_btn3-container,
	.hero--homepage__buttons .vc_btn3 {
		width: 100%;
	}

	.hero--homepage .hero__image img {
		min-height: 360px;
	}
}

/* ==================================================
   HOMEPAGE ABOUT — TABLET
   ================================================== */

@media (width >= 600px) and (width < 900px) {

	#about-the-author {
		display: grid;
		grid-template-columns: 5fr 7fr;
		align-items: center;
		column-gap: var(--space-xl);
	}

	#about-the-author::before,
	#about-the-author::after {
		display: none;
	}

	/* Image remains in the left column */
	#about-the-author > .wpb_column:first-child {
		grid-column: 1;
		grid-row: 1 / span 4;
		width: 100%;
	}

	/*
	Allow the contents of the right WPBakery column
	to participate in the outer grid.
	*/
	#about-the-author > .aotw-author__content,
	#about-the-author > .aotw-author__content > .vc_column-inner,
	#about-the-author > .aotw-author__content > .vc_column-inner > .wpb_wrapper {
		display: contents;
	}
	
	#about-the-author .eyebrow {
			padding-top: var(--space-4xl);
		}

	/* Normal About copy stays on the right */
	#about-the-author > .aotw-author__content > .vc_column-inner > .wpb_wrapper > :not(#stats-grid) {
		grid-column: 2;
	}

	/* Stats get their own full-width row */

	#about-the-author .aotw-author__content .vc_btn3-container {
		order: 1;
	}

	#about-the-author #stats-grid {
		grid-column: 1 / -1;
		margin-inline: auto;
		margin-top: var(--space-2xl);
		order: 2;
		width: 90%;
	}

}





/* Author page */

#as-seen-on {
	display: grid;
	gap: var(--space-xxs);
	grid-template-columns: repeat(2, 1fr);
	margin-bottom: 2.5rem;
	
	&::before, &::after {
		display: none;
	}
	
	.hero__title {
		padding-bottom: var(--space-sm);
	}
	
	@media (width < 600px) {
		grid-template-columns: 1fr;
		gap: var(--space-xl);
	}
	
}

/* ==================================================
   BOOK PAGE
   ================================================== */

.book-page__header {

	> .wpb_column {
		margin-inline: 0;
		padding-block: var(--space-4xl) !important;
	}

	> .wpb_column:first-child {
		padding-inline-end: var(--space-lg);
		padding-inline-start: var(--space-4xl);
	}

	> .wpb_column:last-child {
		padding-inline-end: var(--space-4xl);
		padding-inline-start: var(--space-lg);
	}

	.book-about-content {
		max-width: none;
	}

	.book-about-content > .vc_column-inner {
		margin-inline: auto;
		max-width: 55ch;
	}

	.wpb_text_column:not(.eyebrow) {
		margin-bottom: 0;
	}

	.book-title {
		font-size: var(--fs-2xl);
		line-height: 1em;

		em {
			color: var(--brand-secondary);
			font-style: normal;
		}
	}

	.book-subtitle {
		color: var(--text-hint);
		font-size: var(--fs-md);
		font-style: italic;
		padding-bottom: .25rem;
	}

	.book-content {
		padding-block: 1.3rem;
	}
}

@media (width >= 600px) and (width < 900px) {

	.book-page__header > .wpb_column:first-child {
		float: right;
	}

	.book-page__header > .wpb_column:last-child {
		float: left;
	}
	
	:is(.book-page__header, .hero__container, #credentials, #savvy-psychologist ):not(#media-hero) .jh-button-group .vc_btn3-container + .vc_btn3-container a {
		margin-top: var(--space-0) !important;
	}
}

@media (width < 600px) {
	.book-title h1 {
		font-size: var(--fs-2xl) !important;
	}
}

#book-trailer .eyebrow :is(h2) {
	justify-content: center;	

}

.book-praise__grid {
	display: grid;
	gap: var(--space-lg);
	grid-template-columns: repeat(3, minmax(0, 1fr));

	&::before,
	&::after {
		display: none;
	}

	
	@media (width < 900px) {
		grid-template-columns: 1fr;
	}
}

.book-praise__card {
	background-color: var(--background-page);
	border-inline-start: 4px solid var(--brand-secondary);
	padding: var(--space-3xl);
	position: relative;
}

.book-praise__card::before {
	color: var(--brand-secondary);
	content: "“";
	display: block;
	font-family: Georgia, serif;
	font-size: 3rem;
	line-height: 1;
	margin-bottom: var(--space-d);
}

.book-praise__quote {
	color: var(--text-body);
	font-size: var(--fs-normal);
	font-style: italic;
	line-height: 1.75;
	margin-bottom: var(--space-md);
}

.book-praise__source {
	color: var(--brand-primary);
	font-size: var(--fs-normal);
	font-weight: var(--semibold);
	margin-bottom: var(--space-xxs);
}

.book-praise__credential {
	color: var(--text-hint);
	font-size: var(--fs-sm);
	line-height: 1.4;
}

.resource-featured > .vc_column-inner {
	padding: var(--space-3xl) !important;
}

.resource-featured > .vc_column-inner > .wpb_wrapper {
	background-color: var(--brand-primary);
	color: var(--text-on-dark);
	display: inline-block;
	max-width: 34rem;
	padding: var(--space-2xl);
}

.resource-featured .content-title:has(h3) {
	margin-bottom: 0;
}

@media (width < 1024px) {
	.resource-featured {
		width: 100%;
		
	 .vc_column-inner {
		 display: flex !important;
		 justify-content: center;
		 align-content: center;
		 align-items: center;
		}
	}
}

.resource-button.vc_do_btn {
	margin-bottom: var(--space-xs);
}

.resource-button a.vc_btn3 {
	align-items: center;

	background-color: var(--background-warm) !important;
	border: 1px solid var(--border-light) !important;
	color: var(--brand-primary) !important;
	display: flex;
	justify-content: space-between;

	padding-block: var(--space-sm);
	padding-inline: var(--space-md);
	text-align: left;
}

.resource-button a.vc_btn3:hover {
	background-color: var(--brand-secondary) !important;
	border-color: var(--brand-secondary) !important;
	color: var(--brand-primary) !important;
}

.book-buy__grid {
	display: grid;
	gap: var(--space-lg);
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));

	&::before,
	&::after {
		display: none;
	}

	@media (width < 900px) {
		grid-template-columns: 1fr;
	}
}

.book-buy__card {
	background-color: var(--brand-primary);
	color: var(--text-on-dark);
	padding: var(--space-2xl);
}

.book-buy__title {
	color: var(--brand-secondary);
	margin-bottom: var(--space-md);
}

.book-buy__title :is(h2, h3, p) {
	color: inherit;
	font-size: var(--fs-sm);
	font-weight: var(--semibold);
	margin: 0;
	text-align: left;
}

.book-buy__button.vc_do_btn {
	margin-bottom: var(--space-xxs);
}
.book-buy__button a.vc_btn3 {
	background-color: var(--background-off-black) !important;
	border: 1px solid #333 !important;
	color: var(--text-on-dark) !important;
	text-align: center;
	width: 100%;
}

.book-buy__button a.vc_btn3:hover {
	background-color: var(--brand-secondary) !important;
	border-color: var(--brand-secondary) !important;
	color: var(--brand-primary) !important;
}


#press .jh-grid--accent__card::before {
	display: none;
}

#press .jh-grid--accent__card > .vc_column-inner {
	padding-top: 0;
}

/* ==================================================
   ALSO BY DR. JUDY
   WPBakery Basic Grid 190px Builder item
   ================================================== */


/* ---------- OUTER GRID ---------- */

.also-books .vc_grid-item {
	padding: var(--space-xs);
}

.also-books .vc_grid-item-mini {
	height: 100%;
}


/* ---------- CARD ZONE ---------- */

.also-book__card {
	background-color: var(--background-warm);
	border: 1px solid var(--border-light);
	overflow: hidden;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.also-book__card:hover {
	border-color: var(--brand-secondary);
	box-shadow: 0 8px 24px rgb(0 0 0 / 8%);
}

.also-book__card .vc_gitem-zone-mini {
	height: 100%;
}

.also-book__card .vc_gitem_row {
	align-items: stretch;
	display: flex;
	flex-wrap: nowrap;
	height: 100%;
	inset: 0 !important;
	margin: 0;
	position: absolute !important;
	top: 0 !important;
	transform: none !important;
	width: 100%;
}


/* ---------- CARD COLUMNS ---------- */

.also-book__image {
	background-color: inherit;
	flex: 0 0 32%;
	overflow: hidden;
	width: 32% !important;
}

.also-book__cover,
.also-book__cover .wpb_wrapper,
.also-book__cover figure,
.also-book__cover a {
	background-color: transparent;
}

.also-book__content {
	display: flex;
	flex: 1 1 68%;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	padding: var(--space-md) !important;
	width: 68% !important;
}


/* ---------- COVER ---------- */

.also-book__cover img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%;
}


/* ---------- TEXT ---------- */

.also-book__content .wpb_content_element {
	margin-bottom: 0;
	
}


/* ---------- TITLE ---------- */

.also-book__title {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	display: -webkit-box;
	margin-bottom: var(--space-xs) !important;
	overflow: hidden;
}

.also-book__title :is(h2, h3, h4, p, a) {
	color: var(--brand-primary);
	font-size: var(--fs-normal);
	font-weight: var(--semibold);
	line-height: 1.2;
	margin: 0;
}


/* ---------- EXCERPT ---------- */

.also-book__excerpt {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--text-muted);
	display: -webkit-box;
	font-size: var(--fs-sm);
	line-height: 1.4;
	margin-bottom: var(--space-xs) !important;
	overflow: hidden;
}

.also-book__excerpt :is(p, div) {
	margin: 0;
}


/* ---------- LEARN MORE ---------- */

.also-book__link {
	color: var(--brand-secondary);
	font-size: var(--fs-xs);
	font-weight: var(--semibold);
	letter-spacing: 0.08em;
	line-height: 1.2;
	margin-top: auto !important;
	padding-top: var(--space-xxs);
	text-transform: uppercase;
}

.also-books .also-book__link.wpb_content_element {
	margin-bottom: 0 !important;
}

/* ---------- SPACE BETWEEN GRID ITEMS ---------- */

.also-books .vc_grid-item {
	padding: 0 calc(var(--space-md) / 2) var(--space-md) !important;
}

/* ---------- RESPONSIVE ---------- */

@media (width < 900px) {
	.also-books .vc_grid-item {
		width: 50%;
	}
}

@media (width < 600px) {
	.also-books .vc_grid-item {
		width: 100%;
	}

	.also-book__image {
		flex-basis: 34%;
		width: 34% !important;
	}

	.also-book__content {
		padding: var(--space-sm) !important;
		width: 66% !important;
	}

	.also-book__excerpt {
		-webkit-line-clamp: 2;
	}
}

/* ==================================================
   BOOK PAGE — SEMANTIC ELEMENT OVERRIDES
   ================================================== */


/* ---------- H3: ABOUT / LEARNING CARDS ---------- */

.jh-grid--accent__title h3 {
	color: var(--brand-primary);
	font-family: var(--fonts-main);
	font-size: var(--fs-md);
	font-weight: var(--semibold);
	letter-spacing: normal;
	line-height: 1.3;
	margin: 0 0 var(--space-xs);
	text-transform: none;
}


/* ---------- H3: RESOURCES ---------- */

.resource-featured h3,
.resource-list__title h3 {
	color: inherit;
	font-family: var(--fonts-main);
	font-size: var(--fs-md);
	font-weight: var(--semibold);
	letter-spacing: normal;
	line-height: 1.3;
	padding-bottom: var(--space-md);
	text-transform: none;
}

.resource-list__title h3 {
	color: var(--brand-primary);
}


/* Prevent the wrapper and heading from both adding spacing */

.resource-list__title {
	margin-bottom: 0;
}


/* ---------- PRAISE BLOCKQUOTES ---------- */

.book-praise__quote blockquote {
	background: transparent;
	border: 0;
	color: inherit;
	font: inherit;
	margin: 0;
	padding: 0;
}

.book-praise__quote blockquote p {
	color: inherit;
	font: inherit;
	line-height: inherit;
	margin: 0;
}

/*
Your decorative opening quote already comes from
.book-praise__card::before, so suppress theme-generated quotes.
*/
.book-praise__quote blockquote::before,
.book-praise__quote blockquote::after {
	content: none;
}


/* ---------- ALSO-BY H3 TITLES ---------- */

.also-book__title h3 {
	color: var(--brand-primary);
	font-family: var(--fonts-main);
	font-size: var(--fs-normal);
	font-weight: var(--semibold);
	letter-spacing: normal;
	line-height: 1.2;
	margin: 0;
	text-transform: uppercase;
}

/* ==================================================
   EXPERT WITNESS / SERVICE-SPECIFIC STYLES
   ================================================== */

/* ---------- DARK COMPACT STATS ---------- */

.aotw-block--dark .expert-stats .jh-grid--compact__card {
	background-color: var(--background-off-black);
	border-left: var(--gold-bar);
	
}

.aotw-block--dark .expert-stats .jh-grid--compact__number {
	color: var(--brand-secondary);
}

.aotw-block--dark .expert-stats .jh-grid--compact__label {
	color: var(--text-hint);
}

#evaluation-types {
	.vc_tta-panel-heading {
		background-color: var(--brand-secondary);
		text-transform: uppercase;
		font-weight: var(--semibold);
		
		&:hover {
			background-image: linear-gradient(to top, #fff3 0, #ffffff03)
		}
	}
}

/* ---------- SPEAKING TOPICS ---------- */

/* ==================================================
   SPEAKING PAGE
   ================================================== */

.speaking-topics {
	margin-inline: auto;
	max-width: 1120px;
}

.speaking-keynotes {
	margin-inline: auto;
	max-width: 1100px;
}


/* Signature F.L.O.W. topic */

.speaking-topic--featured {
	background-color: var(--brand-primary) !important;
	border-top-color: var(--brand-secondary) !important;
	color: var(--text-on-dark) !important;
}

.speaking-topic--featured .jh-grid--accent__title,
.speaking-topic--featured .jh-grid--accent__title h3 {
	color: var(--brand-secondary);
}

.speaking-topic--featured .jh-grid--accent__content {
	color: var(--text-on-dark);
}

.speaking-topic--featured .jh-status--important {
	--status-color: var(--brand-secondary);
	background-color: var(--status-color);
	color: var(--brand-primary);
	width: 13ch;
	
	p {
		text-align: center;
	}

}

.speaking-clients--featured li {
	background-color: var(--brand-primary) !important;
	border-color: var(--brand-primary) !important;
	color: var(--brand-secondary) !important;
}

/* ==================================================
   NEWSLETTER PAGE
   ================================================== */

/* ---------- HERO ---------- */

.newsletter-hero > .wpb_column {
	max-width: 800px;
	text-align: center;
}

.newsletter-hero .eyebrow :is(p, h1, h2, h3) {
	justify-content: center;
}

.newsletter-hero__title {
	margin-bottom: var(--space-md);
}

.newsletter-hero__subtitle {
	color: var(--text-hint);
	font-size: var(--fs-sm);
	font-weight: var(--semibold);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.newsletter-hero__text {
	color: var(--text-hint);
	font-size: var(--fs-md);
	margin-inline: auto;
	max-width: 600px;
}

.newsletter-hero__note {
	color: var(--text-hint);
	margin-top: var(--space-sm);
}


/* ---------- CONTENT GRIDS ---------- */

.newsletter-pillars,
.newsletter-issues {
	margin-inline: auto;
	max-width: 1100px;
}


/* ---------- ISSUE CARDS ---------- */

.newsletter-issue {
	position: relative;
}

.newsletter-issue .jh-grid--accent__title a {
	color: inherit;
	text-decoration: none;
}

.newsletter-issue .jh-grid--feature__tag {
	margin-bottom: var(--space-xs);
}

.newsletter-issue .jh-button__link {
	margin-top: auto;
}


/* ---------- PODCAST CROSSOVER ---------- */

.newsletter-crossover .content-title {
	margin-bottom: var(--space-sm);
}

/* ==================================================
   CONTACT PAGE
   ================================================== */

.contact-main {
	align-items: flex-start;
}

.contact-detail__label {
	color: var(--text-hint);
	font-size: var(--fs-xs);
	font-weight: var(--semibold);
	letter-spacing: 0.12em;
	margin-bottom: var(--space-xxs);
	margin-top: var(--space-xl);
	text-transform: uppercase;
}

.contact-detail__value {
	font-size: var(--fs-md);
	font-weight: var(--medium);
	margin-bottom: var(--space-xxs);
}

.jh-contact-info a {
	border-bottom: 1px solid var(--brand-secondary);
	color: var(--brand-primary);
	text-decoration: none;
}

.jh-contact-info a:hover,
.jh-contact-info a:focus-visible {
	color: var(--brand-secondary);
}


/* ---------- FORM ---------- */

.contact-form__column > .vc_column-inner {
	background-color: var(--background-page);
	border: 1px solid var(--border-light);
	padding: var(--space-2xl) !important;
}

.contact-form__title h2 {
	font-size: var(--fs-xl);
}

.contact-form__note {
	margin-top: var(--space-sm);
	text-align: center;
}


/* ---------- NINJA FORMS ---------- */

.contact-form__column .nf-form-fields-required,
.contact-form__column .ninja-forms-req-symbol {
	display: none;
}

.contact-form__column .nf-field-label label {
	color: var(--text-hint);
	font-weight: var(--semibold);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.contact-form__column :is(
	input[type="text"],
	input[type="email"],
	input[type="url"],
	input[type="tel"],
	select,
	textarea
) {
	background-color: var(--background-page);
	border: 1px solid var(--border-light);
	border-radius: 0;
}

.contact-form__column :is(
	input[type="text"],
	input[type="email"],
	input[type="url"],
	input[type="tel"],
	select,
	textarea
):focus {
	border-color: var(--brand-secondary);
}

.contact-form__column input[type="button"],
.contact-form__column input[type="submit"] {
	background-color: var(--brand-primary);
	border: 1px solid var(--brand-primary);
	border-radius: 0;
	color: var(--brand-secondary);
	cursor: pointer;
	font-weight: var(--semibold);
	letter-spacing: 0.08em;
	padding: var(--space-sm) var(--space-xl);
	text-transform: uppercase;
	width: 100%;
}

.contact-form__column input[type="button"]:hover,
.contact-form__column input[type="submit"]:hover {
	background-color: var(--background-off-black);
}


/* ---------- PAGE WIDTHS ---------- */

.contact-inquiries {
	margin-inline: auto;
	max-width: 1100px;
}

.contact-representatives {
	margin-inline: auto;
	max-width: 720px;
}
/* ==================================================
   SERVICES PAGES
   ================================================== */

.heading-neuropsychological h1 {
	@media (width <= 600px) {
		font-size: var(--fs-lg) !important;
		
		em {
			font-size: var(--fs-xl);
			line-height: 1.1em;
		}
	}
}


/* ==================================================
   MEDIA PAGE
   ================================================== */

/* ---------- PAGE WIDTHS ---------- */

.media-tv-grid,
.media-videos,
.media-articles {
	margin-inline: auto;
	max-width: 1280px;
}


/* ---------- DARK HERO STATS ---------- */

.aotw-block--dark .media-stats .jh-grid--compact__card {
	background-color: var(--background-off-black);
	border-left: var(--gold-bar);
}

.aotw-block--dark .media-stats .jh-grid--compact__number {
	color: var(--brand-secondary);
}

.aotw-block--dark .media-stats .jh-grid--compact__label {
	color: var(--text-hint);
}


/* ---------- PODCAST STATS ---------- */

.media-podcast .jh-grid--feature__tag {
	padding-bottom: var(--space-lg);
}

.media-podcast-stats {
	
	.jh-grid--compact {
		grid-template-columns: 1fr;
		padding-bottom: var(--space-0);
	}

	.jh-grid--compact__card {
		background-color: var(--background-off-black);
	}

	.jh-grid--compact__number {
		color: var(--brand-secondary);
	}

	.jh-grid--compact__label {
		color: var(--text-hint);
	}
}

/* ---------- VIDEO CARDS ---------- */

.media-videos .jh-grid--media__item > .vc_column-inner {
	padding: 0 !important;
}

.media-videos .jh-grid--media__item {
	background-color: var(--background-page);
	padding: 0;

}

.media-videos .jh-grid--feature__tag,
.media-videos .jh-grid--accent__title {
	padding-inline: var(--space-md);
}

.media-videos .jh-grid--feature__tag {
	font-size: var(--fs-xxs);
	padding-top: var(--space-d);
}

.media-videos .jh-grid--accent__title {
	padding-bottom: var(--space-d);
}


/* ---------- PODCAST ARCHIVE ---------- */

.media-archive {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-inline: auto;
	max-width: 900px;
}


/* ---------- ARTICLE LINKS ---------- */
.media-articles.jh-grid--accent .jh-grid--accent__card::before {
	content: '';
}
.media-articles.jh-grid--accent .jh-grid--accent__card {
	padding-top: inherit;
}
.media-articles .jh-grid--accent__title a {
	color: inherit;
	text-decoration: none;
}


/* ---------- RESPONSIVE ---------- */

@media (width < 900px) {
	.media-archive {
		grid-template-columns: 1fr;
	}
}

@media (width < 600px) {
	.media-podcast-stats {
		grid-template-columns: 1fr;
	}
}


/* ---------- MEDIA — TELEVISION & FILM ---------- */

.media-tv {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-inline: auto;

	
	.jh-grid--media__item > .vc_column-inner,
	.jh-grid--media__item {
		background-color: var(--brand-primary);
		padding-block: 0; 
		padding-inline: 0;
	}

	.jh-grid--media__image {
		padding-bottom: var(--space-0);
	}
	.jh-grid--accent__title,
	.jh-grid--accent__content,
	.jh-button__link {
		margin-bottom: var(--space-0);
		margin-inline: var(--space-md);
	}
	
	.jh-grid--accent__content {
		color: var(--text-hint);
		font-size: var(--fs-sm);
	}
	
	.jh-grid--accent__title {
		font-size: var(--fs-normal);
		padding-top: var(--space-md);
		
		:is(h1, h2, h3),
		a {color: var(--text-on-dark);}
		
		}
	
		.jh-grid--media__item:hover .jh-grid--accent__title :is(h1, h2, h3, a) {
			color: var(--brand-secondary);
		}

	@media (width < 900px) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	@media (width < 600px) {
		grid-template-columns: 1fr;
	} 
}

/* ---------- PODCAST GUEST ---------- */

.media-guest {

	.aotw-block--dark .vc_column-inner {
		padding: var(--space-0) !important;
	}

	.media-guest-topics {
		margin-bottom: 0;
		padding-bottom: 0;
	}

	.media-guest-topics li {
		background-color: var(--background-off-black);
		border-color: var(--border-dark);
		color: var(--text-on-dark);
	}

	.media-guest-topics li:hover {
		border-color: var(--brand-secondary);
	}
}

/* ==================================================
   MENTAL HEALTH BITES — ARCHIVE
   ================================================== */

.mental-health-bites-media {
	margin-inline: auto;
	max-width: 1280px;
}

.mental-health-bites-media .jh-grid--media__item {
	background-color: var(--background-warm);
	border-top: var(--gold-bar);
	padding: var(--space-md);
}

.mental-health-bites-media iframe {
	border-radius: 0 !important;
	display: block;
	max-width: 100% !important;
	width: 100% !important;
}

/* ==================================================
   PODCAST PAGE
   ================================================== */

.podcast-hero .podcast-cover {
	margin-inline: auto;
	max-width: 360px;
}

.podcast-platform-list ul {
	justify-content: center;
	padding-top: var(--space-md);
}

.podcast-pillars,
.podcast-episodes,
.podcast-platforms {
	margin-inline: auto;
	max-width: 1100px;
}

/* ---------- PODCAST HERO PLATFORM LINKS ---------- */

.podcast-platform-list li {
	background-color: var(--background-off-black) !important;
	border-color: var(--border-dark) !important;
	color: var(--text-on-dark) !important;
}

.podcast-platform-list li a {
	color: var(--text-on-dark) !important;
}

.podcast-platform-list li:hover {
	border-color: var(--brand-secondary) !important;
}

.podcast-platform-list li:hover a {
	color: var(--brand-secondary) !important;
}


/* ---------- FEATURED EPISODES ---------- */

.podcast-episodes .jh-grid--compact__card > .vc_column-inner {
	height: 100%;
}

.podcast-episodes .jh-grid--compact__card > .vc_column-inner > .wpb_wrapper {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.podcast-archive-card {
	background-color: var(--brand-primary) !important;
	color: var(--text-on-dark);
}

.podcast-archive-card .jh-grid--accent__title,
.podcast-archive-card .jh-grid--accent__title :is(h3, a) {
	color: var(--text-on-dark);
}

.podcast-archive-card .jh-grid--accent__content {
	color: var(--text-hint);
}

.podcast-archive-card:hover .jh-grid--accent__title :is(h3, a) {
	color: var(--brand-secondary);
}


/* ---------- SUBSCRIBE ---------- */

.podcast-subscribe > .wpb_column {
	float: none;
	margin-inline: auto;
	max-width: 1280px;
}

.podcast-platforms .jh-grid--accent__card::before {
	content: none;
}

.podcast-platforms .jh-grid--accent__card > .vc_column-inner {
	padding-block: var(--space-0);
	text-align: center;
}

.podcast-platforms .jh-grid--accent__title {
	font-size: var(--fs-lg);
	margin-bottom: var(--space-0);
}

.podcast-platforms .jh-grid--accent__title h3 {
	font-size: inherit;
	text-align: center;
}

.podcast-platforms .jh-button__link.vc_do_btn {
	margin-right: 0 !important;
	margin-top: auto;
}

.podcast-platforms .jh-button__link.vc_do_btn a.vc_btn3 {
	padding-left: var(--space-xl);
}

/* ==================================================
   CREDENTIALS
   ================================================== */

#credentials .hero__title {
	border-bottom: 1px solid var(--border-default);
	display: inline-block;
	margin-bottom: var(--space-xxs);
	margin-top: var(--space-lg);
}



/* ==================================================
   12. FOOTER
   ================================================== */

.site-footer {
	background-color: var(--brand-primary);
	color: var(--text-on-dark);
}


/* ---------- FOOTER SHELL ---------- */

.jh-site-footer {
	align-items: center;

	background-color: var(--background-off-black);
	border-top: 1px solid var(--border-dark);
	display: grid;
	gap: var(--space-lg) var(--space-2xl);
	grid-template-areas:
		"brand nav social"
		"meta meta meta";
	grid-template-columns: auto 1fr auto;
	padding-block: var(--space-2xl);
	padding-inline: var(--space-4xl);

	width: 100%;
}


/* ---------- BRAND ---------- */

.jh-site-footer__brand {

	color: var(--text-on-dark);
	font-family: var(--fonts-main);
	font-size: var(--fs-md);
	font-weight: var(--medium);
	grid-area: brand;
	letter-spacing: -0.04em;
	line-height: 1;

	margin: 0;
	text-transform: uppercase;
	white-space: nowrap;
}

.jh-site-footer__brand em {
	color: var(--brand-secondary);
	font-style: normal;
}


/* ---------- NAVIGATION ---------- */

.jh-site-footer__nav {
	align-items: center;

	display: flex;
	grid-area: nav;
	justify-content: center;
	min-width: 0;
}

.jh-site-footer__nav .wp-block-navigation {
	margin: 0;
}

.jh-site-footer__nav .wp-block-navigation__container {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm) var(--space-lg);
	justify-content: center;
}

.jh-site-footer__nav .wp-block-navigation-item__content {

	color: var(--text-hint);

	font-family: var(--fonts-main);
	font-size: var(--fs-xs);
	font-weight: var(--medium);
	letter-spacing: 0.08em;
	line-height: 1.2;
	padding: 0;
	text-decoration: none;
	text-transform: uppercase;
}

.jh-site-footer__nav .wp-block-navigation-item__content:hover,
.jh-site-footer__nav .wp-block-navigation-item__content:focus-visible {
	color: var(--brand-secondary);
}


/* Keep footer navigation visually simple */

.jh-site-footer__nav .wp-block-navigation__submenu-icon,
.jh-site-footer__nav .wp-block-navigation__submenu-container {
	display: none;
}


/* ---------- SOCIAL ---------- */

.jh-social__header {
	h2 {
		font-size: var(--fs-md);
	}
}

.jh-site-footer__social {
	grid-area: social;
}

.jh-site-footer__social .gb-navigation {
	align-items: center;
	display: flex;
}

.jh-site-footer__social .gb-menu {
	align-items: center;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap;
	gap: var(--space-xs);

	margin: 0;
	padding: 0;
}

.jh-site-footer__social .gb-menu-item {
	list-style: none;
	margin: 0;
	padding: 0;
}

.jh-site-footer__social .gb-menu-link {
	align-items: center;
	color: var(--text-hint);
	display: inline-flex;

	font-size: var(--fs-sm);
	height: 2rem;
	justify-content: center;

	min-width: 2rem;
	padding: 0;
	text-decoration: none;
}

.jh-site-footer__social .gb-menu-link:hover,
.jh-site-footer__social .gb-menu-link:focus-visible {
	color: var(--brand-secondary);
}


/*
The social links should never become their own
footer hamburger menu.
*/

.jh-site-footer__social .gb-menu-toggle {
	display: none !important;
}

.jh-site-footer__social .gb-menu-container {
	background: transparent !important;
	display: block !important;
	inset: auto !important;
	padding: 0 !important;
	position: static !important;
}


/* ---------- META ---------- */

.jh-site-footer__meta {
	align-items: center;
	border-top: 1px solid var(--border-dark);
	color: var(--text-hint);

	display: flex;
	flex-wrap: wrap;

	font-size: var(--fs-xs);
	gap: var(--space-xs) var(--space-lg);
	grid-area: meta;
	justify-content: center;
	line-height: 1.4;

	padding-top: var(--space-md);
}

.jh-site-footer__meta p {
	margin: 0;
}

.jh-site-footer__meta a {
	color: inherit;
	text-decoration: none;
}

.jh-site-footer__meta a:hover,
.jh-site-footer__meta a:focus-visible {
	color: var(--brand-secondary);
}


/* ==================================================
   FOOTER RESPONSIVE
   ================================================== */

@media (width < 900px) {

	.jh-site-footer {
		grid-template-areas:
			"brand social"
			"nav nav"
			"meta meta";
		grid-template-columns: 1fr auto;

		padding-inline: var(--space-xl);
	}

	.jh-site-footer__nav {
		justify-content: flex-start;
	}

	.jh-site-footer__nav .wp-block-navigation__container {
		justify-content: flex-start;
	}

	.jh-site-footer__meta {
		justify-content: flex-start;
	}
}


@media (width < 600px) {

	.jh-site-footer {

		gap: var(--space-md);
		grid-template-areas:
			"brand"
			"nav"
			"social"
			"meta";
		grid-template-columns: 1fr;
		padding-block: var(--space-xl);
		padding-inline: var(--space-lg);
	}

	.jh-site-footer__brand {
		font-size: var(--fs-normal);
	}

	.jh-site-footer__nav,
	.jh-site-footer__nav .wp-block-navigation__container,
	.jh-site-footer__meta {
		justify-content: flex-start;
	}

	.jh-site-footer__social .gb-menu {
		justify-content: flex-start;
	}
}
