.elementor-89 .elementor-element.elementor-element-c100000{--display:flex;}.elementor-89 .elementor-element.elementor-element-c110000{--display:flex;}.elementor-89 .elementor-element.elementor-element-c111000{--display:flex;}.elementor-widget-heading .elementor-heading-title{color:var( --e-global-color-primary );}.elementor-widget-text-editor{color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-89 .elementor-element.elementor-element-c111100{--display:flex;}/* Start custom CSS *//* ==== p3 shared components (the LEGAL3 subset of PAGES3 spec/shared.css) - pasted verbatim at the
   top of each page's custom CSS. `body.elementor-page-89` is replaced by Elementor Pro with body.elementor-page-<post id>. */

body.elementor-page-89 {
	--p3-top: 40px;
	--p3-bottom: 80px;
	--p3-band-gap: 50px;
}

/* Bands and columns: Elementor containers carry default padding and gaps through custom
   properties; zero them here so every dimension below is the mockup's. */
body.elementor-page-89 .e-con.p3-band,
body.elementor-page-89 .e-con.p3-wrap,
body.elementor-page-89 .e-con.p3-card,
body.elementor-page-89 .e-con.p3-panel {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--gap: 0px;
}

body.elementor-page-89 .e-con.p3-band {
	--width: 100%;
	width: 100%;
	flex-direction: column;
	align-items: stretch;
}

body.elementor-page-89 .e-con.p3-band + .e-con.p3-band {
	margin-top: var(--p3-band-gap);
}

body.elementor-page-89 .elementor > .e-con.p3-band:first-child {
	margin-top: var(--p3-top);
}

body.elementor-page-89 .elementor > .e-con.p3-band:last-child {
	margin-bottom: var(--p3-bottom);
}

body.elementor-page-89 .e-con.p3-wrap {
	--width: min(100% - 2 * var(--b26-gutter), var(--b26-max));
	width: min(100% - 2 * var(--b26-gutter), var(--b26-max));
	margin-inline: auto;
}

@media (min-width: 640px) {
	body.elementor-page-89 .e-con.p3-wrap {
		--width: min(100% - 2 * var(--b26-gutter-sm), var(--b26-max));
		width: min(100% - 2 * var(--b26-gutter-sm), var(--b26-max));
	}
}

body.elementor-page-89 .e-con.p3-card {
	background: var(--b26-white);
	border-radius: var(--b26-radius-md);
}

body.elementor-page-89 .e-con.p3-panel {
	background: var(--b26-sand);
	border-radius: var(--b26-radius-md);
}
/* ==== end p3 shared ==== */

/* ==== p3l: legal pages - /terms-of-use/, /work-and-volunteer-with-us/, /state-fundraising-disclosures/ ====
   Layout: the Donor-Advised Funds mockup Sandro sent on 2026-09-13 (spec/mockup-daf.png, 0.7148 screenshot
   px per CSS px): a sand panel 1350 wide with 60px padding, white blocks 100% of the column, the theme's
   newsletter card below. Positions were measured on that screenshot as baselines and box edges
   (runs/measure/); sizes and weights are the theme tokens the site's own build of that page uses
   (/donate-via-daf/: h1 44, section heading 30, body 16, headings 600).
   Converting a baseline to a CSS line box uses each font's typo metrics (PAGES3, fontTools):
   Plus Jakarta Sans ascent 1.038 / descent 0.222 / cap 0.745, Instrument Sans 0.970 / 0.250 / 0.720.
   So h1 44/55 has its baseline 45.45 below the line top and its cap top 12.67 below it; h2 30/40 -> 32.24
   and 9.89; h3 24/32 -> 25.79 and 7.91; body 16/20 -> 15.76 and 4.24. */

/* The header of these pages ends 16.1 below the DONATE button (measured on /terms-of-use/ at 1500:
   button bottom 200.9, header bottom 217.0), and an Elementor body starts at the header's bottom
   (measured on /donate/). The mockup puts the panel 31.4 below the DONATE button and the newsletter card
   48.5 below the panel; the theme's subscribe section has 50px of top padding. */
body.elementor-page-89 {
	--p3-top: 15.3px;
	--p3-bottom: -1.5px;
}

/* The theme cancels the footer's 96px top margin only when the footer directly follows the newsletter band
   (app.css ".b26-footer{margin-top:var(--b26-space-13)}", ".b26-subscribe+.b26-footer{margin-top:0}").
   Cookiebot's uc.js (addUspapiLocatorFrame) appends a display:none iframe named __uspapiLocator to <body>
   as soon as <body> exists, while the page is still being parsed, so the iframe ends up after whichever
   element had been parsed by then. Measured 2026-09-13: after the footer on production, between the
   newsletter band and the footer on a local copy of /work-and-volunteer-with-us/ - where the "+" rule
   stopped matching and a 96px strip opened above the footer, the strip Sandro saw on that page. "~" still
   matches with the iframe in between. */
body.elementor-page-89 .b26-subscribe ~ .b26-footer {
	margin-top: 0;
}

/* Top 48.5: the mockup's h1 cap top is 61.1 below the panel top. Bottom 60: the last white block ends
   59.7 above the panel bottom. */
body.elementor-page-89 .e-con.p3l-panel {
	--padding-top: 48.5px;
	--padding-right: 60px;
	--padding-bottom: 60px;
	--padding-left: 60px;
	padding: 48.5px 60px 60px;
}

/* A block column, so vertical margins behave like prose. 723.7 wide and centred in the mockup; 68ch of
   the 16px body face is 724.6, which is why the font is declared here. */
body.elementor-page-89 .e-con.p3l-col {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--gap: 0px;
	--display: block;
	--width: 100%;
	display: block;
	width: 100%;
	max-width: var(--b26-prose);
	margin-inline: auto;
	font-family: var(--b26-font-body);
	font-size: var(--b26-size-body);
	line-height: 20px;
	color: var(--b26-ink);
}

/* ---- type ---------------------------------------------------------------------------------------- */

/* The mockup's two-line h1 has a 55.1 line pitch. */
body.elementor-page-89 .p3l-title .elementor-heading-title {
	margin: 0;
	font-family: var(--b26-family-h1);
	font-size: var(--b26-size-h1);
	font-weight: var(--b26-weight-h1);
	line-height: 1.25;
	letter-spacing: var(--b26-ls-h1, normal);
	color: var(--b26-ink);
	text-wrap: balance;
}

/* Body 16 on a 20.2 line pitch in the mockup. */
body.elementor-page-89 .p3l-prose {
	font-family: var(--b26-font-body);
	font-size: var(--b26-size-body);
	font-weight: 400;
	line-height: 20px;
	color: var(--b26-ink);
}

body.elementor-page-89 .p3l-prose h2 {
	font-family: var(--b26-family-h3);
	font-size: var(--b26-size-h3);
	font-weight: var(--b26-weight-h3);
	line-height: var(--b26-lh-h3);
	letter-spacing: var(--b26-ls-h3, normal);
	color: var(--b26-ink);
	text-wrap: balance;
}

body.elementor-page-89 .p3l-prose h3 {
	font-family: var(--b26-family-h4);
	font-size: var(--b26-size-h4);
	font-weight: var(--b26-weight-h4);
	line-height: var(--b26-lh-h4);
	letter-spacing: var(--b26-ls-h4, normal);
	color: var(--b26-ink);
	text-wrap: balance;
}

/* ---- vertical rhythm, from the mockup's baselines --------------------------------------------------
   h1 last baseline -> h2 baseline 71.0      => 29.2 below the h1
   h2 baseline -> first body baseline 34.15  => 10.6 below a section heading
   paragraph last baseline -> next first 39.6 on a 20 line => 20 between paragraphs
   body last baseline -> white block top 45.0 => 40.7 above a white block
   white block bottom -> h2 baseline 68.7    => 36.5 above a section heading that follows a block
   h2 baseline -> white block top 21.4       => 13.6 between a section heading and its block
   The mockup has no heading straight after body text: 33.4 keeps the 47.5 it leaves between a block's
   bottom and the next heading's cap top. Sub-headings (h3) are not in the mockup: 23.9 above (36 from
   the body baseline to the cap top) and 12 below. */

body.elementor-page-89 .p3l-col > .elementor-element {
	margin: 0;
}

body.elementor-page-89 .p3l-col > .elementor-element + .elementor-element {
	margin-top: 20px;
}

body.elementor-page-89 .p3l-col > .p3l-title + .elementor-element {
	margin-top: 29.2px;
}

body.elementor-page-89 .p3l-col > .elementor-element + .p3l-block {
	margin-top: 40.7px;
}

body.elementor-page-89 .p3l-col > .elementor-element:has(> .elementor-widget-container > h2:last-child) + .p3l-block {
	margin-top: 13.6px;
}

body.elementor-page-89 .p3l-col > .p3l-block + .elementor-element {
	margin-top: 36.5px;
}

body.elementor-page-89 .p3l-prose .elementor-widget-container > * {
	margin: 0;
}

body.elementor-page-89 .p3l-prose .elementor-widget-container > * + * {
	margin-top: 20px;
}

body.elementor-page-89 .p3l-prose .elementor-widget-container > * + h2 {
	margin-top: 33.4px;
}

body.elementor-page-89 .p3l-prose .elementor-widget-container > * + h3 {
	margin-top: 23.9px;
}

body.elementor-page-89 .p3l-prose .elementor-widget-container > h2 + * {
	margin-top: 10.6px;
}

body.elementor-page-89 .p3l-prose .elementor-widget-container > h3 + * {
	margin-top: 12px;
}

/* ---- lists: the theme's prose markers, restated because these widgets are not .b26-prose ---------- */

body.elementor-page-89 .p3l-prose ul,
body.elementor-page-89 .p3l-prose ol {
	padding-left: var(--b26-space-6);
}

body.elementor-page-89 .p3l-prose li + li {
	margin-top: var(--b26-space-2);
}

body.elementor-page-89 .p3l-prose ul {
	list-style: none;
	padding-left: 18.68px;
}

body.elementor-page-89 .p3l-prose ul > li {
	position: relative;
	padding-left: 0;
}

body.elementor-page-89 .p3l-prose ul > li::before {
	content: "";
	position: absolute;
	left: -17.83px;
	top: 0.45em;
	width: 5.4px;
	height: 5.4px;
	border-radius: 50%;
	background: var(--b26-ink);
}

body.elementor-page-89 .p3l-prose ol {
	list-style: none;
	counter-reset: p3l-ol;
}

/* The theme's counter ignores <ol start>, so on the live Terms of Use every one-item list after the
   first showed 1. The numbers the text was written with are kept here. */
body.elementor-page-89 .p3l-prose ol[start="2"] { counter-reset: p3l-ol 1; }
body.elementor-page-89 .p3l-prose ol[start="3"] { counter-reset: p3l-ol 2; }
body.elementor-page-89 .p3l-prose ol[start="4"] { counter-reset: p3l-ol 3; }
body.elementor-page-89 .p3l-prose ol[start="5"] { counter-reset: p3l-ol 4; }
body.elementor-page-89 .p3l-prose ol[start="6"] { counter-reset: p3l-ol 5; }
body.elementor-page-89 .p3l-prose ol[start="7"] { counter-reset: p3l-ol 6; }
body.elementor-page-89 .p3l-prose ol[start="8"] { counter-reset: p3l-ol 7; }
body.elementor-page-89 .p3l-prose ol[start="9"] { counter-reset: p3l-ol 8; }
body.elementor-page-89 .p3l-prose ol[start="10"] { counter-reset: p3l-ol 9; }
body.elementor-page-89 .p3l-prose ol[start="11"] { counter-reset: p3l-ol 10; }
body.elementor-page-89 .p3l-prose ol[start="12"] { counter-reset: p3l-ol 11; }

body.elementor-page-89 .p3l-prose ol > li {
	counter-increment: p3l-ol;
	position: relative;
}

body.elementor-page-89 .p3l-prose ol > li::before {
	content: counter(p3l-ol);
	position: absolute;
	left: calc(-1 * var(--b26-space-6));
	top: 0;
	width: 1.4em;
	height: 1.4em;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--b26-sector);
	color: var(--b26-ink);
	font-family: var(--b26-font-display);
	font-size: 0.72em;
	line-height: 1;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

/* ---- white blocks ---------------------------------------------------------------------------------- */

body.elementor-page-89 .e-con.p3l-block {
	--padding-top: 40px;
	--padding-right: 40px;
	--padding-bottom: 40px;
	--padding-left: 40px;
	--display: block;
	display: block;
	padding: 40px;
}

/* The registration seal (Sandro, 2026-09-13, after the first publish): no white block around it - no
   background, no padding - and the logo with the link label beside it, the label centred on the logo, as
   on the page before the rebuild. The theme resets every img to display:block (app.css
   "img,picture,video,canvas,svg{display:block;max-width:100%}"), which put the logo on a line of its own
   with the label under it; the link is a flex row instead, so on a phone the label wraps beside the logo
   (measured at 375: two lines, centred on the logo within 0.3px). About 9px between logo and label: the
   gap on Sandro's screenshot of the old page (12 screenshot px, logo 125 screenshot px for 90 CSS px).
   Without the block the seal follows the paragraph above at the paragraph gap, 20px. The theme's link
   rule for body copy skips a link that holds an image; the old page underlined this one through
   .b26-prose a. */
body.elementor-page-89 .e-con.p3l-block.p3l-seal {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	padding: 0;
	background: none;
	border-radius: 0;
}

body.elementor-page-89 .p3l-col > .elementor-element + .p3l-block.p3l-seal {
	margin-top: 20px;
}

body.elementor-page-89 .p3l-seal .elementor-widget-container > p {
	text-align: left;
}

body.elementor-page-89 .p3l-seal a {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	text-decoration: underline;
	text-decoration-color: var(--b26-yellow);
	text-decoration-thickness: 2px;
}

body.elementor-page-89 .p3l-seal a:hover {
	text-decoration-color: currentcolor;
}

body.elementor-page-89 .p3l-seal img {
	flex: none;
	width: 90px;
	max-width: 100%;
	height: auto;
	margin-right: 9px;
}

/* ---- tablet and mobile ------------------------------------------------------------------------------ */

@media (max-width: 1024px) {
	body.elementor-page-89 .e-con.p3l-panel {
		--padding-top: 30px;
		--padding-right: 40px;
		--padding-bottom: 40px;
		--padding-left: 40px;
		padding: 30px 40px 40px;
	}
}

@media (max-width: 767px) {
	body.elementor-page-89 .e-con.p3l-panel {
		--padding-top: 20px;
		--padding-right: 20px;
		--padding-bottom: 20px;
		--padding-left: 20px;
		padding: 20px;
	}

	body.elementor-page-89 .e-con.p3l-block {
		--padding-top: 20px;
		--padding-right: 20px;
		--padding-bottom: 20px;
		--padding-left: 20px;
		padding: 20px;
	}
}

/* ==== p3t: /tax-deductibility/ - the legal-page layout with the country accordion in a white block ====
   The accordion is the theme's own FAQ markup (inc/charity-blocks.php tlycs26_charity_faq), so its type,
   dividers and Expand/Collapse toggle come from app.css, and accordion.js opens the panel a URL names. */

/* app.css gives .b26-faq var(--b26-space-9) of top margin, written for an accordion under a band heading;
   inside the block the block's own padding is that space. */
body.elementor-page-89 .p3t-faq .b26-faq {
	margin-top: 0;
}

/* app.css pads every panel's bottom by var(--b26-space-6); on the last country that stacks on the block's
   own bottom padding. */
body.elementor-page-89 .p3t-faq .b26-acc__item:last-child > .b26-acc__panel {
	padding-bottom: 0;
}

/* The donate links in the panels. app.css underlines them through ".b26-prose a", and on an Elementor page
   Elementor's frontend.min.css ".elementor a{text-decoration:none}" - same specificity, loaded later - wins,
   so the yellow underline the live page draws was gone (measured 2026-09-13 in a mock on /terms-of-use/:
   computed text-decoration-line none; with this rule underline, rgb(255, 178, 0), 2px). */
body.elementor-page-89 .p3t-faq .b26-acc__panel a {
	text-decoration: underline;
	text-decoration-color: var(--b26-yellow);
	text-decoration-thickness: 2px;
}

body.elementor-page-89 .p3t-faq .b26-acc__panel a:hover {
	text-decoration-color: currentcolor;
}/* End custom CSS */