/* =========================================================================
   TCCA — Theme stylesheet
   Design tokens + section component styles.
   The DB Heavent @font-face is declared via theme.json; everything else
   (tokens, helpers, per-section layouts) lives here so the pattern markup
   stays close to what an editor sees in Gutenberg.
   ========================================================================= */

:root {
	--tcca-navy-50:  #eaf0f8;
	--tcca-navy-100: #c9d5e8;
	--tcca-navy-200: #95a9c7;
	--tcca-navy-300: #5c7ba2;
	--tcca-navy-400: #2f517d;
	--tcca-navy-500: #16385f;
	--tcca-navy-600: #0f2947;
	--tcca-navy-700: #0b1f38;
	--tcca-navy-800: #081729;
	--tcca-navy-900: #04101d;

	--tcca-orange:        #e87a26;
	--tcca-orange-light:  #f4a35b;
	--tcca-orange-soft:   #fdecd8;
	--tcca-cream:         #fff8ef;

	--tcca-pink:   #ff5a8a;
	--tcca-yellow: #f9e24a;
	--tcca-lime:   #b2ea3a;
	--tcca-cyan:   #3ed0e6;
	--tcca-violet: #8a5cff;

	--tcca-shell-x: clamp(1.25rem, 2vw, 2rem);
	--tcca-shell-max: 1280px;
}

/* Drop WP's default 24px gap between top-level wp-site-blocks children
   (header / main / footer). The hero already pulls itself up under the
   sticky header with a negative margin and we want it flush. */
.wp-site-blocks > * { margin-block-start: 0 !important; }

/* WP injects `.is-layout-constrained > :where(...) { margin-left/right: auto !important }`
   on every constrained group, which silently re-centers anything we wanted left-anchored.
   Our own `.tcca-shell` handles centering at the section level — kill the auto margins
   so nested content stays where the layout puts it. */
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* ---------- Base ------------------------------------------------------- */

html { scroll-behavior: smooth; }

body {
	background: var(--tcca-cream);
	color: var(--tcca-navy-700);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

::selection { background: var(--tcca-orange); color: #fff; }

/* WP "wide" alignments handled by theme.json. The shell helper centers and
   pads inner content for our hand-rolled section grids. */
.tcca-shell {
	width: 100%;
	max-width: var(--tcca-shell-max);
	margin-inline: auto !important;
	padding-inline: var(--tcca-shell-x);
}
@media (min-width: 1024px) {
	.tcca-shell { padding-inline: 0; }
}

/* Scope the display face to clearly-display contexts. Headings already
   pick this up via theme.json elements, but eyebrows / pills need it too. */
.font-display,
.tcca-section h1,
.tcca-section h2,
.tcca-section h3,
.tcca-section h4 {
	font-family: var(--wp--preset--font-family--display);
	letter-spacing: 0;
	font-feature-settings: "kern" 1, "mark" 1, "mkmk" 1, "ccmp" 1, "locl" 1;
}

/* Brand gradient + helpers from globals.css */
.brand-gradient {
	background: linear-gradient(92deg,#ff5a8a 0%,#e87a26 22%,#f9e24a 44%,#b2ea3a 60%,#3ed0e6 76%,#8a5cff 100%);
}
.brand-gradient-text {
	background: linear-gradient(92deg,#ff5a8a 0%,#e87a26 22%,#f9e24a 44%,#b2ea3a 60%,#3ed0e6 76%,#8a5cff 100%);
	background-size: 200% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: tcca-shimmer 8s linear infinite;
}
.dot-grid       { background-image: radial-gradient(rgba(11,31,56,0.12) 1px, transparent 1px); background-size: 22px 22px; }
.dot-grid-light { background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px); background-size: 22px 22px; }

@keyframes tcca-shimmer { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }
@keyframes tcca-marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes tcca-float   { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-24px) rotate(3deg); } }

/* Eyebrow / kicker style (small all-caps tracker) used everywhere */
.tcca-eyebrow {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--tcca-orange);
}
.tcca-eyebrow.is-light { color: var(--tcca-orange-light); }

/* ---------- Header / footer ------------------------------------------- */

.tcca-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	background: transparent;
	border-bottom: 1px solid transparent;
	transition: background-color .25s ease, border-color .25s ease, backdrop-filter .25s ease;
}
/* Once the page has scrolled — or the mobile drawer is open — give the
   header its cream-blur surface and hairline border. */
.tcca-header.is-scrolled,
.tcca-header.is-menu-open {
	background: color-mix(in srgb, var(--tcca-cream) 80%, transparent);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border-bottom-color: color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
}
/* The fixed header is taken out of flow — give the body a top spacer so
   content below isn't hidden behind it. Hero & other negative-margin tricks
   are calibrated against this spacer. */
body { padding-top: 72px; }
@media (min-width: 782px) { body:not(.home) { padding-top: 120px; } }
@media (min-width: 782px) { body.home { padding-top: 0; } }
/* body.admin-bar { padding-top: calc(72px + 32px); } */
/* @media (max-width: 782px) { body.admin-bar { padding-top: calc(72px + 46px); } } */
/* Mobile gutter lives on the header (so logo, hamburger, and the drawer card
   all share the same edge inset). Tablet/desktop have the shell's max-width
   centered in the viewport without any gutter. */
@media (max-width: 699px) {
	.tcca-header { padding: 0 var(--tcca-shell-x); }
}
/* Sit below the WP admin bar when logged in. */
body.admin-bar .tcca-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .tcca-header { top: 46px; } }
.tcca-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.85rem;
}
@media (max-width: 699px) {
	.tcca-header__inner { padding-left: 0; padding-right: 0; }
}
.tcca-logo img { height: 44px; width: auto; display: block; }
.tcca-nav { display: none; gap: 0.25rem; align-items: center; }
@media (min-width: 1024px) { .tcca-nav { display: flex; } }
.tcca-nav a {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	font-weight: 500;
	color: var(--tcca-navy-700);
	padding: 0 1.1rem;
	border-radius: 9999px;
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.tcca-nav a:hover { background: color-mix(in srgb, var(--tcca-navy-600) 5%, transparent); color: var(--tcca-navy-800); }

.tcca-cta-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	font-size: 1.1rem;
	background: var(--tcca-navy-600);
	color: var(--tcca-cream);
	height: 2.5rem;
	padding: 0 1.1rem;
	border-radius: 9999px;
	box-shadow: 0 1px 2px rgba(0,0,0,.05);
	transition: transform .25s, background-color .25s, box-shadow .25s;
	text-decoration: none;
}
.tcca-cta-pill:hover { transform: translateY(-2px); background: var(--tcca-navy-700); box-shadow: 0 10px 20px rgba(0,0,0,.12); color: var(--tcca-cream); }
.tcca-cta-pill__icon {
	display: inline-flex;
	align-items: center; justify-content: center;
	transition: transform .25s;
}
.tcca-cta-pill__icon svg { width: 0.95rem; height: 0.95rem; }
.tcca-cta-pill:hover .tcca-cta-pill__icon { transform: translateX(2px); }

.tcca-header__right { display: flex; align-items: center; gap: 0.75rem; }
/* Hide the header CTA pill below tablet (≤767px). It moves into the mobile menu. */
@media (max-width: 767px) { .tcca-header .tcca-cta-pill { display: none; } }

/* Hamburger — visible below desktop (≤1023px). */
.tcca-hamburger {
	display: none;
	width: 2.5rem; height: 2.5rem;
	align-items: center; justify-content: center;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 15%, transparent);
	background: transparent;
	color: var(--tcca-navy-700);
	cursor: pointer;
	padding: 0;
	transition: background-color .2s;
}
.tcca-hamburger:hover { background: color-mix(in srgb, var(--tcca-navy-600) 5%, transparent); }
@media (max-width: 1023px) { .tcca-hamburger { display: inline-flex; } }
.tcca-hamburger__bars {
	position: relative;
	display: block;
	width: 1.25rem; height: 0.75rem;
}
.tcca-hamburger__bars > span {
	position: absolute;
	left: 0;
	display: block;
	height: 2px;
	width: 100%;
	background: currentColor;
	border-radius: 1px;
	transition: transform .25s, opacity .2s, top .25s, bottom .25s;
}
.tcca-hamburger__bars > span:nth-child(1) { top: 0; }
.tcca-hamburger__bars > span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.tcca-hamburger__bars > span:nth-child(3) { bottom: 0; }
.tcca-header.is-menu-open .tcca-hamburger__bars > span:nth-child(1) {
	top: 50%; transform: translateY(-50%) rotate(45deg);
}
.tcca-header.is-menu-open .tcca-hamburger__bars > span:nth-child(2) { opacity: 0; }
.tcca-header.is-menu-open .tcca-hamburger__bars > span:nth-child(3) {
	bottom: 50%; transform: translateY(50%) rotate(-45deg);
}

/* Mobile drawer — absolutely positioned below the sticky header so opening
   it doesn't push the page content down. Collapses via max-height/opacity. */
.tcca-mobile-menu {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition: max-height .3s ease, opacity .3s ease;
}
.tcca-header.is-menu-open .tcca-mobile-menu {
	max-height: 32rem;
	opacity: 1;
}
@media (min-width: 1024px) { .tcca-mobile-menu { display: none; } }
.tcca-mobile-menu__panel {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin: 0 1rem 0.75rem;
	padding: 0.75rem;
	border-radius: 1.5rem;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	background: var(--tcca-cream);
	box-shadow: 0 10px 30px rgba(0,0,0,.08);
}
.tcca-mobile-menu__panel a {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: 1.125rem;
	color: var(--tcca-navy-700);
	padding: 0.75rem 1rem;
	border-radius: 1rem;
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.tcca-mobile-menu__panel a:hover { background: color-mix(in srgb, var(--tcca-navy-600) 5%, transparent); color: var(--tcca-navy-800); }
.tcca-mobile-menu__cta {
	margin-top: 0.5rem;
	background: var(--tcca-navy-600);
	color: var(--tcca-cream) !important;
	text-align: center;
	font-weight: 600 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}
.tcca-mobile-menu__cta:hover { background: var(--tcca-navy-700); color: var(--tcca-cream) !important; }
.tcca-mobile-menu__cta svg { width: 0.95rem; height: 0.95rem; }

.tcca-footer {
	position: relative;
	overflow: hidden;
	background: var(--tcca-navy-700);
	color: color-mix(in srgb, var(--tcca-cream) 90%, transparent);
	padding-block: 4rem;
}
.tcca-footer::before {
	content: "";
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.4;
	pointer-events: none;
}
.tcca-footer::after {
	content: "";
	position: absolute;
	left: 50%; bottom: -160px;
	transform: translateX(-50%);
	width: 1100px; height: 520px;
	border-radius: 9999px;
	background: linear-gradient(92deg,#ff5a8a 0%,#e87a26 22%,#f9e24a 44%,#b2ea3a 60%,#3ed0e6 76%,#8a5cff 100%);
	filter: blur(80px);
	opacity: 0.3;
	pointer-events: none;
}
.tcca-footer__grid {
	position: relative;
	display: grid;
	gap: 3rem;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
}
@media (max-width: 900px) { .tcca-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .tcca-footer__grid { grid-template-columns: 1fr; } }
.tcca-footer h4 {
	color: var(--tcca-orange-light);
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0;
	margin-bottom: 1rem;
}
.tcca-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.75rem; font-size: 0.875rem; }
.tcca-footer a { color: color-mix(in srgb, var(--tcca-cream) 70%, transparent); text-decoration: none; transition: color .2s; }
.tcca-footer a:hover { color: var(--tcca-cream); }
.tcca-footer__brand img { filter: brightness(0) invert(1); height: 56px; width: auto; }
.tcca-footer__brand p { margin-top: 1.25rem; max-width: 22rem; font-size: 0.875rem; line-height: 1.7; color: color-mix(in srgb, var(--tcca-cream) 70%, transparent); }
.tcca-socials { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem; }
.tcca-socials a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, var(--tcca-cream) 20%, transparent);
	color: color-mix(in srgb, var(--tcca-cream) 80%, transparent);
	transition: all .25s;
}
.tcca-socials a:hover { background: var(--tcca-orange); border-color: var(--tcca-orange); color: #fff; }
.tcca-footer__legal {
	position: relative;
	margin-top: 3.5rem;
	padding-top: 2rem;
	border-top: 1px solid color-mix(in srgb, var(--tcca-cream) 10%, transparent);
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	font-size: 0.75rem;
	color: color-mix(in srgb, var(--tcca-cream) 60%, transparent);
}

/* =========================================================================
   Sections
   ========================================================================= */

.tcca-section { position: relative; }

/* ---------- Hero ------------------------------------------------------- */

.tcca-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	/* Negative top margin pulls the section up under the (sticky) header so
	   the gradient + dot-grid bleed into the area behind the navbar.
	   Padding-top compensates so the headline still clears it. */
	margin-top: -80px;
	padding-block: clamp(5rem, 8.5vw, 6.5rem) 3rem;
	/* Two ambient gradient washes covering the top-left + top-right of the
	   section. Painted as background-image so they're not subject to the
	   section's overflow clip and reach the header edge cleanly. */
	background-image:
		radial-gradient(60rem 40rem at 8% -8%,
			rgba(255,90,138,0.30) 0%,
			rgba(232,122,38,0.20) 18%,
			rgba(249,226,74,0.14) 32%,
			rgba(178,234,58,0.08) 46%,
			rgba(62,208,230,0.05) 58%,
			rgba(138,92,255,0.04) 70%,
			transparent 85%),
		radial-gradient(45rem 32rem at 95% 6%,
			rgba(232,122,38,0.28) 0%,
			rgba(232,122,38,0.10) 35%,
			transparent 70%);
	background-repeat: no-repeat;
}
/* Admin-bar desktop pulls the hero up an extra 92px (-172 vs -80), so the
   padding-top has to add the same 92px (5.75rem) on top of the regular
   value to land the headline in the same visual spot below the header. */
body.admin-bar .tcca-hero { margin-top: -102px; padding-top: calc(clamp(5rem, 8.5vw, 6.5rem) + 5.75rem); }
/* Mobile — drop the desktop negative-margin hack; small breathing room
   below the sticky header. */
@media (max-width: 699px) {
	.tcca-hero { margin-top: 0; padding-block: 1.5rem 1rem; }
	body.admin-bar .tcca-hero { margin-top: 0; padding-top: 1.5rem; }
}
.tcca-hero::before {
	content: "";
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(11,31,56,0.12) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.55;
	pointer-events: none;
	z-index: -1;
}
/* tcca-hero__grid is now a wp:columns block (flex). Just tune the gap. */
.tcca-hero__grid { position: relative; gap: 3rem; }
@media (min-width: 900px) { .tcca-hero__grid { gap: 3rem; } }
.tcca-hero h1 {
	font-size: clamp(2.75rem, 1rem + 7vw, 5.5rem);
	font-weight: 700;
	line-height: 0.95;
	letter-spacing: 0;
	color: var(--tcca-navy-700);
	margin: 0;
	text-wrap: balance;
}
.tcca-hero h1 .tcca-hero__highlight {
	position: relative;
	display: inline-block;
}
.tcca-hero h1 .tcca-hero__highlight::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -0.45rem;
	height: 0.75rem;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 20' preserveAspectRatio='none'><path d='M2 12 C 80 2, 160 20, 240 8 S 380 16, 398 6' fill='none' stroke='%23e87a26' stroke-width='3' stroke-linecap='round'/></svg>") center/100% 100% no-repeat;
}
.tcca-hero__lead {
	margin-top: 1.75rem;
	max-width: 36rem;
	font-size: 1.125rem;
	line-height: 1.7;
	color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent);
}
.tcca-hero__lead strong { font-weight: 600; color: var(--tcca-navy-700); }
.tcca-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2.5rem;
}
/* Mobile — split the two CTAs evenly across the row. Keep the link as an
   inline-flex container (so the trailing icon stays a flex child) but
   stretch it to the column width with text + icon centered. */
@media (max-width: 699px) {
	.tcca-hero__ctas { flex-wrap: nowrap; gap: 0.6rem; }
	.tcca-hero__ctas > .wp-block-button { flex: 1 1 0; min-width: 0; }
	.tcca-hero__ctas > .wp-block-button > .wp-block-button__link {
		width: 100%;
		justify-content: center;
		gap: 0.5rem;
		font-size: 0.95rem;
		height: 3.25rem;
		padding-inline: 0.75rem;
	}
	.tcca-hero__ctas > .wp-block-button > .wp-block-button__link::after {
		width: 1.5rem; height: 1.5rem;
		background-size: 0.7rem 0.7rem;
		flex-shrink: 0;
	}
}
/* The .tcca-btn / .tcca-btn-outline classes work in two situations:
   - On a plain <a class="tcca-btn">…</a> (used by raw HTML markup)
   - On the .wp-block-button wrapper output by core/button — in which case
     the actual interactive element is <a class="wp-block-button__link"> */
a.tcca-btn,
a.tcca-btn-outline,
.tcca-btn .wp-block-button__link,
.tcca-btn-outline .wp-block-button__link {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	height: 3.75rem;
	padding-inline: 1.75rem;
	border-radius: 9999px;
	text-decoration: none;
	transition: transform .25s, box-shadow .25s, background-color .25s, border-color .25s;
}
.wp-block-button.tcca-btn,
.wp-block-button.tcca-btn-outline { display: inline-block; }

a.tcca-btn,
.tcca-btn .wp-block-button__link {
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	box-shadow: 0 16px 24px -12px rgba(11,31,56,.35);
}
a.tcca-btn:hover,
.tcca-btn .wp-block-button__link:hover { transform: translateY(-3px); background: var(--tcca-navy-800); box-shadow: 0 24px 32px -12px rgba(11,31,56,.45); color: var(--tcca-cream); }

a.tcca-btn-outline,
.tcca-btn-outline .wp-block-button__link {
	background: rgba(255,255,255,0.7);
	color: var(--tcca-navy-700);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 20%, transparent);
	backdrop-filter: blur(8px);
}
a.tcca-btn-outline:hover,
.tcca-btn-outline .wp-block-button__link:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--tcca-navy-600) 40%, transparent); color: var(--tcca-navy-700); }

a.tcca-btn::after,
a.tcca-btn-outline::after,
.tcca-btn .wp-block-button__link::after,
.tcca-btn-outline .wp-block-button__link::after {
	content: "";
	display: inline-flex;
	width: 2rem; height: 2rem;
	border-radius: 9999px;
	background-color: var(--tcca-orange);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 L11 5'/%3E%3Cpath d='M5.5 5 H11 V10.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.875rem 0.875rem;
	transition: transform .3s;
}
a.tcca-btn-outline::after,
.tcca-btn-outline .wp-block-button__link::after {
	background-color: #fff;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230b1f38' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 L11 5'/%3E%3Cpath d='M5.5 5 H11 V10.5'/%3E%3C/svg%3E");
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 30%, transparent);
}
a.tcca-btn:hover::after,
a.tcca-btn-outline:hover::after,
.tcca-btn .wp-block-button__link:hover::after,
.tcca-btn-outline .wp-block-button__link:hover::after { transform: rotate(45deg); }

.tcca-hero__visual {
	position: relative;
	display: block;
	width: 100%;
}

/* ---------- Hero visual (composed scene) ----------------------------- */

.tcca-hero-visual {
	position: relative;
	display: block;
	width: 100%;
	margin-inline: auto;
	aspect-ratio: 4 / 5;
	min-height: 480px;
}
.tcca-hero-visual__card {
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 82%;
	overflow: hidden;
	border-radius: 2.5rem;
	background: var(--tcca-navy-700);
	box-shadow: 0 30px 60px -20px rgba(11,31,56,.55);
	color: var(--tcca-cream);
}
.tcca-hero-visual__dots {
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.18) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.4;
	pointer-events: none;
}
.tcca-hero-visual__dots--small { background-size: 14px 14px; opacity: 0.3; }
.tcca-hero-visual__glow {
	position: absolute;
	border-radius: 9999px;
	filter: blur(48px);
	pointer-events: none;
}
.tcca-hero-visual__glow--orange {
	left: -5rem; top: -5rem;
	width: 18rem; height: 18rem;
	background: rgba(232,122,38,0.25);
}
.tcca-hero-visual__glow--brand {
	right: -7rem; bottom: -7rem;
	width: 24rem; height: 24rem;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
	opacity: 0.25;
}
.tcca-hero-visual__ring {
	position: absolute;
	color: rgba(255,248,239,0.2);
}
.tcca-hero-visual__ring--tr { right: 1.5rem; top: 1.5rem; width: 6rem; height: 6rem; }
.tcca-hero-visual__ring--bl { left: 1rem; bottom: 34%; width: 4rem; height: 4rem; color: rgba(255,248,239,0.15); }
.tcca-hero-visual__camera {
	position: absolute;
	left: 50%;
	top: 22%;
	width: 58%;
	transform: translateX(-50%);
	filter: drop-shadow(0 12px 24px rgba(0,0,0,0.4));
}
.tcca-hero-visual__camera svg { width: 100%; height: auto; }
.tcca-hero-visual__bulb {
	position: absolute;
	right: 1.5rem; top: 2.5rem;
	width: 5rem;
	transform: rotate(-6deg);
}
.tcca-hero-visual__bulb svg { width: 100%; height: auto; }
.tcca-hero-visual__pencil {
	position: absolute;
	left: 1.5rem; top: 3.5rem;
	width: 6rem;
	transform: rotate(-28deg);
}
.tcca-hero-visual__pencil svg { width: 100%; height: auto; }
.tcca-hero-visual__paper {
	position: absolute;
	right: 2.5rem; top: 44%;
	width: 4rem;
	transform: rotate(6deg);
}
.tcca-hero-visual__paper svg { width: 100%; height: auto; }
.tcca-hero-visual__mic {
	position: absolute;
	left: 1rem; top: 42%;
	width: 3.5rem;
	transform: rotate(6deg);
}
.tcca-hero-visual__mic svg { width: 100%; height: auto; }
.tcca-hero-visual__play {
	position: absolute;
	right: 1rem; bottom: 30%;
	width: 3.5rem;
}
.tcca-hero-visual__play svg { width: 100%; height: auto; }
.tcca-hero-visual__heart {
	position: absolute;
	left: 2.5rem; bottom: 34%;
	width: 2.5rem;
}
.tcca-hero-visual__heart svg { width: 100%; height: auto; }
.tcca-hero-visual__sparkle { position: absolute; }
.tcca-hero-visual__sparkle--1 { right: 6rem; top: 32%; width: 1rem; height: 1rem; color: var(--tcca-yellow, #f9e24a); }
.tcca-hero-visual__sparkle--2 { left: 30%; top: 18%; width: 0.75rem; height: 0.75rem; color: var(--tcca-orange); }
.tcca-hero-visual__sparkle--3 { right: 36%; top: 50%; width: 0.75rem; height: 0.75rem; color: var(--tcca-cyan, #3ed0e6); }
.tcca-hero-visual__manifesto {
	position: absolute;
	left: 2rem; right: 2rem; bottom: 1.75rem;
}
/* Mobile — pull the manifesto higher up inside the card and seat the event
   card flush at the bottom so they no longer collide. */
@media (max-width: 699px) {
	.tcca-hero-visual { min-height: 460px; }
	.tcca-hero-visual__card { height: 72%; }
	.tcca-hero-visual__manifesto { left: 1.25rem; right: 1.25rem; bottom: 1.25rem; }
	.tcca-hero-visual__event { left: 1rem; right: 1rem; bottom: 0; }
	.tcca-hero-visual__quote { font-size: 1.125rem; }
}
.tcca-hero-visual__eyebrow {
	margin: 0;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--tcca-orange-light);
}
.tcca-hero-visual__quote {
	margin: 0.5rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.15;
	color: var(--tcca-cream);
}
@media (min-width: 768px) { .tcca-hero-visual__quote { font-size: 1.75rem; } }

.tcca-hero-visual__event {
	position: absolute;
	left: 1.5rem; right: 1.5rem; bottom: -1.5rem;
	display: block;
	overflow: hidden;
	border-radius: 1.5rem;
	background: var(--tcca-cream);
	box-shadow: 0 30px 60px -20px rgba(11,31,56,.35);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	text-decoration: none;
	color: inherit;
	transition: transform .3s;
}
.tcca-hero-visual__event:hover { transform: translateY(-4px); }
.tcca-hero-visual__event-bar {
	height: 4px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
}
.tcca-hero-visual__event-row { display: flex; align-items: stretch; }
.tcca-hero-visual__event-date {
	position: relative;
	display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	width: 6rem; flex-shrink: 0;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	overflow: hidden;
}
.tcca-hero-visual__event-date strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.85rem;
	font-weight: 700;
	line-height: 1;
}
.tcca-hero-visual__event-date span {
	margin-top: 0.25rem;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--tcca-orange-light);
}
.tcca-hero-visual__event-info {
	flex: 1;
	min-width: 0;
	display: flex; flex-direction: column;
	gap: 0.125rem;
	padding: 0.75rem 1rem;
}
.tcca-hero-visual__event-meta {
	display: inline-flex; align-items: center; gap: 0.5rem;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--tcca-orange);
}
.tcca-hero-visual__event-dot {
	position: relative;
	display: inline-block;
	width: 8px; height: 8px;
	border-radius: 9999px;
	background: var(--tcca-orange);
}
.tcca-hero-visual__event-dot::before {
	content: ""; position: absolute; inset: 0;
	border-radius: 9999px;
	background: var(--tcca-orange);
	opacity: 0.75;
	animation: tcca-ping 1.5s cubic-bezier(0,0,0.2,1) infinite;
}
.tcca-hero-visual__event-tag { color: var(--tcca-orange); }
.tcca-hero-visual__event-title {
	margin: 0.25rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--tcca-navy-700);
}
.tcca-hero-visual__event-when {
	margin: 0.125rem 0 0;
	font-size: 11px;
	color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent);
}
.tcca-hero-visual__event-arrow {
	display: inline-flex;
	align-self: center;
	margin-right: 1rem;
	width: 2.25rem; height: 2.25rem;
	align-items: center; justify-content: center;
	border-radius: 9999px;
	background: var(--tcca-orange);
	color: #fff;
	box-shadow: 0 4px 8px -2px rgba(232,122,38,0.4);
	transition: transform .3s;
	flex-shrink: 0;
}
.tcca-hero-visual__event-arrow svg { width: 0.95rem; height: 0.95rem; }
.tcca-hero-visual__event:hover .tcca-hero-visual__event-arrow { transform: rotate(45deg); }

@keyframes tcca-ping {
	75%, 100% { transform: scale(2.2); opacity: 0; }
}
@keyframes tcca-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}
@keyframes tcca-float-slow {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-12px); }
}
.tcca-hero-float { animation: tcca-float 4s ease-in-out infinite; }
.tcca-hero-float-slow { animation: tcca-float-slow 6s ease-in-out infinite; }
/* compose translateX for camera */
.tcca-hero-visual__camera.tcca-hero-float-slow {
	animation: tcca-camera-float 6s ease-in-out infinite;
}
@keyframes tcca-camera-float {
	0%, 100% { transform: translateX(-50%) translateY(0); }
	50% { transform: translateX(-50%) translateY(-12px); }
}
.tcca-hero-visual__bulb.tcca-hero-float {
	animation: tcca-bulb-float 4s ease-in-out infinite;
}
@keyframes tcca-bulb-float {
	0%, 100% { transform: rotate(-6deg) translateY(0); }
	50% { transform: rotate(-6deg) translateY(-8px); }
}
.tcca-hero-visual__paper.tcca-hero-float-slow {
	animation: tcca-paper-float 6s ease-in-out infinite;
}
@keyframes tcca-paper-float {
	0%, 100% { transform: rotate(6deg) translateY(0); }
	50% { transform: rotate(6deg) translateY(-12px); }
}
.tcca-hero-visual__mic.tcca-hero-float {
	animation: tcca-mic-float 4s ease-in-out infinite;
}
@keyframes tcca-mic-float {
	0%, 100% { transform: rotate(6deg) translateY(0); }
	50% { transform: rotate(6deg) translateY(-8px); }
}

.tcca-marquee {
	position: relative;
	margin-top: 5rem;
	overflow: hidden;
	border-block: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	background: rgba(255,255,255,0.5);
	backdrop-filter: blur(8px);
	padding-block: 1.25rem;
	/* Always span the full viewport, regardless of any parent layout
	   constraints. Combined with the .alignfull class on the element this
	   makes the strip break out of the section's content box. */
	max-width: none !important;
	width: 100vw;
	margin-inline: calc(50% - 50vw) !important;
}
.tcca-marquee__track {
	display: flex;
	width: max-content;
	gap: 3rem;
	animation: tcca-marquee 40s linear infinite;
	white-space: nowrap;
}
.tcca-marquee__group { display: inline-flex; align-items: center; gap: 3rem; }
.tcca-marquee__word {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 0.5rem + 3vw, 3rem);
	font-weight: 600;
	color: color-mix(in srgb, var(--tcca-navy-700) 70%, transparent);
}
.tcca-marquee__word::after { content: "✦"; color: var(--tcca-orange); margin-inline-start: 3rem; }

/* ---------- About (home) ---------------------------------------------- */

.tcca-about {
	padding-block: 3rem 6rem;
}
@media (min-width: 900px) { .tcca-about { padding-block: 4rem 8rem; } }
/* tcca-about__grid is now a wp:columns block. Just tune the gap. */
.tcca-about__grid { gap: 4rem; }
.tcca-about h2 {
	margin: 0;
	font-size: clamp(2rem, 1rem + 4vw, 3.75rem);
	font-weight: 700;
	line-height: 1.05;
	color: var(--tcca-navy-700);
}
.tcca-about__lead {
	margin-top: 2rem;
	max-width: 32rem;
	font-size: 1.125rem;
	line-height: 1.7;
	color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent);
}
.tcca-quote {
	position: relative;
	margin-top: 3rem;
	padding: 2rem;
	background: rgba(255,255,255,0.7);
	border-radius: 1.5rem;
	box-shadow: 0 18px 30px -18px rgba(11,31,56,.1);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	backdrop-filter: blur(6px);
	overflow: hidden;
}
.tcca-quote::before {
	content: "";
	position: absolute; left: 0; right: 0; top: 0;
	height: 4px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
}
.tcca-quote svg { display: block; }
.tcca-quote .wp-block-quote {
	margin: 1.25rem 0 0;
	padding: 0;
	border: 0;
	font-style: normal;
}
.tcca-quote blockquote { margin: 0; padding: 0; border: 0; font-style: normal; }
.tcca-quote blockquote p,
.tcca-quote .wp-block-quote p {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 0.5rem + 2vw, 1.85rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--tcca-navy-700);
	font-style: normal;
}
.tcca-quote__cite {
	display: flex; align-items: center; gap: 0.75rem;
	margin-top: 1.5rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent);
}
.tcca-quote__cite::before { content: ""; display: inline-block; width: 2.5rem; height: 1px; background: var(--tcca-orange); }

.tcca-cards-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	width: 100%;
	max-width: none;
}
/* Mobile — stack the two cards vertically; the 50/50 split is awkward in
   a narrow viewport. */
@media (max-width: 699px) {
	.tcca-cards-2 { grid-template-columns: 1fr; }
}
.tcca-cards-2 > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.tcca-card {
	display: flex; flex-direction: column;
	justify-content: space-between;
	width: 100%;
	border-radius: 1.5rem;
	margin-top: 0;
	padding: 1.5rem;
	overflow: hidden;
	position: relative;
	transition: transform .3s;
}
.tcca-card:hover { transform: translateY(-4px); }
.tcca-card--span2 { grid-column: span 2; }
.tcca-card--navy    { background: var(--tcca-navy-700);  color: var(--tcca-cream); }
.tcca-card--orange  { background: var(--tcca-orange);    color: #fff; }
.tcca-card--cream   { background: #fff;                  color: var(--tcca-navy-700); border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent); }
.tcca-card--gradient {
	color: #fff;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
}
.tcca-card--gradient::after {
	content: ""; position: absolute; inset: 0;
	background: rgba(8,23,41,0.25); mix-blend-mode: multiply;
}
.tcca-card > * { position: relative; z-index: 1; }
.tcca-card__head { display: flex; width: 100%; align-items: center; justify-content: space-between; }
.tcca-card__kicker {
	font-size: 0.75rem; font-weight: 600;
	letter-spacing: 0; text-transform: uppercase;
	color: rgba(255,255,255,0.9);
}
.tcca-card--cream .tcca-card__kicker { color: var(--tcca-orange); }
.tcca-card__icon {
	display: inline-flex;
	width: 2.75rem; height: 2.75rem;
	align-items: center; justify-content: center;
	border-radius: 9999px;
	background: rgba(255,255,255,0.15);
	color: #fff;
	backdrop-filter: blur(4px);
}
.tcca-card--cream .tcca-card__icon { background: var(--tcca-navy-700); color: var(--tcca-cream); }
.tcca-card h3 {
	margin: 0.75rem 0 0;
	font-size: clamp(1.5rem, 1rem + 1vw, 1.75rem);
	font-weight: 700;
	line-height: 1.15;
}
.tcca-card p {
	/* margin: 0.75rem 0 0; */
	font-size: 0.875rem;
	line-height: 1.65;
	color: rgba(255,255,255,0.85);
}
.tcca-card--cream p { color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent); }

/* ---------- Pillars (dark section) ------------------------------------ */

.tcca-pillars {
	position: relative;
	overflow: hidden;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	padding-block: 6rem;
}
@media (min-width: 900px) { .tcca-pillars { padding-block: 8rem; } }
.tcca-pillars::before {
	content: "";
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.3;
	pointer-events: none;
}
.tcca-pillars::after {
	content: "";
	position: absolute;
	left: 50%; top: -160px;
	transform: translateX(-50%);
	width: 1000px; height: 500px;
	border-radius: 9999px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
	filter: blur(80px);
	opacity: 0.2;
	pointer-events: none;
}
.tcca-pillars__head {
	position: relative;
	display: flex; flex-direction: column;
	justify-content: space-between;
	gap: 1.5rem;
}
@media (min-width: 900px) { .tcca-pillars__head { flex-direction: row; align-items: flex-end; } }
.tcca-pillars h2 {
	margin: 1rem 0 0; max-width: 48rem;
	font-size: clamp(2rem, 1rem + 4vw, 3.75rem);
	color: var(--tcca-cream);
	line-height: 1.1;
}
.tcca-pillars__sub { max-width: 28rem; font-size: 1rem; line-height: 1.7; color: color-mix(in srgb, var(--tcca-cream) 70%, transparent); }
.tcca-pillars__grid {
	position: relative;
	margin-top: 3.5rem;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
	grid-auto-rows: 1fr;
	align-items: stretch;
	width: 100%;
	max-width: none;
}
.tcca-pillars__head { width: 100%; max-width: none; }
/* WP injects margin-block-start: 24px on every is-layout-constrained child
   via a :where() rule (specificity 0). The :first-child gets 0, so card 01
   ends up sized differently than cards 02-06 in their grid cells. Zero them
   so all cards stretch identically inside the grid. */
.tcca-pillars__grid > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
@media (min-width: 700px) { .tcca-pillars__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px){ .tcca-pillars__grid { grid-template-columns: repeat(3, 1fr); } }
.tcca-pillar {
	position: relative;
	overflow: hidden;
	border-radius: 1.5rem;
	border: 1px solid color-mix(in srgb, var(--tcca-cream) 10%, transparent);
	background: color-mix(in srgb, var(--tcca-navy-600) 40%, transparent);
	padding: 1.75rem;
	backdrop-filter: blur(2px);
	transition: all .3s;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.tcca-pillar:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent); background: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent); }
.tcca-pillar::before {
	content: ""; position: absolute;
	right: -64px; top: -64px;
	width: 160px; height: 160px;
	border-radius: 9999px;
	background: var(--tcca-pillar-grad, linear-gradient(135deg, var(--tcca-orange), var(--tcca-pink)));
	filter: blur(36px);
	opacity: 0.3;
	transition: opacity .5s;
}
.tcca-pillar:hover::before { opacity: 0.6; }
.tcca-pillar__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--tcca-cream) 50%, transparent);
}
.tcca-pillar h3 {
	margin: 0.5rem 0 0;
	color: var(--tcca-cream);
	font-size: clamp(1.5rem, 1rem + 1vw, 1.85rem);
	line-height: 1.15;
}
.tcca-pillar p { margin: 1rem 0 0; font-size: 0.875rem; line-height: 1.7; color: color-mix(in srgb, var(--tcca-cream) 70%, transparent); }
.tcca-pillar p { margin-bottom: 1.5rem; }
.tcca-pillar__bar {
	margin-top: auto !important;
	margin-bottom: 0 !important;
	height: 2px; width: 2.5rem;
	background: var(--tcca-orange);
	border: 0;
	transition: width .3s;
}
.tcca-pillar:hover .tcca-pillar__bar { width: 6rem; }

/* ---------- Events ---------------------------------------------------- */

.tcca-events { padding-block: 6rem 3rem; }
.tcca-events__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; flex-wrap: wrap; text-align: left; }
.tcca-events__head > * { text-align: left; }
.tcca-events__head .tcca-eyebrow,
.tcca-events__head h2 { text-align: left; margin-left: 0; margin-right: 0; }
.tcca-events h2 {
	margin: 1rem 0 0;
	font-size: clamp(2rem, 1rem + 4vw, 3.75rem);
	color: var(--tcca-navy-700);
	line-height: 1.1;
}
.tcca-events__featured {
	position: relative;
	margin-top: 3rem;
	overflow: hidden;
	border-radius: 2.5rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	box-shadow: 0 30px 60px -20px rgba(11,31,56,.4);
}
.tcca-events__featured::before {
	content: ""; position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.3;
	pointer-events: none;
}
.tcca-events__featured::after {
	content: ""; position: absolute;
	right: -40px; bottom: -96px;
	width: 288px; height: 288px;
	border-radius: 9999px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
	filter: blur(80px);
	opacity: 0.4;
	pointer-events: none;
}
/* tcca-events__featured-inner is now a wp:columns block. Just tune gap & padding. */
.tcca-events__featured-inner {
	position: relative;
	gap: 2.5rem;
	padding: 2rem;
}
@media (min-width: 900px) {
	.tcca-events__featured-inner { gap: 3rem; padding: 3.5rem; }
}
.tcca-event__pill {
	display: inline-flex; align-items: center; gap: 0.5rem;
	background: var(--tcca-orange);
	color: #fff;
	padding: 0.25rem 0.75rem;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0;
	border-radius: 9999px;
}
.tcca-event__head { display: flex; align-items: center; gap: 0.75rem; }
.tcca-event__head .tcca-eyebrow { color: color-mix(in srgb, var(--tcca-cream) 70%, transparent); }
.tcca-events__featured h3 {
	margin: 0.75rem 0 0;
	font-size: clamp(2rem, 1rem + 4vw, 3.5rem);
	line-height: 1.1;
	color: var(--tcca-cream);
}
.tcca-events__featured-lead {
	margin-top: 1.5rem;
	max-width: 32rem;
	font-size: 1rem;
	line-height: 1.7;
	color: color-mix(in srgb, var(--tcca-cream) 80%, transparent);
}
.tcca-event__meta {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
	margin-top: 2rem;
}
.tcca-event__meta dt {
	font-size: 11px; font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--tcca-cream) 60%, transparent);
}
.tcca-event__meta dd {
	margin: 0.25rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--tcca-cream);
}
.tcca-event__meta .tcca-event__venue { grid-column: span 2; }
.tcca-event__meta .tcca-event__venue dd { font-size: 1.25rem; font-weight: 600; }
.wp-block-button.tcca-event__cta-btn { display: inline-block; margin-top: 2.5rem; }
.tcca-event__cta,
.tcca-event__cta-btn .wp-block-button__link {
	display: inline-flex; align-items: center; gap: 0.75rem;
	margin-top: 2.5rem;
	padding: 0.875rem 1.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	font-weight: 600;
	background: var(--tcca-cream);
	color: var(--tcca-navy-700);
	border-radius: 9999px;
	transition: background .25s;
	text-decoration: none;
}
.tcca-event__cta-btn .wp-block-button__link { margin-top: 0; }
.tcca-event__cta:hover,
.tcca-event__cta-btn .wp-block-button__link:hover { background: #fff; color: var(--tcca-navy-700); }
.tcca-event__cta::after,
.tcca-event__cta-btn .wp-block-button__link::after {
	content: "";
	display: inline-flex; width: 1.5rem; height: 1.5rem;
	border-radius: 9999px;
	background-color: var(--tcca-orange);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 L11 5'/%3E%3Cpath d='M5.5 5 H11 V10.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.75rem 0.75rem;
}
.tcca-agenda {
	position: relative;
	border: 1px solid color-mix(in srgb, var(--tcca-cream) 10%, transparent);
	border-radius: 1.5rem;
	background: color-mix(in srgb, var(--tcca-navy-600) 40%, transparent);
	padding: 1.5rem;
	backdrop-filter: blur(2px);
}
.tcca-agenda h4 {
	color: var(--tcca-orange-light);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	margin: 0;
	text-align: left;
}
.tcca-agenda ul { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: 1rem; }
.tcca-agenda li { display: flex; gap: 1rem; font-size: 0.875rem; }
.tcca-agenda time {
	width: 3.5rem; flex-shrink: 0;
	font-family: ui-monospace, "SF Mono", Menlo, monospace;
	font-weight: 600;
	color: var(--tcca-orange-light);
}
.tcca-agenda li span { color: color-mix(in srgb, var(--tcca-cream) 90%, transparent); }

.tcca-events__upcoming { margin-top: 2.5rem; }
.tcca-events__upcoming-label { font-size: 0.875rem; font-weight: 600; letter-spacing: 0; text-transform: uppercase; color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent); }
.tcca-events__upcoming-grid { margin-top: 1.5rem; display: grid; gap: 1rem; grid-template-columns: 1fr; align-items: stretch; }
.tcca-events__upcoming-grid > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
@media (min-width: 700px) { .tcca-events__upcoming-grid { grid-template-columns: repeat(3, 1fr); } }
.tcca-event-card {
	display: flex; flex-direction: column; justify-content: space-between;
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	border-radius: 1.5rem;
	padding: 1.5rem;
	transition: all .3s;
	text-decoration: none;
	color: var(--tcca-navy-700);
}
.tcca-event-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--tcca-orange) 50%, transparent); box-shadow: 0 20px 30px -16px rgba(11,31,56,.15); color: var(--tcca-navy-700); }
.tcca-event-card__top { display: flex; gap: 1.25rem; align-items: flex-start; }
.tcca-event-card__date {
	display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	width: 5rem; height: 5rem; flex-shrink: 0;
	border-radius: 1rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
}
.tcca-event-card__date strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.85rem; font-weight: 700; line-height: 1;
}
.tcca-event-card__date small {
	margin-top: 0.25rem;
	font-size: 10px; font-weight: 600;
	letter-spacing: 0;
	color: var(--tcca-orange-light);
}
.tcca-event-card__tag {
	display: inline-flex;
	background: var(--tcca-orange-soft);
	color: var(--tcca-orange);
	padding: 0.25rem 0.75rem;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	border-radius: 9999px;
}
.tcca-event-card h4 { margin: 0.75rem 0 0; font-size: 1.125rem; line-height: 1.2; color: var(--tcca-navy-700); }
.tcca-event-card__host { margin: 0.25rem 0 0; font-size: 0.75rem; color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent); }
.tcca-event-card__cta {
	display: flex; align-items: center; justify-content: space-between;
	margin-top: 1.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--tcca-navy-700);
}
.tcca-event-card__cta::after {
	content: "";
	display: inline-flex; width: 1.75rem; height: 1.75rem;
	border-radius: 9999px;
	background-color: var(--tcca-navy-700);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff8ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8 H13'/%3E%3Cpath d='M9 4 L13 8 L9 12'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.85rem 0.85rem;
	transition: transform .25s;
}
.tcca-event-card:hover .tcca-event-card__cta::after { transform: translateX(2px); }

/* ---------- News (home) ---------------------------------------------- */

.tcca-news { padding-block: 3rem 6rem; }
@media (min-width: 900px) { .tcca-news { padding-block: 4rem 8rem; } }
.tcca-news__head {
	display: flex; justify-content: space-between; align-items: flex-end;
	gap: 1.5rem; flex-wrap: wrap;
	width: 100%; max-width: none;
}
.tcca-news h2 {
	margin: 1rem 0 0;
	font-size: clamp(2rem, 1rem + 4vw, 3.75rem);
	color: var(--tcca-navy-700);
	line-height: 1.1;
}
/* "ดูทั้งหมด" pill — wp:buttons + wp:button. The className tcca-news__more
   sits on the inner wp-block-button div; styling targets the actual <a>
   (wp-block-button__link) so it overrides theme.json's button defaults. */
.tcca-news__more .wp-block-button__link {
	box-sizing: border-box;
	display: inline-flex; align-items: center; gap: 0.5rem;
	height: 3rem;
	padding: 0 1.25rem;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 15%, transparent);
	background: rgba(255,255,255,0.6);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	font-weight: 600;
	color: var(--tcca-navy-700);
	text-decoration: none;
	transition: all .25s;
}
.tcca-news__more .wp-block-button__link:hover {
	background: #fff;
	border-color: color-mix(in srgb, var(--tcca-navy-600) 40%, transparent);
	color: var(--tcca-navy-700);
}
.tcca-news__more .wp-block-button__link::after {
	content: "";
	display: inline-flex; width: 1.5rem; height: 1.5rem;
	border-radius: 9999px;
	background-color: var(--tcca-navy-700);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff8ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8 H13'/%3E%3Cpath d='M9 4 L13 8 L9 12'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.75rem 0.75rem;
	transition: transform .25s;
}
.tcca-news__more .wp-block-button__link:hover::after { transform: translateX(2px); }
/* The wp-block-buttons flex wrapper inside .tcca-news__head — no extra
   outer spacing; the head's flex justify-content already places it right. */
.tcca-news__head .wp-block-buttons { margin: 0; }

/* The 3-card grid: featured occupies col 1+2 / row 1+2; insight is row 1 col 3;
   community is row 2 col 3. */
.tcca-news__grid {
	margin-top: 3rem;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
	width: 100%; max-width: none;
}
.tcca-news__grid > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
@media (min-width: 900px) {
	.tcca-news__grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: minmax(0, 1fr); }
	.tcca-news-card--featured  { grid-column: span 2; grid-row: span 2; }
}

/* Shared card surface */
.tcca-news-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 2rem;
	text-decoration: none;
	color: var(--tcca-navy-700);
	transition: transform .35s, box-shadow .35s;
	box-shadow: 0 14px 30px -18px rgba(11,31,56,.25);
}
.tcca-news-card:hover { transform: translateY(-4px); box-shadow: 0 24px 40px -18px rgba(11,31,56,.3); }
.tcca-news-card__media {
	position: relative;
	overflow: hidden;
}
.tcca-news-card__media img {
	display: block;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .7s;
}
.tcca-news-card:hover .tcca-news-card__media img { transform: scale(1.05); }
.tcca-news-card__pill {
	position: absolute;
	left: 1.25rem; top: 1.25rem;
	display: inline-flex; align-items: center; gap: 0.5rem;
	background: var(--tcca-orange);
	color: #fff;
	padding: 0.35rem 0.85rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	border-radius: 9999px;
	box-shadow: 0 8px 16px -4px rgba(232,122,38,.4);
	z-index: 2;
}
.tcca-news-card__pill--dark {
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	box-shadow: 0 6px 14px -4px rgba(11,31,56,.4);
}
.tcca-news-card__pill-dot {
	display: inline-block;
	width: 6px; height: 6px;
	border-radius: 9999px;
	background: #fff;
	animation: tcca-pulse 1.5s ease-in-out infinite;
}
.tcca-news-card__pane { position: relative; padding: 1.75rem; flex: 1; display: flex; flex-direction: column; }
.tcca-news-card__pane-inner { position: relative; display: flex; flex-direction: column; flex: 1; }
.tcca-news-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	line-height: 1.1;
	color: inherit;
}
.tcca-news-card__title a { color: inherit; text-decoration: none; }
.tcca-news-card__excerpt { margin: 1rem 0 0; font-size: 0.875rem; line-height: 1.7; }
.tcca-news-card__date {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
}
.tcca-news-card__foot { margin-top: auto; }

/* ===== Featured card (large, dark navy, 2 cols × 2 rows) ============== */
.tcca-news-card--featured {
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto 1fr;
	min-height: 400px;
}
@media (min-width: 900px) {
	.tcca-news-card--featured {
		grid-template-columns: 1fr 1.1fr;
		grid-template-rows: 1fr;
	}
}
.tcca-news-card--featured .tcca-news-card__media {
	position: relative;
	min-height: 280px;
}
.tcca-news-card--featured .tcca-news-card__media img { height: 100%; }
.tcca-news-card--featured .tcca-news-card__media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(11,31,56,.85), transparent 55%);
	pointer-events: none;
}
@media (min-width: 900px) {
	.tcca-news-card--featured .tcca-news-card__media::after {
		background: linear-gradient(to right, transparent 55%, var(--tcca-navy-700) 100%);
	}
}
.tcca-news-card--featured .tcca-news-card__pane {
	padding: 2.5rem;
	color: var(--tcca-cream);
	overflow: hidden;
}
@media (min-width: 900px) {
	.tcca-news-card--featured .tcca-news-card__pane { padding: 2.75rem; }
}
.tcca-news-card__pane-dots {
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.18) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.2;
	pointer-events: none;
}
.tcca-news-card__pane-glow {
	position: absolute;
	right: -4rem; top: -4rem;
	width: 16rem; height: 16rem;
	border-radius: 9999px;
	background: rgba(232,122,38,.25);
	filter: blur(48px);
	pointer-events: none;
}
.tcca-news-card__pane-watermark {
	position: absolute;
	right: -1rem; top: -2.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 11rem;
	font-weight: 700;
	color: rgba(255,248,239,0.05);
	transform: rotate(12deg);
	pointer-events: none;
	user-select: none;
	line-height: 1;
}
.tcca-news-card--featured .tcca-news-card__meta {
	display: flex; align-items: center; gap: 0.75rem;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--tcca-cream) 60%, transparent);
}
.tcca-news-card__meta-divider {
	flex: 1;
	height: 1px;
	background: rgba(255,248,239,0.15);
}
.tcca-news-card--featured .tcca-news-card__title {
	margin-top: 1.5rem;
	font-size: clamp(1.75rem, 1.5rem + 1.5vw, 2.75rem);
	line-height: 1.05;
	color: var(--tcca-cream);
}
.tcca-news-card--featured .tcca-news-card__excerpt {
	margin-top: 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: color-mix(in srgb, var(--tcca-cream) 80%, transparent);
}
.tcca-news-card--featured .tcca-news-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.75rem;
	padding-top: 1.5rem;
	border-top: 1px solid color-mix(in srgb, var(--tcca-cream) 15%, transparent);
}
.tcca-news-card__byline {
	display: flex; align-items: center; gap: 0.75rem;
	min-width: 0;
}
.tcca-news-card__avatar {
	display: inline-flex; flex-shrink: 0;
	width: 2.5rem; height: 2.5rem;
	align-items: center; justify-content: center;
	border-radius: 9999px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
	box-shadow: 0 4px 12px -4px rgba(232,122,38,.4);
}
.tcca-news-card__author {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--tcca-cream);
}
.tcca-news-card__role {
	margin: 0;
	font-size: 0.75rem;
	color: color-mix(in srgb, var(--tcca-cream) 60%, transparent);
}
.tcca-news-card__cta-pill {
	display: inline-flex; align-items: center; gap: 0.5rem;
	flex-shrink: 0;
	height: 2.75rem;
	padding-inline: 1.25rem;
	border-radius: 9999px;
	background: var(--tcca-cream);
	color: var(--tcca-navy-700);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 600;
	transition: transform .3s, box-shadow .3s;
}
.tcca-news-card:hover .tcca-news-card__cta-pill { transform: translateY(-2px); box-shadow: 0 8px 16px -4px rgba(11,31,56,.3); }
.tcca-news-card__arrow {
	display: inline-flex;
	width: 1.5rem; height: 1.5rem;
	align-items: center; justify-content: center;
	border-radius: 9999px;
	background: var(--tcca-orange);
	color: #fff;
	transition: transform .3s;
}
.tcca-news-card__arrow svg { width: 0.7rem; height: 0.7rem; }
.tcca-news-card:hover .tcca-news-card__arrow { transform: rotate(45deg); }

/* ===== Insight card (white, with chart wave + 2026 number) ============ */
.tcca-news-card--insight {
	background: #fff;
	color: var(--tcca-navy-700);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
}
.tcca-news-card--insight .tcca-news-card__media { height: 9rem; }
.tcca-news-card--insight .tcca-news-card__media img { height: 100%; }
.tcca-news-card__bignum {
	position: absolute;
	right: 1rem; bottom: 0.25rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.5rem, 1rem + 3vw, 3.5rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	filter: drop-shadow(0 2px 8px rgba(0,0,0,.35));
	z-index: 2;
}
.tcca-news-card__pane--insight {
	position: relative;
	padding: 1.75rem;
	overflow: hidden;
}
.tcca-news-card__chart {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	width: 100%;
	height: 5rem;
	pointer-events: none;
}
.tcca-news-card--insight .tcca-news-card__title {
	font-size: 1.25rem;
	color: var(--tcca-navy-700);
}
.tcca-news-card__subtitle {
	margin: 0.25rem 0 0;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--tcca-orange);
}
.tcca-news-card--insight .tcca-news-card__excerpt {
	margin: 1rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.7;
	color: color-mix(in srgb, var(--tcca-navy-600) 75%, transparent);
}
.tcca-news-card--insight .tcca-news-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	font-size: 0.75rem;
	color: color-mix(in srgb, var(--tcca-navy-600) 60%, transparent);
}
.tcca-news-card__cta {
	display: inline-flex; align-items: center; gap: 0.4rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	color: var(--tcca-navy-700);
	transition: transform .25s;
}
.tcca-news-card__cta-icon {
	display: inline-flex; align-items: center; justify-content: center;
}
.tcca-news-card__cta-icon svg { width: 1rem; height: 1rem; }
.tcca-news-card:hover .tcca-news-card__cta { transform: translateX(2px); }

/* ===== Community card (orange) ======================================== */
.tcca-news-card--community {
	background: var(--tcca-orange);
	color: #fff;
}
.tcca-news-card--community .tcca-news-card__media { height: 11rem; }
.tcca-news-card--community .tcca-news-card__media img { height: 100%; }
.tcca-news-card__sparkle {
	position: absolute;
	right: 1.25rem; top: 1.25rem;
	width: 1.25rem; height: 1.25rem;
	filter: drop-shadow(0 2px 4px rgba(0,0,0,.2));
	z-index: 2;
	animation: tcca-float 4s ease-in-out infinite;
}
.tcca-news-card__pane--community {
	position: relative;
	padding: 1.75rem;
	color: #fff;
	overflow: hidden;
}
.tcca-news-card__pane-stripes {
	position: absolute; inset: 0;
	background-image: repeating-linear-gradient(45deg, transparent 0 14px, rgba(255,255,255,0.18) 14px 15px);
	opacity: 0.4;
	pointer-events: none;
}
.tcca-news-card--community .tcca-news-card__title {
	font-size: clamp(1.5rem, 1rem + 1vw, 1.875rem);
	line-height: 1.05;
	color: #fff;
}
.tcca-news-card__highlight {
	margin: 0.5rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.05;
	color: #fff;
}
.tcca-news-card__highlight span {
	position: relative;
	display: inline-block;
}
.tcca-news-card__highlight span::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -0.15rem;
	height: 0.65rem;
	border-radius: 0.15rem;
	background: rgba(11,31,56,0.4);
	z-index: -1;
}
.tcca-news-card--community .tcca-news-card__excerpt {
	margin: 1rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.7;
	color: rgba(255,255,255,0.92);
}
.tcca-news-card--community .tcca-news-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 1.5rem;
	font-size: 11px;
	color: rgba(255,255,255,0.78);
}
.tcca-news-card__bubble {
	display: inline-flex;
	width: 2.5rem; height: 2.5rem;
	align-items: center; justify-content: center;
	border-radius: 9999px;
	background: #fff;
	color: var(--tcca-orange);
	box-shadow: 0 6px 14px -4px rgba(11,31,56,.25);
	transition: transform .3s;
}
.tcca-news-card__bubble svg { width: 1rem; height: 1rem; }
.tcca-news-card:hover .tcca-news-card__bubble { transform: rotate(45deg); }

/* ===== Newsroom: wp:query-driven cards ====================================
   The home news section uses three wp:query blocks (offset 0/1/2) instead
   of a static PHP loop. wp:query / wp:post-template wrappers must vanish so
   each article card lands directly inside .tcca-news__grid, and core post-*
   blocks (featured-image, title, excerpt, date) need their wrapper markup
   normalized so they read like the former bare HTML. */
.tcca-news__grid > .wp-block-query,
.tcca-news__grid .wp-block-post-template,
.tcca-news__grid .wp-block-post {
	display: contents;
}

/* Strip WP's auto block-gap on inner card structural elements; explicit
   spacing for title/excerpt/foot stays in the existing rules. */
.tcca-news-card__media > *,
.tcca-news-card__pane,
.tcca-news-card__pane-inner,
.tcca-news-card__meta,
.tcca-news-card__meta > *,
.tcca-news-card__foot,
.tcca-news-card__foot > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Re-state existing top-margins as margin-block-start so they win against
   the 0 reset above (needs equal-or-higher specificity on same property). */
.tcca-news-card__excerpt { margin-block-start: 1rem; }
.tcca-news-card--featured .tcca-news-card__title { margin-block-start: 1.5rem; }
.tcca-news-card--featured .tcca-news-card__excerpt { margin-block-start: 1.25rem; }
.tcca-news-card--featured .tcca-news-card__foot { margin-block-start: 1.75rem; }
.tcca-news-card--insight .tcca-news-card__excerpt { margin-block-start: 1rem; }
.tcca-news-card--insight .tcca-news-card__foot { margin-block-start: 1.5rem; }
.tcca-news-card__subtitle { margin-block-start: 0.25rem; }
.tcca-news-card__highlight { margin-block-start: 0.5rem; }
.tcca-news-card--community .tcca-news-card__excerpt { margin-block-start: 1rem; }
.tcca-news-card--community .tcca-news-card__foot { margin-block-start: 1.5rem; }

/* wp:post-featured-image renders <figure>(<a>)<img></(a)></figure> — make
   the figure fill the media slot like the previous bare <img>. */
.tcca-news-card__media .wp-block-post-featured-image {
	margin: 0; width: 100%; height: 100%;
}
.tcca-news-card__media .wp-block-post-featured-image > a,
.tcca-news-card__media .wp-block-post-featured-image > img {
	display: block; width: 100%; height: 100%;
}
.tcca-news-card--featured .tcca-news-card__media .wp-block-post-featured-image > img,
.tcca-news-card--insight  .tcca-news-card__media .wp-block-post-featured-image > img,
.tcca-news-card--community .tcca-news-card__media .wp-block-post-featured-image > img {
	object-fit: cover;
}

/* Drop pane-inner positioning so the title's stretched ::before reaches
   the full pane area instead of being clipped to pane-inner. */
.tcca-news-card__pane-inner { position: static; }

/* wp:post-title with isLink renders <h3><a href>...</a></h3>. Stretch the
   anchor via ::before so the entire pane area is clickable, matching the
   original wrap-everything-in-anchor behaviour. */
.tcca-news-card__title a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* wp:post-excerpt wraps the excerpt in a div with an inner <p>; flatten the
   inner paragraph and suppress the more-text tail. */
.tcca-news-card__excerpt p {
	margin: 0;
	font: inherit;
	color: inherit;
}
.tcca-news-card__excerpt .wp-block-post-excerpt__more-text { display: none; }

/* wp:post-date renders <div><time></time></div>; let the wrapper inherit
   the date styling that previously applied to a plain <span>. */
.tcca-news-card__date,
.tcca-news-card__date time {
	color: inherit;
	font: inherit;
	letter-spacing: 0;
	text-transform: uppercase;
}

/* ---------- Partners --------------------------------------------------- */

.tcca-partners { padding-block: 5rem; }
@media (min-width: 900px) { .tcca-partners { padding-block: 7rem; } }
.tcca-partners__head { text-align: center; }
/* Auto-margin centering needs !important to beat the global
   `.is-layout-constrained > :where(...) { margin-left/right: 0 !important }`
   override (theme.css L45). */
.tcca-partners h2 {
	margin: 1rem auto 0 !important;
	max-width: 48rem;
	font-size: clamp(1.75rem, 1rem + 3vw, 3rem);
	color: var(--tcca-navy-700);
	line-height: 1.15;
}
.tcca-partners__rail {
	position: relative;
	margin-top: 3.5rem;
	overflow: hidden;
}
.tcca-partners__rail::before,
.tcca-partners__rail::after {
	content: ""; position: absolute; top: 0; bottom: 0; width: 6rem; z-index: 2; pointer-events: none;
}
.tcca-partners__rail::before { left: 0;  background: linear-gradient(to right, var(--tcca-cream), transparent); }
.tcca-partners__rail::after  { right: 0; background: linear-gradient(to left,  var(--tcca-cream), transparent); }
.tcca-partners__track { display: flex; gap: 0.75rem; width: max-content; animation: tcca-marquee 70s linear infinite; }
.tcca-partners__group { display: flex; gap: 0.75rem; }
.tcca-partner {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 220px; height: 96px;
	padding: 1rem 2rem;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	background: #fff;
	border-radius: 1.5rem;
	transition: all .25s;
}
.tcca-partner:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent); box-shadow: 0 12px 24px -16px rgba(11,31,56,.18); }
.tcca-partner-name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0;
	white-space: nowrap;
	color: var(--tcca-navy-700);
}
.tcca-partner-name.is-orange   { color: var(--tcca-orange); }
.tcca-partner-name.is-gradient {
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
	background-size: 200% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: tcca-shimmer 8s linear infinite;
}

/* ---------- JoinCTA ---------------------------------------------------- */

.tcca-join { padding-block: 6rem; }
@media (min-width: 900px) { .tcca-join { padding-block: 8rem; } }
.tcca-join__inner {
	position: relative; isolation: isolate; overflow: hidden;
	border-radius: 2.5rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	box-shadow: 0 30px 60px -20px rgba(11,31,56,.4);
}
.tcca-join__inner::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
	opacity: 0.15;
}
.tcca-join__inner::after {
	content: ""; position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.3;
	pointer-events: none;
}
.tcca-join__grid {
	position: relative;
	display: grid;
	gap: 3rem;
	padding: 2rem;
}
@media (min-width: 900px) { .tcca-join__grid { grid-template-columns: 1.2fr 1fr; padding: 4rem; } }
.tcca-join h2 {
	margin: 1rem 0 0;
	font-size: clamp(2rem, 1rem + 4vw, 4.5rem);
	line-height: 1.02;
	color: var(--tcca-cream);
}
.tcca-join__lead { margin-top: 1.5rem; max-width: 32rem; font-size: 1.125rem; line-height: 1.7; color: color-mix(in srgb, var(--tcca-cream) 80%, transparent); }
.tcca-join__ctas { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2.5rem; }
/* tcca-btn-orange / tcca-btn-ghost work on plain <a> or wp:button wrapper */
.wp-block-button.tcca-btn-orange,
.wp-block-button.tcca-btn-ghost { display: inline-block; }
a.tcca-btn-orange,
.tcca-btn-orange .wp-block-button__link {
	display: inline-flex; align-items: center; gap: 0.75rem;
	padding: 0.75rem 1.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	background: var(--tcca-orange);
	color: #fff;
	border-radius: 9999px;
	box-shadow: 0 18px 30px -12px rgba(232,122,38,.4);
	text-decoration: none;
	transition: all .25s;
}
a.tcca-btn-orange:hover,
.tcca-btn-orange .wp-block-button__link:hover { transform: translateY(-3px); background: var(--tcca-orange-light); color: #fff; }
a.tcca-btn-orange::after,
.tcca-btn-orange .wp-block-button__link::after {
	content: "";
	display: inline-flex; width: 1.75rem; height: 1.75rem;
	border-radius: 9999px;
	background-color: rgba(255,255,255,0.2);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 L11 5'/%3E%3Cpath d='M5.5 5 H11 V10.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.85rem 0.85rem;
}
a.tcca-btn-ghost,
.tcca-btn-ghost .wp-block-button__link {
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.75rem 1.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--tcca-cream);
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--tcca-cream) 30%, transparent);
	border-radius: 9999px;
	text-decoration: none;
	transition: border-color .2s;
}
a.tcca-btn-ghost:hover,
.tcca-btn-ghost .wp-block-button__link:hover { border-color: color-mix(in srgb, var(--tcca-cream) 60%, transparent); color: var(--tcca-cream); }
.tcca-benefits {
	position: relative;
	border: 1px solid color-mix(in srgb, var(--tcca-cream) 15%, transparent);
	border-radius: 1.5rem;
	background: color-mix(in srgb, var(--tcca-navy-600) 40%, transparent);
	padding: 1.75rem;
	backdrop-filter: blur(2px);
}
.tcca-benefits h3 { margin: 0; font-size: 1.25rem; color: var(--tcca-cream); }
.tcca-benefits ul { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 0.75rem; font-size: 0.875rem; }
.tcca-benefits li { display: flex; align-items: flex-start; gap: 0.75rem; color: color-mix(in srgb, var(--tcca-cream) 90%, transparent); }
.tcca-benefits li::before {
	content: "✓";
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0;
	width: 1.25rem; height: 1.25rem;
	background: var(--tcca-orange);
	color: #fff;
	border-radius: 9999px;
	font-size: 11px;
	font-weight: 700;
	margin-top: 1px;
}
.tcca-benefits__note {
	margin-top: 1.5rem;
	padding: 1rem;
	border: 1px dashed color-mix(in srgb, var(--tcca-orange) 60%, transparent);
	background: color-mix(in srgb, var(--tcca-orange) 10%, transparent);
	border-radius: 1rem;
	font-size: 0.875rem;
}
.tcca-benefits__note strong { display: block; color: var(--tcca-orange-light); }
.tcca-benefits__note span { display: block; margin-top: 0.25rem; font-size: 0.75rem; color: color-mix(in srgb, var(--tcca-cream) 70%, transparent); }

/* ---------- Generic Page Hero ----------------------------------------- */

.tcca-page-hero { padding-block: clamp(9rem, 16vw, 12rem) 3rem; padding-top: 0; }
.tcca-breadcrumbs {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
	color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent);
}
.tcca-breadcrumbs a { color: inherit; text-decoration: none; }
.tcca-breadcrumbs a:hover { color: var(--tcca-navy-700); }
.tcca-breadcrumbs .sep { color: color-mix(in srgb, var(--tcca-navy-600) 40%, transparent); }
.tcca-breadcrumbs .current { color: var(--tcca-navy-700); }
/* tcca-page-hero__grid is now a wp:columns block. Just tune gap & top spacing. */
.tcca-page-hero__grid { gap: 2.5rem; margin-top: 1.5rem; }
@media (min-width: 900px) { .tcca-page-hero__grid { gap: 4rem; } }
.tcca-page-hero h1 {
	margin: 1rem 0 0;
	font-size: clamp(2.5rem, 1rem + 6vw, 5rem);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: 0;
	color: var(--tcca-navy-700);
	text-wrap: balance;
}
.tcca-page-hero__lead {
	margin-top: 1.5rem;
	max-width: 36rem;
	font-size: 1.125rem;
	line-height: 1.7;
	color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent);
}

/* ---------- About page extras ---------------------------------------- */

.tcca-northstar {
	overflow: hidden; position: relative;
	border-radius: 2rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	padding: 2rem;
	box-shadow: 0 24px 48px -20px rgba(11,31,56,.35);
}
.tcca-northstar h3 { margin: 1rem 0 0; font-size: clamp(1.5rem, 1rem + 1vw, 1.85rem); line-height: 1.05; }
.tcca-northstar__caption { display: flex; align-items: center; gap: 0.75rem; margin-top: 2rem; font-size: 0.875rem; color: color-mix(in srgb, var(--tcca-cream) 70%, transparent); }
.tcca-northstar__caption::before { content: ""; display: inline-block; width: 2.5rem; height: 1px; background: var(--tcca-orange); }

.tcca-story { padding-block: 5rem; }
@media (min-width: 900px) { .tcca-story { padding-block: 6rem; } }
.tcca-story__grid { display: grid; gap: 3rem; }
@media (min-width: 900px) { .tcca-story__grid { grid-template-columns: 1fr 1.2fr; } }
.tcca-story h2 { margin: 1rem 0 0; font-size: clamp(2rem, 1rem + 3vw, 3rem); color: var(--tcca-navy-700); line-height: 1.05; }
.tcca-story__body { display: grid; gap: 1.25rem; font-size: 1.125rem; line-height: 1.7; color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent); }
.tcca-story__body strong { font-weight: 600; color: var(--tcca-navy-700); }

.tcca-values { padding-block: 4rem; }
@media (min-width: 900px) { .tcca-values { padding-block: 6rem; } }
.tcca-values h2 { margin: 1rem 0 0; font-size: clamp(2rem, 1rem + 4vw, 3.75rem); color: var(--tcca-navy-700); line-height: 1.05; }
.tcca-values__grid { margin-top: 3rem; display: grid; gap: 1rem; grid-template-columns: 1fr; grid-auto-rows: 1fr; align-items: stretch; }
.tcca-values__grid > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
@media (min-width: 700px)  { .tcca-values__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .tcca-values__grid { grid-template-columns: repeat(4, 1fr); } }
.tcca-value-card {
	position: relative; overflow: hidden;
	border-radius: 1.5rem;
	padding: 1.75rem;
	transition: transform .3s;
}
.tcca-value-card:hover { transform: translateY(-4px); }
.tcca-value-card.is-navy    { background: var(--tcca-navy-700); color: var(--tcca-cream); }
.tcca-value-card.is-orange  { background: var(--tcca-orange);   color: #fff; }
.tcca-value-card.is-cream   { background: #fff; color: var(--tcca-navy-700); border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent); }
.tcca-value-card.is-gradient {
	color: #fff;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
}
.tcca-value-card.is-gradient::after { content: ""; position: absolute; inset: 0; background: rgba(8,23,41,0.20); mix-blend-mode: multiply; }
.tcca-value-card > * { position: relative; z-index: 1; }
.tcca-value-card__num {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	opacity: 0.6;
}
.tcca-value-card h3 { margin: 0.75rem 0 0; font-size: clamp(1.5rem, 1rem + 1vw, 1.85rem); }
.tcca-value-card p  { margin: 0.75rem 0 0; font-size: 0.875rem; line-height: 1.65; opacity: 0.85; }

.tcca-timeline {
	position: relative;
	overflow: hidden;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	padding-block: 5rem;
}
@media (min-width: 900px) { .tcca-timeline { padding-block: 7rem; } }
.tcca-timeline::before {
	content: ""; position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.3;
}
.tcca-timeline h2 { margin: 1rem 0 0; font-size: clamp(2rem, 1rem + 4vw, 3.75rem); color: var(--tcca-cream); line-height: 1.05; }
.tcca-timeline__list { position: relative; margin-top: 3.5rem; list-style: none; padding: 0; }
.tcca-timeline__list::before {
	content: ""; position: absolute;
	left: 1rem; top: 0; bottom: 0;
	width: 1px;
	background: color-mix(in srgb, var(--tcca-cream) 15%, transparent);
}
@media (min-width: 768px) {
	.tcca-timeline__list::before { left: 50%; transform: translateX(-50%); }
}
.tcca-timeline__list li {
	position: relative;
	display: grid;
	gap: 1rem;
	margin-bottom: 2.5rem;
	padding-left: 3rem;
}
@media (min-width: 768px) {
	.tcca-timeline__list li { grid-template-columns: 1fr 1fr; gap: 3rem; padding-left: 0; }
	.tcca-timeline__list li:nth-child(even) { direction: rtl; }
	.tcca-timeline__list li:nth-child(even) > * { direction: ltr; }
}
.tcca-timeline__list li::before {
	content: ""; position: absolute;
	left: calc(1rem - 6px); top: 0.4rem;
	width: 12px; height: 12px;
	border-radius: 9999px;
	background: var(--tcca-orange);
	box-shadow: 0 0 0 4px var(--tcca-navy-700);
}
@media (min-width: 768px) {
	.tcca-timeline__list li::before { left: calc(50% - 6px); }
}
.tcca-timeline__year {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 1rem + 2vw, 3rem);
	font-weight: 700;
	color: var(--tcca-orange-light);
}
@media (min-width: 768px) {
	.tcca-timeline__list li:nth-child(odd) .tcca-timeline__year-cell { text-align: right; padding-right: 3rem; }
	.tcca-timeline__list li:nth-child(even) .tcca-timeline__year-cell { padding-left: 3rem; }
	.tcca-timeline__list li:nth-child(odd) .tcca-timeline__body { padding-left: 3rem; }
	.tcca-timeline__list li:nth-child(even) .tcca-timeline__body { padding-right: 3rem; text-align: right; }
}
.tcca-timeline__body h3 { margin: 0; color: var(--tcca-cream); font-size: 1.25rem; }
.tcca-timeline__body p  { margin: 0.5rem 0 0; font-size: 0.875rem; line-height: 1.7; color: color-mix(in srgb, var(--tcca-cream) 75%, transparent); }

.tcca-committee { padding-block: 5rem; }
@media (min-width: 900px) { .tcca-committee { padding-block: 7rem; } }
.tcca-committee__grid { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .tcca-committee__grid { grid-template-columns: 1fr 1.2fr; } }
.tcca-committee h2 { margin: 1rem 0 0; font-size: clamp(2rem, 1rem + 3vw, 3rem); color: var(--tcca-navy-700); line-height: 1.05; }
.tcca-committee__lead { margin-top: 1.5rem; max-width: 28rem; font-size: 1.125rem; line-height: 1.7; color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent); }
.tcca-committee__cards { display: grid; gap: 0.75rem; grid-template-columns: 1fr; grid-auto-rows: 1fr; align-items: stretch; }
.tcca-committee__cards > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
@media (min-width: 600px) { .tcca-committee__cards { grid-template-columns: 1fr 1fr; } }
.tcca-committee-card {
	position: relative;
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	border-radius: 1.5rem;
	padding: 1.5rem;
	transition: all .25s;
}
.tcca-committee-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent); box-shadow: 0 18px 30px -16px rgba(11,31,56,.18); }
.tcca-committee-card__role { font-size: 11px; font-weight: 700; letter-spacing: 0; text-transform: uppercase; color: var(--tcca-orange); }
.tcca-committee-card__name { margin: 0.75rem 0 0; font-family: var(--wp--preset--font-family--display); font-size: 1.5rem; font-weight: 700; color: var(--tcca-navy-700); }
.tcca-committee-card__count { margin: 0.5rem 0 0; font-size: 0.875rem; color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent); }
.tcca-committee-card__arrow {
	position: absolute; right: 1.25rem; top: 1.25rem;
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.25rem; height: 2.25rem;
	border-radius: 9999px;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	transition: transform .25s;
}
.tcca-committee-card__arrow svg { width: 0.85rem; height: 0.85rem; }
.tcca-committee-card:hover .tcca-committee-card__arrow { transform: translateX(3px); }

.tcca-final-cta { padding-bottom: 6rem; }
.tcca-final-cta__inner {
	position: relative; isolation: isolate; overflow: hidden;
	border-radius: 2.5rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	padding: 3rem;
}
@media (min-width: 900px) { .tcca-final-cta__inner { padding: 4rem; } }
.tcca-final-cta__inner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff); opacity: 0.15; }
.tcca-final-cta__inner::after  { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px); background-size: 22px 22px; opacity: 0.3; }
.tcca-final-cta__row { position: relative; display: flex; flex-direction: column; gap: 2rem; align-items: flex-start; }
@media (min-width: 900px) { .tcca-final-cta__row { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.tcca-final-cta h2 { margin: 1rem 0 0; font-size: clamp(2rem, 1rem + 4vw, 3.75rem); line-height: 1.05; color: var(--tcca-cream); }
.tcca-final-cta__lead { margin-top: 1.25rem; max-width: 32rem; font-size: 1.125rem; line-height: 1.6; color: color-mix(in srgb, var(--tcca-cream) 80%, transparent); }

/* ---------- Register page extras -------------------------------------- */

.tcca-price-card {
	position: relative; overflow: hidden;
	border-radius: 2rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	padding: 2rem;
	box-shadow: 0 24px 48px -20px rgba(11,31,56,.35);
}
.tcca-price-card::after {
	content: ""; position: absolute;
	right: -80px; top: -80px;
	width: 240px; height: 240px;
	border-radius: 9999px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
	filter: blur(60px); opacity: 0.3;
}
.tcca-price-card > * { position: relative; z-index: 1; }
.tcca-price-card__price { margin: 1rem 0 0; font-family: var(--wp--preset--font-family--display); font-size: 4rem; font-weight: 700; line-height: 1; }
.tcca-price-card__note  { margin: 0.25rem 0 0; font-size: 0.875rem; color: color-mix(in srgb, var(--tcca-cream) 75%, transparent); }
.tcca-price-card__cap   { margin-top: 2rem; display: flex; align-items: center; gap: 0.75rem; font-size: 0.875rem; color: color-mix(in srgb, var(--tcca-cream) 70%, transparent); }
.tcca-price-card__cap::before { content: ""; display: inline-block; width: 2.5rem; height: 1px; background: var(--tcca-orange); }

.tcca-benefits-grid {
	margin-top: 3rem;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}
@media (min-width: 700px)  { .tcca-benefits-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .tcca-benefits-grid { grid-template-columns: repeat(3, 1fr); } }
.tcca-benefit {
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	border-radius: 1.5rem;
	padding: 1.75rem;
	box-shadow: 0 12px 25px -16px rgba(11,31,56,.18);
	transition: all .3s;
}
.tcca-benefit:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent); box-shadow: 0 18px 30px -16px rgba(11,31,56,.25); }
.tcca-benefit__num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 3rem; height: 3rem;
	background: var(--tcca-orange-soft);
	color: var(--tcca-orange);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1rem;
	border-radius: 1rem;
}
.tcca-benefit h3 { margin: 1.25rem 0 0; font-size: 1.25rem; color: var(--tcca-navy-700); }
.tcca-benefit p  { margin: 0.5rem 0 0; font-size: 0.875rem; line-height: 1.7; color: color-mix(in srgb, var(--tcca-navy-600) 75%, transparent); }

.tcca-form {
	margin-top: 2.5rem;
	background: rgba(255,255,255,0.8);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	border-radius: 2rem;
	padding: 2rem;
	box-shadow: 0 12px 25px -16px rgba(11,31,56,.15);
	backdrop-filter: blur(8px);
	display: grid;
	gap: 1.25rem;
}
.tcca-form .row-2 { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 600px) { .tcca-form .row-2 { grid-template-columns: 1fr 1fr; } }
.tcca-form label {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--tcca-navy-700);
}
.tcca-form input,
.tcca-form textarea {
	width: 100%;
	margin-top: 0.5rem;
	padding: 0.75rem 1.25rem;
	font-size: 0.875rem;
	color: var(--tcca-navy-700);
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 15%, transparent);
	border-radius: 9999px;
	transition: border-color .2s, box-shadow .2s;
}
.tcca-form textarea { border-radius: 1rem; resize: vertical; min-height: 9rem; }
.tcca-form input:focus,
.tcca-form textarea:focus { outline: none; border-color: var(--tcca-orange); box-shadow: 0 0 0 4px color-mix(in srgb, var(--tcca-orange) 15%, transparent); }
.tcca-form .channels { display: grid; gap: 0.75rem; grid-template-columns: 1fr 1fr; margin-top: 0.5rem; }
@media (min-width: 600px) { .tcca-form .channels { grid-template-columns: repeat(3, 1fr); } }
.tcca-form .channels label {
	display: flex; align-items: center; gap: 0.5rem;
	padding: 0.625rem 1rem;
	font-size: 0.875rem; font-weight: 500;
	font-family: var(--wp--preset--font-family--sans);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 15%, transparent);
	border-radius: 9999px;
	transition: border-color .2s;
}
.tcca-form .channels label:hover { border-color: var(--tcca-orange); }
.tcca-form .terms { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.875rem; color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent); }
.tcca-form button {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem;
	width: 100%; height: 3.5rem;
	background: var(--tcca-orange);
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	border: 0;
	border-radius: 9999px;
	cursor: pointer;
	box-shadow: 0 18px 30px -12px rgba(232,122,38,.3);
	transition: all .25s;
}
.tcca-form button:hover { transform: translateY(-2px); background: var(--tcca-orange-light); box-shadow: 0 20px 32px -12px rgba(232,122,38,.4); }
.tcca-form button::after {
	content: "";
	display: inline-flex; width: 1.75rem; height: 1.75rem;
	border-radius: 9999px;
	background-color: rgba(255,255,255,0.2);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 L11 5'/%3E%3Cpath d='M5.5 5 H11 V10.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.85rem 0.85rem;
}

.tcca-steps {
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	padding: 2rem;
	border-radius: 2rem;
}
.tcca-steps h3 { margin: 0.75rem 0 0; font-size: 1.5rem; }
.tcca-steps ol { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 1.25rem; }
.tcca-steps li { display: flex; gap: 1rem; }
.tcca-steps li > span:first-child {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.5rem; height: 2.5rem;
	background: var(--tcca-orange);
	color: #fff;
	border-radius: 9999px;
	font-weight: 700; font-size: 0.875rem;
	flex-shrink: 0;
}
.tcca-steps li strong { display: block; font-family: var(--wp--preset--font-family--display); font-size: 1.125rem; font-weight: 600; }
.tcca-steps li small  { display: block; margin-top: 0.25rem; font-size: 0.75rem; color: color-mix(in srgb, var(--tcca-cream) 75%, transparent); }

.tcca-fee-note {
	margin-top: 1rem;
	background: var(--tcca-orange-soft);
	border: 1px solid color-mix(in srgb, var(--tcca-orange) 30%, transparent);
	padding: 1.5rem;
	border-radius: 2rem;
}
.tcca-fee-note strong { display: block; font-family: var(--wp--preset--font-family--display); font-size: 1.125rem; font-weight: 700; color: var(--tcca-navy-700); }
.tcca-fee-note p { margin: 0.5rem 0 0; font-size: 0.875rem; color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent); }

/* ---------- Archive (category / tag / author / date) -------------- */
.tcca-archive-page { background: var(--tcca-cream); }
.tcca-archive-hero {
	padding-block: clamp(3.5rem, 8vw, 6rem) clamp(2rem, 4vw, 3rem);
	padding-top: 0;
	/* background-image:
		radial-gradient(60rem 40rem at 50% -20rem,
			rgba(232,122,38,0.14) 0%,
			rgba(255,90,138,0.08) 25%,
			rgba(138,92,255,0.04) 55%,
			transparent 85%); */
	background-repeat: no-repeat;
}
.tcca-archive-hero__inner { margin-top: 1.5rem; }
.tcca-archive-hero__title {
	margin: 1rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.5rem, 1rem + 6vw, 5rem);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: 0;
	color: var(--tcca-navy-700);
}
.tcca-archive-hero__lead {
	margin-top: 1.5rem;
	max-width: 36rem;
	font-size: clamp(1rem, 0.875rem + 0.5vw, 1.25rem);
	line-height: 1.6;
	color: color-mix(in srgb, var(--tcca-navy-600) 80%, transparent);
}

.tcca-archive-list { padding-block: 1.5rem clamp(5rem, 10vw, 8rem); }
.tcca-archive-list__head {
	display: flex; align-items: flex-end; justify-content: space-between;
	margin-bottom: 2rem;
	gap: 1rem;
}
.tcca-archive-list__head h2 {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 1rem + 1vw, 1.875rem);
	font-weight: 700;
	color: var(--tcca-navy-700);
}
.tcca-archive-list__count {
	font-size: 0.875rem;
	color: color-mix(in srgb, var(--tcca-navy-600) 60%, transparent);
}
.tcca-archive-list__empty {
	margin: 2rem 0;
	font-size: 1rem;
	color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent);
}
.tcca-archive-list__grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr;
	grid-auto-rows: 1fr;
	align-items: stretch;
}
.tcca-archive-list__grid > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
@media (min-width: 700px)  { .tcca-archive-list__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tcca-archive-list__grid { grid-template-columns: repeat(3, 1fr); } }

.tcca-archive-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #fff;
	border-radius: 1.75rem;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tcca-navy-600) 10%, transparent), 0 1px 2px rgba(11,31,56,0.04);
	color: inherit;
	text-decoration: none;
	transition: transform .25s, box-shadow .25s;
	height: 100%;
}
.tcca-archive-card:hover {
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tcca-orange) 40%, transparent), 0 24px 40px -18px rgba(11,31,56,0.25);
}
.tcca-archive-card__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16/10;
	background: color-mix(in srgb, var(--tcca-navy-600) 8%, transparent);
}
.tcca-archive-card__media img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .7s ease;
}
.tcca-archive-card:hover .tcca-archive-card__media img { transform: scale(1.05); }
.tcca-archive-card__cat {
	position: absolute; left: 1rem; top: 1rem;
	padding: 0.3rem 0.75rem;
	border-radius: 9999px;
	background: color-mix(in srgb, var(--tcca-navy-700) 90%, transparent);
	color: var(--tcca-cream);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	backdrop-filter: blur(4px);
}
.tcca-archive-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.5rem;
}
.tcca-archive-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.15;
	color: var(--tcca-navy-700);
	transition: color .2s;
}
.tcca-archive-card:hover .tcca-archive-card__title { color: var(--tcca-orange); }
.tcca-archive-card__excerpt {
	margin: 0.75rem 0 0;
	font-size: 0.875rem;
	line-height: 1.6;
	color: color-mix(in srgb, var(--tcca-navy-600) 75%, transparent);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.tcca-archive-card__tags {
	margin-top: 1rem;
	display: flex; flex-wrap: wrap;
	gap: 0.375rem;
}
.tcca-archive-card__tags > span {
	display: inline-flex; align-items: center;
	padding: 0.125rem 0.625rem;
	border-radius: 9999px;
	background: var(--tcca-orange-soft);
	color: var(--tcca-orange);
	font-size: 0.625rem;
	font-weight: 600;
}
.tcca-archive-card__foot {
	margin-top: auto;
	padding-top: 1.5rem;
	display: flex; align-items: center; justify-content: space-between;
	font-size: 0.75rem;
}
.tcca-archive-card__date {
	font-weight: 600;
	color: color-mix(in srgb, var(--tcca-navy-600) 60%, transparent);
}
.tcca-archive-card__more {
	font-family: var(--wp--preset--font-family--display);
	display: inline-flex; align-items: center; gap: 0.25rem;
	color: var(--tcca-navy-700);
	transition: transform .2s;
}
.tcca-archive-card:hover .tcca-archive-card__more { transform: translateX(2px); }

.tcca-archive-list__pagination {
	margin-top: 3rem;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem;
}
.tcca-archive-list__pagination a,
.tcca-archive-list__pagination span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 2.5rem; height: 2.5rem; padding: 0 0.75rem;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 12%, transparent);
	background: #fff;
	color: var(--tcca-navy-700);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
	transition: all .2s;
}
.tcca-archive-list__pagination a:hover {
	background: var(--tcca-orange-soft);
	color: var(--tcca-orange);
	border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent);
}
.tcca-archive-list__pagination .current {
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	border-color: var(--tcca-navy-700);
}

/* ---------- News index — category filter row ------------------------ */
.tcca-news-filters { padding-block: 0.5rem 0; }
.tcca-news-filters__row {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 0.625rem;
}
.tcca-news-filters__label {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--tcca-navy-700);
}
.tcca-news-filters__pill {
	display: inline-flex; align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 1.1rem;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 15%, transparent);
	background: #fff;
	color: var(--tcca-navy-700);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	font-weight: 500;
	text-decoration: none;
	transition: border-color .2s, color .2s, background-color .2s;
}
.tcca-news-filters__pill:hover {
	border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent);
	color: var(--tcca-orange);
}
.tcca-news-filters__pill.is-active {
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	border-color: var(--tcca-navy-700);
}
.tcca-news-filters__pill.is-active:hover { color: var(--tcca-cream); }
.tcca-news-filters__count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 1.25rem; height: 1.25rem;
	padding: 0 0.375rem;
	border-radius: 9999px;
	background: color-mix(in srgb, var(--tcca-navy-700) 10%, transparent);
	font-size: 0.7rem;
	font-weight: 700;
}
.tcca-news-filters__pill.is-active .tcca-news-filters__count {
	background: rgba(255,248,239,0.18);
	color: var(--tcca-cream);
}
/* ---------- News index — featured card ----------------------------- */
.tcca-news-featured { padding-block: 1.5rem 1rem; }
.tcca-news-featured__card {
	display: grid;
	grid-template-columns: 1fr;
	overflow: hidden;
	border-radius: 2.5rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tcca-navy-600) 10%, transparent), 0 30px 60px -28px rgba(11,31,56,0.45);
	text-decoration: none;
}
@media (min-width: 800px) {
	.tcca-news-featured__card { grid-template-columns: 1.1fr 1fr; }
}
.tcca-news-featured__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16/10;
}
@media (min-width: 800px) {
	.tcca-news-featured__media { aspect-ratio: auto; }
}
.tcca-news-featured__media img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .7s ease;
}
.tcca-news-featured__card:hover .tcca-news-featured__media img { transform: scale(1.04); }
.tcca-news-featured__media-fade-x {
	position: absolute; inset: 0 0 0 auto;
	width: 33%;
	background: linear-gradient(to right, transparent, var(--tcca-navy-700));
	display: none;
}
@media (min-width: 800px) { .tcca-news-featured__media-fade-x { display: block; } }
.tcca-news-featured__media-fade-y {
	position: absolute; inset: 0;
	background: linear-gradient(to top, color-mix(in srgb, var(--tcca-navy-700) 85%, transparent) 0%, color-mix(in srgb, var(--tcca-navy-700) 20%, transparent) 50%, transparent 100%);
}
@media (min-width: 800px) { .tcca-news-featured__media-fade-y { display: none; } }
.tcca-news-featured__pill {
	position: absolute; left: 1.25rem; top: 1.25rem;
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.4rem 1rem;
	border-radius: 9999px;
	background: var(--tcca-orange);
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	box-shadow: 0 8px 16px -4px rgba(232,122,38,0.35);
}
.tcca-news-featured__pulse {
	display: inline-block;
	width: 0.375rem; height: 0.375rem;
	border-radius: 9999px;
	background: #fff;
	animation: tcca-pulse 2s ease-in-out infinite;
}
.tcca-news-featured__body {
	position: relative;
	display: flex; flex-direction: column;
	padding: 1.75rem;
}
@media (min-width: 800px) { .tcca-news-featured__body { padding: 2.5rem; } }
.tcca-news-featured__dots {
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.1) 1px, transparent 1px);
	background-size: 18px 18px;
	opacity: 0.2;
	pointer-events: none;
}
.tcca-news-featured__glow {
	position: absolute;
	right: -5rem; top: -5rem;
	width: 16rem; height: 16rem;
	border-radius: 9999px;
	background: var(--tcca-orange);
	opacity: 0.25;
	filter: blur(48px);
	pointer-events: none;
}
.tcca-news-featured__meta {
	position: relative;
	display: flex; align-items: center;
	gap: 0.75rem;
	font-size: 0.6875rem;
	font-weight: 600;
	color: color-mix(in srgb, var(--tcca-cream) 60%, transparent);
}
.tcca-news-featured__bar {
	flex: 1;
	height: 1px;
	background: color-mix(in srgb, var(--tcca-cream) 15%, transparent);
}
.tcca-news-featured__title {
	position: relative;
	margin: 1.5rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.625rem, 1rem + 1.5vw, 2.5rem);
	font-weight: 700;
	line-height: 1.05;
	color: var(--tcca-cream);
}
.tcca-news-featured__excerpt {
	position: relative;
	margin: 1.25rem 0 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: color-mix(in srgb, var(--tcca-cream) 80%, transparent);
}
.tcca-news-featured__foot {
	position: relative;
	margin-top: auto;
	padding-top: 1.5rem;
	display: flex; align-items: center; justify-content: space-between;
	gap: 1rem;
	border-top: 1px solid color-mix(in srgb, var(--tcca-cream) 15%, transparent);
}
.tcca-news-featured__byline {
	font-size: 0.75rem;
	color: color-mix(in srgb, var(--tcca-cream) 60%, transparent);
}
.tcca-news-featured__cta {
	display: inline-flex; align-items: center;
	gap: 0.5rem;
	height: 2.75rem;
	padding: 0 1.25rem;
	border-radius: 9999px;
	background: var(--tcca-cream);
	color: var(--tcca-navy-700);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 600;
	transition: transform .25s, box-shadow .25s;
}
.tcca-news-featured__card:hover .tcca-news-featured__cta {
	transform: translateY(-2px);
	box-shadow: 0 12px 20px -8px rgba(11,31,56,0.3);
}
.tcca-news-featured__cta-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.5rem; height: 1.5rem;
	border-radius: 9999px;
	background: var(--tcca-orange);
	color: #fff;
	transition: transform .3s;
}
.tcca-news-featured__cta-icon svg { width: 0.75rem; height: 0.75rem; }
.tcca-news-featured__card:hover .tcca-news-featured__cta-icon { transform: rotate(45deg); }

/* ---------- News index — old WP-query layout (legacy fallback) ---- */

.tcca-news-index { padding-bottom: 6rem; }
@media (min-width: 900px) { .tcca-news-index { padding-bottom: 8rem; } }
.tcca-news-index__filters { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.tcca-news-index__filters > .label { font-family: var(--wp--preset--font-family--display); font-size: 1.125rem; font-weight: 600; color: var(--tcca-navy-700); }
.tcca-chip {
	font-family: var(--wp--preset--font-family--display);
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.4rem 1.1rem;
	font-size: 1rem;
	font-weight: 500;
	background: #fff;
	color: var(--tcca-navy-700);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 15%, transparent);
	border-radius: 9999px;
	text-decoration: none;
	transition: all .2s;
}
.tcca-chip:hover { border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent); color: var(--tcca-orange); }
.tcca-chip.is-current { background: var(--tcca-navy-700); color: var(--tcca-cream); border-color: transparent; }
.tcca-chip.is-tag {
	margin-left: auto;
	background: var(--tcca-orange-soft);
	color: var(--tcca-orange);
	border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent);
	font-weight: 600;
}
.tcca-chip.is-tag:hover { background: var(--tcca-orange); color: #fff; }
.tcca-cards-grid {
	margin-top: 2rem;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr;
}
@media (min-width: 700px)  { .tcca-cards-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .tcca-cards-grid { grid-template-columns: repeat(3, 1fr); } }

/* ---------- Single article -------------------------------------------- */

.tcca-article { padding: 0; }
.tcca-article__hero {
	position: relative;
	padding-block: clamp(7rem, 12vw, 9rem) 0;
	padding-top: 0;
}
.tcca-article__hero .tcca-breadcrumbs {
	margin-bottom: 1.5rem;
}
.tcca-article__tagrow {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem !important;
	margin-bottom: 1.5rem;
}
/* `wp:post-terms` outputs <div class="tcca-article__tag"><a>…</a></div>.
   Style the inner <a> as the pill (single click target with the pulse dot
   inline) and let the wrapper be a transparent shell. */
.tcca-article__tag { display: inline-block; }
.tcca-article__tag a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--tcca-orange);
	color: #fff;
	padding: 0.4rem 1rem;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	border-radius: 9999px;
	text-decoration: none;
	transition: background-color .25s;
}
.tcca-article__tag a::before {
	content: "";
	display: inline-block;
	width: 6px; height: 6px;
	background: #fff;
	border-radius: 9999px;
	animation: tcca-pulse 1.5s ease-in-out infinite;
}
.tcca-article__tag a:hover { background: var(--tcca-orange-light); color: #fff; }
.tcca-article__date {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--tcca-navy-600) 60%, transparent);
}
.tcca-article__title {
	margin: 0;
	font-size: clamp(2.5rem, 1rem + 5vw, 4.5rem);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
	color: var(--tcca-navy-700);
	max-width: 85%;
}
.tcca-article__byline {
	display: flex !important;
	align-items: center;
	gap: 0.75rem !important;
	margin-top: 2rem;
	font-size: 0.875rem;
	color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent);
}
.tcca-article__avatar {
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 2.5rem; height: 2.5rem;
	border-radius: 9999px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
}
.tcca-article__author {
	margin: 0;
	display: block;
	font-weight: 600;
	color: var(--tcca-navy-700);
}
.tcca-article__author-role {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.75rem;
	color: color-mix(in srgb, var(--tcca-navy-600) 60%, transparent);
}
.tcca-article__cover {
	margin-top: 3rem;
	overflow: hidden;
	border-radius: 2.5rem;
	box-shadow: 0 30px 60px -25px rgba(11,31,56,.3);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
}
.tcca-article__cover img {
	display: block;
	width: 100%; height: auto;
	object-fit: cover;
}

.tcca-article__main { padding-block: 4rem 6rem; }
@media (min-width: 900px) { .tcca-article__main { padding-block: 4rem 8rem 5rem; } }

.tcca-article__layout {
	display: grid !important;
	gap: 3rem;
	grid-template-columns: 1fr;
}
@media (min-width: 900px) {
	.tcca-article__layout { grid-template-columns: minmax(0,1fr) 280px; gap: 4rem; }
}

.tcca-article__body {
	min-width: 0;
	max-width: none;
	font-size: 1.125rem;
	line-height: 1.85;
	color: color-mix(in srgb, var(--tcca-navy-700) 90%, transparent);
}
.tcca-article__lead {
	margin: 0 0 2rem !important;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--tcca-navy-700);
}
.tcca-article__body > * + * { margin-top: 1.5rem; }
.tcca-article__body h2 {
	margin-top: 2.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 1rem + 2vw, 2.25rem);
	font-weight: 700;
	line-height: 1.1;
	color: var(--tcca-navy-700);
	scroll-margin-top: 7rem;
}
.tcca-article__body h3 {
	margin-top: 2rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--tcca-navy-700);
	scroll-margin-top: 7rem;
}
.tcca-article__body p { font-size: 1.125rem; line-height: 1.85; }
.tcca-article__body strong { color: var(--tcca-navy-700); font-weight: 600; }
.tcca-article__body a { color: var(--tcca-navy-700); text-decoration: none; }
.tcca-article__body ul, .tcca-article__body ol { padding-left: 1.5rem; }
.tcca-article__body ul li, .tcca-article__body ol li { margin-block: 0.5rem; }
.tcca-article__body figure { margin: 2rem 0; }
.tcca-article__body figure img { border-radius: 1.5rem; }
.tcca-article__body img { border-radius: 1.5rem; }
.tcca-article__body blockquote {
	position: relative;
	margin: 2.5rem 0;
	padding: 2.25rem 2rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	border-radius: 1.5rem;
	border: 0;
	box-shadow: 0 30px 60px -25px rgba(11,31,56,.4);
	overflow: hidden;
}
@media (min-width: 768px) {
	.tcca-article__body blockquote { padding: 3rem; }
}
.tcca-article__body blockquote p {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 1rem + 1vw, 1.85rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--tcca-cream);
}
.tcca-article__body blockquote cite {
	display: flex; align-items: center; gap: 0.75rem;
	margin-top: 1.5rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	font-style: normal;
	color: color-mix(in srgb, var(--tcca-cream) 70%, transparent);
}
.tcca-article__body blockquote cite::before {
	content: ""; display: inline-block;
	width: 2.5rem; height: 1px;
	background: var(--tcca-orange);
}
.tcca-article__tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-top: 3rem;
	padding-top: 2.5rem;
	border-top: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
}
.tcca-article__tags-label {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--tcca-navy-600) 60%, transparent);
	margin-right: 0.25rem;
}
.tcca-article__tag-pill {
	display: inline-flex; align-items: center; gap: 0.125rem;
	padding: 0.4rem 0.9rem;
	background: #fff;
	border-radius: 9999px;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--tcca-navy-700);
	text-decoration: none;
	transition: background-color .2s, color .2s, box-shadow .2s;
}
.tcca-article__tag-hash { color: var(--tcca-orange); }
.tcca-article__tag-pill:hover {
	background: var(--tcca-orange-soft);
	color: var(--tcca-orange);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tcca-orange) 40%, transparent);
}
.tcca-article__tag-pill:hover .tcca-article__tag-hash { color: var(--tcca-orange); }

.tcca-article__aside { min-width: 0; max-width: none; }
@media (min-width: 900px) {
	.tcca-article__aside { margin-top: 0; }
}
.tcca-article__sticky {
	position: sticky;
	top: 7rem;
	display: grid;
	gap: 1rem;
}

.tcca-article__sidecard {
	position: relative;
	overflow: hidden;
	border-radius: 1.5rem;
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	padding: 1.5rem;
	box-shadow: 0 4px 12px -8px rgba(11,31,56,.1);
}

/* ---------- Article — Table of Contents (sidebar) -------------------- */
.tcca-article__toc {
	position: relative;
	overflow: hidden;
	border-radius: 1.5rem;
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	padding: 1.5rem;
	box-shadow: 0 4px 12px -8px rgba(11,31,56,.1);
}
.tcca-article__toc-bar {
	position: absolute; left: 0; right: 0; top: 0;
	height: 4px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
}
.tcca-article__toc-head {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.tcca-article__toc-icon {
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 1.75rem; height: 1.75rem;
	border-radius: 9999px;
	background: var(--tcca-orange-soft);
	color: var(--tcca-orange);
}
.tcca-article__toc-icon svg { width: 0.875rem; height: 0.875rem; }
.tcca-article__toc-eyebrow {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--tcca-orange);
}
.tcca-article__toc-list {
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.tcca-article__toc-list a {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem 0.75rem;
	border-radius: 0.75rem;
	color: var(--tcca-navy-700);
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.tcca-article__toc-list a:hover { background: var(--tcca-orange-soft); }
.tcca-article__toc-num {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 0.8rem;
	font-weight: 700;
	color: color-mix(in srgb, var(--tcca-orange) 70%, transparent);
	transition: color .2s;
	min-width: 1.5rem;
}
.tcca-article__toc-list a:hover .tcca-article__toc-num { color: var(--tcca-orange); }
.tcca-article__toc-label {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.3;
}
.tcca-article__sidecard-bar {
	position: absolute; left: 0; right: 0; top: 0;
	height: 4px;
	background: linear-gradient(92deg,#ff5a8a,#e87a26,#f9e24a,#b2ea3a,#3ed0e6,#8a5cff);
}
.tcca-article__sidecard-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--tcca-orange);
}
.tcca-article__share {
	margin-top: 1rem;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.5rem;
}
.tcca-article__share-btn {
	display: inline-flex;
	align-items: center; justify-content: center;
	height: 2.5rem;
	border-radius: 0.75rem;
	background: color-mix(in srgb, var(--tcca-cream) 60%, transparent);
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	color: var(--tcca-navy-700);
	transition: all .2s;
}
.tcca-article__share-btn svg { width: 18px; height: 18px; }
.tcca-article__share-btn:hover {
	background: var(--tcca-orange-soft);
	color: var(--tcca-orange);
	border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent);
}

.tcca-article__newsletter {
	position: relative;
	overflow: hidden;
	border-radius: 1.5rem;
	background: var(--tcca-navy-700);
	color: var(--tcca-cream);
	padding: 1.5rem;
	box-shadow: 0 30px 60px -25px rgba(11,31,56,.4);
}
.tcca-article__newsletter-glow {
	position: absolute;
	right: -2.5rem; top: -2.5rem;
	width: 7rem; height: 7rem;
	border-radius: 9999px;
	background: rgba(232,122,38,0.4);
	filter: blur(32px);
	pointer-events: none;
}
.tcca-article__newsletter-dots {
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.18) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: 0.2;
	pointer-events: none;
}
.tcca-article__newsletter-inner { position: relative; }
.tcca-article__newsletter-eyebrow {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--tcca-orange-light);
}
.tcca-article__newsletter-title {
	margin: 0.75rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.15;
	color: var(--tcca-cream);
}
.tcca-article__newsletter-form {
	margin-top: 1.25rem;
	display: grid;
	gap: 0.5rem;
}
.tcca-article__newsletter-form input {
	box-sizing: border-box;
	width: 100%;
	padding: 0.65rem 1rem;
	border-radius: 9999px;
	background: rgba(255,248,239,0.1);
	border: 1px solid color-mix(in srgb, var(--tcca-cream) 20%, transparent);
	color: var(--tcca-cream);
	font-size: 0.875rem;
}
.tcca-article__newsletter-form input::placeholder { color: color-mix(in srgb, var(--tcca-cream) 50%, transparent); }
.tcca-article__newsletter-form input:focus { outline: none; border-color: var(--tcca-orange); }
.tcca-article__newsletter-form button {
	display: inline-flex;
	align-items: center; justify-content: center;
	gap: 0.5rem;
	height: 2.75rem;
	border: 0;
	border-radius: 9999px;
	background: var(--tcca-orange);
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s;
}
.tcca-article__newsletter-form button:hover { background: var(--tcca-orange-light); }
.tcca-article__newsletter-form button .tcca-icon-up-right {
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 1.25rem; height: 1.25rem;
	border-radius: 9999px;
	background: rgba(255,255,255,0.2);
	transition: transform .3s;
}
.tcca-article__newsletter-form button .tcca-icon-up-right svg { width: 0.65rem; height: 0.65rem; color: #fff; }
.tcca-article__newsletter-form button:hover .tcca-icon-up-right { transform: rotate(45deg); }

@keyframes tcca-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.4; }
}

/* ---------- Misc / fallbacks ----------------------------------------- */

.is-style-tcca-eyebrow {
	font-size: 0.75rem !important;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--tcca-orange);
}

/* Reset core button alignment so our pill buttons sit naturally */
.wp-block-buttons.tcca-cta-row { gap: 1rem; flex-wrap: wrap; }

/* ---------- Home · Team (Advisors & Committees) ------------------------ */

.tcca-team { padding-block: 5rem; }
@media (min-width: 900px) { .tcca-team { padding-block: 7rem; } }
.tcca-team h2 { margin: 1rem 0 0; font-size: clamp(2rem, 1rem + 3vw, 3rem); color: var(--tcca-navy-700); line-height: 1.05; }
.tcca-team__group { margin-top: 3rem; }
.tcca-team__label { margin: 0; font-size: 1.5rem; color: var(--tcca-navy-700); }
.tcca-team__sub { margin: 0.25rem 0 0; font-size: 0.9375rem; color: color-mix(in srgb, var(--tcca-navy-600) 70%, transparent); }
.tcca-team__grid { margin-top: 1.5rem; display: grid; gap: 0.75rem; grid-template-columns: 1fr 1fr; }
@media (min-width: 900px) { .tcca-team__grid { grid-template-columns: repeat(4, 1fr); } }
.tcca-team__grid > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.tcca-person {
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--tcca-navy-600) 10%, transparent);
	border-radius: 1.5rem;
	padding: 1.75rem 1.25rem;
	text-align: center;
	transition: all .25s;
}
.tcca-person:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--tcca-orange) 40%, transparent); box-shadow: 0 18px 30px -16px rgba(11,31,56,.18); }
.tcca-person__avatar {
	width: 4.5rem; height: 4.5rem;
	margin-inline: auto;
	display: flex; align-items: center; justify-content: center;
	border-radius: 9999px;
	background: var(--tcca-navy-50);
	color: var(--tcca-navy-200);
}
.tcca-person__avatar svg { width: 2rem; height: 2rem; }
.tcca-person__name { margin: 1rem 0 0; font-family: var(--wp--preset--font-family--display); font-size: 1.125rem; font-weight: 700; color: var(--tcca-navy-700); }
.tcca-person__role { margin: 0.35rem 0 0; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--tcca-orange); }

/* ---------- Utility classes ---------------------------------------------
   Only for styling the block sidebar can't express: CSS custom properties,
   max-width, and markup inside raw wp:html blocks. Everything sidebar-
   manageable (font size, color, spacing, alignment) lives in block
   attributes inside the pattern markup instead. */

.tcca-pillar--grad-1 { --tcca-pillar-grad: linear-gradient(135deg, #ff5a8a, #e87a26); }
.tcca-pillar--grad-2 { --tcca-pillar-grad: linear-gradient(135deg, #e87a26, #f9e24a); }
.tcca-pillar--grad-3 { --tcca-pillar-grad: linear-gradient(135deg, #f9e24a, #b2ea3a); }

.tcca-benefits-head__sub { max-width: 28rem; }

.tcca-form .terms a { font-weight: 600; color: var(--tcca-navy-700); text-decoration: underline; }

.tcca-footer__made { display: flex; align-items: center; gap: .5rem; }
.tcca-footer__made-dot { display: inline-block; width: .5rem; height: .5rem; border-radius: 9999px; background: var(--tcca-orange); }

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {
	.tcca-marquee__track,
	.tcca-partners__track,
	.brand-gradient-text,
	.tcca-partner-name.is-gradient,
	.tcca-hero::after { animation: none !important; }
}
