/*
 * TFC Core: the single global CSS injector for The FirstWord Church (design v2).
 * Holds only what native Elementor/UAE controls do not expose: robustness rules,
 * the arch image frame and soft glows (which replace the old circle lines), gradients,
 * the sticky header and mobile menu, and styles for plugin-rendered components.
 * Colours read Elementor Global Colors, so editing the kit restyles everything.
 */

:root {
	--tfc-red: var(--e-global-color-primary, #E30613);
	--tfc-red-text: #D20511; /* brand red for small text: passes WCAG AA on cream and blush */
	--tfc-red-bright: var(--e-global-color-accent, #FE0000);
	--tfc-red-deep: var(--e-global-color-tfcreddeep, #B1030D);
	--tfc-gold: var(--e-global-color-tfcgold, #F2B33D);
	--tfc-ink: var(--e-global-color-text, #17110F);
	--tfc-ink-soft: var(--e-global-color-tfcinksoft, #4A4043);
	--tfc-muted: var(--e-global-color-tfcmuted, #6E6362);
	--tfc-paper: var(--e-global-color-tfcpaper, #F8F2EA);
	--tfc-sand: var(--e-global-color-tfcsand, #EFE4D6);
	--tfc-blush: var(--e-global-color-tfcblush, #FCEBE6);
	--tfc-dark: var(--e-global-color-tfcdark, #16070B);
	--tfc-wine: var(--e-global-color-tfcwine, #2C0B13);
	--tfc-wine-mid: var(--e-global-color-tfcwinemid, #4E0D19);
	--tfc-on-dark: var(--e-global-color-tfcondark, #FBF5EE);
	--tfc-on-dark-muted: var(--e-global-color-tfcondarkmuted, #CDBBB3);
	--tfc-line: var(--e-global-color-tfcline, #EADDCD);
	--tfc-dark-line: rgba(255, 255, 255, .14);
	--tfc-display: "Oswald", "Arial Narrow", sans-serif;
	--tfc-body: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--tfc-serif: "Instrument Serif", Georgia, serif;
	--tfc-ease: cubic-bezier(.22, .61, .36, 1);
	--tfc-shadow: 0 1px 2px rgba(44, 11, 19, .04), 0 18px 40px -18px rgba(44, 11, 19, .18);
	--tfc-shadow-lg: 0 2px 4px rgba(44, 11, 19, .05), 0 40px 80px -30px rgba(44, 11, 19, .35);
}

/* ---------- Robustness ---------- */

html, body { max-width: 100%; overflow-x: clip; } /* clip, not hidden, so the sticky header keeps working */
body { -webkit-font-smoothing: antialiased; background: var(--tfc-paper); }
.e-con, .e-con > .e-con-inner, .e-con .elementor-widget { min-width: 0; }
.elementor img { max-width: 100%; height: auto; }
.elementor-widget-heading .elementor-heading-title { overflow-wrap: break-word; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
:focus-visible { outline: 2px solid var(--tfc-red); outline-offset: 3px; }
.tfc-on-dark :focus-visible, .tfc-on-red :focus-visible { outline-color: #fff; }
.elementor-button { min-height: 48px; transition: background-color .25s var(--tfc-ease), color .25s, border-color .25s, transform .25s var(--tfc-ease), box-shadow .25s; }
.elementor-button:hover { transform: translateY(-2px); }
.elementor-button .elementor-button-icon { transition: transform .25s var(--tfc-ease); }
.elementor-button:hover .elementor-button-icon { transform: translateX(3px); }
/* Spacer widget CSS is not loaded on non-Elementor pages (e.g. the footer on a message page). */
.elementor-widget-spacer .elementor-spacer-inner { height: var(--spacer-size); }

/* Unset channels (empty in Church Settings) never show to visitors. */
a[href="#tfc-missing"],
.elementor-grid-item:has(> a[href="#tfc-missing"]),
.elementor-widget-button:has(a[href="#tfc-missing"]),
.elementor-icon-list-item:has(> a[href="#tfc-missing"]),
.menu-item:has(> a[href="#tfc-missing"]) { display: none !important; }
/* Editors see them, dashed, as a reminder to fill the setting. */
body.tfc-can-edit a[href="#tfc-missing"] { display: inline-flex !important; outline: 2px dashed #f0b400; outline-offset: 2px; opacity: .65; }
body.tfc-can-edit .elementor-widget-button:has(a[href="#tfc-missing"]) { display: block !important; }
body.tfc-can-edit .elementor-grid-item:has(> a[href="#tfc-missing"]) { display: inline-block !important; }

/* ---------- Type accents ---------- */

/* Eyebrow: short rule before; red on light, gold on dark (colour set natively). */
.tfc-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; }
.tfc-eyebrow .elementor-heading-title::before { content: ""; width: 28px; height: 2px; background: currentColor; flex: 0 0 auto; border-radius: 2px; }

/* Serif-italic accent word inside the big condensed headlines. */
.tfc-accent {
	font-family: var(--tfc-serif); font-style: italic; font-weight: 400; text-transform: none;
	letter-spacing: -.005em; font-size: 1.12em; line-height: .9; color: var(--tfc-red-text); padding-right: .04em;
}
.tfc-on-dark .tfc-accent { color: var(--tfc-gold); }
.tfc-on-red .tfc-accent { color: #fff; }
.tfc-red { color: var(--tfc-red-text); }
.tfc-block { display: block; }

/* Pill badges. */
.tfc-badge .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px;
	font-size: .72rem !important; letter-spacing: .16em !important; line-height: 1.2 !important;
}
.tfc-badge--glass .elementor-heading-title { background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); color: var(--tfc-on-dark); backdrop-filter: blur(8px); }
.tfc-badge--glass .elementor-heading-title::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--tfc-gold); box-shadow: 0 0 0 4px rgba(242, 179, 61, .2); flex: 0 0 auto; }
.tfc-badge--blush .elementor-heading-title { background: var(--tfc-blush); color: var(--tfc-red-text); }
.tfc-badge--blush .elementor-heading-title::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--tfc-red); flex: 0 0 auto; }
.tfc-badge--gold .elementor-heading-title { background: var(--tfc-gold); color: var(--tfc-ink); }
.tfc-badge--red .elementor-heading-title { background: var(--tfc-red); color: #fff; }

/* ---------- Canvases: glows and gradients (these replace the old circle lines) ---------- */

.tfc-glow { position: relative; isolation: isolate; }
.tfc-glow::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(ellipse 55% 60% at 88% 12%, rgba(227, 6, 19, .12), transparent 70%),
		radial-gradient(ellipse 45% 50% at 6% 96%, rgba(242, 179, 61, .16), transparent 70%);
}
.tfc-glow--dark::after {
	background:
		radial-gradient(ellipse 50% 60% at 85% 10%, rgba(227, 6, 19, .38), transparent 70%),
		radial-gradient(ellipse 40% 45% at 5% 100%, rgba(242, 179, 61, .12), transparent 70%);
}
.tfc-wine { background-image: linear-gradient(160deg, var(--tfc-dark) 0%, var(--tfc-wine) 55%, var(--tfc-wine-mid) 100%) !important; }
.tfc-redgrad { background-image: linear-gradient(135deg, #DC0A1B 0%, #CF0512 45%, var(--tfc-red-deep) 100%) !important; }
.tfc-hero > .e-con-inner, .tfc-glow > .e-con-inner { position: relative; z-index: 1; }

/* Arch frame: the church-window shape used for feature images. */
.elementor .tfc-arch img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 999px 999px 28px 28px; display: block; box-shadow: var(--tfc-shadow-lg); }
.tfc-arch--glow { position: relative; isolation: isolate; }
.tfc-arch--glow::before {
	content: ""; position: absolute; inset: 7% -5% -5% 7%; border-radius: 999px 999px 32px 32px; z-index: -1;
	background: linear-gradient(160deg, var(--tfc-red), var(--tfc-gold)); opacity: .85; transform: rotate(3deg);
}
.tfc-hero-visual { position: relative; max-width: 440px; width: 100%; margin-inline: auto; isolation: isolate; }
.tfc-float-card .elementor-heading-title {
	background: rgba(255, 255, 255, .97); color: var(--tfc-ink); padding: 14px 20px; border-radius: 18px;
	box-shadow: var(--tfc-shadow-lg); font-family: var(--tfc-body); font-size: .95rem; line-height: 1.3;
	display: flex; flex-direction: column; border-left: 4px solid var(--tfc-red);
}
.tfc-float-card b { font-weight: 800; }
.tfc-float-card span { font-size: .8rem; color: var(--tfc-muted); }

/* Welcome collage. */
.tfc-collage { position: relative; padding-right: 8%; max-width: 520px; }
.elementor .tfc-collage-small img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 24px; border: 6px solid var(--tfc-paper); box-shadow: var(--tfc-shadow-lg); }

/* Cards. */
.tfc-card--white, .tfc-service-card, .tfc-visit-card { box-shadow: var(--tfc-shadow); }
.tfc-service-card { position: relative; z-index: 5; }
.tfc-glass { background: rgba(255, 255, 255, .05) !important; border: 1px solid rgba(255, 255, 255, .12); backdrop-filter: blur(10px); }
.tfc-lift { transition: transform .35s var(--tfc-ease), box-shadow .35s var(--tfc-ease); }
.tfc-lift:hover { transform: translateY(-6px); box-shadow: var(--tfc-shadow-lg); }
.tfc-card-img img { display: block; }
.tfc-area.elementor-widget { box-shadow: var(--tfc-shadow); }
.tfc-area .elementor-icon { transition: transform .35s var(--tfc-ease); }
.tfc-area:hover .elementor-icon { transform: rotate(-8deg) scale(1.06); }
.tfc-svc { border-left: 1px solid var(--tfc-line); padding-left: 24px; }
.tfc-svc:first-child { border-left: 0; padding-left: 0; }
@media (max-width: 1024px) { .tfc-svc { border-left: 0; padding-left: 0; } }

/* Photo cards (seasons, Life Groups): content stays above the scrim; gentle lift on hover. */
.tfc-photo-card { position: relative; isolation: isolate; transition: transform .4s var(--tfc-ease), box-shadow .4s var(--tfc-ease); }
.tfc-photo-card > .elementor-element { position: relative; z-index: 2; }
.tfc-photo-card:hover { transform: translateY(-6px); box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .6); }

/* Pillars: numbered editorial list. */
.elementor .e-con.tfc-sticky { position: sticky; top: 120px; align-self: start; }
@media (max-width: 1024px) { .elementor .e-con.tfc-sticky { position: relative; top: auto; } }
.tfc-pillar-list { border-top: 1px solid var(--tfc-line); }
.tfc-pillar-row { border-bottom: 1px solid var(--tfc-line); border-radius: 20px; transition: background .3s var(--tfc-ease); }
.tfc-pillar-row:hover { background: var(--tfc-blush); }
.tfc-pillar-num .elementor-heading-title { min-width: 2.4ch; line-height: 1 !important; }
.tfc-pillar-row > .tfc-pillar-num { flex: 0 0 76px !important; width: 76px !important; }
.tfc-pillar-row > .e-con { flex: 1 1 0 !important; width: auto !important; min-width: 0; }
@media (max-width: 767px) { .tfc-pillar-row > .tfc-pillar-num { flex-basis: 52px !important; width: 52px !important; } .tfc-pillar-num .elementor-heading-title { font-size: 1.9rem !important; } }

/* Marquee band. */
.tfc-marquee-band { overflow: hidden; }
.tfc-marquee .elementor-heading-title { white-space: nowrap; display: inline-block; animation: tfcMarquee 38s linear infinite; font-size: clamp(1.6rem, 3.4vw, 2.6rem) !important; }
.tfc-marquee i { font-style: normal; color: var(--tfc-gold); margin: 0 .5em; font-size: .7em; vertical-align: middle; }
@keyframes tfcMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Latest message feature (Messages hero). */
.tfc-latest .tfc-card { border-radius: 24px; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6); }
.tfc-latest .tfc-card__title { font-size: 1.6rem; }

/* Image hero (Visit). */
.tfc-image-hero { overflow: hidden; }

/* ---------- Header (UAE) ---------- */

#masthead, body.ehf-header #masthead { position: sticky; top: 0; z-index: 90; }
body.admin-bar #masthead { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar #masthead { top: 46px; } }
@media screen and (max-width: 600px) { body.admin-bar #masthead { top: 0; } }
.tfc-header { transition: box-shadow .3s var(--tfc-ease); padding-top: env(safe-area-inset-top, 0px); border-bottom: 1px solid rgba(234, 221, 205, .7); }
/* The frosted blur sits on a pseudo-element: backdrop-filter on the header itself would trap the
   full-screen mobile menu (position: fixed) inside the 65px header. */
.tfc-header.e-con::before, .tfc-header::before { content: "" !important; position: absolute; inset: 0; z-index: -1; pointer-events: none; backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); }
.tfc-header.is-scrolled { box-shadow: 0 10px 30px -12px rgba(44, 11, 19, .18); }

/* Wordmark: "The FirstWord Church" with the strapline. */
.tfc-wordmark .elementor-heading-title { line-height: 1; }
.tfc-wordmark .elementor-heading-title a { color: inherit; }
.tfc-wordmark b { color: #D20511; font-weight: 800; }
.tfc-wordmark small { display: block; font-weight: 600; font-size: .56rem; letter-spacing: .22em; color: var(--tfc-muted); margin-top: 4px; }
@media (max-width: 560px) { .tfc-wordmark small { display: none; } }

/* Primary nav: pill hover. */
.tfc-nav .hfe-nav-menu > li > a.hfe-menu-item { border-radius: 999px; transition: background .25s, color .25s; }
.tfc-nav .hfe-nav-menu > li > a.hfe-menu-item:hover { background: rgba(227, 6, 19, .07); }
.tfc-nav .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item { background: var(--tfc-blush); }
/* UAE's resize script measures this menu while it is hidden (tablet/phone widths) and pins
   width:0 inline, which stacks the items vertically when the window grows again. Undo it. */
.tfc-nav nav.hfe-nav-menu__layout-horizontal { width: auto !important; left: auto !important; }
/* Six menu items plus the header buttons: tighten on small laptops so the menu stays on one line. */
.tfc-nav .hfe-nav-menu { flex-wrap: nowrap; }
.tfc-nav .hfe-nav-menu > li > a.hfe-menu-item { white-space: nowrap; }
@media (min-width: 1025px) and (max-width: 1240px) {
	.tfc-nav .hfe-nav-menu > li > a.hfe-menu-item { padding-left: 10px !important; padding-right: 10px !important; }
	.tfc-header .tfc-directions .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.tfc-header .tfc-directions .elementor-button-icon { margin: 0 !important; }
}
@media (min-width: 1025px) and (max-width: 1120px) {
	.tfc-wordmark small { display: none; }
}

/* Mobile menu: UAE flyout turned into a full-screen wine overlay. */
.tfc-mobile-nav .hfe-flyout-container .hfe-side.hfe-flyout-show { width: 100vw !important; max-width: 100vw; }
.tfc-mobile-nav .hfe-side {
	background: linear-gradient(165deg, var(--tfc-dark), var(--tfc-wine) 60%, var(--tfc-wine-mid)) !important;
	padding-top: calc(env(safe-area-inset-top, 0px) + 12px) !important;
	padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 24px) !important;
}
.tfc-mobile-nav .hfe-flyout-content { padding: 72px 30px 40px !important; }
.tfc-mobile-nav .hfe-flyout-overlay { background: var(--tfc-dark) !important; opacity: 1 !important; }
.tfc-mobile-nav .hfe-side .hfe-nav-menu { flex-direction: column; }
.tfc-mobile-nav .hfe-side a.hfe-menu-item {
	font-family: var(--tfc-display) !important; text-transform: uppercase; font-weight: 500;
	font-size: 2.1rem !important; line-height: 1.1; padding: 14px 0 !important;
	color: var(--tfc-on-dark) !important; border-bottom: 1px solid var(--tfc-dark-line);
}
.tfc-mobile-nav .hfe-side li.current-menu-item > a.hfe-menu-item { color: var(--tfc-gold) !important; }
.tfc-mobile-nav .hfe-side li.tfc-menu-directions > a.hfe-menu-item { font-size: 1.05rem !important; letter-spacing: .12em; border-bottom: 0; padding-top: 26px !important; }
.tfc-mobile-nav .hfe-side li.tfc-menu-cta > a.hfe-menu-item {
	display: inline-flex; margin-top: 18px; padding: 16px 32px !important; border: 0;
	background: var(--tfc-red); color: #fff !important; font-size: .95rem !important; letter-spacing: .09em; border-radius: 999px;
}
.tfc-mobile-nav .hfe-flyout-close { color: var(--tfc-on-dark) !important; top: calc(env(safe-area-inset-top, 0px) + 18px) !important; right: 20px !important; width: 44px; height: 44px; display: flex !important; align-items: center; justify-content: center; }
.tfc-mobile-nav .hfe-flyout-close svg, .tfc-mobile-nav .hfe-flyout-close i { fill: var(--tfc-on-dark) !important; color: var(--tfc-on-dark) !important; font-size: 26px; }
.tfc-mobile-nav .hfe-nav-menu__toggle { min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }
body.tfc-menu-open { overflow: hidden; }

/* Directions pin link in the header: icon only on phones. */
.tfc-directions .elementor-button { padding-left: 4px !important; padding-right: 4px !important; }
.tfc-directions .elementor-button:hover { transform: none; }
@media (max-width: 767px) {
	.tfc-directions .elementor-button { min-width: 44px; justify-content: center; }
	.tfc-directions .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.tfc-directions .elementor-button-icon { margin: 0 !important; font-size: 20px; }
	.tfc-directions .elementor-button-icon svg { width: 20px; height: 20px; }
}

/* Links inside dark/red sections follow the text colour, not the kit link red. */
.elementor .tfc-foot-address a, .elementor .tfc-on-dark .elementor-widget-text-editor a:not(.elementor-button) {
	color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .3); text-underline-offset: 3px;
}
.elementor .tfc-foot-address a:hover, .elementor .tfc-on-dark .elementor-widget-text-editor a:not(.elementor-button):hover { color: #fff; text-decoration-color: var(--tfc-gold); }
.elementor .tfc-address-link { color: var(--tfc-ink); text-decoration: underline; text-decoration-color: var(--tfc-red-text); text-underline-offset: 4px; }
.elementor .tfc-address-link:hover { color: var(--tfc-red-text); }

/* ---------- S.I.M.P.L.E. values (native Nested Tabs styled as a six-letter grid) ---------- */

.tfc-simple .e-n-tabs { gap: 0 !important; }
.tfc-simple .e-n-tabs-heading {
	display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px !important;
	margin: 0 0 8px; justify-content: stretch !important;
}
.tfc-simple .e-n-tab-title {
	aspect-ratio: 1; width: auto !important; display: flex !important; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .05) !important; border: 1px solid var(--tfc-dark-line) !important; border-radius: 20px !important;
	padding: 0 !important; cursor: pointer; transition: background .25s, border-color .25s, transform .25s var(--tfc-ease);
}
.tfc-simple .e-n-tab-title .e-n-tab-title-text, .tfc-simple .e-n-tab-title {
	font-family: var(--tfc-display) !important; font-weight: 600 !important; font-size: clamp(1.8rem, 4.2vw, 3rem) !important;
	line-height: 1 !important; color: var(--tfc-on-dark) !important; text-transform: uppercase;
}
.tfc-simple .e-n-tab-title:hover { border-color: var(--tfc-gold) !important; transform: translateY(-3px); }
.tfc-simple .e-n-tab-title[aria-selected="true"] { background: linear-gradient(145deg, #F0142A, var(--tfc-red-deep)) !important; border-color: transparent !important; box-shadow: 0 18px 36px -14px rgba(227, 6, 19, .7); }
.tfc-simple .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text { color: #fff !important; }
.tfc-simple .e-n-tab-title:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.tfc-simple .e-n-tabs-content > .e-con { min-height: 130px; border: 0 !important; background: transparent !important; }
.tfc-simple-title em { font-style: italic; font-family: var(--tfc-serif); text-transform: none; font-weight: 400; color: var(--tfc-gold); font-size: 1.15em; }
.tfc-simple-title .elementor-heading-title { font-size: 2rem; }
@media (max-width: 560px) { .tfc-simple .e-n-tabs-heading { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Visit ---------- */

.tfc-info-row { border-bottom: 1px solid var(--tfc-line); }
.tfc-info-row:last-child { border-bottom: 0; }
.tfc-map-wrap iframe, .tfc-map iframe { display: block; width: 100%; border: 0; filter: saturate(.9); }
.tfc-map { border: 1px solid var(--tfc-line); border-radius: 20px; overflow: hidden; }

/* ---------- Footer ---------- */

.tfc-foot-list .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--tfc-gold) !important; }

/* ---------- Floating WhatsApp (native button in the footer template) ---------- */

.tfc-wa-float {
	position: fixed !important; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	z-index: 85; width: auto !important; margin: 0 !important;
}
.tfc-wa-float .elementor-button {
	width: 58px; height: 58px; min-height: 58px; padding: 0 !important; border-radius: 50% !important;
	display: flex; align-items: center; justify-content: center; box-shadow: 0 14px 30px -8px rgba(37, 211, 102, .6);
}
.tfc-wa-float .elementor-button:hover { transform: scale(1.07); }
.tfc-wa-float .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tfc-wa-float .elementor-button-icon { margin: 0 !important; font-size: 28px; transform: none !important; }
.tfc-wa-float .elementor-button-icon svg { width: 28px; height: 28px; fill: #fff; }

/* ---------- Shared plugin buttons ---------- */

.tfc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .6em;
	font-family: var(--tfc-display); font-weight: 500; text-transform: uppercase; letter-spacing: .09em;
	font-size: .92rem; line-height: 1.2; padding: 16px 30px; border-radius: 999px; border: 2px solid transparent;
	min-height: 48px; cursor: pointer; text-decoration: none; transition: background .25s, color .25s, border-color .25s, transform .25s var(--tfc-ease);
}
.tfc-btn:hover { transform: translateY(-2px); }
.tfc-btn:active { transform: translateY(0); }
.tfc-btn .tfc-icon { width: 18px; height: 18px; flex: 0 0 auto; }
.tfc-btn.tfc-btn--red { background: var(--tfc-red); color: #fff; }
.tfc-btn.tfc-btn--red:hover, .tfc-btn.tfc-btn--red:focus-visible { background: var(--tfc-red-deep); color: #fff; }
.tfc-btn.tfc-btn--outline { background: transparent; color: var(--tfc-ink); border-color: currentColor; }
.tfc-btn.tfc-btn--outline:hover { background: var(--tfc-ink); border-color: var(--tfc-ink); color: #fff; }
.tfc-btn.tfc-btn--white { background: #fff; color: var(--tfc-red-text); }
.tfc-btn.tfc-btn--white:hover { background: var(--tfc-ink); color: #fff; }
.tfc-btn.tfc-btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.tfc-btn.tfc-btn--ghost:hover { background: #fff; color: var(--tfc-ink); border-color: #fff; }
.tfc-btn.tfc-btn--wa { background: #25D366; color: #0b2e17; }
.tfc-btn.tfc-btn--wa:hover { background: #1ebe5a; color: #0b2e17; }

/* ---------- Social row ---------- */

.tfc-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.tfc-social li a {
	width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--tfc-dark-line); border-radius: 50%; color: var(--tfc-on-dark); transition: all .2s;
}
.tfc-social li a:hover { background: var(--tfc-red); border-color: var(--tfc-red-text); color: #fff; }
.tfc-social.tfc-scheme-light li a { border-color: var(--tfc-line); color: var(--tfc-ink); }
.tfc-social--empty { font-size: .85rem; opacity: .7; }

/* ---------- Messages grid ---------- */

.tfc-messages { width: 100%; }
.tfc-messages__bar {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px;
	padding: 22px 26px; margin: 0 0 30px; border-radius: 22px; color: var(--tfc-on-dark);
	background: linear-gradient(135deg, var(--tfc-dark), var(--tfc-wine) 70%, var(--tfc-wine-mid));
	box-shadow: var(--tfc-shadow);
}
.tfc-messages__bar-text { margin: 0; color: var(--tfc-on-dark); font-weight: 500; max-width: 56ch; }
.tfc-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 34px; }
.tfc-messages .tfc-chip {
	font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; line-height: 1;
	padding: 13px 18px; min-height: 44px; display: inline-flex; align-items: center;
	border: 1px solid var(--tfc-line); border-radius: 999px; background: #fff; color: var(--tfc-ink-soft);
	text-decoration: none; transition: all .2s;
}
.tfc-messages .tfc-chip:hover { border-color: var(--tfc-red-text); color: var(--tfc-ink); }
.tfc-messages .tfc-chip.is-active { background: var(--tfc-red); border-color: var(--tfc-red-text); color: #fff; }
.tfc-grid { display: grid; gap: 22px; grid-template-columns: repeat(var(--tfc-cols, 3), minmax(0, 1fr)); }
.tfc-grid--1 { --tfc-cols: 1; } .tfc-grid--2 { --tfc-cols: 2; } .tfc-grid--3 { --tfc-cols: 3; } .tfc-grid--4 { --tfc-cols: 4; }
@media (max-width: 1024px) { .tfc-grid--3, .tfc-grid--4 { --tfc-cols: 2; } }
@media (max-width: 600px) { .tfc-grid { --tfc-cols: 1 !important; } }
.tfc-card {
	background: #fff; border: 1px solid rgba(234, 221, 205, .6); border-radius: 22px; overflow: hidden;
	display: flex; flex-direction: column; box-shadow: var(--tfc-shadow);
	transition: box-shadow .35s var(--tfc-ease), transform .35s var(--tfc-ease);
}
.tfc-card:hover { box-shadow: var(--tfc-shadow-lg); transform: translateY(-6px); }
.tfc-card[hidden] { display: none; }
.tfc-card__media { position: relative; display: block; aspect-ratio: 16 / 9; background: linear-gradient(150deg, #201113, #0a0506); overflow: hidden; }
.tfc-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--tfc-ease); }
.tfc-card:hover .tfc-card__media img { transform: scale(1.03); }
.tfc-card__play {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: 58px; height: 58px; border-radius: 50%; background: var(--tfc-red); color: #fff;
	display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(227, 6, 19, .45);
}
.tfc-card__play .tfc-icon { width: 26px; height: 26px; margin-left: 3px; }
.tfc-card__body { padding: 22px 24px 24px; flex: 1; display: flex; flex-direction: column; }
.tfc-card__tag { font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; color: var(--tfc-red-text); font-weight: 500; }
.tfc-card__title { font-family: var(--tfc-display); font-weight: 600; text-transform: uppercase; font-size: 1.3rem; line-height: 1.08; margin: 8px 0 6px; letter-spacing: -.005em; }
.tfc-card .tfc-card__title a { color: var(--tfc-ink); text-decoration: none; }
.tfc-card .tfc-card__title a:hover { color: var(--tfc-red-text); }
.tfc-card__by { color: var(--tfc-muted); font-size: .9rem; margin: 0; }
.tfc-messages .tfc-card__watch, .tfc-messages .tfc-card__watch:hover, .tfc-messages .tfc-card__watch:focus {
	background: none; border: 0; border-radius: 0; box-shadow: none; color: var(--tfc-red-text); padding: 14px 0 0; transform: none;
}
.tfc-messages .tfc-card__watch:hover { color: var(--tfc-red-deep); }
.tfc-card__watch {
	margin-top: auto; align-self: flex-start; padding: 16px 0 0; background: none; border: 0; cursor: pointer;
	font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; color: var(--tfc-red-text);
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
}
.tfc-card__watch .tfc-icon { width: 16px; height: 16px; }
.tfc-messages__empty, .tfc-messages__none {
	padding: 26px; border: 1px dashed var(--tfc-line); border-radius: 20px; color: var(--tfc-muted); text-align: center; margin: 0;
}
.tfc-messages__none { margin-top: 10px; }
.tfc-messages__more { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 44px; text-align: center; }
.tfc-messages .tfc-messages__more-btn { min-width: 240px; }
.tfc-messages .tfc-messages__more-btn[hidden] { display: none; }
.tfc-messages__more-btn.is-loading { pointer-events: none; opacity: .7; }
.tfc-messages__count { margin: 0; color: var(--tfc-ink-soft); font-size: .9rem; }
.tfc-scheme-dark .tfc-messages__count { color: #a9a49d; }
.tfc-grid { transition: opacity .25s; }
.tfc-grid.is-loading { opacity: .45; }
@media (max-width: 600px) {
	.tfc-messages__more { margin-top: 32px; }
	.tfc-messages .tfc-messages__more-btn { width: 100%; }
}
.tfc-scheme-dark .tfc-card { background: rgba(255, 255, 255, .06); border-color: var(--tfc-dark-line); box-shadow: none; backdrop-filter: blur(8px); }
.tfc-scheme-dark .tfc-card__tag { color: var(--tfc-gold); }
.tfc-messages.tfc-scheme-dark .tfc-card__watch { color: var(--tfc-gold); }
.tfc-scheme-dark .tfc-card .tfc-card__title a { color: #fff; }
.tfc-scheme-dark .tfc-card__by { color: #a9a49d; }

/* Video lightbox */
.tfc-lightbox { border: 0; padding: 0; background: transparent; width: min(1100px, 94vw); max-width: none; overflow: visible; }
.tfc-lightbox::backdrop { background: rgba(8, 8, 10, .88); }
.tfc-lightbox__frame { aspect-ratio: 16 / 9; width: 100%; background: #000; }
.tfc-lightbox__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.tfc-lightbox__close {
	position: absolute; top: -52px; right: 0; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .4);
	background: transparent; color: #fff; font-size: 24px; line-height: 1; cursor: pointer;
}

/* ---------- Prayer form ---------- */

.tfc-prayer { width: 100%; }
.tfc-prayer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.tfc-field { display: flex; flex-direction: column; gap: 8px; margin: 0 0 16px; }
.tfc-field--full { grid-column: 1 / -1; }
.tfc-field label, .tfc-radio legend {
	font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .1em; font-size: .74rem; font-weight: 500;
	color: var(--tfc-muted);
}
.tfc-field input[type=text], .tfc-field textarea {
	font-family: var(--tfc-body); font-size: 1rem; padding: 14px 18px; border-radius: 14px; width: 100%;
	border: 1px solid var(--tfc-line); background: #fff; color: var(--tfc-ink); transition: border-color .2s;
}
.tfc-field textarea { resize: vertical; min-height: 130px; }
.tfc-field input:focus, .tfc-field textarea:focus { outline: none; border-color: var(--tfc-red-text); box-shadow: 0 0 0 1px var(--tfc-red); }
.tfc-radio { border: 0; padding: 0; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px 26px; }
.tfc-radio legend { float: left; width: 100%; margin-bottom: 8px; }
.tfc-radio label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 1rem; cursor: pointer; }
.tfc-radio input { width: 18px; height: 18px; accent-color: var(--tfc-red-text); }
.tfc-prayer__note { font-size: .85rem; color: var(--tfc-muted); margin: 14px 0 0; }
.tfc-prayer__ok, .tfc-prayer__err { border-radius: 3px; padding: 16px 18px; margin: 0 0 20px; }
.tfc-prayer__ok { background: rgba(37, 211, 102, .08); border: 1px solid #25D366; }
.tfc-prayer__ok p { margin: 0 0 12px; }
.tfc-prayer__err { background: rgba(227, 6, 19, .08); border: 1px solid var(--tfc-red); }
.tfc-prayer [hidden] { display: none !important; }
.tfc-prayer.is-sent .tfc-prayer__grid, .tfc-prayer.is-sent > button, .tfc-prayer.is-sent .tfc-prayer__note { display: none; }
.tfc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tfc-prayer.tfc-scheme-dark { color: #fff; }
.tfc-prayer.tfc-scheme-dark .tfc-field label, .tfc-prayer.tfc-scheme-dark .tfc-radio legend, .tfc-prayer.tfc-scheme-dark .tfc-prayer__note { color: #a9a49d; }
.tfc-prayer.tfc-scheme-dark .tfc-field input[type=text], .tfc-prayer.tfc-scheme-dark .tfc-field textarea {
	background: rgba(255, 255, 255, .05); border-color: var(--tfc-dark-line); color: #fff;
}
.tfc-prayer.tfc-scheme-dark .tfc-field input::placeholder, .tfc-prayer.tfc-scheme-dark .tfc-field textarea::placeholder { color: rgba(255, 255, 255, .45); }
.tfc-prayer.tfc-scheme-dark .tfc-field input:focus, .tfc-prayer.tfc-scheme-dark .tfc-field textarea:focus { border-color: var(--tfc-red-bright); box-shadow: 0 0 0 1px var(--tfc-red-bright); }
.tfc-prayer.tfc-scheme-dark .tfc-prayer__ok { background: rgba(255, 255, 255, .06); }
.tfc-prayer.tfc-scheme-dark .tfc-prayer__err { background: rgba(254, 0, 0, .12); border-color: var(--tfc-red-bright); }
@media (max-width: 767px) { .tfc-prayer__grid { grid-template-columns: 1fr; } }

/* ---------- Giving box ---------- */

.tfc-giving { margin: 0; border: 1px solid var(--tfc-line); border-radius: 18px; display: grid; background: var(--tfc-paper); }
.tfc-giving > div { padding: 16px 20px; border-top: 1px solid var(--tfc-line); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.tfc-giving > div:first-child { border-top: 0; }
.tfc-giving dt { font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; color: #D20511; }
.tfc-giving dd { margin: 0; font-weight: 700; }

/* ---------- Updates & events cards ---------- */

/* The flyer is never cropped: it sits whole over a blurred copy of itself. */
.tfc-ucard__media {
	position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; isolation: isolate;
	background: linear-gradient(150deg, var(--tfc-wine), var(--tfc-dark));
}
.tfc-ucard__media::before {
	content: ""; position: absolute; inset: -30px; z-index: -1; background: var(--tfc-flyer) center / cover no-repeat;
	filter: blur(26px) saturate(1.2); opacity: .55;
}
.tfc-ucard__media img { position: absolute; inset: 0; width: 100%; height: 100% !important; max-width: none; object-fit: contain; display: block; transition: transform .5s var(--tfc-ease); }
.tfc-card:hover .tfc-ucard__media img { transform: scale(1.03); }
.tfc-updates--featured .tfc-ucard__media { aspect-ratio: 1; }
.tfc-ucard__date {
	position: absolute; top: 14px; left: 14px; z-index: 2; min-width: 60px; padding: 8px 10px 9px; border-radius: 16px;
	background: #fff; color: var(--tfc-ink); text-align: center; box-shadow: var(--tfc-shadow);
	font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .14em; font-size: .7rem; line-height: 1;
}
.tfc-ucard__date b { display: block; font-size: 1.75rem; font-weight: 600; letter-spacing: 0; color: var(--tfc-red-text); margin-bottom: 3px; }
.tfc-ucard__flag {
	position: absolute; top: 14px; right: 14px; z-index: 2; padding: 8px 13px; border-radius: 999px;
	background: var(--tfc-gold); color: var(--tfc-ink); font-family: var(--tfc-display); text-transform: uppercase;
	letter-spacing: .14em; font-size: .66rem; line-height: 1; font-weight: 500;
}
.tfc-ucard__flag--past { background: rgba(22, 7, 11, .72); color: var(--tfc-on-dark); backdrop-filter: blur(6px); }
.tfc-ucard.is-past .tfc-ucard__media img { filter: grayscale(.35); }
.tfc-ucard__summary {
	margin: 10px 0 0; color: var(--tfc-ink-soft); font-size: .95rem; line-height: 1.55;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.tfc-scheme-dark .tfc-ucard__summary { color: var(--tfc-on-dark-muted); }
.tfc-updates .tfc-card__watch { text-decoration: none; }

/* Project progress bar. */
.tfc-progress { margin: 16px 0 0; }
.tfc-progress__bar { display: block; height: 8px; border-radius: 99px; background: var(--tfc-sand); overflow: hidden; }
.tfc-progress__bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--tfc-red), var(--tfc-gold)); }
.tfc-progress__text { display: block; margin-top: 8px; font-size: .85rem; color: var(--tfc-muted); }
.tfc-progress__text b { color: var(--tfc-red-text); font-weight: 800; }
.tfc-on-dark .tfc-progress__bar, .tfc-scheme-dark .tfc-progress__bar { background: rgba(255, 255, 255, .12); }
.tfc-on-dark .tfc-progress__text, .tfc-scheme-dark .tfc-progress__text { color: var(--tfc-on-dark-muted); }
.tfc-on-dark .tfc-progress__text b, .tfc-scheme-dark .tfc-progress__text b { color: var(--tfc-gold); }
.tfc-progress--lg { max-width: 460px; margin-top: 26px; }
.tfc-progress--lg .tfc-progress__bar { height: 12px; }

/* ---------- Single update / event ---------- */

.tfc-update__hero { padding: 64px 0 88px; position: relative; isolation: isolate; overflow: hidden; }
.tfc-update__hero::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: radial-gradient(ellipse 50% 60% at 85% 10%, rgba(227, 6, 19, .35), transparent 70%), radial-gradient(ellipse 40% 45% at 5% 100%, rgba(242, 179, 61, .12), transparent 70%);
}
.tfc-update__top { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: center; }
.tfc-update__flyer { text-align: center; }
.tfc-update__flyer a { display: inline-block; }
.tfc-update__flyer img { display: block; width: auto; max-width: 100%; height: auto; max-height: 78vh; margin: 0 auto; border-radius: 22px; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7); }
.tfc-update .tfc-update__hero h1 { color: #fff; font-size: clamp(2.3rem, 5vw, 4rem); }
.tfc-update__flag { position: static; display: inline-block; margin: 0 0 18px; }
.tfc-update__lead { font-size: 1.2rem; line-height: 1.5; color: var(--tfc-on-dark-muted); margin: 0 0 28px; max-width: 54ch; }
.tfc-update__facts { margin: 0 0 30px; display: grid; }
.tfc-update__facts > div { display: grid; grid-template-columns: 90px 1fr; gap: 16px; padding: 14px 0; border-top: 1px solid var(--tfc-dark-line); }
.tfc-update__facts > div:last-child { border-bottom: 1px solid var(--tfc-dark-line); }
.tfc-update__facts dt { font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .14em; font-size: .74rem; color: var(--tfc-gold); padding-top: 3px; }
.tfc-update__facts dd { margin: 0; color: #fff; font-weight: 600; font-size: 1.05rem; }
.tfc-update .tfc-update__facts a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .3); text-underline-offset: 3px; }
.tfc-update .tfc-update__facts a:hover { text-decoration-color: var(--tfc-gold); }
.tfc-update__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.tfc-update .tfc-update__share { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; min-height: 44px; color: var(--tfc-on-dark-muted); text-decoration: none; font-size: .92rem; font-weight: 600; }
.tfc-update .tfc-update__share:hover { color: #fff; }
.tfc-update__share .tfc-icon { width: 18px; height: 18px; color: #25D366; }
.tfc-update__body { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 60px; align-items: start; }
.tfc-update__body > .tfc-single__content { grid-column: 1; grid-row: 1; }
.tfc-update__body > .tfc-update__ministers { grid-column: 2; grid-row: 1; background: #fff; border: 1px solid var(--tfc-line); border-radius: 24px; padding: 28px; box-shadow: var(--tfc-shadow); }
.tfc-update__body > :only-child { grid-column: 1 / -1; max-width: 780px; }
.tfc-ministers { list-style: none; margin: 0; padding: 0; }
.tfc-ministers li { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid var(--tfc-line); }
.tfc-ministers li:first-child { border-top: 0; padding-top: 4px; }
.tfc-ministers__avatar {
	flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: linear-gradient(145deg, var(--tfc-red), var(--tfc-wine-mid)); color: #fff;
	font-family: var(--tfc-display); font-weight: 500; font-size: 1.1rem; letter-spacing: .04em;
}
.tfc-ministers b { display: block; font-weight: 800; line-height: 1.25; }
.tfc-ministers small { display: block; color: var(--tfc-muted); font-size: .88rem; margin-top: 2px; }
@media (max-width: 960px) {
	.tfc-update__top { grid-template-columns: 1fr; gap: 36px; }
	.tfc-update__flyer img { max-height: 70vh; }
	.tfc-update__body { grid-template-columns: 1fr; gap: 36px; }
	.tfc-update__body > .tfc-update__ministers { grid-column: 1; grid-row: 1; }
	.tfc-update__body > .tfc-single__content { grid-row: 2; }
}
@media (max-width: 560px) {
	.tfc-update__hero { padding: 28px 0 56px; }
	.tfc-update__actions .tfc-btn { width: 100%; }
}

/* ---------- Give page account cards ---------- */

.tfc-give { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.tfc-give__card {
	display: flex; flex-direction: column; padding: 40px; border-radius: 28px; background: #fff;
	border: 1px solid rgba(234, 221, 205, .7); box-shadow: var(--tfc-shadow); scroll-margin-top: 120px;
}
.tfc-give__icon { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--tfc-blush); color: var(--tfc-red-text); }
.tfc-give__icon .tfc-icon { width: 24px; height: 24px; }
.tfc-give__card .tfc-card__tag { margin: 22px 0 6px; display: block; font-size: .74rem; }
.tfc-give__bank { font-family: var(--tfc-display); font-weight: 600; text-transform: uppercase; font-size: 1.7rem; line-height: 1.05; margin: 0 0 20px; color: var(--tfc-ink); }
.tfc-acct {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
	padding: 10px 10px 10px 20px; border-radius: 18px; background: var(--tfc-paper); border: 1px dashed #DCC9B4;
}
.tfc-acct__num { font-family: var(--tfc-body); font-weight: 800; font-size: clamp(1.4rem, 2.4vw, 1.9rem); letter-spacing: .06em; font-variant-numeric: tabular-nums; color: var(--tfc-ink); user-select: all; }
.tfc-acct__copy {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 18px; border: 0; border-radius: 999px; cursor: pointer;
	background: var(--tfc-red); color: #fff; font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .1em; font-size: .78rem;
	transition: background .2s, transform .2s var(--tfc-ease);
}
.tfc-acct__copy:hover { background: var(--tfc-red-deep); transform: translateY(-1px); }
.tfc-acct button.tfc-acct__copy { display: inline-flex; align-items: center; }
.tfc-acct__copy .tfc-icon { width: 16px; height: 16px; flex: 0 0 auto; }
.tfc-acct__copy.is-copied { background: #1a7f37; }
.tfc-give__name { margin: 20px 0 0; font-weight: 700; color: var(--tfc-ink); }
.tfc-give__name small { display: block; font-family: var(--tfc-display); font-weight: 500; text-transform: uppercase; letter-spacing: .14em; font-size: .68rem; color: var(--tfc-muted); margin-bottom: 4px; }
.tfc-give__note { margin: 14px 0 0; color: var(--tfc-ink-soft); font-size: .95rem; line-height: 1.55; }

.tfc-give__card--foreign {
	grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 2.2fr); gap: 0 40px; align-items: center;
	background: linear-gradient(150deg, var(--tfc-dark), var(--tfc-wine) 60%, var(--tfc-wine-mid)); border-color: transparent; color: var(--tfc-on-dark);
}
.tfc-give__card--foreign > * { grid-column: 1; }
.tfc-give__card--foreign .tfc-give__fx { grid-column: 2; grid-row: 1 / span 6; }
.tfc-give__card--foreign .tfc-give__icon { background: rgba(255, 255, 255, .08); color: var(--tfc-gold); }
.tfc-give__card--foreign .tfc-card__tag { color: var(--tfc-gold); }
.tfc-give__card--foreign .tfc-give__bank, .tfc-give__card--foreign .tfc-give__name { color: #fff; }
.tfc-give__card--foreign .tfc-give__name small { color: var(--tfc-on-dark-muted); }
.tfc-give__fx { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tfc-give__fx li { display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: center; padding: 20px; border-radius: 22px; background: rgba(255, 255, 255, .05); border: 1px solid var(--tfc-dark-line); }
.tfc-give__cur { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--tfc-gold); color: var(--tfc-ink); font-weight: 800; font-size: 1.3rem; }
.tfc-give__curname b { display: block; font-family: var(--tfc-display); font-weight: 500; text-transform: uppercase; letter-spacing: .06em; font-size: 1.15rem; color: #fff; }
.tfc-give__curname small { color: var(--tfc-on-dark-muted); font-size: .82rem; }
.tfc-give__fx .tfc-acct { grid-column: 1 / -1; background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .2); padding-left: 16px; }
.tfc-give__fx .tfc-acct__num { color: #fff; font-size: 1.3rem; }
.tfc-give__fx .tfc-acct__copy { padding: 10px 14px; }
.tfc-give__toast {
	position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 95; margin: 0; transform: translate(-50%, 20px);
	padding: 12px 22px; border-radius: 999px; background: var(--tfc-ink); color: #fff; font-weight: 700; font-size: .92rem;
	opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s var(--tfc-ease); box-shadow: var(--tfc-shadow-lg);
}
.tfc-give__toast.is-on { opacity: 1; transform: translate(-50%, 0); }
@media (max-width: 1100px) {
	.tfc-give__card--foreign { grid-template-columns: 1fr; }
	.tfc-give__card--foreign .tfc-give__fx { grid-column: 1; grid-row: auto; margin-top: 24px; }
}
@media (max-width: 860px) {
	.tfc-give { grid-template-columns: 1fr; }
	.tfc-give__fx { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.tfc-give__card { padding: 28px 22px; border-radius: 24px; }
	.tfc-acct { padding-left: 14px; flex-wrap: nowrap; }
	.tfc-acct__num { font-size: 1.2rem; letter-spacing: .02em; }
	.tfc-acct__copy { padding: 10px 14px; }
}

/* Give page: scripture card in the hero. */
.tfc-verse .elementor-heading-title { font-family: var(--tfc-serif) !important; font-style: italic; text-transform: none !important; font-size: clamp(1.6rem, 2.7vw, 2.25rem) !important; line-height: 1.22 !important; letter-spacing: 0 !important; }
.tfc-verse-card { position: relative; }
.tfc-verse-card::before {
	content: "\201C"; position: absolute; top: -8px; right: 28px; font-family: var(--tfc-serif); font-size: 9rem; line-height: 1;
	color: var(--tfc-gold); opacity: .35; pointer-events: none;
}

/* ---------- Single message template ---------- */

.tfc-single { font-family: var(--tfc-body); color: var(--tfc-ink); background: var(--tfc-paper); }
.tfc-wrap { max-width: 1200px; margin: 0 auto; padding: 0 26px; }
.tfc-single__hero { background: linear-gradient(160deg, var(--tfc-dark), var(--tfc-wine) 60%, var(--tfc-wine-mid)); color: var(--tfc-on-dark); padding: 56px 0 72px; }
.tfc-single__crumbs { font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .14em; font-size: .74rem; margin: 0 0 22px; color: #a9a49d; }
.tfc-single .tfc-single__crumbs a { color: #a9a49d; text-decoration: none; }
.tfc-single .tfc-single__crumbs a:hover { color: #fff; }
.tfc-single__player { aspect-ratio: 16 / 9; background: #000; border-radius: 24px; overflow: hidden; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); }
.tfc-single__player iframe { width: 100%; height: 100%; border: 0; display: block; }
.tfc-single__player img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tfc-single__body { padding: 64px 0 90px; }
.tfc-single__layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 60px; align-items: start; }
.tfc-single__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.tfc-single .tfc-single__tags a { font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; color: var(--tfc-red-text); text-decoration: none; border: 1px solid var(--tfc-line); padding: 6px 12px; border-radius: 40px; }
.tfc-single .tfc-single__tags a:hover { border-color: var(--tfc-red-text); }
.tfc-single h1 { font-family: var(--tfc-display); font-weight: 600; text-transform: uppercase; font-size: clamp(2.2rem, 5vw, 3.8rem); line-height: 1; margin: 0 0 18px; letter-spacing: -.01em; color: var(--tfc-ink); }
.tfc-single__meta { color: var(--tfc-muted); margin: 0 0 30px; font-size: .98rem; }
.tfc-single__scripture { font-family: var(--tfc-display); text-transform: uppercase; letter-spacing: .06em; font-size: 1.1rem; border-left: 3px solid var(--tfc-red); padding: 4px 0 4px 16px; margin: 0 0 28px; }
.tfc-single__summary { font-size: 1.24rem; line-height: 1.5; font-weight: 500; color: var(--tfc-ink-soft); margin: 0 0 24px; }
.tfc-single__content { font-size: 1.05rem; line-height: 1.7; color: var(--tfc-ink-soft); }
.tfc-single .tfc-single__content a { color: var(--tfc-red-text); }
.tfc-single__aside { border: 1px solid var(--tfc-line); border-radius: 24px; padding: 28px; background: #fff; box-shadow: var(--tfc-shadow); position: sticky; top: 110px; }
.tfc-single__aside h2 { font-family: var(--tfc-display); text-transform: uppercase; font-size: 1.3rem; margin: 0 0 10px; line-height: 1.05; }
.tfc-single__aside p { font-size: .95rem; color: var(--tfc-ink-soft); margin: 0 0 18px; }
.tfc-single__aside .tfc-btn { width: 100%; margin-bottom: 10px; }
.tfc-single__related { background: var(--tfc-blush); padding: 88px 0 104px; }
.tfc-single__related h2, .tfc-archive h1 { font-family: var(--tfc-display); font-weight: 600; text-transform: uppercase; font-size: clamp(2rem, 4vw, 3rem); line-height: 1; margin: 0 0 34px; color: var(--tfc-ink); }
.tfc-eyebrow-text { font-family: var(--tfc-display); font-weight: 500; text-transform: uppercase; letter-spacing: .26em; font-size: .72rem; color: var(--tfc-red-text); display: inline-flex; align-items: center; gap: 12px; margin: 0 0 16px; }
.tfc-eyebrow-text::before { content: ""; width: 26px; height: 2px; background: currentColor; }
.tfc-archive { padding: 80px 0 100px; }
@media (max-width: 960px) {
	.tfc-single__layout { grid-template-columns: 1fr; gap: 36px; }
	.tfc-single__aside { position: static; }
}
@media (max-width: 560px) {
	.tfc-wrap { padding: 0 20px; }
	.tfc-single__hero { padding: 28px 0 40px; }
	.tfc-single__body { padding: 44px 0 64px; }
}

/* ---------- Motion ---------- */

@keyframes tfcRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.tfc-rise { animation: tfcRise .7s var(--tfc-ease) both; } /* starts and ends visible; no JS */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- Accessibility ---------- */

/* Brand red text on cream/blush measures 4.2-4.4:1; this slightly deeper red passes WCAG AA (4.8:1+)
   for small labels. Applies to text only: buttons keep the brand red. */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor { --e-global-color-primary: #D20511; }
.tfc-main:focus { outline: none; }
.tfc-prayer .tfc-prayer__note a { color: var(--tfc-ink); text-decoration: underline; text-underline-offset: 3px; }
.tfc-prayer.tfc-scheme-dark .tfc-prayer__note a { color: #fff; }

/* ---------- Plain WordPress pages (Privacy Policy and any page not built in Elementor) ---------- */

.tfc-site.page-template-default .site-main { max-width: none; width: 100%; margin: 0; padding: 0; background: var(--tfc-cream); }
.tfc-site.page-template-default .page-header {
	display: block; max-width: none; margin: 0; padding: 72px 26px 64px; text-align: center;
	background: linear-gradient(160deg, var(--tfc-dark), var(--tfc-wine) 60%, var(--tfc-wine-mid));
}
.tfc-site.page-template-default .page-header .entry-title {
	--page-title-display: block;
	font-family: var(--tfc-display); font-weight: 600; text-transform: uppercase; color: #fff;
	font-size: clamp(2.2rem, 6vw, 4rem); line-height: 1; letter-spacing: -.01em; margin: 0;
}
.tfc-site.page-template-default .page-content {
	max-width: 760px; margin: 0 auto; padding: 64px 26px 96px;
	font-size: 1.05rem; line-height: 1.75; color: var(--tfc-ink-soft);
}
.tfc-site.page-template-default .page-content h2 {
	font-family: var(--tfc-display); font-weight: 600; text-transform: uppercase; color: var(--tfc-ink);
	font-size: 1.5rem; line-height: 1.1; margin: 2.2em 0 .6em;
}
.tfc-site.page-template-default .page-content strong { color: var(--tfc-ink); }
.tfc-site.page-template-default .page-content a { color: #D20511; }
.tfc-site.page-template-default .page-content ul { padding-left: 1.2em; }
.tfc-site.page-template-default .page-content li { margin-bottom: .5em; }
@media (max-width: 600px) {
	.tfc-site.page-template-default .page-header { padding: 48px 20px 44px; }
	.tfc-site.page-template-default .page-content { padding: 44px 20px 72px; }
}
.tfc-on-red p, .tfc-on-red .elementor-heading-title { color: #fff; }

/* ---------- 404 ---------- */

.tfc-404__hero { min-height: 62vh; display: flex; align-items: center; padding: 96px 0 104px; text-align: center; }
.tfc-404__hero .tfc-wrap { max-width: 760px; }
.tfc-404__code { font-family: var(--tfc-serif, 'Instrument Serif', serif); font-style: italic; font-size: clamp(5rem, 16vw, 9rem); line-height: .9; color: var(--tfc-gold); margin: 0 0 10px; }
.tfc-404 .tfc-404__hero h1 { color: #fff; }
.tfc-404 .tfc-single__summary { color: var(--tfc-on-dark); }
.tfc-404__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 30px 0 26px; }
.tfc-404__help { color: #cfc8c0; margin: 0; }
.tfc-404 .tfc-404__help a { color: var(--tfc-gold); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) {
	.tfc-404__hero { padding: 64px 0 72px; }
	.tfc-404__actions .tfc-btn { width: 100%; }
}
