/*
Theme Name: TRC Custom Theme
Theme URI: https://github.com/johnsandtaylor/cwt-eva-2026
Description: The Resiliency Center custom child theme.
Author: Johns & Taylor
Author URI: https://johnsandtaylor.com
Template:     ollie
Version: 1.4.15
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Tags:         blog, portfolio, entertainment, grid-layout, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, rtl-language-support, style-variations, template-editing, theme-options, translation-ready, wide-blocks
Text Domain: ollie-child
*/

/* ============================================
   WP 7.0 block-gap regression fix
   --------------------------------------------
   WordPress 7.0 stopped emitting the parent (Ollie) theme's NAMED spacing
   presets once this child theme declares its own numeric scale
   (spacingSizes 10–80 + spacingScale.steps:0). That left
   --wp--preset--spacing--medium undefined. Ollie's blockGap is set to
   `var:preset|spacing|medium`, which the child inherits, so
   --wp--style--block-gap resolved to an undefined value and EVERY gap that
   relies on WordPress's default block-gap collapsed to zero — killing the
   spacing between cards, stacked content blocks, and default flex/grid
   groups across the site.

   Re-declaring just that one missing variable, at the parent's exact value,
   restores the default block rhythm everywhere it collapsed. All of TRC's
   tight groups (header, footer, breadcrumbs, chip rows, etc.) already pin an
   explicit gap, so none of them balloon — those explicit rules still win.
   theme.json is intentionally left untouched.
   (Same root cause as the EVA site; see project memory.)
   ============================================ */
:root {
	--wp--preset--spacing--medium: clamp(1.5rem, 4vw, 2rem);
}

/* Keep full-bleed section seams flush.
   Restoring block-gap above re-activates WP's default
   `:where(.is-layout-constrained) > * + * { margin-block-start: block-gap }`
   rule between the direct children of post-content. On interior pages those
   children are stacked full-bleed sections (strap, hero, section breakers)
   that each carry their own internal padding and are meant to butt together.
   Zero the seam wherever a full-bleed section sits on either side, so the
   hero↔strap join and adjacent sections go flush again. Plain (non-full)
   in-flow content keeps its restored block-gap rhythm; section-internal
   spacing is set via explicit block margins, so it is unaffected.

   `main.wp-block-group` covers the templates that stack their full-bleed
   sections directly inside the <main> wrapper (archive-practitioner.html,
   home.html, etc.) rather than inside post-content. */
.wp-block-post-content > .alignfull + *,
.wp-block-post-content > * + .alignfull,
main.wp-block-group > .alignfull + *,
main.wp-block-group > * + .alignfull {
	margin-block-start: 0;
}

/* Same flush treatment at the template-root level (.wp-site-blocks).
   The homepage (front-page.html) places the tagline stripe and post-content
   bare at the root — there's no `<main margin:0>` wrapper like the interior
   templates have — so restored block-gap lands between nav↔stripe,
   stripe↔hero, and content↔footer. These are all full-bleed parts/sections
   meant to butt together. (Interior pages are already flush here via their
   main wrapper's margin:0, so this is a no-op for them.) */
.wp-site-blocks > .alignfull + *,
.wp-site-blocks > * + .alignfull {
	margin-block-start: 0;
}

/* Header internal seam: the header part's outer group is a flow layout whose
   first child is the off-screen skip-link, so restored block-gap pushed the
   white nav bar down ~2rem. The header's spacing is handled by explicit
   padding + flex gaps, so it never wants block-gap between its children. */
header.wp-block-template-part > .wp-block-group > * + * {
	margin-block-start: 0;
}

/* ============================================
   Practitioner Profile — Sidebar & Cards
   ============================================ */

/* Sidebar column alignment */
@media (min-width: 782px) {
	.trc-profile-sidebar {
		align-self: start;
	}
}

/* Service tags as pills (detail page sidebar) */
.trc-service-tags .wp-block-post-terms__separator {
	display: none;
}
.trc-service-tags a,
.trc-service-tags span {
	display: inline-block;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
	padding: 6px 14px;
	border-radius: 20px;
	font-size: 0.975rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	text-decoration: none;
	margin: 0 6px 8px 0;
	line-height: 1.3;
}
.trc-service-tags a:hover {
	border-color: var(--wp--preset--color--primary, #006B4A);
	color: var(--wp--preset--color--primary, #006B4A);
}

/* Services grid: 1:1 square icon blocks */
.trc-service-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
}

/* Profile bio section headings */
.trc-profile-sidebar .trc-sidebar-card + .trc-sidebar-card {
	margin-top: var(--wp--preset--spacing--30, 1rem);
}

/* ============================================
   Practitioner Directory — Grid & Card Layout
   ============================================ */

/* FacetWP template grid — 3 columns (sidebar takes the 4th position) */
.trc-practitioner-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem 2rem;
}
@media (max-width: 1024px) {
	.trc-practitioner-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 599px) {
	.trc-practitioner-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

/* [trc_practitioner_cards columns="N"] - explicit column counts (base grid is 3-up). */
.trc-practitioner-grid--cols-1 { grid-template-columns: 1fr; }
.trc-practitioner-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.trc-practitioner-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) {
	.trc-practitioner-grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
	.trc-practitioner-grid--cols-2,
	.trc-practitioner-grid--cols-4 { grid-template-columns: 1fr; }
}

/* Practitioner card base + hover */
.trc-practitioner-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
	border-radius: 12px;
	padding: 1.5rem;
	transition: all 0.3s ease;
}
.trc-practitioner-card:hover {
	border-color: var(--wp--preset--color--primary, #006B4A) !important;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
	transform: translateY(-4px);
}

/* Avatar — 125px circle */
.trc-card-avatar {
	display: flex;
	justify-content: center;
	margin: 0;
}
.trc-card-avatar img {
	width: 125px !important;
	height: 125px !important;
	min-width: 125px;
	min-height: 125px;
	max-width: 125px;
	max-height: 125px;
	border-radius: 50% !important;
	object-fit: cover;
}

/* Card name */
.trc-card-name {
	text-align: center;
	font-family: var(--wp--preset--font-family--heading, 'coranto-2', serif);
	font-weight: 400;
	font-size: 1.125rem;
	margin-top: 1rem;
	margin-bottom: 0;
}
.trc-card-name a {
	color: var(--wp--preset--color--main, #1A3D32);
	text-decoration: none;
}
.trc-card-name a:hover {
	color: var(--wp--preset--color--primary, #006B4A);
}

/* Credentials line */
.trc-card-credentials {
	text-align: center;
	font-size: 0.9rem;
	margin-top: 0.25rem;
	margin-bottom: 0;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

/* Focus-area tags — rounded pill chips.
   min-height reserves space for ~2 chip rows so cards with fewer
   chips align with neighbors that wrap onto a second line.
   align-items:flex-start keeps each chip at its natural height —
   without it, flex's default `stretch` makes single-row chips
   double-tall to fill the reserved min-height. */
.trc-focus-area-tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 6px;
	margin-top: 0.75rem;
	margin-bottom: 0.75rem;
	min-height: calc(2 * (4px + 0.8125rem * 1.3 + 4px) + 6px);
}
.trc-focus-area-chip {
	display: inline-block;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	text-decoration: none;
	line-height: 1.3;
	white-space: nowrap;
	max-width: 18ch;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Location footer — bottom of practitioner card with divider */
.trc-card-location {
	margin-top: auto;
	padding-top: 0.75rem;
	border-top: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
	width: 100%;
	text-align: center;
}
.trc-card-location-text {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	letter-spacing: 0.02em;
}

/* ==========================================================================
   FEATURED PRACTITIONER CARDS (Homepage "Meet Our Practitioners")
   ========================================================================== */

/* Equal-height columns
   Works for two markups:
   1. PHP-rendered pattern: .trc-featured-practitioners > .trc-featured-card-wrap > .trc-featured-card
   2. Exploded Gutenberg columns (homepage today):
      .trc-featured-practitioners (.wp-block-columns) > .wp-block-column > .trc-featured-card
   In #2, .wp-block-column stretches in height by default but is display:block, so the card
   inside never fills it. Force the column to flex-column so flex:1 on the card propagates. */
.trc-featured-practitioners {
	align-items: stretch !important;
}
.trc-featured-card-wrap,
.trc-featured-practitioners > .wp-block-column {
	display: flex !important;
	flex-direction: column !important;
	flex: 1; /* equal-width columns share the row equally */
	height: auto; /* let align-items:stretch control height */
}

/* Card — full height of its column */
.trc-featured-card {
	display: flex;
	flex-direction: column;
	flex: 1;
	height: 100%; /* fill the stretched column in both markups */
	overflow: hidden;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.trc-featured-card:hover {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	transform: translateY(-3px);
}

/* Image */
.trc-featured-card__image {
	flex-shrink: 0;
}

/* Text body — tighter padding, flex: 1 so it fills remaining card height */
.trc-featured-card__body {
	padding: 0.85rem 1rem 1rem;
	flex: 1;
	min-height: 12rem;
}

/* Name */
.trc-featured-card__name {
	font-family: var(--wp--preset--font-family--heading, 'coranto-2', serif);
	font-weight: 500;
	font-size: 1.25rem;
	line-height: 1.25;
	margin: 0;
	color: var(--wp--preset--color--primary, #006B4A);
}
.trc-featured-card__name a {
	color: inherit;
	text-decoration: none;
}
.trc-featured-card__name a:hover {
	color: var(--wp--preset--color--primary-hover, #00553A);
}

/* Credentials */
.trc-featured-card__credentials {
	font-size: 0.95rem;
	line-height: 1.3;
	margin: 0.15rem 0 0;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

/* Focus areas */
.trc-featured-card__focus {
	font-size: 0.85rem;
	line-height: 1.4;
	margin: 0.35rem 0 0;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

/* Mobile: 2-col then 1-col */
@media (max-width: 781px) {
	.trc-featured-practitioners {
		flex-wrap: wrap !important;
	}
	.trc-featured-card-wrap,
	.trc-featured-practitioners > .wp-block-column {
		flex-basis: calc(50% - var(--wp--preset--spacing--30, 1rem) / 2) !important;
	}
}
@media (max-width: 480px) {
	.trc-featured-card-wrap,
	.trc-featured-practitioners > .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* Leadership badge — blue CTA chip, links to /contact/ */
/* Uses its own class so it can't be overridden by generic tag rules */
.trc-leadership-badge {
	display: inline-block;
	background: var(--wp--preset--color--secondary, #3A73B5) !important;
	color: #fff !important;
	font-family: var(--wp--preset--font-family--body, 'canada-type-gibson', sans-serif);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 4px 12px;
	border-radius: 20px;
	border: 1px solid var(--wp--preset--color--secondary, #3A73B5) !important;
	line-height: 1.3;
	text-decoration: none !important;
	transition: all 0.2s ease;
}
.trc-leadership-badge:hover {
	background: var(--wp--preset--color--secondary-hover, #2D5A8F) !important;
	border-color: var(--wp--preset--color--secondary-hover, #2D5A8F) !important;
	color: #fff !important;
}

/* Accepting New Clients badge — single practitioner Serving box */
.trc-accepting-badge {
	display: inline-block;
	background: var(--wp--preset--color--secondary-accent, #D6E5F2);
	/* WCAG AA: secondary (#3A73B5) on secondary-accent (#D6E5F2) is ~3.8:1 and
	   fails for 12px text. secondary-hover (#2D5A8F) lifts it to ~5.3:1. */
	color: var(--wp--preset--color--secondary-hover, #2D5A8F);
	font-family: var(--wp--preset--font-family--body, canada-type-gibson, sans-serif);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 0.3rem 0.75rem;
	border-radius: 100px;
	margin-top: 0.75rem;
	line-height: 1.3;
}

/* No results message */
.trc-no-results {
	text-align: center;
	padding: var(--wp--preset--spacing--50, 2rem) 0;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

/* ============================================
   FacetWP Filter Sidebar — Vertical Layout
   ============================================ */

/* Sidebar + Results wrapper — override WP columns stacking */
.trc-directory-layout {
	flex-wrap: nowrap !important;
}

/* Left sidebar column — scrolls with page (no sticky) */
.trc-filter-sidebar {
	align-self: flex-start;
}

/* Results column — relative for scroll-back button positioning */
.trc-directory-results {
	position: relative;
}

/* Filter section headings */
.trc-filter-heading {
	font-family: var(--wp--preset--font-family--body, 'canada-type-gibson', sans-serif) !important;
	cursor: default;
}

/* Tighten the gap between a facet heading and its first checkbox so it
   matches the sidebar's row rhythm (checkbox rows sit ~14px apart). The
   template sets margin-bottom:0.625rem inline on each .trc-filter-heading,
   which reads as an oversized gap above the list — override it here.
   .facetwp-facet margin-top:0 neutralizes any stray top margin from the
   shortcode wrapper / FacetWP defaults. */
.trc-filter-sidebar .trc-filter-heading {
	margin-bottom: 0.5rem !important;
}
.trc-filter-sidebar .facetwp-facet {
	margin-top: 0 !important;
}

/* Filter section heading layout. The chevron and the in-list "See more /
   See less" link are two faces of the SAME control — both expand and collapse
   the facet's term list and stay in sync (wired up in trc_facetwp_sidebar_
   scripts). The chevron is therefore shown ONLY on sections that actually have
   overflow terms; the JS flags those with .trc-filter-section--has-more. */
.trc-filter-section--collapsible > .trc-filter-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	user-select: none;
}
.trc-filter-section--has-more > .trc-filter-heading {
	cursor: pointer;
}

/* Caret rendered as a symmetric SVG chevron applied via CSS mask, tinted
   with the heading color. Chosen over a border-drawn chevron for three
   reasons the design called for:
     1. Clipped to its own box (no rotation overflow), so its right tip lines
        up with the section divider's right edge instead of spilling past it.
     2. The glyph is symmetric about the box center, so the open/closed states
        are a single rotate(180deg) about that center — it pivots in place like
        a dial rather than flipping with uneven top/bottom padding.
     3. align-items:center on the heading centers the box on the text's
        vertical axis, so the chevron sits level with the subhead.
   Default (up) mirrors "See more" / list collapsed; .--expanded rotates it to
   point down, mirroring "See less" / list expanded. */
.trc-filter-section--has-more > .trc-filter-heading::after {
	content: "";
	flex: 0 0 auto;
	width: 0.85em;
	height: 0.85em;
	margin-left: 0.4rem;
	margin-right: 0; /* space-between pins the box's right edge to the divider */
	background-color: var(--wp--preset--color--main-accent, #3D5C4F);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12 12 4 21 12'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12 12 4 21 12'/%3E%3C/svg%3E") center / contain no-repeat;
	transform: rotate(0deg); /* up = list collapsed (default onload) */
	transform-origin: center center;
	transition: transform 0.2s ease;
}
.trc-filter-section--has-more.trc-filter-section--expanded > .trc-filter-heading::after {
	transform: rotate(180deg); /* down = list expanded, mirrors "See less" */
}

/* Hide FacetWP's built-in label — we use our own headings */
.trc-filter-sidebar .facetwp-facet .facetwp-label {
	display: none;
}

/* Checkboxes: vertical stacked list inside sidebar.
   NOTE: row rhythm is carried by margin-bottom on the VISIBLE items (below),
   not by flex `gap`. With "See more" collapsed, the 20+ hidden checkboxes are
   still flex items; a container `gap` would add one gap PER hidden item between
   the last visible row and the "See more" link (~50px of phantom space).
   Margin on visible-only items keeps the collapsed list tight. */
.trc-filter-sidebar .facetwp-facet.facetwp-type-checkboxes {
	display: flex;
	flex-direction: column;
	gap: 0;
}

/* Each checkbox item — generous padding between icon and label */
.trc-filter-sidebar .facetwp-checkbox {
	display: flex;
	align-items: baseline;
	flex-wrap: nowrap;
	padding: 6px 10px;
	border-radius: 6px;
	font-size: 0.9rem;
	font-weight: 400;
	color: var(--wp--preset--color--main, #1A3D32);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
	line-height: 1.35;
	user-select: none;
}

/* Checkbox icon — FacetWP uses ::before pseudo-element for the square */
.trc-filter-sidebar .facetwp-checkbox {
	padding-left: 28px !important;
	text-indent: 0;
	position: relative;
}
.trc-filter-sidebar .facetwp-checkbox::before {
	position: absolute !important;
	left: 8px !important;
	top: 50%;
	transform: translateY(-50%);
	margin-right: 0 !important;
}

/* If FacetWP does use SVGs in some versions, cover that too */
.trc-filter-sidebar .facetwp-checkbox svg {
	flex-shrink: 0 !important;
	margin-right: 10px !important;
}

/* Hover state */
.trc-filter-sidebar .facetwp-checkbox:hover {
	background: var(--wp--preset--color--primary-accent, #D4E8DF);
	color: var(--wp--preset--color--primary, #006B4A);
}

/* Active/selected state */
.trc-filter-sidebar .facetwp-checkbox.checked {
	background: var(--wp--preset--color--primary, #006B4A);
	color: #fff;
	font-weight: 500;
	border-radius: 6px;
}
.trc-filter-sidebar .facetwp-checkbox.checked svg {
	opacity: 1;
}
.trc-filter-sidebar .facetwp-checkbox.checked:hover {
	background: var(--wp--preset--color--primary-hover, #00553A);
}

/* Count badge — white-space:nowrap keeps "(3)" from orphaning on its own line */
.trc-filter-sidebar .facetwp-counter {
	font-size: 0.8rem;
	opacity: 0.55;
	font-weight: 400;
	white-space: nowrap;
	flex-shrink: 0;
}
.trc-filter-sidebar .facetwp-checkbox.checked .facetwp-counter {
	opacity: 0.75;
}

/* Ghosted/unavailable options */
.trc-filter-sidebar .facetwp-checkbox.disabled {
	opacity: 0.3;
	pointer-events: none;
}

/* ── Smart filter visibility: animated show/hide ── */

/* Hidden filter items: collapse with transition */
.trc-filter-sidebar .facetwp-checkbox.trc-filter-hidden {
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	padding-top: 0;
	padding-bottom: 0;
	margin: 0;
	transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease, margin 0.35s ease;
}

/* Visible filter items: animate in. margin-bottom carries the 2px row rhythm
   (replacing the container's flex gap) so hidden items contribute no spacing —
   it collapses to 0 via the .trc-filter-hidden rule above when an item hides. */
.trc-filter-sidebar .facetwp-checkbox:not(.trc-filter-hidden) {
	max-height: 50px;
	opacity: 1;
	margin-bottom: 2px;
	transition: max-height 0.35s ease, opacity 0.3s ease 0.05s, padding 0.35s ease, margin 0.35s ease;
}

/* Our custom "See more / See less" toggle */
.trc-filter-toggle {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--wp--preset--color--secondary, #3A73B5);
	cursor: pointer;
	padding: 6px 10px;
	/* No extra top margin: with the container gap removed and visible rows
	   carrying a 2px margin-bottom, margin-top:0 lets "See more" sit exactly
	   one row-gap below the last checkbox — as if it were the next list item.
	   (Previously 4px, which compounded with phantom hidden-item gaps.) */
	margin-top: 0;
	border: none;
	background: none;
	font-family: inherit;
	transition: color 0.15s ease;
}
.trc-filter-toggle:hover {
	color: var(--wp--preset--color--secondary-hover, #2D5A8F);
	text-decoration: underline;
}

/* Also keep FacetWP's native toggle hidden — we replace it */
.trc-filter-sidebar .facetwp-toggle {
	display: none !important;
}
.trc-filter-sidebar .facetwp-overflow {
	display: none !important;
}

/* Preserve FacetWP's hidden state */
.trc-filter-sidebar .facetwp-hidden {
	display: none !important;
}

/* Clear filters button */
.trc-filter-sidebar .facetwp-facet-reset_filters {
	margin-top: 0;
}
.trc-filter-sidebar .facetwp-reset {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--secondary, #3A73B5);
	cursor: pointer;
	text-decoration: none;
	transition: color 0.2s ease;
}
.trc-filter-sidebar .facetwp-reset:hover {
	color: var(--wp--preset--color--secondary-hover, #2D5A8F);
	text-decoration: underline;
}
.trc-filter-sidebar .facetwp-reset::before {
	content: "\00d7";
	font-size: 1.1em;
	line-height: 1;
}

/* ── "Results at the top" scroll-back button ── */
.trc-scroll-top-btn {
	position: fixed;
	left: 50%;
	bottom: 2rem;
	transform: translateX(-50%);
	z-index: 100;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	background: var(--wp--preset--color--primary, #006B4A);
	color: #fff;
	font-family: var(--wp--preset--font-family--body, 'canada-type-gibson', sans-serif);
	font-size: 0.9rem;
	font-weight: 600;
	border: none;
	border-radius: 24px;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}
.trc-scroll-top-btn--visible {
	opacity: 1;
	pointer-events: auto;
}
.trc-scroll-top-btn:hover {
	background: var(--wp--preset--color--primary-hover, #00553A);
}
.trc-scroll-top-btn svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

/* Mobile: stack sidebar above results */
@media (max-width: 781px) {
	.trc-directory-layout {
		flex-wrap: wrap !important;
	}
	.trc-filter-sidebar {
		flex-basis: 100% !important;
		margin-bottom: 1.5rem;
	}
	/* On mobile, lay checkboxes out as chips instead of stacked list */
	.trc-filter-sidebar .facetwp-facet.facetwp-type-checkboxes {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 6px;
	}
	.trc-filter-sidebar .facetwp-checkbox {
		padding: 5px 12px;
		border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
		border-radius: 20px;
		font-size: 0.85rem;
	}
	.trc-filter-sidebar .facetwp-checkbox svg {
		display: none !important;
	}
}

/* ============================================
   Interior Page Hero — Spacing
   ============================================ */

/* Tighten hero text spacing to match wireframe */
.wp-block-cover .wp-block-cover__inner-container h1 {
	margin-top: 0.5rem;
	margin-bottom: 0.75rem;
}
.wp-block-cover .wp-block-cover__inner-container h1 + p {
	margin-top: 0;
}

/* ============================================
   Practitioner Detail — Bio Content
   ============================================ */

/* Bio section headings on profile page */
.wp-block-post-content h2 {
	padding-bottom: 12px;
	margin-top: 2.5rem;
	border-bottom: 2px solid var(--wp--preset--color--primary-accent, #D4E8DF);
}
.wp-block-post-content h2:first-of-type {
	margin-top: 0;
}

/* Breathing room between paragraphs and following content */
.wp-block-post-content p {
	margin-bottom: 1.25rem;
}

/* Bullet lists aligned under headings, not hanging left */
.wp-block-post-content ul.wp-block-list {
	list-style-position: inside;
	padding-left: 0;
	margin-top: 0.75rem;
}
.wp-block-post-content ul.wp-block-list li {
	padding-left: 1.25rem;
	text-indent: -1.25rem;
	margin-bottom: 0.5rem;
	line-height: 1.6;
}

/* ============================================
   Footer Cleanup
   ============================================ */

/* Remove bullet points from footer lists */
.has-footer-gradient-gradient-background ul,
.has-footer-gradient-gradient-background ul.is-style-no-bullets {
	list-style: none !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
}
.has-footer-gradient-gradient-background ul li {
	list-style: none !important;
	padding-left: 0;
	text-indent: 0;
}
.has-footer-gradient-gradient-background ul li::marker {
	content: none;
}

/* Remove underlines from footer links */
.has-footer-gradient-gradient-background a {
	text-decoration: none !important;
}
.has-footer-gradient-gradient-background a:hover {
	text-decoration: underline !important;
}

/* Add right padding to first column (brand column) for spacing from link columns */
.has-footer-gradient-gradient-background > .wp-block-columns > .wp-block-column:first-child {
	padding-right: var(--wp--preset--spacing--40, 2rem);
}

/* Social icons: black/white minimalist style */
.has-footer-gradient-gradient-background .wp-block-social-links .wp-social-link {
	background: rgba(255, 255, 255, 0.15) !important;
	border: 1px solid rgba(255, 255, 255, 0.3);
	transition: background 0.2s ease;
}
.has-footer-gradient-gradient-background .wp-block-social-links .wp-social-link:hover {
	background: rgba(255, 255, 255, 0.3) !important;
}
.has-footer-gradient-gradient-background .wp-block-social-links .wp-social-link svg {
	fill: #fff !important;
	width: 18px;
	height: 18px;
}

/* Increase spacing between description text and social icons */
.has-footer-gradient-gradient-background .wp-block-social-links {
	margin-top: var(--wp--preset--spacing--40, 1.5rem) !important;
}

/* =====================================================================
   LOCATION CARDS BREAKER
   ===================================================================== */

/* ----- Card grid ----- */
.trc-location-cards {
	display: flex;
	gap: var(--wp--preset--spacing--40, 2rem);
	max-width: 1200px;
	margin: 0 auto;
}

.trc-location-card {
	flex: 1;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.trc-location-card__map {
	height: 200px;
	overflow: hidden;
}
.trc-location-card__map iframe,
.trc-location-card__map img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.trc-location-card__body {
	padding: var(--wp--preset--spacing--30, 1.25rem);
}

.trc-location-card__title-link {
	text-decoration: none;
	color: inherit;
}
.trc-location-card__title-link:hover .trc-location-card__title {
	color: var(--wp--preset--color--primary-hover, #00553A);
}

.trc-location-card__title {
	font-family: var(--wp--preset--font-family--heading, 'coranto-2', serif);
	font-size: 1.5rem;
	font-weight: 500;
	color: var(--wp--preset--color--primary, #006B4A);
	margin: 0 0 0.5rem;
	transition: color 0.2s ease;
}

.trc-location-card__address {
	font-style: normal;
	color: var(--wp--preset--color--main, #1A3D32);
	line-height: 1.6;
	margin-bottom: 0.5rem;
}

.trc-location-card__phone {
	color: var(--wp--preset--color--main, #1A3D32);
	margin: 0.5rem 0;
}
.trc-location-card__phone a {
	color: inherit;
	text-decoration: none;
}
.trc-location-card__phone a:hover {
	color: var(--wp--preset--color--primary-hover, #00553A);
}

/* No underlines on any links inside location cards */
.trc-location-card a {
	text-decoration: none !important;
}

.trc-location-card__actions {
	margin-top: var(--wp--preset--spacing--30, 1.25rem);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.trc-location-card__cta {
	display: block;
	text-align: center;
	padding: 0.75rem 1.5rem;
	background: var(--wp--preset--color--secondary, #3A73B5);
	color: #fff !important;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
	font-size: 1rem;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.trc-location-card__cta:hover {
	background: var(--wp--preset--color--secondary-hover, #2D5A8F);
}

.trc-location-card__cta--outline {
	background: transparent;
	color: var(--wp--preset--color--primary, #006B4A) !important;
	border: 2px solid var(--wp--preset--color--primary, #006B4A);
}
.trc-location-card__cta--outline:hover {
	background: var(--wp--preset--color--primary, #006B4A);
	color: #fff !important;
}

/* ----- Mobile: stack cards vertically ----- */
@media (max-width: 782px) {
	.trc-location-cards {
		flex-direction: column;
	}
}

/* =========================================================================
   AUTHOR BIO
   ========================================================================= */

.trc-author-bio {
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
}

.trc-author-bio--archive {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.trc-author-bio--house {
	display: block;
	text-align: center;
}

.trc-author-bio__house-label {
	font-family: var(--wp--preset--font-family--body, 'canada-type-gibson', sans-serif);
	font-size: 0.95rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin: 0;
}

.trc-author-bio__photo {
	flex-shrink: 0;
}

.trc-author-bio__photo img {
	width: 120px !important;
	height: 120px !important;
	min-width: 120px !important;
	min-height: 120px !important;
	object-fit: cover;
	border-radius: 50%;
	display: block;
}

.trc-author-bio__body {
	flex: 1;
	min-width: 0;
}

.trc-author-bio__kicker {
	font-family: var(--wp--preset--font-family--body, 'canada-type-gibson', sans-serif);
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--primary, #006B4A);
	margin: 0 0 0.25rem;
}

.trc-author-bio__name {
	font-family: var(--wp--preset--font-family--heading, 'coranto-2', serif);
	font-size: 1.35rem;
	font-weight: 500;
	margin: 0 0 0.25rem;
	color: var(--wp--preset--color--main, #1A3D32);
}

.trc-author-bio__name a {
	color: inherit;
	text-decoration: none;
}

.trc-author-bio__name a:hover {
	color: var(--wp--preset--color--primary, #006B4A);
}

.trc-author-bio__title {
	font-size: 0.95rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin: 0 0 0.5rem;
}

.trc-author-bio__excerpt {
	font-size: 0.95rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin: 0 0 0.75rem;
	line-height: 1.6;
}

.trc-author-bio__post-count {
	font-size: 0.85rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin: 0 0 0.75rem;
}

.trc-author-bio__specialties {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-bottom: 0.75rem;
}

.trc-author-bio__tag {
	display: inline-block;
	padding: 0.2rem 0.65rem;
	font-size: 0.78rem;
	font-weight: 500;
	border-radius: 100px;
	background: var(--wp--preset--color--primary-accent, #D4E8DF);
	color: var(--wp--preset--color--primary-dark, #003D2A);
}

.trc-author-bio__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 0.5rem;
}

.trc-author-bio__cta {
	display: inline-block;
	padding: 0.5rem 1.25rem;
	font-size: 0.875rem;
	font-weight: 600;
	border-radius: 6px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	background: var(--wp--preset--color--secondary, #3A73B5);
	color: #fff;
}

.trc-author-bio__cta:hover {
	background: var(--wp--preset--color--secondary-hover, #2D5A8F);
	color: #fff;
}

.trc-author-bio__cta--outline {
	background: transparent;
	border: 1.5px solid var(--wp--preset--color--secondary, #3A73B5);
	color: var(--wp--preset--color--secondary, #3A73B5);
}

.trc-author-bio__cta--outline:hover {
	background: var(--wp--preset--color--secondary, #3A73B5);
	color: #fff;
}

@media (max-width: 600px) {
	.trc-author-bio {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.trc-author-bio__specialties,
	.trc-author-bio__actions {
		justify-content: center;
	}
}

/* =========================================================================
   PRACTITIONER BLOG POSTS RECIRCULATION
   ========================================================================= */

.trc-practitioner-posts-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin: 0 auto;
}

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

@media (max-width: 600px) {
	.trc-practitioner-posts-grid {
		grid-template-columns: 1fr;
	}
}

/* Image link wrapper inside PHP-rendered cards */
.trc-blog-card__image-link {
	display: block;
	line-height: 0;
}
/* Meta row when rendered as plain spans (practitioner cards) */
.trc-blog-card__meta span {
	font-size: inherit;
	color: inherit;
}

/* =========================================================================
   BLOG CARDS (shared by recirculation + archive + single related posts)
   ========================================================================= */

.trc-blog-card {
	border-radius: 12px;
	overflow: hidden;
	background: var(--wp--preset--color--base, #FDFCFA);
	border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
	transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
	height: 100%;                /* Stretch to fill grid row height */
	display: flex !important;
	flex-direction: column !important;
}

.trc-blog-card:hover {
	border-color: var(--wp--preset--color--primary, #006B4A);
	box-shadow: 0 8px 32px rgba(0,0,0,0.08);
	transform: translateY(-4px);
}

a.trc-blog-card--linked {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
}

.trc-blog-card__body {
	display: flex;
	flex-direction: column;
	gap: 0 !important;           /* Override any WP-generated gap from blockGap */
	padding: 1.5rem !important;  /* 24px — wireframe spec */
	flex-grow: 1;                /* Fill remaining card height below image */
}

/* Featured image: no bottom margin so card body sits flush */
.trc-blog-card .wp-block-post-featured-image {
	margin-bottom: 0 !important;
}

/* ---- Reset ALL default WP block margins inside card body ---- */
.trc-blog-card__body > *,
.trc-blog-card__body > .wp-block-post-terms,
.trc-blog-card__body > .wp-block-post-title,
.trc-blog-card__body > .wp-block-post-excerpt,
.trc-blog-card__body > .wp-block-group {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* ---- Then apply ONLY the wireframe's explicit spacing ---- */
/* Category: 12px below
   .blog / .single / .archive / .search selectors override Ollie parent's
   -8px rule at .blog .wp-block-group .wp-block-post-terms (0-3-0 specificity) */
.trc-blog-card__body .trc-blog-card__category,
.trc-blog-card__body > .wp-block-post-terms,
.blog .trc-blog-card .wp-block-post-terms,
.single .trc-blog-card .wp-block-post-terms,
.archive .trc-blog-card .wp-block-post-terms,
.search .trc-blog-card .wp-block-post-terms {
	margin-bottom: 12px !important;
}
/* Override the Ollie -8px rule on ALL post-terms in single/archive/search views */
.single .wp-block-group .wp-block-post-terms,
.archive .wp-block-group .wp-block-post-terms,
.search .wp-block-group .wp-block-post-terms {
	margin-bottom: 12px !important;
}
/* Title: 12px below */
.trc-blog-card__body .trc-blog-card__title,
.trc-blog-card__body > .wp-block-post-title {
	margin-bottom: 12px !important;
}
/* Excerpt: 16px below */
.trc-blog-card__body .trc-blog-card__excerpt,
.trc-blog-card__body > .wp-block-post-excerpt {
	margin-bottom: 16px !important;
}
/* Meta: pinned to bottom of card, no bottom margin */
.trc-blog-card__body .trc-blog-card__meta {
	margin-top: auto !important;  /* Push to bottom of flex column */
	margin-bottom: 0 !important;
}

/* Category label — secondary blue, NO decoration of any kind per wireframe.
   WP core, Ollie, or Gutenberg may apply underline/line-through via various
   mechanisms (text-decoration, background-image, box-shadow). Kill them all. */
.trc-blog-card__category,
.trc-blog-card__category *,
.trc-blog-card__category a,
.trc-blog-card__category a:link,
.trc-blog-card__category a:hover,
.trc-blog-card__category a:visited,
.trc-blog-card__category a:active,
.trc-blog-card .taxonomy-category,
.trc-blog-card .taxonomy-category a,
.trc-blog-card .wp-block-post-terms,
.trc-blog-card .wp-block-post-terms a {
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	color: var(--wp--preset--color--secondary, #3A73B5) !important;
	text-decoration: none !important;
	-webkit-text-decoration: none !important;
	text-decoration-line: none !important;
	background-image: none !important;
	box-shadow: none !important;
	border-bottom: none !important;
}
/* Kill separator characters between multiple terms */
.trc-blog-card__category .wp-block-post-terms__separator {
	display: none;
}

/* Title — heading font, lighter weight per wireframe */
.trc-blog-card__title {
	font-family: var(--wp--preset--font-family--heading, 'coranto-2', serif);
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--wp--preset--color--main, #1A3D32);
	line-height: 1.3;
}
.trc-blog-card__title a {
	color: inherit;
	text-decoration: none;
}

/* Excerpt */
.trc-blog-card__excerpt {
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}
/* Hide the "Read more" link inside excerpt if present */
.trc-blog-card__excerpt .wp-block-post-excerpt__more-text {
	display: none;
}

/* Meta row — author + date */
.trc-blog-card__meta {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	display: flex;
	align-items: center;
	gap: 0.4em;
	flex-wrap: wrap;
}
/* Ensure meta children inherit size */
.trc-blog-card__meta .wp-block-post-author,
.trc-blog-card__meta .wp-block-post-date {
	font-size: inherit;
	color: inherit;
}
/* Reset any WP default margin on the author block's inner elements */
.trc-blog-card__meta .wp-block-post-author__name {
	margin: 0;
}

/* =========================================================================
   BLOG POST TAGS (on single.html)
   ========================================================================= */

/* Hide comma separators between tags — pills don't need them */
.trc-post-tags .wp-block-post-terms__separator {
	display: none;
}

/* Pill chip styling */
.trc-post-tags a,
.trc-post-tags a:link,
.trc-post-tags a:visited {
	display: inline-block;
	padding: 0.35rem 0.85rem;
	margin: 0.2rem 0.15rem;
	font-size: 0.8rem;
	font-weight: 500;
	border-radius: 100px;
	border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
	background: var(--wp--preset--color--tertiary, #F5F8F6);
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	text-decoration: none !important;
	-webkit-text-decoration: none !important;
	text-decoration-line: none !important;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.trc-post-tags a:hover {
	background: var(--wp--preset--color--primary-accent, #D4E8DF);
	border-color: var(--wp--preset--color--primary-accent, #D4E8DF);
	color: var(--wp--preset--color--primary-dark, #003D2A);
	text-decoration: none !important;
}

/* Space between tags section and author bio below */
.trc-post-tags {
	margin-bottom: 0.5rem;
}

/* Vertical gap between content/tags wrapper and the author bio section.
   The author bio sits in its own alignfull bg-programs group. Target the
   parent container so the gap appears OUTSIDE the colored background. */
.single .has-bg-programs-background-color:has(.trc-author-bio) {
	margin-top: 2.5rem;
}

/* =========================================================================
   BLOG ARCHIVE / HOME PAGINATION
   ========================================================================= */

.wp-block-query-pagination {
	margin-top: 3rem;
	gap: 0.5rem;
}

.wp-block-query-pagination-numbers .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0.25rem 0.65rem;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 500;
	text-decoration: none;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	transition: background 0.15s, color 0.15s;
}

.wp-block-query-pagination-numbers .page-numbers:hover {
	background: var(--wp--preset--color--tertiary, #F5F8F6);
	color: var(--wp--preset--color--primary, #006B4A);
}

.wp-block-query-pagination-numbers .page-numbers.current {
	background: var(--wp--preset--color--primary, #006B4A);
	color: #fff;
}

.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	color: var(--wp--preset--color--primary, #006B4A);
	transition: color 0.15s;
}

.wp-block-query-pagination-previous:hover,
.wp-block-query-pagination-next:hover {
	color: var(--wp--preset--color--primary-hover, #00553A);
}

/* =========================================================================
   BLOG ARCHIVE – RESPONSIVE GRID
   ========================================================================= */

/* Force grid gap to match wireframe (32px) regardless of WP blockGap output */
.wp-block-post-template.is-layout-grid {
	gap: 2rem !important;   /* 32px — wireframe spec */
}

/* Blog card grid: 2 columns on tablet, 1 on phone */
@media (max-width: 781px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 599px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr !important;
	}
}

/* =========================================================================
   BLOG SINGLE – HERO & FEATURED IMAGE
   ========================================================================= */

/* Featured image overlaps the hero — background extends ~1/3 behind image.
   Hero has extra bottom padding and image pulls up with negative margin.
   !important required because block JSON sets inline margin-top on the image. */
.trc-single-hero {
	padding-bottom: 14rem !important;
}

.trc-single-featured-image {
	margin-top: -12rem !important;
}

.trc-single-featured-image .wp-block-post-featured-image {
	margin-top: 0 !important;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.trc-single-featured-image .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

/* Author avatar in single post header */
.trc-single-hero .wp-block-post-author {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.trc-single-hero .wp-block-post-author__avatar img {
	width: 48px !important;
	height: 48px !important;
	border-radius: 50%;
	object-fit: cover;
}

/* =========================================================================
   BLOG SINGLE – CONTENT TYPOGRAPHY
   ========================================================================= */

.wp-block-post-content p {
	line-height: 1.75;
	margin-bottom: 1.25em;
}

.wp-block-post-content h2,
.wp-block-post-content h3,
.wp-block-post-content h4 {
	margin-top: 1em;
	margin-bottom: 0.75em;
}

.wp-block-post-content blockquote {
	border-left: 3px solid var(--wp--preset--color--primary, #006B4A);
	padding-left: 1.5rem;
	margin-left: 0;
	font-style: italic;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

.wp-block-post-content img {
	border-radius: 8px;
}

.wp-block-post-content a {
	color: var(--wp--preset--color--primary, #006B4A);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.wp-block-post-content a:hover {
	color: var(--wp--preset--color--primary-hover, #00553A);
}

/* Buttons & CTA links should never show underlines */
.wp-block-button__link,
.wp-block-button__link:hover,
.wp-block-post-content .wp-block-button__link,
.wp-block-post-content .wp-block-button__link:hover {
	text-decoration: none !important;
}


/* ============================================
   Upcoming Programs (Events Calendar Pro)
   ============================================ */

.trc-upcoming-events-grid {
	display: flex;
	gap: var(--wp--preset--spacing--40, 1.5rem);
}

.trc-upcoming-event-card {
	flex: 1;
	display: flex;
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	min-height: 0;
}

/* Featured image variant — portrait crop on left, same row height as icon cards */
.trc-upcoming-event-image {
	width: 140px;
	flex-shrink: 0;
	overflow: hidden;
}

.trc-upcoming-event-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform 0.3s ease;
}

.trc-upcoming-event-card:hover .trc-upcoming-event-image img {
	transform: scale(1.06);
}

/* Fallback icon variant — side-by-side layout */
.trc-upcoming-event-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 120px;
	min-height: 100%;
}

.trc-upcoming-event-body {
	padding: var(--wp--preset--spacing--30, 1rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.trc-upcoming-event-date {
	font-size: 0.975rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--secondary, #3A73B5);
	margin: 0 0 0.25rem;
}

.trc-upcoming-event-title {
	font-family: var(--wp--preset--font-family--heading, 'coranto-2', serif);
	font-size: 1.35rem;
	font-weight: 400;
	color: var(--wp--preset--color--main, #1A3D32);
	margin: 0 0 0.25rem;
	line-height: 1.3;
}

.trc-upcoming-event-venue {
	font-size: 0.875rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin: 0 0 0.5rem;
	font-style: italic;
}

.trc-upcoming-event-excerpt {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin: 0 0 0.75rem;
	line-height: 1.6;
}

.trc-upcoming-event-link {
	margin: 0;
}

.trc-upcoming-event-link a {
	color: var(--wp--preset--color--primary, #006B4A);
	font-weight: 500;
	text-decoration: none !important;
}

.trc-upcoming-event-link a:hover {
	color: var(--wp--preset--color--primary-hover, #00553A);
}

@media (max-width: 781px) {
	.trc-upcoming-events-grid {
		flex-direction: column;
	}

	.trc-upcoming-event-icon {
		width: 80px;
	}

	.trc-upcoming-event-image {
		width: 100px;
	}
}


/* ============================================
   Location Landing Pages
   ============================================ */

/* Map card: zero-pad so embed fills to edges */
.trc-location-map-card {
	overflow: hidden;
}

.trc-location-map-card .trc-location-map-embed {
	margin: 0;
	padding: 0;
}

.trc-location-map-card iframe {
	display: block;
	width: 100%;
	height: 280px;
	border: 0;
}

/* Practitioner list inside sidebar */
.trc-location-practitioner-list li:last-child {
	border-bottom: none !important;
}

.trc-location-practitioner-list a:hover {
	color: var(--wp--preset--color--primary-hover, #00553A) !important;
	text-decoration: underline !important;
}

/* CTA card accent border */
.trc-location-cta-card {
	border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
}

/* Location sidebar sticky (shares .trc-profile-sidebar rule already defined) */

/* Responsive: stack sidebar below content on narrow screens */
@media (max-width: 781px) {
	.trc-location-sidebar {
		margin-top: var(--wp--preset--spacing--50, 2rem);
	}
}


/* =============================================================================
   Events Calendar — TRC Theme Overrides
   ============================================================================= */

/* --- TEC CSS custom property overrides (maps TEC → TRC design tokens) --- */
.tribe-events,
.tribe-common {
	--tec-font-family-sans-serif: 'canada-type-gibson', 'Mona Sans', sans-serif;
	--tec-font-family-base: 'canada-type-gibson', 'Mona Sans', sans-serif;
	--tec-color-text-primary: var(--wp--preset--color--main, #1A3D32);
	--tec-color-text-secondary: var(--wp--preset--color--main-accent, #3D5C4F);
	--tec-color-text-events-title: var(--wp--preset--color--main, #1A3D32);
	--tec-color-accent-primary: var(--wp--preset--color--primary, #006B4A);
	--tec-color-accent-primary-hover: var(--wp--preset--color--primary-hover, #00553A);
	--tec-color-accent-primary-multiday: var(--wp--preset--color--primary, #006B4A);
	--tec-color-accent-primary-background: var(--wp--preset--color--primary-accent, #D4E8DF);
	--tec-color-accent-secondary: var(--wp--preset--color--secondary, #3A73B5);
	--tec-color-link-primary: var(--wp--preset--color--primary, #006B4A);
	--tec-color-link-accent: var(--wp--preset--color--secondary, #3A73B5);
	--tec-color-background: var(--wp--preset--color--base, #FDFCFA);
	--tec-color-background-secondary: var(--wp--preset--color--tertiary, #F5F8F6);
	--tec-color-background-events: var(--wp--preset--color--base, #FDFCFA);
	--tec-color-border-default: var(--wp--preset--color--border-light, #C4D6CC);
	--tec-color-border-secondary: var(--wp--preset--color--border-light, #C4D6CC);
	--tec-color-border-active: var(--wp--preset--color--primary, #006B4A);
	--tec-color-day-marker-current-month: var(--wp--preset--color--primary, #006B4A);
	--tec-color-day-marker-current-month-hover: var(--wp--preset--color--primary-hover, #00553A);
	--tec-color-button-primary: var(--wp--preset--color--secondary, #3A73B5);
	--tec-color-button-primary-hover: var(--wp--preset--color--secondary-hover, #2D5A8F);
	--tec-color-icon-active: var(--wp--preset--color--primary, #006B4A);
	--tec-border-radius-default: 12px;
}

/* --- Typography: headings use Coranto 2 --- */
.tribe-events .tribe-events-calendar-list__event-title,
.tribe-events .tribe-events-calendar-month__calendar-event-title,
.tribe-events .tribe-events-header__title,
.tribe-events .tribe-events-c-top-bar__datepicker-button,
.tribe-events h1,
.tribe-events h2,
.tribe-events h3 {
	font-family: 'coranto-2', Georgia, serif !important;
	font-weight: 400;
}

/* Event titles in list view */
.tribe-events .tribe-events-calendar-list__event-title a {
	color: var(--wp--preset--color--main, #1A3D32) !important;
	text-decoration: none !important;
}
.tribe-events .tribe-events-calendar-list__event-title a:hover {
	color: var(--wp--preset--color--primary, #006B4A) !important;
}

/* Date & time labels */
.tribe-events .tribe-events-calendar-list__event-datetime,
.tribe-events .tribe-events-calendar-list__event-date-tag-weekday,
.tribe-events .tribe-events-calendar-list__event-date-tag-daynum {
	font-family: 'canada-type-gibson', sans-serif !important;
}
.tribe-events .tribe-events-calendar-list__event-date-tag-daynum {
	color: var(--wp--preset--color--primary, #006B4A) !important;
	font-weight: 600;
}

/* Venue text */
.tribe-events .tribe-events-calendar-list__event-venue,
.tribe-events .tribe-events-calendar-list__event-venue-title {
	color: var(--wp--preset--color--main-accent, #3D5C4F) !important;
}

/* Event description excerpts */
.tribe-events .tribe-events-calendar-list__event-description p {
	font-family: 'canada-type-gibson', sans-serif !important;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

/* Month view: day-date number — consistent sans-serif typeface across all
   cells. TEC's date template renders the wrapper as <h3> on days with events
   and <div> on empty days (see month/calendar-body/day/date.php), so without
   this override the heading rule at line ~1587 kicks days-with-events into
   the serif coranto-2 face while empty days stay sans-serif. */
.tribe-events .tribe-events-calendar-month__day-date,
.tribe-events h3.tribe-events-calendar-month__day-date,
.tribe-events .tribe-events-calendar-month__day-date-daynum {
	font-family: 'canada-type-gibson', 'Mona Sans', sans-serif !important;
	font-weight: 600 !important;
}

/* Month view: today's date highlight — fixed-size square so border-radius
   resolves to a circle (not an oval that varies with digit count), with
   inverted text colour. */
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	min-width: 2rem;
	padding: 0;
	margin: 0;
	background-color: var(--wp--preset--color--primary, #006B4A) !important;
	color: #fff !important;
	border-radius: 50%;
	line-height: 1;
}
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum {
	color: #fff !important;
}

/* Month view: event bars */
.tribe-events .tribe-events-calendar-month__calendar-event--featured::before {
	background-color: var(--wp--preset--color--secondary, #3A73B5) !important;
}

/* View selector & navigation buttons */
.tribe-events .tribe-events-c-view-selector__button,
.tribe-events .tribe-events-c-nav__prev,
.tribe-events .tribe-events-c-nav__next {
	color: var(--wp--preset--color--primary, #006B4A) !important;
}
.tribe-events .tribe-events-c-view-selector__button:hover,
.tribe-events .tribe-events-c-nav__prev:hover,
.tribe-events .tribe-events-c-nav__next:hover {
	color: var(--wp--preset--color--primary-hover, #00553A) !important;
}

/* Subscribe / Export button */
.tribe-events .tribe-events-c-subscribe-dropdown__button {
	border-color: var(--wp--preset--color--border-light, #C4D6CC) !important;
	color: var(--wp--preset--color--main-accent, #3D5C4F) !important;
	border-radius: 8px !important;
}

/* Featured image in list view */
.tribe-events .tribe-events-calendar-list__event-featured-image-link img {
	border-radius: 12px;
}

/* Search bar / filter bar */
.tribe-events .tribe-events-c-search__input,
.tribe-events .tribe-events-c-events-bar__search-input {
	border-color: var(--wp--preset--color--border-light, #C4D6CC) !important;
	border-radius: 8px !important;
	font-family: 'canada-type-gibson', sans-serif !important;
}
.tribe-events .tribe-events-c-events-bar__search-button {
	background-color: var(--wp--preset--color--secondary, #3A73B5) !important;
	border-radius: 8px !important;
}

/* Tooltip styling */
.tribe-events .tribe-events-tooltip {
	border-radius: 12px !important;
	border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
}

/* No-results message */
.tribe-events .tribe-events-c-messages__message {
	font-family: 'canada-type-gibson', sans-serif !important;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

/* Event cost/price badge */
.tribe-events .tribe-events-c-small-cta__price {
	color: var(--wp--preset--color--secondary, #3A73B5) !important;
	font-weight: 600;
}

/* CTA link in list view */
.tribe-events .tribe-events-c-small-cta__link {
	color: var(--wp--preset--color--primary, #006B4A) !important;
}
.tribe-events .tribe-events-c-small-cta__link:hover {
	color: var(--wp--preset--color--primary-hover, #00553A) !important;
}


/* =============================================================================
   Single Event — Practitioner-Style Layout
   ============================================================================= */

/* ---------------------------------------------------------------------------
   1. HERO AREA (our custom template wrapper)
   --------------------------------------------------------------------------- */
.trc-event-hero {
	padding-top: var(--wp--preset--spacing--50, 2rem);
	padding-bottom: var(--wp--preset--spacing--60, 3rem);
}

/* Breadcrumb */
.trc-event-hero .trc-event-breadcrumb {
	font-size: 0.95rem;
	margin-bottom: var(--wp--preset--spacing--40, 1.5rem);
}
.trc-event-hero .trc-event-breadcrumb a {
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	text-decoration: none;
	transition: color 0.15s ease;
}
.trc-event-hero .trc-event-breadcrumb a:hover {
	color: var(--wp--preset--color--primary, #006B4A);
}

/* Category pill(s) */
.trc-event-category {
	display: inline-block;
	background: var(--wp--preset--color--primary-accent, #D4E8DF);
	color: var(--wp--preset--color--primary, #006B4A);
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.3rem 0.85rem;
	border-radius: 100px;
	margin-bottom: 0.75rem;
	margin-right: 0.35rem;
}

/* Date/time line in hero */
.trc-event-datetime {
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 1.15rem;
	color: var(--wp--preset--color--secondary, #3A73B5);
	font-weight: 600;
	margin-top: 0.75rem;
}

/* Venue line in hero */
.trc-event-venue-hero {
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 1.05rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin-top: 0.35rem;
	font-style: italic;
}

/* ---------------------------------------------------------------------------
   2. TWO-COLUMN BODY LAYOUT
   --------------------------------------------------------------------------- */
.trc-event-body {
	padding-top: var(--wp--preset--spacing--60, 3rem);
	padding-bottom: var(--wp--preset--spacing--70, 4rem);
}

/* ---------------------------------------------------------------------------
   3. TEC CONTENT AREA — HIDE DUPLICATE ELEMENTS
   Our hero and sidebar already display these, so suppress TEC's versions
   inside wp:post-content.
   --------------------------------------------------------------------------- */

/* Hide TEC's own title — we use wp:post-title in our hero */
.trc-event-body .tribe-events-single-event-title {
	display: none !important;
}

/* Hide TEC's schedule bar (date/time + cost) — we show in hero + sidebar */
.trc-event-body .tribe-events-schedule {
	display: none !important;
}

/* Hide TEC's featured image — we show it in the sidebar */
.trc-event-body .tribe-events-event-image {
	display: none !important;
}

/* Hide TEC's "← All Events" back link — we have a breadcrumb in the hero */
.trc-event-body .tribe-events-back {
	display: none !important;
}

/* Hide TEC's header navigation (prev/next at top) — we keep footer nav only */
.trc-event-body #tribe-events-header {
	display: none !important;
}

/* Hide TEC's duplicate venue/details meta — we show these in sidebar cards */
.trc-event-body .tribe-events-single-section.tribe-events-event-meta {
	display: none !important;
}

/* Hide TEC's Google Map embed — sidebar venue card has directions link */
.trc-event-body .tribe-events-meta-group-gmap {
	display: none !important;
}

/* ---------------------------------------------------------------------------
   4. TEC CONTENT — STYLE EVENT DESCRIPTION (what we keep visible)
   --------------------------------------------------------------------------- */
.trc-event-body .tribe-events-single-event-description {
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--wp--preset--color--main, #1A3D32);
}
.trc-event-body .tribe-events-single-event-description p {
	margin-bottom: 1.25rem;
}
.trc-event-body .tribe-events-single-event-description h2,
.trc-event-body .tribe-events-single-event-description h3,
.trc-event-body .tribe-events-single-event-description h4 {
	font-family: 'coranto-2', Georgia, serif;
	font-weight: 400;
	color: var(--wp--preset--color--main, #1A3D32);
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}
.trc-event-body .tribe-events-single-event-description h2 {
	font-size: 1.75rem;
}
.trc-event-body .tribe-events-single-event-description h3 {
	font-size: 1.35rem;
}
.trc-event-body .tribe-events-single-event-description a {
	color: var(--wp--preset--color--primary, #006B4A);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 0.15s ease;
}
.trc-event-body .tribe-events-single-event-description a:hover {
	color: var(--wp--preset--color--primary-hover, #00553A);
}
.trc-event-body .tribe-events-single-event-description ul,
.trc-event-body .tribe-events-single-event-description ol {
	padding-left: 1.5rem;
	margin-bottom: 1.25rem;
}
.trc-event-body .tribe-events-single-event-description li {
	margin-bottom: 0.4rem;
	line-height: 1.65;
}
.trc-event-body .tribe-events-single-event-description blockquote {
	border-left: 3px solid var(--wp--preset--color--primary-accent, #D4E8DF);
	padding: 0.75rem 1.25rem;
	margin: 1.5rem 0;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	font-style: italic;
}

/* Also style block editor content inside the event (TEC block mode) */
.trc-event-body .tribe-block.tec-block__single-event {
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--wp--preset--color--main, #1A3D32);
}

/* ---------------------------------------------------------------------------
   5. TEC FOOTER NAVIGATION (prev/next event)
   --------------------------------------------------------------------------- */
.trc-event-body #tribe-events-footer {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
}
.trc-event-body .tribe-events-nav-pagination {
	font-family: 'canada-type-gibson', sans-serif;
}
.trc-event-body .tribe-events-sub-nav {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.trc-event-body .tribe-events-nav-previous,
.trc-event-body .tribe-events-nav-next {
	flex: 0 1 auto;
	max-width: 48%;
}
.trc-event-body .tribe-events-sub-nav a {
	color: var(--wp--preset--color--primary, #006B4A);
	text-decoration: none;
	font-size: 0.95rem;
	font-weight: 500;
	transition: color 0.15s ease;
}
.trc-event-body .tribe-events-sub-nav a:hover {
	color: var(--wp--preset--color--primary-hover, #00553A);
}

/* ---------------------------------------------------------------------------
   6. SIDEBAR CARDS
   --------------------------------------------------------------------------- */
.trc-event-sidebar .trc-sidebar-card {
	background: var(--wp--preset--color--tertiary, #F5F8F6);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40, 1.5rem);
}
.trc-event-sidebar .trc-sidebar-card + .trc-sidebar-card {
	margin-top: var(--wp--preset--spacing--30, 1rem);
}
.trc-event-sidebar .trc-sidebar-card h3 {
	font-family: 'coranto-2', Georgia, serif;
	font-weight: 400;
	font-size: 1.35rem;
	color: var(--wp--preset--color--main, #1A3D32);
	margin-bottom: 0.75rem;
	margin-top: 0;
}

/* Featured image in sidebar */
.trc-event-sidebar .trc-event-featured-image {
	background: transparent;
	padding: 0;
}
.trc-event-sidebar .trc-event-featured-image img {
	width: 100%;
	height: auto;
	border-radius: 16px;
	display: block;
}

/* ---------------------------------------------------------------------------
   7. SIDEBAR — EVENT DETAIL ROWS
   --------------------------------------------------------------------------- */
.trc-event-detail-row {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.65rem 0;
}
.trc-event-detail-row:first-of-type {
	padding-top: 0;
}
.trc-event-detail-row + .trc-event-detail-row {
	border-top: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
}
.trc-event-detail-row .trc-detail-icon {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	color: var(--wp--preset--color--primary, #006B4A);
}
.trc-event-detail-row .trc-detail-icon svg {
	width: 20px;
	height: 20px;
}
.trc-event-detail-row .trc-detail-label {
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 0.775rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin-bottom: 0.15rem;
}
.trc-event-detail-row .trc-detail-value {
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 0.975rem;
	color: var(--wp--preset--color--main, #1A3D32);
	line-height: 1.5;
}
.trc-event-detail-row .trc-detail-value a {
	color: var(--wp--preset--color--primary, #006B4A);
	text-decoration: none;
	transition: color 0.15s ease;
}
.trc-event-detail-row .trc-detail-value a:hover {
	color: var(--wp--preset--color--primary-hover, #00553A);
}

/* ---------------------------------------------------------------------------
   8. SIDEBAR — REGISTER BUTTON + BACK LINK
   --------------------------------------------------------------------------- */
.trc-event-sidebar .trc-event-register-btn {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--wp--preset--color--secondary, #3A73B5);
	color: #fff !important;
	font-family: 'canada-type-gibson', sans-serif;
	font-weight: 600;
	font-size: 1.05rem;
	padding: 0.85rem 1.5rem;
	border-radius: 8px;
	text-decoration: none !important;
	transition: background-color 0.2s ease;
	margin-top: 0.5rem;
}
.trc-event-sidebar .trc-event-register-btn:hover {
	background: var(--wp--preset--color--secondary-hover, #2D5A8F);
}
.trc-event-sidebar .trc-back-to-calendar {
	display: block;
	text-align: center;
	margin-top: 0.75rem;
	font-size: 0.925rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	text-decoration: none;
	font-family: 'canada-type-gibson', sans-serif;
	transition: color 0.15s ease;
}
.trc-event-sidebar .trc-back-to-calendar:hover {
	color: var(--wp--preset--color--primary, #006B4A);
}

/* ---------------------------------------------------------------------------
   9. HERO — REGISTER BUTTON REFINEMENT
   --------------------------------------------------------------------------- */
.trc-event-hero .wp-block-button.trc-event-hero-register .wp-block-button__link {
	font-family: 'canada-type-gibson', sans-serif !important;
	transition: background-color 0.2s ease, transform 0.15s ease;
}
.trc-event-hero .wp-block-button.trc-event-hero-register .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--secondary-hover, #2D5A8F) !important;
	transform: translateY(-1px);
}
.trc-event-hero .wp-block-button.is-style-outline .wp-block-button__link {
	font-family: 'canada-type-gibson', sans-serif !important;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.trc-event-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--tertiary, #F5F8F6) !important;
}

/* ---------------------------------------------------------------------------
   10. RESPONSIVE
   --------------------------------------------------------------------------- */
@media (max-width: 781px) {
	.trc-event-sidebar {
		margin-top: var(--wp--preset--spacing--50, 2rem);
	}
	.trc-event-hero .wp-block-buttons {
		flex-direction: column;
	}
	.trc-event-hero .wp-block-button {
		width: 100%;
	}
	.trc-event-hero .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}


/* ===========================================================================
   TAXONOMY TERM PAGES
   =========================================================================== */

/* ---------------------------------------------------------------------------
   1. RELATED ARTICLES — 3-up grid
   --------------------------------------------------------------------------- */
.trc-related-articles-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40, 1.5rem);
}

.trc-related-articles-grid .trc-blog-card {
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	display: flex;
	flex-direction: column;
}

.trc-related-articles-grid .trc-blog-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
}

.trc-related-articles-grid .trc-blog-card__body {
	padding: 1.25rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.trc-related-articles-grid .trc-blog-card__category {
	display: inline-block;
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--primary, #006B4A);
	margin-bottom: 0.5rem;
}

.trc-related-articles-grid .trc-blog-card__title {
	font-family: 'coranto-2', serif;
	font-size: 1.15rem;
	font-weight: 400;
	line-height: 1.35;
	margin: 0 0 0.5rem;
}

.trc-related-articles-grid .trc-blog-card__title a {
	color: var(--wp--preset--color--main, #1A3D32);
	text-decoration: none;
}

.trc-related-articles-grid .trc-blog-card__title a:hover {
	color: var(--wp--preset--color--primary, #006B4A);
}

.trc-related-articles-grid .trc-blog-card__excerpt {
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
	margin: 0;
}

/* ---------------------------------------------------------------------------
   2. TAXONOMY BODY CONTENT
   --------------------------------------------------------------------------- */
.trc-taxonomy-body-content {
	font-family: 'canada-type-gibson', sans-serif;
}

.trc-taxonomy-body-content p {
	margin-bottom: 1rem;
}

.trc-taxonomy-body-content a {
	color: var(--wp--preset--color--primary, #006B4A);
	text-decoration: none;
	font-weight: 500;
}

.trc-taxonomy-body-content a:hover {
	text-decoration: underline;
}

/* ---------------------------------------------------------------------------
   3. TAXONOMY SIDEBAR — PRACTITIONER LIST
   --------------------------------------------------------------------------- */
.trc-taxonomy-sidebar .trc-sidebar-card {
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40, 1.5rem);
}

.trc-taxonomy-practitioner-list {
	list-style: none;
	padding: 0;
	margin: var(--wp--preset--spacing--20, 0.75rem) 0 0;
}

.trc-taxonomy-practitioner-item {
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
}

.trc-taxonomy-practitioner-item:last-child {
	border-bottom: none;
}

.trc-taxonomy-practitioner-item a {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	text-decoration: none;
	color: var(--wp--preset--color--main, #1A3D32);
	transition: color 0.15s ease;
}

.trc-taxonomy-practitioner-item a:hover {
	color: var(--wp--preset--color--primary, #006B4A);
}

.trc-taxonomy-practitioner-item img {
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
}

/* ---------------------------------------------------------------------------
   4. TAXONOMY HERO — BREADCRUMB
   --------------------------------------------------------------------------- */
.trc-taxonomy-breadcrumb {
	font-family: 'canada-type-gibson', sans-serif;
	font-size: 0.875rem;
	line-height: 1.5;
}

.trc-taxonomy-breadcrumb a {
	color: var(--wp--preset--color--primary, #006B4A);
	text-decoration: none;
}

.trc-taxonomy-breadcrumb a:hover {
	text-decoration: underline;
}

.trc-taxonomy-breadcrumb .trc-breadcrumb-sep {
	margin: 0 0.35rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

/* ---------------------------------------------------------------------------
   5. RESPONSIVE — TAXONOMY PAGES
   --------------------------------------------------------------------------- */
@media (max-width: 781px) {
	.trc-related-articles-grid {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--30, 1rem);
	}

	.trc-taxonomy-sidebar {
		margin-top: var(--wp--preset--spacing--50, 2rem);
	}
}

@media (min-width: 782px) and (max-width: 1024px) {
	.trc-related-articles-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ============================================
   Section H2 Breathing Room
   ============================================
   Lynne's Apr 21 feedback: H2 section headers feel crammed against
   the content above them. Adds top margin to section-level H2s
   site-wide. Scoped to .wp-block-heading so it only affects
   Gutenberg-rendered H2s (skips ad-hoc HTML blocks). Existing
   .wp-block-post-content h2 rule (2.5rem, line ~623) stays higher
   and wins inside bio/blog content due to equal specificity + source order.
*/
h2.wp-block-heading {
	margin-top: 2.75rem;
}

/* First H2 inside a group/section shouldn't double up with section
   padding-block — reset it so the section's own padding controls the
   top breathing room. */
.wp-block-group > h2.wp-block-heading:first-child,
.wp-block-cover__inner-container > h2.wp-block-heading:first-child {
	margin-top: 0;
}

/* ============================================
   Navigation — collapse to hamburger below 1280px
   ============================================
   With 6 top-level items + "Contact Us" button + 120px logo, the
   horizontal nav cramps on common laptop widths (1280–1440px).
   Override core's default responsive breakpoint (600px) so the
   overlay/hamburger kicks in up to 1279px. Above 1280px the
   horizontal nav renders normally.

   Core selectors being overridden:
   - .wp-block-navigation__responsive-container-open  → hamburger trigger
   - .wp-block-navigation__responsive-container       → nav wrapper
   - .is-menu-open                                    → applied by core JS on click
*/
@media (min-width: 600px) and (max-width: 1279px) {
	/* Show the hamburger trigger */
	.wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	/* Hide the inline horizontal menu when NOT open */
	.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none !important;
	}

	/* Close button visible when menu is open */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		display: flex;
	}
}

/* Service Cards — REMOVED 2026-05-13.
   Replaced by the unified .trc-card pattern (see "UNIFIED CONTENT CARD"
   below). Live pages migrated; seed pattern (page-therapy.php) hidden
   from inserter. Original rules archived in git history. */

/* ============================================
   Blog Search Button — A-2
   ============================================
   Core's search block (button-inside variant) inherits the global
   button style (secondary blue → white icon), which clashes with
   the light tertiary search field on /blog/. Strip the inherited
   bg, render the magnifier in primary green, drop the box-shadow
   so the icon button reads as a glyph rather than a chip.
*/
.trc-blog-search .wp-block-search__button {
	background-color: transparent !important;
	color: var(--wp--preset--color--primary, #006B4A) !important;
	box-shadow: none !important;
	border: 0 !important;
}
.trc-blog-search .wp-block-search__button svg {
	fill: currentColor;
}
.trc-blog-search .wp-block-search__button:hover,
.trc-blog-search .wp-block-search__button:focus {
	background-color: var(--wp--preset--color--primary-accent, #D4E8DF) !important;
	color: var(--wp--preset--color--primary-hover, #00553A) !important;
}

/* ============================================
   Taxonomy Archives — Larger H2/H3 (A-9)
   ============================================
   Per Apr 2026 client feedback: heading hierarchy in the term-
   description body on practitioner taxonomy archives reads small.
   Bump H2 / H3 ~22% inside .trc-taxonomy-body. Sidebar headings
   stay at the compact `large` preset; related-articles H2 is
   already x-large and unaffected.
*/
body[class*="tax-practitioner_"] .trc-taxonomy-body h2,
body[class*="tax-practitioner_"] .trc-taxonomy-body-display h2 {
	font-size: 2.2rem;
}
body[class*="tax-practitioner_"] .trc-taxonomy-body h3,
body[class*="tax-practitioner_"] .trc-taxonomy-body-display h3 {
	font-size: 1.65rem;
}

/* ============================================
   Navigation — Active Section Highlight (A-12)
   ============================================
   Two states: aria-current="page" (set by core on exact URL match)
   and .trc-nav-current-section (set by trc_mark_current_section_nav_link
   for ancestor URLs). Same visual treatment for both: a 2px primary
   underline aligned to the bottom of the nav item, no bg shift, so
   the layout stays calm.
*/
@media (min-width: 1280px) {
	.wp-block-navigation .wp-block-navigation-item__content[aria-current="page"],
	.wp-block-navigation .wp-block-navigation-item__content.trc-nav-current-section {
		box-shadow: inset 0 -2px 0 var(--wp--preset--color--primary, #006B4A);
		color: var(--wp--preset--color--primary, #006B4A);
	}
}

/* ============================================
   Navigation — Per-Item Horizontal Padding
   ============================================
   Visually separate top-level nav items beyond the blockGap. ~0.75rem
   each side = 1.5rem total horizontal padding per item. Only applies
   when the horizontal nav is shown (≥1280px); the overlay/hamburger
   menu manages its own item spacing.
*/
@media (min-width: 1280px) {
	.wp-block-navigation .wp-block-navigation-item__content {
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}
}

/* ============================================
   Header — Responsive Logo + CTA Sizing
   ============================================
   Logo img is hardcoded to height:120px inline (from parts/header.html).
   CSS !important beats inline style. Two breakpoints:
   - ≤782px (tablet portrait): logo 80px
   - ≤599px (phone): logo 60px, CTA button smaller padding + font
*/

/* Tablet portrait — moderate logo shrink */
@media (max-width: 782px) {
	.trc-site-logo img {
		height: 80px !important;
	}
}

/* Phone — aggressive shrink so the header doesn't eat half the viewport */
@media (max-width: 599px) {
	.trc-site-logo img {
		height: 60px !important;
	}

	.trc-header-cta .wp-block-button__link {
		padding: 0.45rem 0.85rem !important;
		font-size: 0.9rem !important;
	}
}

/* For Professionals Tiles — REMOVED 2026-05-13.
   Replaced by the unified .trc-card pattern (see "UNIFIED CONTENT CARD"
   below). The card system inherits the equal-height / bottom-anchored CTA /
   stretched-link behavior these rules originally provided. Live page
   migrated; seed pattern (page-for-professionals.php) hidden from inserter.
   Original rules archived in git history. */

/* =============================================================================
   UNIFIED CONTENT CARD — replaces trc-service-card and trc-prof-tile
   Visual contract mirrors .trc-practitioner-card so service / professional /
   program / approach cards feel like part of the same family.
   Spec: docs/plans/2026-05-13-card-and-strap-design.md
   ============================================================================= */

/* Equal-height base — when a .trc-card is the direct child of a wp-block-column,
   make the column itself flex so the card can fill via flex:1. Mirrors the
   pattern used by the legacy .trc-prof-tile for equal-height tile rows. */
.wp-block-column:has(> .wp-block-group.trc-card) {
	display: flex !important;
	flex-direction: column !important;
	flex: 1;
}

.trc-card {
	display: flex;
	flex-direction: column;
	flex: 1;
	height: 100%;
	background-color: var(--wp--preset--color--white, #FFFFFF);
	border: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
	border-radius: 12px;
	padding: 1.5rem;
	transition: all 0.3s ease;
	position: relative; /* anchor for stretched-link */
}

/* Children must not shrink — keeps body copy from squishing when margin-top:auto
   pushes the CTA to the bottom. */
.trc-card > * {
	flex-shrink: 0;
}

.trc-card:hover {
	border-color: var(--wp--preset--color--primary, #006B4A);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
	transform: translateY(-4px);
}

/* Cursor signals clickability — only when the card actually has a CTA */
.trc-card:has(.trc-card__cta) {
	cursor: pointer;
}

/* Optional icon slot — appears at top, centered, primary-tinted */
.trc-card__icon {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 1rem;
	color: var(--wp--preset--color--primary, #006B4A);
}
.trc-card__icon img,
.trc-card__icon svg {
	width: 3rem;
	height: 3rem;
}

/* Title — h3 styling, primary color, heading font */
.trc-card__title {
	font-family: var(--wp--preset--font-family--heading);
	color: var(--wp--preset--color--primary, #006B4A);
	font-size: 1.35rem;
	font-weight: 500;
	margin: 0 0 0.75rem;
	line-height: 1.3;
}
.trc-card__title a {
	color: inherit;
	text-decoration: none;
}
.trc-card__title a:hover {
	text-decoration: underline;
}

/* Body copy */
.trc-card__body {
	color: var(--wp--preset--color--main-accent);
	margin: 0 0 1rem;
	line-height: 1.6;
}

/* CTA slot — anchored to card bottom, "Explore X →" link.
   When present, the entire card becomes clickable via stretched-link
   (preserves the For Pros tile UX). */
.trc-card__cta {
	margin-top: auto !important; /* push to bottom regardless of body length */
	margin-bottom: 0 !important;
	padding-top: var(--wp--preset--spacing--30, 1rem);
	color: var(--wp--preset--color--primary, #006B4A);
	font-weight: 600;
}
.trc-card__cta a {
	color: inherit;
	text-decoration: none;
}
.trc-card__cta a::before {
	/* Stretched-link: the CTA's <a> is the click target for the whole card */
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.trc-card__cta a:hover,
.trc-card:hover .trc-card__cta a {
	text-decoration: underline;
}

/* Keyboard focus ring on the whole card when the CTA receives focus */
.trc-card:focus-within {
	outline: 2px solid var(--wp--preset--color--primary, #006B4A);
	outline-offset: 3px;
}

/* Title link (and any other in-card link except the CTA) sits above the
   stretched CTA layer so it stays clickable. We deliberately do NOT apply
   position:relative to the CTA's own <a> — its ::before needs to resolve
   against .trc-card, not against itself, for the whole-card click target. */
.trc-card__title a {
	position: relative;
	z-index: 2;
}

/* =============================================================================
   PAGE HEADER STRAP — interior-page header band.
   Built on top of .trc-tagline-stripe (the homepage stripe pattern's class)
   so the visual treatment stays in sync. .trc-page-strap overlays the
   breadcrumb-specific styles.
   ============================================================================= */

.trc-page-strap .trc-breadcrumbs ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0; /* spacing handled by .trc-breadcrumbs__sep margins for symmetry */
}

.trc-page-strap .trc-breadcrumbs li {
	display: inline-flex;
	align-items: center;
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.trc-page-strap .trc-breadcrumbs a {
	color: inherit;
	text-decoration: none;
	opacity: 0.85;
	transition: opacity 0.2s ease;
}

.trc-page-strap .trc-breadcrumbs a:hover,
.trc-page-strap .trc-breadcrumbs a:focus {
	opacity: 1;
	text-decoration: underline;
}

.trc-page-strap .trc-breadcrumbs [aria-current="page"] {
	opacity: 0.95;
}

/* Separator: symmetric horizontal margin → equal whitespace on both sides.
   Slightly larger than label text so the chevron reads as a divider. */
.trc-page-strap .trc-breadcrumbs__sep {
	margin: 0 0.6em;
	opacity: 0.6;
	font-size: 1.05em;
	line-height: 1;
}

/* Mobile — breadcrumb wraps gracefully on narrow widths */
@media (max-width: 600px) {
	.trc-page-strap .trc-breadcrumbs li {
		font-size: 0.875rem;
	}
	.trc-page-strap .trc-breadcrumbs__sep {
		margin: 0 0.4em;
	}
}

/* Event hero: breathing room between the category chip and the title.
   The chip is injected by PHP into .trc-event-category-wrap which sits
   immediately above the H1 with no margin separation by default. */
.trc-event-hero .trc-event-category-wrap {
	margin-bottom: var(--wp--preset--spacing--30, 1rem);
}

/* Program detail page category chip (e.g., "MONTHLY GROUP", "REGULAR CLASS").
   Styled entirely via CSS so the block markup stays minimal — no inline
   styles in post_content means no Gutenberg "attempt recovery" warnings.

   The chip <p> is wrapped in a default-layout group in the page content.
   That outer group is the constrained-layout child of .trc-event-hero, so
   it gets max-width:800px + auto margins → centered max-width box. The chip
   inside is width:fit-content with normal flow margins, so it sits at the
   LEFT edge of that box — flush-aligned with the H1 in the same wrapper. */
.trc-program-category-chip {
	display: block;
	width: fit-content;
	background-color: var(--wp--preset--color--primary-accent, #D4E8DF);
	color: var(--wp--preset--color--primary, #006B4A);
	border-radius: 999px;
	padding: 0.4rem 1rem;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin: 0;
}

/* Force a larger gap below the chip-wrap on program detail pages.
   The chip's own margin-bottom propagates to its parent wrap, which then
   collapses with the next sibling's (H1's) margin-block-start set by
   WordPress block-gap. To beat the collapse we target the H1 directly. */
.trc-event-hero h1.wp-block-heading {
	margin-top: var(--wp--preset--spacing--50, 2.5rem) !important;
}

/* Series hero subcopy — matches the intro paragraph on the manually-built
   program detail pages. Injected by trc_series_render_block() into
   .trc-series-subcopy-wrap; the wrap is left in the markup and collapses
   when no subcopy is set so it never adds stray spacing. */
.trc-series-subcopy-wrap:empty {
	display: none;
}

.trc-series-subcopy {
	margin-top: 0;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

/* Match the headline→subcopy gap (the constrained-layout block-gap) for the
   subcopy→buttons gap too, so the hero rhythm is symmetric. Overrides the
   buttons block's inline spacing-30 margin; scoped to .trc-series-hero so the
   event and practitioner hero buttons are unaffected. */
.trc-series-hero .wp-block-buttons {
	margin-top: var(--wp--style--block-gap, clamp(1.5rem, 4vw, 2rem)) !important;
}

.trc-series-subcopy p {
	margin: 0 0 1em;
	font-size: 1.125rem;
	line-height: 1.6;
}

.trc-series-subcopy p:last-child {
	margin-bottom: 0;
}

.trc-series-subcopy strong {
	font-weight: 600;
}

.trc-series-subcopy a {
	color: var(--wp--preset--color--secondary, #3A73B5);
	text-decoration: underline;
}

/* Event detail body: tuck in unordered/ordered list bullets so they align
   under the body copy above, rather than hanging out in the left margin.
   Scoped to .trc-event-body — the earlier `body.single-event ul` selector was
   too broad and also matched the header navigation's <ul>, adding 1.25em
   (~22px) of left padding that widened the nav and forced it to wrap below the
   logo on event pages. .trc-event-body is the content section on both
   single-event.html and single-tribe_events.html, so the nav is excluded. */
.trc-event-body .wp-block-list,
.trc-event-body ul,
.trc-event-body ol {
	padding-left: 1.25em;
}

/* =============================================================================
   PRACTITIONER LIST — rendered by [trc_practitioner_list] shortcode.
   Visual recipe matches the taxonomy sidebar "Our Practitioners" card:
   40px circular photo + name (+ credentials) + thin divider between rows.
   ============================================================================= */

.trc-practitioner-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.trc-practitioner-list__item {
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border-light, #C4D6CC);
}
.trc-practitioner-list__item:last-child {
	border-bottom: 0;
}

.trc-practitioner-list__link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	text-decoration: none;
	color: var(--wp--preset--color--main, #1A3D32);
	transition: color 0.2s ease;
}
.trc-practitioner-list__link:hover,
.trc-practitioner-list__link:focus {
	color: var(--wp--preset--color--primary, #006B4A);
}
.trc-practitioner-list__link:hover .trc-practitioner-list__name,
.trc-practitioner-list__link:focus .trc-practitioner-list__name {
	text-decoration: underline;
}

.trc-practitioner-list__avatar {
	width: 40px !important;
	height: 40px !important;
	min-width: 40px;
	border-radius: 50% !important;
	object-fit: cover;
	flex-shrink: 0;
	display: inline-block;
	aspect-ratio: 1 / 1;
}
.trc-practitioner-list__avatar--placeholder {
	background: var(--wp--preset--color--primary-accent, #D4E8DF);
}

.trc-practitioner-list__name {
	font-weight: 500;
	font-size: 0.95rem;
	line-height: 1.35;
}

/* Card-wrapped variant — matches the taxonomy sidebar "Our Practitioners"
   treatment: rounded corners, tertiary background, comfortable padding. */
.trc-practitioner-list-card {
	background-color: var(--wp--preset--color--tertiary, #F5F8F6);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40, 1.5rem);
}

.trc-practitioner-list__heading {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 500;
	font-size: 1.1rem;
	color: var(--wp--preset--color--main, #1A3D32);
	margin: 0 0 0.75rem;
	line-height: 1.3;
}

/* Therapy + For Professionals sub-pages: breathing room between stackable
   columns sections. These pages stack multiple sub-sections by default with
   minimal margin between them.
   parent-pageid-8  = under the Therapy page
   parent-pageid-10 = under the For Professionals page */
body.parent-pageid-8 .wp-block-stackable-columns + .wp-block-stackable-columns,
body.parent-pageid-10 .wp-block-stackable-columns + .wp-block-stackable-columns {
	margin-top: var(--wp--preset--spacing--50, 3rem);
}

/* Inverted-scheme pages: light hero (bg-programs #E8F2EE) — match the strap to
   that so the transition strap → hero is continuous instead of jumping from
   bright green to the pale-green body. Covers single practitioner pages, every
   practitioner_* taxonomy term page, and single event pages (both 'event' and
   'tribe_events' post types). The practitioners archive keeps the default
   primary strap. Hero bg lives in each template (backgroundColor:"bg-programs");
   keep this value in sync with that. */
body.single-practitioner .trc-page-strap,
body.single-event .trc-page-strap,
body.single-tribe_events .trc-page-strap,
body[class*="tax-practitioner_"] .trc-page-strap {
	background-color: var(--wp--preset--color--bg-programs, #E8F2EE) !important;
	background-image: none !important;
	color: var(--wp--preset--color--main, #1A3D32) !important;
}
body.single-practitioner .trc-page-strap .trc-breadcrumbs a,
body.single-practitioner .trc-page-strap .trc-breadcrumbs [aria-current="page"],
body.single-practitioner .trc-page-strap .trc-breadcrumbs__sep,
body.single-event .trc-page-strap .trc-breadcrumbs a,
body.single-event .trc-page-strap .trc-breadcrumbs [aria-current="page"],
body.single-event .trc-page-strap .trc-breadcrumbs__sep,
body.single-tribe_events .trc-page-strap .trc-breadcrumbs a,
body.single-tribe_events .trc-page-strap .trc-breadcrumbs [aria-current="page"],
body.single-tribe_events .trc-page-strap .trc-breadcrumbs__sep,
body[class*="tax-practitioner_"] .trc-page-strap .trc-breadcrumbs a,
body[class*="tax-practitioner_"] .trc-page-strap .trc-breadcrumbs [aria-current="page"],
body[class*="tax-practitioner_"] .trc-page-strap .trc-breadcrumbs__sep {
	color: var(--wp--preset--color--main, #1A3D32);
}

/* =========================================================================
   NEWSLETTER ARCHIVE LIST (newsletter_issue Query Loop)
   Renders inside trc/newsletter-archive on the /newsletter landing page.
   Reuses the global .wp-block-query-pagination styles above for paging.
   ========================================================================= */

/* Strip the post-template <ul> back to flush, full-width rows. */
.trc-newsletter-archive-loop .wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
}

.trc-newsletter-archive-loop .wp-block-post-template > li {
	margin: 0;
}

/* One issue per row: meta on the left, "Read Issue →" on the right.
   align-items/justify set here so the layout holds regardless of which
   WP layout-support classes get emitted on the group. */
.trc-newsletter-archive-loop .trc-issue-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
}

/* Date and title sit inline: "January 2026 — New Year, New Beginnings". */
.trc-newsletter-archive-loop .trc-issue-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem;
}

.trc-newsletter-archive-loop .trc-issue-date {
	display: inline-flex;
}

/* Em-dash separator added in CSS so the block markup stays valid (gotcha #7). */
.trc-newsletter-archive-loop .trc-issue-date::after {
	content: "—";
	margin-left: 0.4rem;
	color: var(--wp--preset--color--main-accent, #3D5C4F);
}

.trc-newsletter-archive-loop .trc-issue-title {
	margin: 0;
	line-height: 1.4;
}

.trc-newsletter-archive-loop .trc-issue-title a {
	color: var(--wp--preset--color--main, #1A3D32);
	text-decoration: none;
	transition: color 0.15s;
}

.trc-newsletter-archive-loop .trc-issue-title a:hover,
.trc-newsletter-archive-loop .trc-issue-title a:focus-visible {
	color: var(--wp--preset--color--primary, #00553A);
	text-decoration: underline;
}

.trc-newsletter-archive-loop .trc-issue-link {
	white-space: nowrap;
	font-weight: 600;
	text-decoration: none;
	padding-block: 0.25rem;
	transition: color 0.15s;
}

.trc-newsletter-archive-loop .trc-issue-link:hover,
.trc-newsletter-archive-loop .trc-issue-link:focus-visible {
	color: var(--wp--preset--color--secondary-hover, #2D5A8F);
	text-decoration: underline;
}

/* On narrow screens, let the link drop below the title and align left. */
@media (max-width: 600px) {
	.trc-newsletter-archive-loop .trc-issue-row {
		align-items: flex-start;
	}
	.trc-newsletter-archive-loop .trc-issue-link {
		white-space: normal;
	}
}

/* =========================================================================
   NEWSLETTER SINGLE — hero + featured-image overlap
   Mirrors the blog single layout (.trc-single-hero / .trc-single-featured-image)
   but with a dark hero + white text, date only, no author. The dramatic
   image overlap is guarded by :has() so issues WITHOUT a cover image don't
   leave an empty band.
   ========================================================================= */

.trc-newsletter-hero {
	padding-bottom: var(--wp--preset--spacing--60, 4rem);
}

/* Big bottom padding only when a cover image follows the hero. */
.trc-newsletter-hero:has(+ .trc-newsletter-featured-image img) {
	padding-bottom: 14rem;
}

.trc-newsletter-hero__date {
	opacity: 0.9;
}

.trc-newsletter-featured-image .wp-block-post-featured-image {
	margin-top: 0 !important;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.trc-newsletter-featured-image .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

/* Pull the image up into the hero only when an image is actually present. */
.trc-newsletter-featured-image:has(img) {
	margin-top: -12rem !important;
}

/* =========================================================================
   NEWSLETTER SIGNUP — Forminator form skinned to the prior hand-styled look
   The "Newsletter Signup" form is created with form-style=none (see
   inc/create-newsletter-form.php), so only Forminator's base structural CSS
   loads. These rules reproduce the original inputs/labels/button exactly so
   the signup section's appearance is unchanged.
   ========================================================================= */

.trc-newsletter-form .forminator-row {
	margin-bottom: 0;
}

.trc-newsletter-form .forminator-field {
	margin-bottom: 1rem;
}

.trc-newsletter-form .forminator-label,
.trc-newsletter-form label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 500;
	color: var(--wp--preset--color--main, #1A3D32);
	font-family: canada-type-gibson, sans-serif;
	font-size: 1rem;
}

.trc-newsletter-form .forminator-required {
	color: var(--wp--preset--color--secondary, #3A73B5);
}

.trc-newsletter-form input[type="text"],
.trc-newsletter-form input[type="email"],
.trc-newsletter-form .forminator-input {
	width: 100% !important;
	padding: 0.75rem 1rem !important;
	border: 1px solid #C4D6CC !important;
	border-radius: 8px !important;
	font-size: 1.2rem !important;
	font-family: canada-type-gibson, sans-serif !important;
	background: #fff !important;
	color: var(--wp--preset--color--main, #1A3D32) !important;
	box-shadow: none !important;
	height: auto !important;
	line-height: 1.4 !important;
}

.trc-newsletter-form input::placeholder {
	color: #8AA395;
}

.trc-newsletter-form .forminator-button-wrapper {
	width: 100%;
	margin-top: 0.25rem;
}

.trc-newsletter-form .forminator-button,
.trc-newsletter-form button[type="submit"],
.trc-newsletter-form .forminator-button-submit {
	background-color: var(--wp--preset--color--secondary, #3A73B5) !important;
	color: #fff !important;
	border: none !important;
	padding: 0.875rem 2rem !important;
	border-radius: 8px !important;
	font-size: 1.2rem !important;
	font-weight: 600 !important;
	font-family: canada-type-gibson, sans-serif !important;
	width: 100% !important;
	cursor: pointer !important;
	transition: background-color 0.15s !important;
}

.trc-newsletter-form .forminator-button:hover,
.trc-newsletter-form .forminator-button-submit:hover {
	background-color: var(--wp--preset--color--secondary-hover, #2D5A8F) !important;
}

/* Validation + response messages */
.trc-newsletter-form .forminator-error-message {
	color: #c0392b !important;
	font-size: 0.95rem;
	margin-top: 0.35rem;
}

.trc-newsletter-form input.forminator-is_invalid,
.trc-newsletter-form .forminator-input--error {
	border-color: #c0392b !important;
}

.trc-newsletter-form .forminator-response-message {
	margin-bottom: 1rem;
}

/* ============================================
   Clinical Consultation — constrain full-bleed Stackable columns
   --------------------------------------------
   The /for-professionals/clinical-consultation/ page body is a Stackable
   columns block saved as alignfull, so it ran edge-to-edge (≈43px margins)
   while every other page constrains content to the 1200px content-size.
   Cap it to the site content-size and center it so its margins match the
   rest of the site, keeping the two-column text + photo layout intact.
   (Punch list B#7, 2026-06-03)
   ============================================ */
.page-id-1681 .stk-block-columns.alignfull {
	max-width: var(--wp--style--global--content-size, 1200px);
	margin-inline: auto;
}

/* ============================================
   Practitioner sidebar Contact block — keep long
   emails / URLs from overflowing and breaking
   mid-word. Step the size down for long values
   (floor 1rem / 16px) and let <wbr> pick the break.
   ============================================ */
.trc-contact-display .trc-contact-val {
	overflow-wrap: break-word;
}
.trc-contact-display .trc-contact-sm {
	font-size: 1.1rem;
	line-height: 1.5;
}
.trc-contact-display .trc-contact-xs {
	font-size: 1rem;
	line-height: 1.5;
}
