/*
 * The Gilded Gentleman — main stylesheet.
 * v0.3.0 — Gilded Age visual identity. Dual palettes via body class:
 *   body.tgg-theme-dark  → "Gilded Salon" (default)
 *   body.tgg-theme-light → "Letterpress"
 * Toggle live with ?theme=dark or ?theme=light.
 */

/* ===== Palettes ============================================== */
body.tgg-theme-dark {
	--tgg-bg:           #4e1721;  /* rich burgundy — velvet drape */
	--tgg-surface:      #3a0f17;  /* deeper for cards */
	--tgg-border:       #7a2837;
	--tgg-text:         #f3e9cd;  /* warm cream */
	--tgg-heading:      #f9efd3;  /* brighter cream */
	--tgg-muted:        #d4c19a;
	--tgg-gold:         #e3c685;  /* bright antique gold */
	--tgg-gold-soft:    #c9a96a;
	--tgg-accent:       #e3c685;
	--tgg-link:         #e8cf90;
	--tgg-link-hover:   #fff5dc;
	--tgg-card-bg:      #3a0f17;
	--tgg-input-bg:     #2c0a11;
	--tgg-input-border: #7a2837;
}

body.tgg-theme-light {
	--tgg-bg:           #f4ecdc;  /* cream — Carl's brand canvas */
	--tgg-surface:      #faf4e4;  /* warmer cream for surfaces */
	--tgg-border:       #cbb98a;  /* warm taupe-gold edge */
	--tgg-text:         #2a1c1e;  /* warm near-black, not gray */
	--tgg-heading:      #5d1923;  /* BURGUNDY headings — old library */
	--tgg-muted:        #7a5e60;  /* warm brown-mauve */
	--tgg-gold:         #b8915a;  /* antique gold — brandy snifter shine */
	--tgg-gold-soft:    #95764a;
	--tgg-accent:       #5d1923;  /* burgundy primary accent */
	--tgg-link:         #5d1923;
	--tgg-link-hover:   #8e2a3a;
	--tgg-card-bg:      #fefcf6;  /* almost white, just a kiss of warmth */
	--tgg-card-border:  #e3d2b0;  /* taupe edge to define the card */
	--tgg-input-bg:     #faf4e4;
	--tgg-input-border: #cbb98a;
}

body.tgg-theme-dark {
	--tgg-card-border:  var(--tgg-border);
}

/* ===== Base typography + body ================================ */
body {
	background-color: var(--tgg-bg);
	/* Faint tone-on-tone gold fleur-de-lys wallpaper in a half-drop repeat —
	   Gilded Age richness behind the whole site; especially fills the empty
	   hero. Fleur silhouette derived from Twemoji (CC-BY 4.0). */
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22132%22%20height=%22132%22%20viewBox=%220%200%20132%20132%22%3E%3Cg%20fill=%22%23b8915a%22%20opacity=%220.09%22%3E%3Cg%20transform=%22translate(15,15)%22%3E%3Cpath%20d=%22M10.582%2018c2.075%201.244%202.74%203.559%202.416%206h4.837c.103-.649.165-1.316.165-2%200-6.075-5.001-11.731-10.27-11.731-8.479%200-9.866%209.043-4.567%2011.731-1.059-5%204.122-5.975%207.419-4zm14.875%200c-2.075%201.244-2.74%203.559-2.416%206h-4.837c-.104-.649-.165-1.316-.165-2%200-6.075%205.001-11.731%2010.269-11.731%208.479%200%209.866%209.043%204.567%2011.731%201.061-5-4.121-5.975-7.418-4zm4.334%208.647C29.315%2028.014%2028.028%2029%2026.5%2029c-1.762%200-3.205-1.307-3.449-3h-2.615c-.271.614-.436%201.285-.436%202%200%202.762%202.238%205%205%205s5-2.238%205-5c0-.472-.086-.92-.209-1.353zM12.949%2026c-.244%201.693-1.688%203-3.449%203-1.528%200-2.814-.986-3.291-2.353C6.086%2027.08%206%2027.528%206%2028c0%202.762%202.238%205%205%205s5-2.238%205-5c0-.715-.165-1.386-.436-2h-2.615z%22/%3E%3Cpath%20d=%22M13%2010.227C13%203.951%2018%200%2018%200s5%203.951%205%2010.227S20.762%2025%2018%2025s-5-8.497-5-14.773z%22/%3E%3Cpath%20d=%22M14%2030c0-3.313%202.344-6%204-6%201.656%200%204%202.687%204%206s-4%206-4%206-4-2.687-4-6z%22/%3E%3Cpath%20d=%22M25%2024.5c0%201.933-1.567%203.5-3.5%203.5h-7c-1.934%200-3.5-1.567-3.5-3.5s1.566-3.5%203.5-3.5h7c1.933%200%203.5%201.567%203.5%203.5z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(81,81)%22%3E%3Cpath%20d=%22M10.582%2018c2.075%201.244%202.74%203.559%202.416%206h4.837c.103-.649.165-1.316.165-2%200-6.075-5.001-11.731-10.27-11.731-8.479%200-9.866%209.043-4.567%2011.731-1.059-5%204.122-5.975%207.419-4zm14.875%200c-2.075%201.244-2.74%203.559-2.416%206h-4.837c-.104-.649-.165-1.316-.165-2%200-6.075%205.001-11.731%2010.269-11.731%208.479%200%209.866%209.043%204.567%2011.731%201.061-5-4.121-5.975-7.418-4zm4.334%208.647C29.315%2028.014%2028.028%2029%2026.5%2029c-1.762%200-3.205-1.307-3.449-3h-2.615c-.271.614-.436%201.285-.436%202%200%202.762%202.238%205%205%205s5-2.238%205-5c0-.472-.086-.92-.209-1.353zM12.949%2026c-.244%201.693-1.688%203-3.449%203-1.528%200-2.814-.986-3.291-2.353C6.086%2027.08%206%2027.528%206%2028c0%202.762%202.238%205%205%205s5-2.238%205-5c0-.715-.165-1.386-.436-2h-2.615z%22/%3E%3Cpath%20d=%22M13%2010.227C13%203.951%2018%200%2018%200s5%203.951%205%2010.227S20.762%2025%2018%2025s-5-8.497-5-14.773z%22/%3E%3Cpath%20d=%22M14%2030c0-3.313%202.344-6%204-6%201.656%200%204%202.687%204%206s-4%206-4%206-4-2.687-4-6z%22/%3E%3Cpath%20d=%22M25%2024.5c0%201.933-1.567%203.5-3.5%203.5h-7c-1.934%200-3.5-1.567-3.5-3.5s1.566-3.5%203.5-3.5h7c1.933%200%203.5%201.567%203.5%203.5z%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	background-size: 132px 132px;
	color: var(--tgg-text);
	font-family: 'Lora', Georgia, serif;
	font-size: 18px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

/* Kill TT1's min-height: 100vh trick on the layout containers — it leaves a
   huge cream gap below short-content episodes. Footer sits naturally below
   content instead of being pinned to the bottom of the viewport. */
body .site,
body #page,
body .site-content-contain,
body .site-content,
body #content,
body #primary,
body main.site-main {
	min-height: 0 !important;
}

body a {
	color: var(--tgg-link);
	transition: color 0.18s ease;
}

body a:hover,
body a:focus {
	color: var(--tgg-link-hover);
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'Playfair Display', Georgia, serif;
	color: var(--tgg-heading);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.005em;
}

/* Parent-theme overrides that fight the palette */
body .wp-site-blocks,
body .entry-content,
body .site-content,
body .site-header,
body .site-footer {
	background-color: transparent;
	color: var(--tgg-text);
}

/* Kicker label — small, uppercase, letterspaced. In the light theme it's a
   burgundy "stamp" with a hairline gold underline (brandy snifter accent). */
.tgg-episode-card__kicker,
.tgg-episode__kicker {
	display: inline-block;
	font-family: 'Inter', 'Helvetica Neue', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-accent);
	padding-bottom: 0.25rem;
	border-bottom: 1px solid var(--tgg-gold);
	margin-bottom: 0.8rem;
}

body.tgg-theme-dark .tgg-episode-card__kicker,
body.tgg-theme-dark .tgg-episode__kicker {
	color: var(--tgg-gold);
	border-bottom-color: var(--tgg-gold-soft);
}

/* ===== Episode archive ======================================== */
.tgg-archive {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 1.5rem 4rem;
}

.tgg-archive__header {
	margin-bottom: 2.5rem;
	text-align: center;
}

.tgg-archive__title {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 2.4rem, 5vw, 3.6rem );
	margin: 0 0 1rem;
	color: var(--tgg-heading);
}

/* Gold hairline immediately under the headline (not at the bottom of the
   whole header section). */
.tgg-archive__title::after {
	content: "";
	display: block;
	width: 60px;
	height: 1px;
	background: var(--tgg-gold);
	margin: 1.25rem auto 2rem;
}

/* Search-results mode: kicker above the query, count below the hairline */
.tgg-archive__kicker {
	font-family: 'Inter', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--tgg-gold-soft);
	margin: 0 0 0.75rem;
}

.tgg-archive__results-count {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 1rem;
	color: var(--tgg-muted);
	margin: -1rem 0 0;
}

.tgg-archive__search {
	display: flex;
	gap: 0.5rem;
	max-width: 480px;
	margin: 0 auto;
	border: 1px solid var(--tgg-card-border);
	background: var(--tgg-card-bg);
}

.tgg-archive__search input[type="search"] {
	flex: 1;
	padding: 0.7rem 1rem;
	font-size: 0.95rem;
	font-family: 'Lora', serif;
	background: transparent;
	border: 0;
	color: var(--tgg-text);
	outline: none;
}

.tgg-archive__search input[type="search"]::placeholder {
	color: var(--tgg-muted);
	font-style: italic;
}

.tgg-archive__search button {
	padding: 0.6rem 1.5rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tgg-bg);
	background: var(--tgg-accent);
	border: 0;
	cursor: pointer;
	transition: background 0.18s ease;
}

.tgg-archive__search button:hover {
	background: var(--tgg-link-hover);
}

/* Topic chip row — centered above the grid, wraps on narrow screens */
.tgg-archive__topics {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem 1.6rem;
	max-width: 880px;
	margin: 1.75rem auto 0;
}

.tgg-archive__chip {
	font-family: 'Inter', 'Helvetica Neue', sans-serif;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-muted);
	text-decoration: none;
	padding: 0.4rem 0;
	border-bottom: 1px solid transparent;
	transition: color 0.18s ease, border-color 0.18s ease;
}

.tgg-archive__chip:hover,
.tgg-archive__chip:focus {
	color: var(--tgg-accent);
	border-bottom-color: var(--tgg-gold);
}

.tgg-archive__chip.is-active {
	color: var(--tgg-accent);
	border-bottom-color: var(--tgg-gold);
}

/* Gold flourish — Victorian floral heart between chips and grid */
.tgg-archive__flourish {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	max-width: 320px;
	margin: 2.5rem auto 0;
	color: var(--tgg-gold);
}

.tgg-archive__flourish::before,
.tgg-archive__flourish::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--tgg-gold);
	opacity: 0.85;
}

.tgg-archive__flourish-ornament {
	font-family: 'Playfair Display', serif;
	font-size: 1.6rem;
	line-height: 1;
	color: var(--tgg-gold);
	transform: translateY( -0.05em );
}

.tgg-archive__grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 290px, 1fr ) );
	gap: 2.5rem 2rem;
}

/* Pagination — defeat TT1's heavy black border-top rule on .pagination + .nav-links */
.tgg-archive__pagination {
	margin-top: 4rem;
	text-align: center;
}

html body .tgg-archive__pagination .pagination,
html body .tgg-archive__pagination .nav-links,
html body .tgg-archive__pagination .navigation {
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
}

html body .tgg-archive__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	height: 2.25rem;
	padding: 0 0.6rem;
	margin: 0 !important;
	font-family: 'Playfair Display', serif !important;
	font-size: 1.05rem !important;
	font-style: italic;
	color: var(--tgg-muted) !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid transparent !important;
	text-decoration: none !important;
	transition: color 0.2s ease, border-color 0.2s ease;
}

html body .tgg-archive__pagination a.page-numbers:hover,
html body .tgg-archive__pagination a.page-numbers:focus {
	color: var(--tgg-accent) !important;
	border-bottom-color: var(--tgg-gold) !important;
}

html body .tgg-archive__pagination .page-numbers.current {
	color: var(--tgg-accent) !important;
	border-bottom-color: var(--tgg-gold) !important;
	font-style: normal;
	font-weight: 600;
}

html body .tgg-archive__pagination .page-numbers.dots {
	color: var(--tgg-muted) !important;
	border: 0 !important;
}

/* Prev / next get the letterspaced uppercase treatment */
html body .tgg-archive__pagination .prev,
html body .tgg-archive__pagination .next {
	font-family: 'Inter', sans-serif !important;
	font-style: normal !important;
	font-size: 0.72rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--tgg-heading) !important;
	padding: 0 1rem !important;
}

.tgg-archive__no-results {
	text-align: center;
	padding: 3.5rem 1rem 4rem;
	color: var(--tgg-muted);
}

.tgg-archive__no-results-ornament {
	display: block;
	font-family: 'Playfair Display', serif;
	font-size: 2.2rem;
	line-height: 1;
	color: var(--tgg-gold);
	margin-bottom: 1rem;
}

.tgg-archive__no-results-msg {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: clamp( 1.3rem, 2.5vw, 1.7rem );
	color: var(--tgg-heading);
	margin: 0 0 0.5rem;
}

.tgg-archive__no-results-hint {
	font-family: 'Lora', serif;
	font-style: italic;
	font-size: 1rem;
	margin: 0 0 1.5rem;
}

.tgg-archive__no-results-link {
	margin: 0;
}

.tgg-archive__no-results-link a {
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-accent) !important;
	text-decoration: none !important;
	border-bottom: 1px solid var(--tgg-gold);
	padding-bottom: 0.25rem;
}

.tgg-archive__no-results-link a:hover {
	color: var(--tgg-link-hover) !important;
}

/* ===== Episode card ========================================== */
/* Engraved double rule around each card — Gilded Age portrait frame */
.tgg-episode-card {
	background: var(--tgg-card-bg);
	border: 3px double var(--tgg-card-border);
	box-shadow: 0 1px 3px rgba( 93, 25, 35, 0.04 );
	transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.tgg-episode-card:hover {
	transform: translateY( -3px );
	border-color: var(--tgg-gold);
	box-shadow: 0 4px 16px rgba( 93, 25, 35, 0.10 );
}

.tgg-episode-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

/* Thin gold plate-mark between the image and the caption block —
   like the rule beneath a vintage book-plate engraving. */
.tgg-episode-card__image {
	overflow: hidden;
	aspect-ratio: 4 / 3;
	line-height: 0;
	border-bottom: 1px solid var(--tgg-gold);
}

/* !important overrides CoBlocks' inline height/width styles that otherwise
   shrink portrait images inside the 4:3 frame. object-position: top
   preserves heads + faces in portrait headshots rather than centering. */
.tgg-episode-card__image img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center top !important;
	transition: transform 0.4s ease;
}

.tgg-episode-card:hover .tgg-episode-card__image img {
	transform: scale( 1.04 );
}

.tgg-episode-card__body {
	padding: 1.5rem 1.6rem 1.8rem;
}

.tgg-episode-card__title {
	font-family: 'Playfair Display', serif;
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.25;
	margin: 0 0 0.75rem;
	color: var(--tgg-heading);
}

.tgg-episode-card__date {
	display: block;
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 0.85rem;
	color: var(--tgg-muted);
	margin: 0 0 0.75rem;
}

.tgg-episode-card__excerpt {
	font-size: 0.95rem;
	color: var(--tgg-muted);
	margin: 0;
	line-height: 1.55;
}

/* ===== Single episode ======================================== */
.tgg-episode {
	max-width: 760px;
	margin: 0 auto;
	padding: 1.5rem 1.5rem 4rem;
}

.tgg-episode__header {
	margin-bottom: 2.25rem;
	text-align: center;
}

.tgg-episode__kicker {
	font-size: 0.8rem;
	margin-bottom: 1rem;
}

.tgg-episode__title {
	font-family: 'Playfair Display', serif;
	font-style: normal;
	font-weight: 700;
	font-size: clamp( 2.2rem, 4.4vw, 3.1rem );
	line-height: 1.12;
	margin: 0;
	color: var(--tgg-heading);
	letter-spacing: -0.01em;
}

.tgg-episode__date {
	display: block;
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 1rem;
	color: var(--tgg-muted);
	margin-top: 0.85rem;
}

/* Topic chips in the episode header — metadata, slightly smaller than
   the homepage chip nav. Each links to ?topic=slug on the archive. */
.tgg-episode__topics {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1.25rem;
}

.tgg-episode__topic-chip {
	font-family: 'Inter', sans-serif;
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-heading);
	background: var(--tgg-card-bg);
	border: 1px solid var(--tgg-card-border);
	padding: 0.5rem 0.9rem;
	text-decoration: none !important;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.tgg-episode__topic-chip:hover,
.tgg-episode__topic-chip:focus {
	background: var(--tgg-accent);
	color: var(--tgg-bg);
	border-color: var(--tgg-accent);
}

.tgg-episode__header::after {
	content: "";
	display: block;
	width: 50px;
	height: 1px;
	background: var(--tgg-gold);
	margin: 1.5rem auto 0;
}

/* Featured image — natural aspect ratio, capped at 540px tall. Only rendered
   for episodes whose content comes from a standalone page (not archive-entry
   sources, which already have their images inline in body content). */
.tgg-episode__featured {
	max-width: 100%;
	margin: 0 auto 2.5rem;
	text-align: center;
}

/* The gold frame hugs the image only — caption sits outside it, below. */
.tgg-episode__featured-frame {
	display: inline-block;
	max-width: 100%;
	line-height: 0;
	border: 1px solid var(--tgg-border);
}

.tgg-episode__featured img {
	display: block !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 540px !important;
	margin: 0 auto !important;
	object-fit: contain !important;
}

.tgg-episode__featured-caption {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--tgg-text);
	margin: 0.85rem auto 0;
	max-width: 40rem;
	text-align: center;
}

.tgg-episode__player {
	margin: 0 0 2.5rem;
	border: 1px solid var(--tgg-border);
}

.tgg-episode__player iframe {
	display: block;
}

.tgg-episode__content {
	font-size: 1.08rem;
	line-height: 1.75;
	color: var(--tgg-text);
	margin: 0 0 3.5rem;
}

.tgg-episode__content p {
	margin: 0 0 1.4em;
}

.tgg-episode__content a {
	color: var(--tgg-link);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: rgba( 93, 25, 35, 0.45 );
	text-underline-offset: 0.18em;
}

.tgg-episode__content a:hover {
	color: var(--tgg-link-hover);
	text-decoration-color: var(--tgg-link-hover);
}

.tgg-episode__content h2,
.tgg-episode__content h3,
.tgg-episode__content h4 {
	margin-top: 2.2em;
	margin-bottom: 0.6em;
}

/* Standalone images (NOT inside a gallery): centered block, capped 540px.
   Excluded via :not() so gallery children keep their flex/grid behavior. */
.tgg-episode__content > .wp-block-image,
.tgg-episode__content > figure:not(.wp-block-gallery),
.tgg-episode__content > p > .wp-block-image {
	float: none !important;
	clear: both;
	display: block !important;
	margin: 2.5rem auto !important;
	padding: 0;
	width: auto !important;
	max-width: 100% !important;
	text-align: center;
	line-height: 0;
}

/* Gallery container — wp-block-gallery is a flex row. Force visible side-by-side. */
.tgg-episode__content .wp-block-gallery {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 1rem !important;
	margin: 2.5rem 0 !important;
	padding: 0 !important;
	list-style: none;
}

/* Gallery children — flex items at ~50% width (two columns by default).
   Override CoBlocks' inline width:100% on inner imgs. */
.tgg-episode__content .wp-block-gallery > figure,
.tgg-episode__content .wp-block-gallery > .wp-block-image,
.tgg-episode__content .wp-block-gallery .blocks-gallery-item {
	flex: 1 1 calc( 50% - 0.5rem );
	max-width: calc( 50% - 0.5rem );
	margin: 0 !important;
	padding: 0;
	display: block;
}

.tgg-episode__content .wp-block-gallery > figure > img,
.tgg-episode__content .wp-block-gallery > .wp-block-image > img,
.tgg-episode__content .wp-block-gallery .blocks-gallery-item img {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 480px !important;
	object-fit: cover;
	margin: 0 !important;
}

/* Single-column on narrow screens */
@media ( max-width: 600px ) {
	.tgg-episode__content .wp-block-gallery > figure,
	.tgg-episode__content .wp-block-gallery > .wp-block-image,
	.tgg-episode__content .wp-block-gallery .blocks-gallery-item {
		flex: 1 1 100%;
		max-width: 100%;
	}
}

/* All content images: dimension caps as a safety net. */
html body .tgg-episode__content img {
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 640px !important;
	margin: 0 auto;
}

/* Small portrait images (book covers, portraits) get a comfortable minimum
   presence so they don't float tiny in the column. Large images are unaffected
   (they already fill toward the 100%/640px caps above). Low-res sources will
   upscale slightly — acceptable for covers/portraits. */
html body .tgg-episode__content .wp-block-image img {
	width: auto !important;
	min-width: min( 340px, 100% ) !important;
}

/* Click any body image to view it full size. */
.tgg-episode__content a.tgg-img-zoom {
	display: inline-block;
	line-height: 0;
	cursor: zoom-in;
	border: 0;
}

.tgg-episode__content a.tgg-img-zoom img {
	transition: opacity 0.2s ease;
}

.tgg-episode__content a.tgg-img-zoom:hover img {
	opacity: 0.9;
}

.tgg-episode__content figcaption {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 0.92rem;
	color: var(--tgg-muted);
	line-height: 1.5;
	margin-top: 0.75rem;
	text-align: center;
}

/* Paragraph styling — make sure prose breathes. */
html body .tgg-episode__content p {
	margin: 0 0 1.4em !important;
	line-height: 1.75 !important;
}

/* Drop cap on the first paragraph of episodes whose source is a single dense
   block of prose — adds an editorial flourish that makes long single-paragraph
   pieces feel intentional. */
.tgg-episode__content > p:first-of-type::first-letter {
	font-family: 'Playfair Display', serif;
	font-weight: 700;
	font-size: 3.6em;
	line-height: 0.85;
	float: left;
	color: var(--tgg-accent);
	padding: 0.05em 0.15em 0 0;
	margin-top: 0.05em;
}

.tgg-episode__gallery {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) );
	gap: 1rem;
	margin: 0 0 3rem;
}

/* Gallery thumbnails — uniform squares, object-fit cover.
   Overrides CoBlocks inline `height:149.97%` style. */
.tgg-episode__gallery-item {
	margin: 0 !important;
	padding: 0;
	border: 1px solid var(--tgg-border);
	aspect-ratio: 1 / 1;
	overflow: hidden;
	line-height: 0;
}

.tgg-episode__gallery-item img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	margin: 0 !important;
}

/* Break out of the 760px reading column to a wider gallery band so the three
   cards get comfortable (non-skinny) proportions like the archive grid. */
.tgg-episode__related {
	width: min( 1120px, 100vw - 3rem );
	margin-left: 50%;
	transform: translateX( -50% );
	margin-top: 2.5rem;
}

.tgg-episode__related-heading {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 1.6rem, 3vw, 2rem );
	color: var(--tgg-heading);
	text-align: center;
	margin: 0 0 2.25rem;
}

.tgg-episode__related-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 1.75rem;
	align-items: start;
}

@media ( max-width: 900px ) {
	.tgg-episode__related-grid {
		grid-template-columns: repeat( 2, 1fr );
	}
}

@media ( max-width: 600px ) {
	.tgg-episode__related-grid {
		grid-template-columns: 1fr;
		max-width: 420px;
		margin: 0 auto;
	}
}

/* Keep related-card bodies tidy: clamp the excerpt so card heights stay even. */
.tgg-episode__related .tgg-episode-card__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Match the widened Related row so the divider spans the full band, not the
   narrow 760px reading column. */
.tgg-episode__back {
	clear: both;
	width: min( 1120px, 100vw - 3rem );
	margin-left: 50%;
	transform: translateX( -50% );
	margin-top: 3rem;
	border-top: 1px solid var(--tgg-border);
	padding-top: 2.5rem;
	text-align: center;
}

.tgg-episode__back a {
	display: inline-block;
	font-family: 'Inter', sans-serif;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tgg-heading);
	text-decoration: none;
	border: 1px solid var(--tgg-gold);
	padding: 0.9rem 2.25rem;
	transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease;
}

.tgg-episode__back a:hover {
	background: var(--tgg-accent);
	border-color: var(--tgg-accent);
	color: #fff;
}

/* ===== Header / Footer overrides (parent theme) ================ */
/* Force palette across the parent theme's header, nav, mobile menu, footer. */
body .site-header,
body .site-header *,
body .site-footer,
body .site-footer * {
	color: var(--tgg-heading);
}

body .site-header .site-title a,
body .site-header .site-title a:hover,
body .site-header .site-description {
	color: var(--tgg-heading) !important;
	text-decoration: none;
}

/* Engraved double gold rule between header and body — Gilded Age frame line */
body .site-header {
	border-bottom: 3px double var(--tgg-gold);
	padding-bottom: 0.75rem !important;
	margin-bottom: 0.75rem;
	background: var(--tgg-bg) !important;
}

/* Site title text — letterpress-spaced for a refined masthead feel.
   Gild it: flank with gold fleur-de-lys glyphs tying to the wallpaper motif.
   Applied to .site-title itself (not the inner <a>) because TT1 drops the link
   on the homepage, where the title is bare text. Fleur from Twemoji (CC-BY 4.0). */
body .site-title,
body .site-title a {
	font-family: 'Playfair Display', serif !important;
	font-size: 1.05rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.3em !important;
	text-transform: uppercase !important;
}

body .site-title {
	display: inline-flex !important;
	align-items: center;
	gap: 0.85em;
}

body .site-title::before,
body .site-title::after {
	content: "";
	flex: none;
	width: 0.95em;
	height: 0.95em;
	background: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2036%2036%22%3E%3Cpath%20fill=%22%23b8915a%22%20d=%22M10.582%2018c2.075%201.244%202.74%203.559%202.416%206h4.837c.103-.649.165-1.316.165-2%200-6.075-5.001-11.731-10.27-11.731-8.479%200-9.866%209.043-4.567%2011.731-1.059-5%204.122-5.975%207.419-4zm14.875%200c-2.075%201.244-2.74%203.559-2.416%206h-4.837c-.104-.649-.165-1.316-.165-2%200-6.075%205.001-11.731%2010.269-11.731%208.479%200%209.866%209.043%204.567%2011.731%201.061-5-4.121-5.975-7.418-4zm4.334%208.647C29.315%2028.014%2028.028%2029%2026.5%2029c-1.762%200-3.205-1.307-3.449-3h-2.615c-.271.614-.436%201.285-.436%202%200%202.762%202.238%205%205%205s5-2.238%205-5c0-.472-.086-.92-.209-1.353zM12.949%2026c-.244%201.693-1.688%203-3.449%203-1.528%200-2.814-.986-3.291-2.353C6.086%2027.08%206%2027.528%206%2028c0%202.762%202.238%205%205%205s5-2.238%205-5c0-.715-.165-1.386-.436-2h-2.615z%22/%3E%3Cpath%20fill=%22%23b8915a%22%20d=%22M13%2010.227C13%203.951%2018%200%2018%200s5%203.951%205%2010.227S20.762%2025%2018%2025s-5-8.497-5-14.773z%22/%3E%3Cpath%20fill=%22%23b8915a%22%20d=%22M14%2030c0-3.313%202.344-6%204-6%201.656%200%204%202.687%204%206s-4%206-4%206-4-2.687-4-6z%22/%3E%3Cpath%20fill=%22%23b8915a%22%20d=%22M25%2024.5c0%201.933-1.567%203.5-3.5%203.5h-7c-1.934%200-3.5-1.567-3.5-3.5s1.566-3.5%203.5-3.5h7c1.933%200%203.5%201.567%203.5%203.5z%22/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Tagline lives in the brand hero now; clear it from the masthead. */
body .site-description {
	display: none !important;
}

/* If Carl uploads a Customizer site logo, size it nicely */
body .custom-logo-link img,
body .custom-logo {
	max-height: 80px;
	width: auto;
}

/* ----- Primary nav (TT1 markup: nav.primary-navigation .menu-wrapper > li.menu-item > a) ----- */
html body .primary-navigation a,
html body .primary-navigation .menu-item a,
html body .footer-menu a,
html body .menu-modal a {
	font-family: 'Inter', 'Helvetica Neue', sans-serif !important;
	font-size: 0.74rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.28em !important;
	text-transform: uppercase !important;
	color: var(--tgg-heading) !important;
	opacity: 1 !important;
	text-decoration: none !important;
}

html body .primary-navigation a:hover,
html body .primary-navigation a:focus,
html body .footer-menu a:hover,
html body .footer-menu a:focus {
	color: var(--tgg-accent) !important;
}

/* Animated gold hairline beneath nav links — slides in from left on hover,
   remains for the current page. */
html body .primary-navigation .menu-item > a {
	position: relative;
	padding-bottom: 6px !important;
}

html body .primary-navigation .menu-item > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: 0;
	height: 1px;
	background: var(--tgg-gold);
	transition: right 0.32s ease;
}

html body .primary-navigation .menu-item > a:hover::after,
html body .primary-navigation .menu-item > a:focus::after,
html body .primary-navigation .current-menu-item > a::after,
html body .primary-navigation .current_page_item > a::after,
html body .primary-navigation .current-menu-parent > a::after,
html body .primary-navigation .current_page_parent > a::after {
	right: 0;
}

/* Short vertical gold hairline between top-level nav items — engraved menu
   feel. Drawn as a left-edge background gradient (~11px tall, centred) on
   every non-first item, so the line is decoration not full-height border. */
html body .primary-navigation .menu-item + .menu-item {
	background-image: linear-gradient( var(--tgg-gold), var(--tgg-gold) );
	background-repeat: no-repeat;
	background-position: 0 center;
	background-size: 1px 11px;
	padding-left: 1.4rem;
}

/* Desktop masthead as a single row — wordmark left, menu right, on one line
   with the engraved rule beneath both. Below this width TT1's stacked layout
   (and, narrower still, its hamburger) take over unchanged. */
@media ( min-width: 1180px ) {
	body .site-header {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 2.5rem;
	}
	body .site-branding {
		margin: 0 !important;
		flex: 0 0 auto;
	}
	body .primary-navigation {
		margin: 0 !important;
		width: auto !important;
		flex: 0 1 auto;
	}
	body .primary-navigation .menu-button-container {
		display: none !important;
	}
	body .primary-navigation .primary-menu-container {
		display: block !important;
	}
	body .primary-navigation .menu-wrapper {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-end;
		gap: 0.5rem 0;
	}
}

/* Dropdown submenu (desktop) — "About the Show" reveals on hover/focus. */
@media ( min-width: 1024px ) {
	html body .primary-navigation .sub-menu-toggle {
		display: none !important;
	}

	html body .primary-navigation .menu-item-has-children {
		position: relative;
	}

	/* Gold caret after the parent label (::after is the sliding underline, so
	   the caret rides ::before with flex order). */
	html body .primary-navigation .menu-item-has-children > a {
		display: inline-flex !important;
		align-items: center;
		gap: 0.5em;
	}

	html body .primary-navigation .menu-item-has-children > a::before {
		content: "";
		order: 2;
		width: 0;
		height: 0;
		border-left: 0.3em solid transparent;
		border-right: 0.3em solid transparent;
		border-top: 0.34em solid var(--tgg-gold);
		transition: transform 0.18s ease;
	}

	html body .primary-navigation .menu-item-has-children:hover > a::before {
		transform: rotate( 180deg );
	}

	html body .primary-navigation .sub-menu {
		position: absolute;
		top: 100%;
		right: 0;
		left: auto;
		min-width: 230px;
		margin: 0;
		padding: 0.5rem 0;
		list-style: none;
		background: var(--tgg-card-bg) !important;
		border: 1px solid var(--tgg-gold);
		box-shadow: 0 12px 30px rgba( 93, 25, 35, 0.16 );
		opacity: 0;
		visibility: hidden;
		transform: translateY( 8px );
		transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
		z-index: 100;
	}

	/* keep a hover bridge so the menu doesn't vanish in the gap */
	html body .primary-navigation .menu-item-has-children::after {
		content: "";
		position: absolute;
		top: 100%;
		right: 0;
		width: 230px;
		height: 12px;
	}

	html body .primary-navigation .menu-item-has-children:hover > .sub-menu,
	html body .primary-navigation .menu-item-has-children:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translateY( 0 );
	}

	/* TT1 paints each submenu <li> with its default green; clear it so our
	   cream panel shows. Also hide TT1's green CSS arrow above the panel. */
	html body .primary-navigation .sub-menu .menu-item,
	html body .primary-navigation .sub-menu li {
		background: transparent !important;
		padding: 0 !important;
		display: block;
	}

	html body .primary-navigation .sub-menu::before,
	html body .primary-navigation .sub-menu::after {
		display: none !important;
	}

	html body .primary-navigation .sub-menu .menu-item > a {
		display: block !important;
		padding: 0.55rem 1.4rem !important;
		white-space: nowrap;
		font-size: 0.7rem !important;
		letter-spacing: 0.22em !important;
	}

	/* No sliding underline inside the dropdown; use a fill highlight instead. */
	html body .primary-navigation .sub-menu .menu-item > a::after {
		display: none !important;
	}

	html body .primary-navigation .sub-menu .menu-item > a:hover,
	html body .primary-navigation .sub-menu .menu-item > a:focus {
		background: var(--tgg-accent);
		color: var(--tgg-bg) !important;
	}
}

/* ===== Mobile menu (TT1 hamburger overlay = .primary-navigation, < 1180px) =====
   TT1 paints the overlay panel + boxed submenus with its default mint green
   (--global--color-background, #D1E4DD). Our desktop dropdown rules are scoped to
   min-width:1024px, so on mobile that green showed through. Repaint in the cream/
   gilded palette and drop TT1's boxed submenu + green pointer arrows. */
@media ( max-width: 1179.98px ) {
	html body .primary-navigation > .primary-menu-container,
	html body .primary-navigation-open .menu-button-container {
		background-color: var(--tgg-bg) !important;
	}

	html body .primary-navigation .menu-wrapper .sub-menu,
	html body .primary-navigation .menu-wrapper .sub-menu li,
	html body .primary-navigation .menu-wrapper .menu-item {
		background: transparent !important;
	}

	/* Replace TT1's green-bordered box + pointer arrow with a gold hairline indent. */
	html body .primary-navigation > div > .menu-wrapper > li > .sub-menu {
		border: 0 !important;
		border-left: 1px solid var(--tgg-gold) !important;
		margin: 0.25rem 0 0.6rem 1.1rem !important;
		padding: 0 0 0 0.5rem !important;
	}

	html body .primary-navigation > div > .menu-wrapper > li > .sub-menu::before,
	html body .primary-navigation > div > .menu-wrapper > li > .sub-menu::after {
		display: none !important;
	}

	/* Expand/collapse (+/-) toggle icons in gold. */
	html body .primary-navigation .sub-menu-toggle .icon-plus svg,
	html body .primary-navigation .sub-menu-toggle .icon-minus svg {
		color: var(--tgg-gold) !important;
	}
}

/* ===== Footer (child theme override of TT1) ================== */
body .site-footer.tgg-footer {
	background: var(--tgg-bg) !important;
	border-top: 1px solid var(--tgg-gold);
	margin-top: 3rem;
	padding: 2.5rem 1.5rem !important;
}

.tgg-footer__inner {
	max-width: 1100px;
	margin: 0 auto;
	text-align: center;
}

.tgg-footer__nav {
	margin-bottom: 1.5rem;
}

/* Footer menu: top-level items become column headings; their submenu links
   list vertically beneath. Renders the full menu (depth 0). */
.tgg-footer__menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 2.5rem 3.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}

.tgg-footer__menu > li {
	margin: 0;
	padding: 0;
}

/* Hide TT1's injected submenu-toggle buttons (the stray dark box). */
html body .tgg-footer .sub-menu-toggle {
	display: none !important;
}

/* Top-level item = heading (gold). Parents with children aren't real links. */
html body .tgg-footer__menu > li > a {
	font-family: 'Inter', 'Helvetica Neue', sans-serif !important;
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.24em !important;
	text-transform: uppercase !important;
	color: var(--tgg-gold-soft) !important;
	text-decoration: none !important;
	padding: 0.4rem 0;
	display: inline-block;
}

html body .tgg-footer__menu > li.menu-item-has-children > a {
	pointer-events: none;
	cursor: default;
}

html body .tgg-footer__menu > li > a:hover,
html body .tgg-footer__menu > li > a:focus {
	color: var(--tgg-accent) !important;
}

/* Submenu: flatten into a static vertical list under each heading. */
html body .tgg-footer__menu .sub-menu {
	position: static !important;
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	min-width: 0 !important;
	margin: 0.75rem 0 0 !important;
	padding: 0 !important;
	list-style: none;
}

html body .tgg-footer__menu .sub-menu li {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

html body .tgg-footer__menu .sub-menu a {
	font-family: 'Inter', 'Helvetica Neue', sans-serif !important;
	font-size: 0.72rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--tgg-heading) !important;
	text-decoration: none !important;
	display: block !important;
	padding: 0.4rem 0 !important;
}

html body .tgg-footer__menu .sub-menu a:hover,
html body .tgg-footer__menu .sub-menu a:focus {
	color: var(--tgg-accent) !important;
}

.tgg-footer__copyright {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 0.92rem;
	color: var(--tgg-muted);
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--tgg-card-border);
}

/* Belt-and-suspenders: defensively hide any lingering TT1 "Proudly powered" markup */
body .powered-by-wordpress,
body .site-info .powered-by-wordpress,
body .site-footer .powered-by {
	display: none !important;
}

/* Mobile menu button + tray */
body .primary-mobile-menu,
body .primary-mobile-menu svg {
	color: var(--tgg-heading) !important;
	fill: var(--tgg-heading) !important;
}

body.tgg-theme-dark .menu-modal,
body.tgg-theme-light .menu-modal {
	background-color: var(--tgg-bg) !important;
}

body .menu-modal *,
body .menu-modal a {
	color: var(--tgg-heading) !important;
}

/* ===== Page title treatment (About Carl, Newsletter, etc.) ===
   Match the "Episodes" archive headline: italic Playfair, gold hairline.
   Scoped to body.page so it doesn't touch the single-episode template. */
body.page .entry-header,
body.page .page-header {
	text-align: center;
	margin-bottom: 2.5rem;
	border-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* TT1 also drops a thick rule above .entry-content on pages — kill it too. */
body.page .entry-content {
	border-top: 0 !important;
	padding-top: 0 !important;
}

body.page .entry-title,
body.page .page-title,
body.page .entry-header h1 {
	font-family: 'Playfair Display', serif !important;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 2.4rem, 5vw, 3.6rem ) !important;
	line-height: 1.15;
	color: var(--tgg-heading) !important;
	margin: 0 auto 0.5rem;
	text-align: center;
}

body.page .entry-header::after,
body.page .page-header::after {
	content: "";
	display: block;
	width: 60px;
	height: 1px;
	background: var(--tgg-gold);
	margin: 1.5rem auto 0;
}

/* ===== Inner page body (About Carl, Contact, Events, Newsletter, Press) ===
   Width + prose treatment mirroring the single-episode template so pages and
   episodes read as one family. */
.tgg-page {
	max-width: 760px;
	margin: 0 auto;
	padding: 1.5rem 1.5rem 4rem;
}

.tgg-page__header {
	margin-bottom: 2.5rem;
}

.tgg-page__featured {
	margin: 0 auto 2.5rem;
	padding: 0;
	line-height: 0;
	border: 1px solid var(--tgg-border);
	text-align: center;
}

.tgg-page__featured img {
	display: block !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 540px !important;
	margin: 0 auto !important;
	object-fit: contain !important;
}

.tgg-page__content {
	font-size: 1.08rem;
	line-height: 1.75;
	color: var(--tgg-text);
	max-width: 660px;
	margin-left: auto;
	margin-right: auto;
}

/* TT1 caps .entry-content children at ~610px AND the prose margin reset below
   pins them left, shifting copy off-center under the centered page title.
   Uncap them so they fill (and center within) the measure above. */
html body .tgg-page__content > * {
	max-width: 100%;
}

html body .tgg-page__content p {
	margin: 0 0 1.4em !important;
	line-height: 1.75 !important;
}

.tgg-page__content a {
	color: var(--tgg-link);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: rgba( 93, 25, 35, 0.45 );
	text-underline-offset: 0.18em;
}

.tgg-page__content a:hover {
	color: var(--tgg-link-hover);
	text-decoration-color: var(--tgg-link-hover);
}

.tgg-page__content h2,
.tgg-page__content h3,
.tgg-page__content h4 {
	font-family: 'Playfair Display', serif;
	color: var(--tgg-heading);
	margin-top: 2.2em;
	margin-bottom: 0.6em;
	line-height: 1.2;
}

.tgg-page__content ul,
.tgg-page__content ol {
	margin: 0 0 1.4em;
	padding-left: 1.4em;
	line-height: 1.7;
}

.tgg-page__content li {
	margin-bottom: 0.5em;
}

.tgg-page__content blockquote {
	margin: 2rem 0;
	padding: 0.5rem 0 0.5rem 1.5rem;
	border-left: 2px solid var(--tgg-gold);
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 1.2rem;
	color: var(--tgg-heading);
}

html body .tgg-page__content img {
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 540px !important;
	margin: 0 auto;
}

.tgg-page__content > .wp-block-image,
.tgg-page__content > figure:not(.wp-block-gallery),
.tgg-page__content > p > .wp-block-image {
	display: block !important;
	margin: 2.5rem auto !important;
	text-align: center;
	line-height: 0;
}

.tgg-page__content figcaption {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 0.92rem;
	color: var(--tgg-muted);
	line-height: 1.5;
	margin-top: 0.75rem;
	text-align: center;
}

/* Team roster (media-text blocks): consistent square gold-framed photos in a
   tidy aligned grid (overrides the inline 31%/auto + mismatched aspect ratios). */
.tgg-page__content .wp-block-media-text {
	max-width: 560px;
	margin: 0 auto 1.75rem !important;
	align-items: center;
	gap: 1.6rem !important;
}

@media ( min-width: 600px ) {
	.tgg-page__content .wp-block-media-text {
		grid-template-columns: 132px 1fr !important;
	}
}

.tgg-page__content .wp-block-media-text__media {
	margin: 0;
	line-height: 0;
}

html body .tgg-page__content .wp-block-media-text__media img {
	width: 132px !important;
	height: 132px !important;
	max-width: 132px !important;
	max-height: 132px !important;
	object-fit: cover !important;
	object-position: center !important;
	margin: 0 !important;
	border: 1px solid var(--tgg-gold);
	box-shadow: 0 3px 12px rgba( 93, 25, 35, 0.10 );
	background: var(--tgg-card-bg);
}

.tgg-page__content .wp-block-media-text__content p {
	margin: 0 0 0.5em !important;
	font-size: 1.05rem !important;
	line-height: 1.5 !important;
}

.tgg-page__content .wp-block-media-text__content p:first-child {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 1.2rem !important;
	color: var(--tgg-heading);
}

/* Team member without a photo — name sits in the same right column as the
   others (empty 132px photo column reserved), same Playfair italic treatment. */
.tgg-page__content .tgg-team-noimg {
	max-width: 560px;
	margin: 0 auto 1.75rem;
}

@media ( min-width: 600px ) {
	.tgg-page__content .tgg-team-noimg {
		display: grid;
		grid-template-columns: 132px 1fr;
		gap: 1.6rem;
		align-items: center;
	}
}

html body .tgg-page__content .tgg-team-noimg__name {
	grid-column: 2;
	margin: 0 !important;
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 1.2rem !important;
	line-height: 1.5 !important;
	color: var(--tgg-heading);
}

/* Press / Selected Mentions — elegant centered list (replaces raw bullets) */
.tgg-press-list {
	max-width: 620px;
	margin: 2.25rem auto 0;
}

.tgg-press-item {
	text-align: center;
	padding: 1.6rem 0;
	border-bottom: 1px solid var(--tgg-card-border);
}

.tgg-press-item:first-child {
	border-top: 1px solid var(--tgg-card-border);
}

html body .tgg-press-title {
	display: inline-block;
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: 1.32rem;
	line-height: 1.35;
	color: var(--tgg-heading);
	text-decoration: none;
}

html body .tgg-press-title:hover {
	color: var(--tgg-link-hover);
	text-decoration: underline;
	text-decoration-color: var(--tgg-link-hover);
}

html body .tgg-press-meta {
	margin: 0.55rem 0 0 !important;
	font-family: 'Inter', 'Helvetica Neue', sans-serif;
	font-size: 0.74rem;
	font-style: normal;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--tgg-muted);
}

/* ===== Homepage ============================================= */
.tgg-home {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 1.5rem 5rem;
}

/* ---- Brand hero: logo + Carl photo, side by side ---- */
.tgg-home__brand {
	text-align: center;
	padding: 2rem 1rem 1rem;
	max-width: 980px;
	margin: 0 auto;
}

/* ---- Frontispiece plate: framed title page on the damask ground ---- */
.tgg-home__frontispiece {
	position: relative;
	max-width: 600px;
	margin: 1rem auto 0;
	padding: 3.25rem 3rem 3rem;
	background: var(--tgg-card-bg);
	border: 2px solid var(--tgg-gold);
	box-shadow: 0 8px 30px rgba( 93, 25, 35, 0.12 );
}

/* Inner engraved hairline — the second rule of the double-frame */
.tgg-home__frontispiece::before {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid var(--tgg-gold);
	opacity: 0.5;
	pointer-events: none;
}

/* Corner fleurons */
.tgg-home__corner {
	position: absolute;
	color: var(--tgg-gold);
	font-size: 1.3rem;
	line-height: 1;
	z-index: 2;
}

.tgg-home__corner--tl { top: 11px; left: 14px; }
.tgg-home__corner--tr { top: 11px; right: 14px; transform: scaleX( -1 ); }
.tgg-home__corner--bl { bottom: 11px; left: 14px; transform: scaleY( -1 ); }
.tgg-home__corner--br { bottom: 11px; right: 14px; transform: scale( -1, -1 ); }

/* Single centered logo inside the plate — drop its own frame so we don't
   double up on the plate's border. */
.tgg-home__brand-logo {
	max-width: 325px;
	margin: 0 auto 1.25rem;
}

.tgg-home__frontispiece .tgg-home__brand-frame--logo {
	border: 0;
	box-shadow: none;
	padding: 0;
	background: transparent;
}

.tgg-home__frontispiece .tgg-home__brand-frame--logo::before {
	display: none;
}

/* Tagline → ornament rule → lede divider inside the plate */
.tgg-home__brand-rule {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	max-width: 260px;
	margin: 0 auto 1.4rem;
	color: var(--tgg-gold);
}

.tgg-home__brand-rule::before,
.tgg-home__brand-rule::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--tgg-gold);
	opacity: 0.7;
}

.tgg-home__brand-rule-orn {
	font-family: 'Playfair Display', serif;
	font-size: 1.15rem;
	line-height: 1;
	transform: translateY( -0.05em );
}

.tgg-home__frontispiece .tgg-home__eyebrow {
	margin: 0 0 1.4rem;
}

.tgg-home__frontispiece .tgg-home__lede {
	margin: 0 auto;
	max-width: 460px;
}

/* Shared frame container — 4:5 portrait so the pair balance visually */
.tgg-home__brand-frame {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	line-height: 0;
}

/* Matched Victorian double-hairline gold frames on both panels — read as a
   deliberate diptych of "the show" and "the host". */
.tgg-home__brand-frame--logo,
.tgg-home__brand-frame--photo {
	background: var(--tgg-card-bg);
	padding: 14px;
	border: 1px solid var(--tgg-gold);
	box-shadow: 0 3px 14px rgba( 93, 25, 35, 0.10 );
}

.tgg-home__brand-frame--logo::before,
.tgg-home__brand-frame--photo::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px solid var(--tgg-gold);
	opacity: 0.55;
	pointer-events: none;
	z-index: 2;
}

.tgg-home__brand-frame a {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
}

.tgg-home__brand-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.tgg-home__brand-img--photo {
	object-fit: cover;
	object-position: center 20%;
}

/* ---- Latest episode strip (BBH-style 45/55, Victorian inset double-frame) ---- */
.tgg-home__latest {
	position: relative;
	margin: 3rem auto 0;
	max-width: 1180px;
	background: var(--tgg-card-bg);
	border: 1px solid var(--tgg-gold);
	box-shadow: 0 6px 22px rgba( 93, 25, 35, 0.10 );
}

/* Inner gold hairline at 5px inset — drawn ON TOP of the grid (incl. the
   mansion photo) so the Victorian frame is continuous on all four sides. */
.tgg-home__latest::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px solid var(--tgg-gold);
	opacity: 0.6;
	pointer-events: none;
	z-index: 3;
}

.tgg-home__latest-grid {
	display: grid;
	grid-template-columns: 45fr 55fr;
	min-height: 380px;
	position: relative;
	z-index: 1;
}

.tgg-home__latest-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 2.5rem;
}

.tgg-home__latest-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--tgg-gold-soft);
	margin: 0 0 1rem;
}

.tgg-home__latest-eyebrow-mark {
	font-family: 'Playfair Display', serif;
	font-style: normal;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--tgg-gold);
	letter-spacing: 0;
	transform: translateY( -0.05em );
}

.tgg-home__latest-num {
	display: inline-block;
	align-self: flex-start;
	font-family: 'Inter', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tgg-bg);
	background: var(--tgg-accent);
	padding: 0.3rem 0.75rem;
	margin: 0 0 0.9rem;
	line-height: 1;
}

.tgg-home__latest-title {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 1.7rem, 2.6vw, 2.4rem );
	line-height: 1.15;
	color: var(--tgg-heading);
	margin: 0 0 0.6rem;
}

.tgg-home__latest-title a {
	color: inherit !important;
	text-decoration: none !important;
}

.tgg-home__latest-title a:hover,
.tgg-home__latest-title a:focus {
	color: var(--tgg-link-hover) !important;
}

.tgg-home__latest-date {
	display: block;
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-size: 0.95rem;
	color: var(--tgg-muted);
	margin-bottom: 1rem;
}

.tgg-home__latest-excerpt {
	font-family: 'Lora', serif;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--tgg-text);
	margin: 0 0 1.5rem;
}

/* "Read More" link — the inline player below handles listening. */
.tgg-home__latest-more {
	align-self: flex-start;
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-accent) !important;
	text-decoration: none !important;
	border-bottom: 1px solid var(--tgg-gold);
	padding-bottom: 0.25rem;
	transition: color 0.18s ease;
}

.tgg-home__latest-more:hover {
	color: var(--tgg-link-hover) !important;
}

/* The cell's cream background shows in the 5px gap around the photo so the
   Victorian frame reads identically on both halves of the card. */
.tgg-home__latest-image {
	overflow: hidden;
	background: var(--tgg-card-bg);
	position: relative;
}

.tgg-home__latest-image a {
	display: block;
	position: absolute;
	inset: 5px 5px 5px 0;
}

/* CoBlocks injects inline `style="height:N%"` on rendered img elements
   — must use !important to defeat the inline style. */
.tgg-home__latest-image img,
.tgg-home__latest-img {
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center !important;
	filter: saturate( 0.9 ) sepia( 0.05 ) brightness( 0.97 );
	transition: filter 0.4s ease;
}

.tgg-home__latest-image:hover img {
	filter: saturate( 1 ) sepia( 0 ) brightness( 1 );
}

.tgg-home__latest-fallback {
	width: 100%;
	height: 100%;
	min-height: 380px;
	background: linear-gradient( 135deg, #5d1923 0%, #3a0f17 100% );
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	color: var(--tgg-gold);
}

.tgg-home__latest-fallback-ornament {
	font-family: 'Playfair Display', serif;
	font-size: 4rem;
	line-height: 1;
}

.tgg-home__latest-fallback-num {
	font-family: 'Inter', sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.25em;
	text-transform: uppercase;
}

/* ---- Inline player — sits INSIDE the latest-episode frame, below the grid ---- */
.tgg-home__latest-player {
	position: relative;
	z-index: 1;
	background: var(--tgg-card-bg);
	border-top: 1px solid var(--tgg-gold);
	padding: 1.25rem 1.5rem 1.5rem;
	line-height: 0;
}

.tgg-home__latest-player iframe {
	display: block;
	width: 100%;
	border: 0;
}

/* ---- Meet Carl + Support, side by side (~60/40) ---- */
.tgg-home__meet {
	display: grid;
	grid-template-columns: 1.45fr 1fr;
	gap: 2.5rem;
	align-items: stretch;
	max-width: 1080px;
	margin: 4rem auto 0;
}

/* ---- About the host (photo + bio excerpt + read more) ---- */
.tgg-home__about {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 1.75rem;
	align-items: center;
	margin: 0;
}

.tgg-home__about-frame {
	position: relative;
	aspect-ratio: 4 / 5;
	background: var(--tgg-card-bg);
	padding: 12px;
	border: 1px solid var(--tgg-gold);
	box-shadow: 0 3px 14px rgba( 93, 25, 35, 0.10 );
	overflow: hidden;
	line-height: 0;
}

.tgg-home__about-frame::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px solid var(--tgg-gold);
	opacity: 0.55;
	pointer-events: none;
	z-index: 2;
}

.tgg-home__about-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 20%;
	position: relative;
	z-index: 1;
}

.tgg-home__about-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--tgg-gold-soft);
	margin: 0 0 0.6rem;
}

.tgg-home__about-title {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 1.7rem, 3vw, 2.2rem );
	line-height: 1.15;
	color: var(--tgg-heading);
	margin: 0 0 0.9rem;
}

.tgg-home__about-blurb {
	font-family: 'Lora', serif;
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--tgg-text);
	margin: 0 0 1.25rem;
}

.tgg-home__about-link {
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-accent) !important;
	text-decoration: none !important;
	border-bottom: 1px solid var(--tgg-gold);
	padding-bottom: 0.25rem;
}

.tgg-home__about-link:hover {
	color: var(--tgg-link-hover) !important;
}

/* ---- Support the show (Patreon CTA card) — right column of the meet band ---- */
.tgg-home__support {
	margin: 0;
	display: flex;
}

.tgg-home__support-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	text-align: center;
	background: var(--tgg-card-bg);
	border: 1px solid var(--tgg-gold);
	box-shadow: 0 6px 22px rgba( 93, 25, 35, 0.10 );
	padding: 2.5rem 2rem;
}

.tgg-home__support-card::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px solid var(--tgg-gold);
	opacity: 0.55;
	pointer-events: none;
}

.tgg-home__support-ornament {
	display: block;
	font-family: 'Playfair Display', serif;
	font-size: 1.8rem;
	line-height: 1;
	color: var(--tgg-gold);
	margin-bottom: 0.75rem;
}

.tgg-home__support-title {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 1.6rem, 3vw, 2.1rem );
	color: var(--tgg-heading);
	margin: 0 0 0.9rem;
}

.tgg-home__support-copy {
	font-family: 'Lora', serif;
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--tgg-text);
	max-width: 480px;
	margin: 0 auto 1.75rem;
}

.tgg-home__support-btn {
	display: inline-block;
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-bg) !important;
	background: var(--tgg-accent);
	text-decoration: none !important;
	padding: 0.9rem 2rem;
	transition: background 0.18s ease;
}

.tgg-home__support-btn:hover {
	background: var(--tgg-link-hover);
}

/* ---- Newsletter signup (Constant Contact form, below the search) ---- */
.tgg-home__newsletter {
	max-width: 720px;
	margin: 2.5rem auto 0;
}

.tgg-home__newsletter-card {
	position: relative;
	text-align: center;
	background: var(--tgg-card-bg);
	border: 1px solid var(--tgg-gold);
	box-shadow: 0 6px 22px rgba( 93, 25, 35, 0.10 );
	padding: 2.5rem 2rem;
}

.tgg-home__newsletter-card::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px solid var(--tgg-gold);
	opacity: 0.55;
	pointer-events: none;
}

.tgg-home__newsletter-orn {
	display: block;
	font-family: 'Playfair Display', serif;
	font-size: 1.8rem;
	line-height: 1;
	color: var(--tgg-gold);
	margin-bottom: 0.75rem;
}

.tgg-home__newsletter-title {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 1.6rem, 3vw, 2.1rem );
	color: var(--tgg-heading);
	margin: 0 0 0.9rem;
}

.tgg-home__newsletter-copy {
	font-family: 'Lora', serif;
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--tgg-text);
	max-width: 480px;
	margin: 0 auto 1.5rem;
}

/* Constrain the Constant Contact inline form within the card. */
.tgg-home__newsletter .ctct-inline-form {
	max-width: 460px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

/* Blend the Constant Contact form into the cream card: drop its white panel
   (inline-styled, so !important), and hide its built-in title/subtitle which
   duplicate our "Join the Newsletter" heading. */
.tgg-home__newsletter .ctct-form-defaults,
.tgg-home__newsletter .ctct-form-custom {
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	max-width: none !important;
}

.tgg-home__newsletter .ctct-form-header,
.tgg-home__newsletter .ctct-form-text {
	display: none !important;
}

/* Field labels + inputs in the theme idiom. */
.tgg-home__newsletter .ctct-form-label,
.tgg-home__newsletter .ctct-form-field label {
	font-family: 'Inter', sans-serif !important;
	color: var(--tgg-text) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.12em !important;
	font-size: 0.7rem !important;
}

.tgg-home__newsletter .ctct-form-element {
	background: var(--tgg-input-bg) !important;
	border: 1px solid var(--tgg-input-border) !important;
	border-radius: 0 !important;
	font-family: 'Lora', serif !important;
	color: var(--tgg-text) !important;
}

/* Gild the "Sign Up!" button. */
.tgg-home__newsletter .ctct-form-button {
	background-color: var(--tgg-accent) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-weight: 700 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	color: var(--tgg-bg) !important;
	box-shadow: none !important;
}

.tgg-home__newsletter .ctct-form-button:hover,
.tgg-home__newsletter .ctct-form-button:focus {
	background-color: var(--tgg-link-hover) !important;
}

.screen-reader-text {
	position: absolute !important;
	clip: rect( 1px, 1px, 1px, 1px );
	clip-path: inset( 50% );
	height: 1px;
	width: 1px;
	overflow: hidden;
	white-space: nowrap;
}

.tgg-home__welcome {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 2rem, 4vw, 3rem );
	line-height: 1.15;
	letter-spacing: -0.005em;
	color: var(--tgg-heading);
	margin: 0 0 0.5rem;
	text-align: center;
}

.tgg-home__eyebrow {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 1.3rem, 2.2vw, 1.7rem );
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--tgg-heading);
	margin: 0 0 1.25rem;
	text-align: center;
}

.tgg-home__pullquote {
	margin: 0 auto 1.25rem;
	max-width: 460px;
	text-align: center;
	border: 0;
	padding: 0;
}

.tgg-home__pullquote p {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 1.1rem, 1.8vw, 1.35rem );
	line-height: 1.5;
	color: var(--tgg-heading);
	margin: 0 0 0.5rem;
}

.tgg-home__pullquote cite {
	display: block;
	font-family: 'Inter', 'Helvetica Neue', sans-serif;
	font-style: normal;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-gold);
}

.tgg-home__title {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 2.8rem, 6vw, 4.6rem );
	line-height: 1.05;
	color: var(--tgg-heading);
	margin: 0 0 1.5rem;
	letter-spacing: -0.01em;
}

.tgg-home__lede {
	font-family: 'Lora', serif;
	font-size: clamp( 1.05rem, 1.7vw, 1.2rem );
	font-style: italic;
	line-height: 1.7;
	color: var(--tgg-text);
	margin: 0 auto 2.5rem;
	max-width: 620px;
}

/* Search section (now lives below topic chips) */
.tgg-home__search-section {
	margin: 3rem auto 0;
}

.tgg-home__search {
	display: flex;
	gap: 0.5rem;
	max-width: 480px;
	margin: 0 auto;
	border: 1px solid var(--tgg-card-border);
	background: var(--tgg-card-bg);
}

.tgg-home__search input[type="search"] {
	flex: 1;
	padding: 0.7rem 1rem;
	font-size: 0.95rem;
	font-family: 'Lora', serif;
	background: transparent;
	border: 0;
	color: var(--tgg-text);
	outline: none;
}

.tgg-home__search input[type="search"]::placeholder {
	color: var(--tgg-muted);
	font-style: italic;
}

.tgg-home__search button {
	padding: 0.6rem 1.5rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tgg-bg);
	background: var(--tgg-accent);
	border: 0;
	cursor: pointer;
	transition: background 0.18s ease;
}

.tgg-home__search button:hover {
	background: var(--tgg-link-hover);
}

.tgg-home__flourish {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	max-width: 360px;
	margin: 3rem auto 0;
	color: var(--tgg-gold);
}

.tgg-home__flourish::before,
.tgg-home__flourish::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--tgg-gold);
	opacity: 0.85;
}

.tgg-home__flourish-ornament {
	font-family: 'Playfair Display', serif;
	font-size: 1.6rem;
	line-height: 1;
	color: var(--tgg-gold);
	transform: translateY( -0.05em );
}

/* Sections (Recent, Topics) */
/* Period flourish divider between open sections (gold rule + ornament) */
.tgg-home__divider,
.tgg-episode__divider {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	max-width: 540px;
	margin: 4rem auto 0;
	color: var(--tgg-gold);
}

.tgg-home__divider::before,
.tgg-home__divider::after,
.tgg-episode__divider::before,
.tgg-episode__divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--tgg-gold);
	opacity: 0.75;
}

.tgg-home__divider-orn,
.tgg-episode__divider-orn {
	font-family: 'Playfair Display', serif;
	font-size: 1.5rem;
	line-height: 1;
	transform: translateY( -0.05em );
}

/* Ornamental divider heads the Related section (replaces its plain hairline). */
.tgg-episode__related .tgg-episode__divider {
	margin: 0 auto 2.5rem;
}

.tgg-home__recent,
.tgg-home__topics {
	margin-top: 3rem;
}

.tgg-home__section-header {
	text-align: center;
	margin-bottom: 2rem;
}

.tgg-home__section-title {
	font-family: 'Playfair Display', serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp( 1.8rem, 3.4vw, 2.4rem );
	color: var(--tgg-heading);
	margin: 0;
}

.tgg-home__section-title::after {
	content: "";
	display: block;
	width: 50px;
	height: 1px;
	background: var(--tgg-gold);
	margin: 1rem auto 0;
}

.tgg-home__grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 290px, 1fr ) );
	gap: 2.5rem 2rem;
}

.tgg-home__view-all {
	text-align: center;
	margin-top: 2.5rem;
}

.tgg-home__view-all a {
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-accent) !important;
	text-decoration: none !important;
	border-bottom: 1px solid var(--tgg-gold);
	padding-bottom: 0.25rem;
}

.tgg-home__view-all a:hover {
	color: var(--tgg-link-hover) !important;
}

/* Topic chip row on the homepage */
.tgg-home__chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	max-width: 880px;
	margin: 0 auto;
}

.tgg-home__chip {
	font-family: 'Inter', sans-serif;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--tgg-heading);
	background: var(--tgg-card-bg);
	border: 1px solid var(--tgg-card-border);
	padding: 0.65rem 1.1rem;
	text-decoration: none !important;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.tgg-home__chip:hover,
.tgg-home__chip:focus {
	background: var(--tgg-accent);
	color: var(--tgg-bg);
	border-color: var(--tgg-accent);
}

/* Mobile: stack the brand pair + latest-episode strip */
@media ( max-width: 720px ) {
	.tgg-home__latest-grid {
		grid-template-columns: 1fr;
	}
	.tgg-home__latest-text {
		order: 2;
		border-right: 0;
		border-top: 1px solid var(--tgg-card-border);
		padding: 2rem 1.5rem;
	}
	.tgg-home__latest-image {
		order: 1;
		aspect-ratio: 16 / 10;
	}
	.tgg-home__latest-fallback {
		min-height: 240px;
	}
	.tgg-home__frontispiece {
		padding: 2.5rem 1.5rem 2.25rem;
	}
	.tgg-home__meet {
		grid-template-columns: 1fr;
		gap: 2rem;
		max-width: 420px;
	}
	.tgg-home__about {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		text-align: center;
	}
	.tgg-home__about-frame {
		max-width: 200px;
		margin: 0 auto;
	}
}

/* Theme toggle hint shown only when ?theme= is in the URL */
.tgg-theme-toggle {
	position: fixed;
	bottom: 1rem;
	right: 1rem;
	background: var(--tgg-surface);
	color: var(--tgg-gold);
	font-family: 'Inter', sans-serif;
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	padding: 0.5rem 0.9rem;
	border: 1px solid var(--tgg-gold);
	text-decoration: none;
	z-index: 9999;
}

.tgg-theme-toggle:hover {
	background: var(--tgg-gold);
	color: var(--tgg-bg);
}
