/* =========================================================================
   KCIMESG Site Kit — site styles
   Tokens follow the KCIMESG design system (light + dark).
   Kadence palette variables are mapped to the same tokens so theme parts
   (header, footer, buttons) follow the light/dark switch too.
   ========================================================================= */

:root {
	--kc-paper: #f7f4ee;
	--kc-raised: #fdfbf7;
	--kc-sunken: #ece6dc;
	--kc-ink: #262a2f;
	--kc-ink-muted: #4c5866;
	--kc-brand: #1f54b1;
	--kc-brand-deep: #173f87;
	--kc-brand-soft: #dce5f5;
	--kc-on-brand: #fdfbf7;
	--kc-sage: #4f7260;
	--kc-sage-soft: #dfe8e1;
	--kc-sand: #b8925a;
	--kc-sand-soft: #f1e6d3;
	--kc-line: #cfc6b8;
	--kc-field-border: #6b7480;
	--kc-focus: #9a5a00;
	--kc-success: #3b6f4c;
	--kc-error: #9e3434;
	--kc-logo-panel: #f7f4ee;
	--kc-shadow: 0 2px 10px rgba(38, 48, 58, .07);

	--kc-font-body: 'Atkinson Hyperlegible', Verdana, system-ui, sans-serif;
	--kc-font-heading: 'Lexend', 'Atkinson Hyperlegible', system-ui, sans-serif;
	--kc-scale: 1;

	--kc-s1: 8px; --kc-s2: 16px; --kc-s3: 24px; --kc-s4: 40px; --kc-s5: 64px; --kc-s6: 104px;
	--kc-r-sm: 6px; --kc-r-md: 12px; --kc-r-lg: 24px; --kc-r-pill: 999px;
	--kc-target: 48px;
	--kc-measure: 65ch;
	--kc-container: 1120px;
	--kc-header-h: 96px;
}

/* Dark theme: chosen in the comfort bar, or by the system when no choice was made. */
html[data-theme="dark"] {
	--kc-paper: #171c21; --kc-raised: #20262d; --kc-sunken: #12161a;
	--kc-ink: #ebe7e0; --kc-ink-muted: #b9b3a8;
	--kc-brand: #8fb0f0; --kc-brand-deep: #c3d4f5; --kc-brand-soft: #1f2f4d; --kc-on-brand: #171c21;
	--kc-sage: #9cc0aa; --kc-sage-soft: #22342b; --kc-sand: #d9b886; --kc-sand-soft: #3a3022;
	--kc-line: #3a424b; --kc-field-border: #8a929b; --kc-focus: #f0b45a;
	--kc-success: #94cfa6; --kc-error: #f09a9a;
	--kc-shadow: 0 2px 10px rgba(0, 0, 0, .35);
	color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) {
		--kc-paper: #171c21; --kc-raised: #20262d; --kc-sunken: #12161a;
		--kc-ink: #ebe7e0; --kc-ink-muted: #b9b3a8;
		--kc-brand: #8fb0f0; --kc-brand-deep: #c3d4f5; --kc-brand-soft: #1f2f4d; --kc-on-brand: #171c21;
		--kc-sage: #9cc0aa; --kc-sage-soft: #22342b; --kc-sand: #d9b886; --kc-sand-soft: #3a3022;
		--kc-line: #3a424b; --kc-field-border: #8a929b; --kc-focus: #f0b45a;
		--kc-success: #94cfa6; --kc-error: #f09a9a;
		--kc-shadow: 0 2px 10px rgba(0, 0, 0, .35);
		color-scheme: dark;
	}
}

/* Kadence palette follows our tokens (light and dark). */
:root, html[data-theme] {
	--global-palette1: var(--kc-brand);
	--global-palette2: var(--kc-brand-deep);
	--global-palette3: var(--kc-ink);
	--global-palette4: var(--kc-ink);
	--global-palette5: var(--kc-ink-muted);
	--global-palette6: var(--kc-field-border);
	--global-palette7: var(--kc-sunken);
	--global-palette8: var(--kc-paper);
	--global-palette9: var(--kc-raised);
	--global-palette-btn: var(--kc-on-brand);
	--global-palette-btn-hover: var(--kc-on-brand);
}

html[data-text="l"] { --kc-scale: 1.16; }
html[data-text="xl"] { --kc-scale: 1.32; }

html { scroll-padding-top: calc(var(--kc-header-h) + 16px); }
@media (prefers-reduced-motion: no-preference) {
	html:not([data-calm="on"]) { scroll-behavior: smooth; }
}

body {
	background: var(--kc-paper);
	color: var(--kc-ink);
	font-family: var(--kc-font-body);
	font-size: calc(19px * var(--kc-scale));
	line-height: 1.65;
}
body .site, body .content-bg, body .site-container { background: transparent; }

/* Typography ------------------------------------------------------------ */
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4,
.kc h1, .kc h2, .kc h3 { font-family: var(--kc-font-heading); color: var(--kc-ink); letter-spacing: -0.005em; text-wrap: balance; }
.entry-content h1, .kc-h1 { font-size: calc(clamp(30px, 3.2vw, 40px) * var(--kc-scale)); line-height: 1.18; font-weight: 500; text-wrap: balance; }
.entry-content h2 { font-size: calc(clamp(28px, 3.2vw, 32px) * var(--kc-scale)); line-height: 1.25; font-weight: 500; margin: 0 0 var(--kc-s2); }
.entry-content h3 { font-size: calc(clamp(22px, 2.4vw, 25px) * var(--kc-scale)); line-height: 1.3; font-weight: 500; margin: var(--kc-s4) 0 var(--kc-s1); }
.entry-content h4 { font-size: calc(20px * var(--kc-scale)); line-height: 1.35; font-weight: 600; margin: var(--kc-s3) 0 var(--kc-s1); }
.entry-content p, .entry-content li, .entry-content dd, .entry-content td { font-size: calc(19px * var(--kc-scale)); line-height: 1.65; }
.entry-content p, .entry-content ul, .entry-content ol { max-width: var(--kc-measure); }
.entry-content p { margin: 0 0 var(--kc-s2); }
.entry-content ul, .entry-content ol { margin-top: 0; margin-bottom: var(--kc-s2); }
.entry-content a[href^="mailto:"] { overflow-wrap: anywhere; }
.entry-content .has-text-align-center { margin-left: auto; margin-right: auto; }
.entry-content strong { font-weight: 700; }
.kc-lead, .entry-content .kc-lead { font-size: calc(22px * var(--kc-scale)); line-height: 1.55; color: var(--kc-ink); }
.kc-small, .entry-content .kc-small { font-size: calc(16px * var(--kc-scale)); color: var(--kc-ink-muted); }
.kc-eyebrow { font-family: var(--kc-font-heading); font-weight: 500; font-size: calc(16px * var(--kc-scale)); color: var(--kc-sage); margin-bottom: var(--kc-s1); letter-spacing: .02em; }

.entry-content a, .kc a { color: var(--kc-brand); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.entry-content a:hover, .kc a:hover { color: var(--kc-brand-deep); }

/* Focus: one unmistakable ring everywhere --------------------------------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--kc-focus) !important;
	outline-offset: 3px !important;
	box-shadow: none;
	transition: none !important; /* the ring appears at once, never fades in */
}

/* Screen-reader text (in case the theme's version is not present) */
.screen-reader-text:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

/* Comfort bar ------------------------------------------------------------ */
.kc-comfort { background: var(--kc-sunken); border-bottom: 1px solid var(--kc-line); font-family: var(--kc-font-body); color: var(--kc-ink); }
.kc-comfort__inner { max-width: var(--kc-container); margin: 0 auto; padding: 6px 16px; display: flex; flex-wrap: wrap; gap: 6px 24px; align-items: center; justify-content: flex-end; }
.kc-comfort__options { display: flex; flex-wrap: wrap; gap: 6px 24px; align-items: center; justify-content: flex-end; }
.kc-comfort__group { display: flex; align-items: center; gap: var(--kc-s1); }
.kc-comfort__toggle { display: none; }
.kc-comfort__label { font-size: 15px; font-weight: 700; color: var(--kc-ink-muted); }
.kc-seg { display: inline-flex; border: 2px solid var(--kc-field-border); border-radius: var(--kc-r-pill); overflow: hidden; background: var(--kc-raised); }
.kc-seg button { transition: none !important; min-height: 44px; min-width: 48px; padding: 0 14px; border: 0; border-radius: 0; background: transparent; color: var(--kc-ink); font: 400 15px/1 var(--kc-font-body); cursor: pointer; box-shadow: none; }
.kc-seg button:hover { background: var(--kc-brand-soft); color: var(--kc-ink); }
.kc-seg button[aria-pressed="true"] { background: var(--kc-brand); color: var(--kc-on-brand); font-weight: 700; }
.kc-seg button:focus-visible { outline-offset: -4px !important; }
.kc-seg .kc-seg__l { font-size: 18px; }
.kc-seg .kc-seg__xl { font-size: 21px; }
@media (max-width: 720px) {
	.kc-comfort__inner { justify-content: flex-end; gap: 6px 12px; padding: 4px 16px; }
	.kc-comfort__toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 2px solid var(--kc-field-border); border-radius: var(--kc-r-pill); background: var(--kc-raised); color: var(--kc-ink); font: 700 15px/1 var(--kc-font-body); cursor: pointer; }
	.kc-comfort__toggle span { font-family: var(--kc-font-heading); }
	.kc-comfort__options { display: none; width: 100%; justify-content: flex-start; padding-bottom: 8px; }
	.kc-comfort.is-open .kc-comfort__options { display: flex; }
	.kc-comfort__label { font-size: 14px; }
	.kc-seg button { padding: 0 10px; min-width: 44px; }
}

/* Header (Kadence) -------------------------------------------------------- */
#masthead, .site-header-wrap, .site-header-row-container-inner { background: var(--kc-raised) !important; }
#masthead { box-shadow: var(--kc-shadow); }
.site-branding a.brand img, .site-branding .custom-logo { background: var(--kc-logo-panel); border-radius: var(--kc-r-md); padding: 6px; box-sizing: content-box; }
.header-navigation .menu > li > a, .main-navigation .menu > li > a { font-family: var(--kc-font-body); font-size: calc(18px * var(--kc-scale)); color: var(--kc-ink) !important; }
.header-navigation .menu > li > a:hover, .header-navigation .menu > li.current-menu-item:not(.menu-item-type-custom) > a { color: var(--kc-brand) !important; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.header-button-wrap .header-button, .mobile-header-button-wrap .button { min-height: var(--kc-target); display: inline-flex !important; align-items: center; border-radius: var(--kc-r-md) !important; font-weight: 700 !important; font-size: calc(18px * var(--kc-scale)) !important; background: var(--kc-brand) !important; color: var(--kc-on-brand) !important; border: 2px solid var(--kc-brand) !important; text-decoration: none !important; }
.header-button-wrap .header-button:hover { background: var(--kc-brand-deep) !important; border-color: var(--kc-brand-deep) !important; }
.menu-toggle-open, .drawer-toggle { min-height: var(--kc-target); min-width: var(--kc-target); color: var(--kc-ink) !important; }
.menu-toggle-label { font-size: 17px !important; font-weight: 700; }
.popup-drawer .drawer-inner { background: var(--kc-raised) !important; color: var(--kc-ink) !important; }
.popup-drawer .drawer-inner a { color: var(--kc-ink) !important; font-size: calc(20px * var(--kc-scale)); }
.popup-drawer .drawer-header .drawer-toggle { color: var(--kc-ink) !important; }

/* Footer (Kadence) -------------------------------------------------------- */
#colophon, .site-footer-wrap, .site-footer-row-container-inner { background: var(--kc-sunken) !important; color: var(--kc-ink) !important; }
#colophon a { color: var(--kc-brand) !important; text-decoration: underline; text-underline-offset: 4px; }
#colophon p, #colophon li { font-size: calc(16px * var(--kc-scale)); line-height: 1.6; }
.kc-footer { display: grid; gap: var(--kc-s3); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); padding: var(--kc-s3) 0; text-align: left; }
.kc-footer h2 { font-family: var(--kc-font-heading); font-size: calc(18px * var(--kc-scale)); font-weight: 600; margin: 0 0 var(--kc-s1); color: var(--kc-ink); }
.kc-footer ul { list-style: none; margin: 0; padding: 0; }
.kc-footer li { margin: 0 0 6px; }
.kc-footer__legal { border-top: 1px solid var(--kc-line); padding-top: var(--kc-s2); color: var(--kc-ink-muted); font-size: calc(15px * var(--kc-scale)); }

/* Sections ---------------------------------------------------------------- */
.entry-content > .kc-section, .kc-section { padding: var(--kc-s6) 16px; margin: 0; background: var(--kc-paper); }
.kc-section.is-sunken { background: var(--kc-sunken); }
.kc-section.is-raised { background: var(--kc-raised); }
.kc-section.is-sage { background: var(--kc-sage-soft); }
.kc-section.is-sand { background: var(--kc-sand-soft); }
.kc-section.is-brand-soft { background: var(--kc-brand-soft); }
.kc-section.is-tight { padding-top: var(--kc-s5); padding-bottom: var(--kc-s5); }
.kc-section > .wp-block-group__inner-container, .kc-section > .kc-inner,
.kc-section.is-layout-constrained > * { max-width: var(--kc-container); margin-left: auto; margin-right: auto; }
.kc-section > * + * { margin-top: var(--kc-s3); }
@media (max-width: 720px) { .entry-content > .kc-section, .kc-section { padding: var(--kc-s5) 16px; } }

/* Hero */
.kc-hero { padding-top: var(--kc-s5) !important; padding-bottom: var(--kc-s5) !important; }
.kc-hero .wp-block-columns { align-items: center; gap: var(--kc-s4); }
.kc-hero h1 { margin: 0 0 var(--kc-s2); }
.kc-hero .wp-block-image img, .kc-photo img { border-radius: var(--kc-r-lg); width: 100%; height: auto; object-fit: cover; }
.kc-hero .wp-block-image img { aspect-ratio: 4 / 3; }
.kc-photo figcaption, .kc-hero figcaption { font-size: calc(15px * var(--kc-scale)); color: var(--kc-ink-muted); margin-top: var(--kc-s1); }

/* Buttons ----------------------------------------------------------------- */
.entry-content .wp-block-buttons { gap: var(--kc-s2); }
.entry-content .wp-block-button__link, .kc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--kc-s1);
	min-height: var(--kc-target); padding: 10px var(--kc-s3); border-radius: var(--kc-r-md) !important;
	font: 700 calc(19px * var(--kc-scale))/1.2 var(--kc-font-body);
	background: var(--kc-brand) !important; color: var(--kc-on-brand) !important; border: 2px solid var(--kc-brand);
	text-decoration: none !important; box-shadow: none; transition: background-color .2s ease, border-color .2s ease; cursor: pointer;
}
.entry-content .wp-block-button__link:hover, .kc-btn:hover { background: var(--kc-brand-deep) !important; border-color: var(--kc-brand-deep); color: var(--kc-on-brand) !important; }
.entry-content .is-style-outline .wp-block-button__link, .kc-btn.is-secondary { background: transparent !important; color: var(--kc-brand) !important; border: 2px solid var(--kc-brand); }
.entry-content .is-style-outline .wp-block-button__link:hover, .kc-btn.is-secondary:hover { background: var(--kc-brand-soft) !important; color: var(--kc-ink) !important; }

/* Cards ------------------------------------------------------------------- */
.kc-cards { gap: var(--kc-s3) !important; }
.kc-card { background: var(--kc-raised); border-radius: var(--kc-r-lg); padding: var(--kc-s3) !important; box-shadow: var(--kc-shadow); display: flex; flex-direction: column; gap: var(--kc-s1); height: 100%; }
.kc-card.is-sage { background: var(--kc-sage-soft); }
.kc-card.is-sand { background: var(--kc-sand-soft); }
.kc-card.is-brand-soft { background: var(--kc-brand-soft); }
.kc-card > * { margin: 0 !important; }
.kc-card h3 { margin: 0 !important; font-size: calc(23px * var(--kc-scale)); }
.kc-card p:last-child { margin-top: auto !important; }
.kc-card .kc-icon { width: 44px; height: 44px; border-radius: var(--kc-r-pill); display: grid; place-items: center; background: var(--kc-brand-soft); color: var(--kc-brand); margin-bottom: var(--kc-s1) !important; }
.kc-card.is-sage .kc-icon { background: var(--kc-raised); color: var(--kc-sage); }
.kc-card.is-sand .kc-icon { background: var(--kc-raised); color: var(--kc-ink); }
.kc-icon svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.wp-block-column.kc-card { flex-basis: 0; }

/* Meet-up cards */
.kc-meetup dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 4px var(--kc-s2); }
.kc-meetup dt { font-weight: 700; }
.kc-meetup dd { margin: 0; }
.kc-tag { display: inline-block; padding: 4px 12px; border-radius: var(--kc-r-pill); background: var(--kc-sand-soft); color: var(--kc-ink); font-size: calc(15px * var(--kc-scale)); font-weight: 700; }

/* Lists with sage markers */
.entry-content ul.kc-list { list-style: none; padding-left: 0; }
.entry-content ul.kc-list li { position: relative; padding-left: 28px; margin-bottom: var(--kc-s1); }
.entry-content ul.kc-list li::before { content: ""; position: absolute; left: 4px; top: .62em; width: 10px; height: 10px; border-radius: 50%; background: var(--kc-sage); }

/* Quote / testimonial */
.entry-content .kc-quote { border: 0; margin: 0; padding: var(--kc-s4) var(--kc-s3); background: var(--kc-sand-soft); border-radius: var(--kc-r-lg); }
.entry-content .kc-quote p { font-family: var(--kc-font-heading); font-size: calc(21px * var(--kc-scale)); line-height: 1.55; font-weight: 400; max-width: none; }
.entry-content .kc-quote cite { display: block; margin-top: var(--kc-s2); font-style: normal; font-weight: 700; color: var(--kc-ink-muted); font-size: calc(16px * var(--kc-scale)); }

/* Notice boxes */
.kc-note { border: 2px solid var(--kc-field-border); border-radius: var(--kc-r-md); padding: var(--kc-s2) var(--kc-s3) !important; background: var(--kc-raised); }
.kc-note p { font-size: calc(17px * var(--kc-scale)) !important; margin: 0; }
.kc-note.is-important { border-color: var(--kc-brand); background: var(--kc-brand-soft); }
.kc-keypoints { background: var(--kc-brand-soft); border-radius: var(--kc-r-md); padding: var(--kc-s3) !important; }
.kc-keypoints p:first-of-type { font-family: var(--kc-font-heading); font-weight: 500; font-size: calc(20px * var(--kc-scale)); margin: 0 0 var(--kc-s1); }
.kc-keypoints ul { margin: 0; }

/* Accordions (core Details block) */
.entry-content details.wp-block-details { background: var(--kc-raised); border-radius: var(--kc-r-md); border: 2px solid var(--kc-line); padding: 0; margin: 0 0 var(--kc-s2); }
.entry-content details.wp-block-details summary { cursor: pointer; min-height: var(--kc-target); display: flex; align-items: center; gap: var(--kc-s1); padding: var(--kc-s2) var(--kc-s3); font-family: var(--kc-font-heading); font-weight: 500; font-size: calc(21px * var(--kc-scale)); list-style: none; }
.entry-content details.wp-block-details summary::-webkit-details-marker { display: none; }
.entry-content details.wp-block-details summary::before { content: "+"; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--kc-brand-soft); color: var(--kc-brand); font-family: var(--kc-font-body); font-weight: 700; flex: none; }
.entry-content details.wp-block-details[open] summary::before { content: "−"; }
.entry-content details.wp-block-details > *:not(summary) { padding: 0 var(--kc-s3); }
.entry-content details.wp-block-details > *:last-child { padding-bottom: var(--kc-s3); }

/* Long read page (What is ME/CFS?) --------------------------------------- */
.kc-longread:not(:has(> .wp-block-group__inner-container)),
.kc-longread > .wp-block-group__inner-container { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--kc-s5); align-items: start; }
.kc-toc { position: sticky; top: calc(var(--kc-header-h) + 16px); background: var(--kc-raised); border-radius: var(--kc-r-md); padding: var(--kc-s2) var(--kc-s3) !important; box-shadow: var(--kc-shadow); }
.kc-toc p:first-of-type { font-weight: 700; color: var(--kc-ink-muted); font-size: calc(16px * var(--kc-scale)) !important; margin: 0 0 var(--kc-s1); }
.kc-toc ol { margin: 0; padding-left: 22px; }
.kc-toc li { font-size: calc(17px * var(--kc-scale)) !important; line-height: 1.45 !important; margin-bottom: 10px; }
.kc-toc a { text-decoration-thickness: 1px !important; }
.kc-toc a[aria-current="true"] { color: var(--kc-ink) !important; font-weight: 700; text-decoration-thickness: 2px !important; }
.kc-chapter { scroll-margin-top: calc(var(--kc-header-h) + 16px); padding-top: var(--kc-s4); }
.kc-chapter + .kc-chapter { border-top: 1px solid var(--kc-line); margin-top: var(--kc-s4); }
.kc-chapter h2 { display: flex; gap: var(--kc-s2); align-items: baseline; }
.kc-chapter .kc-chapter__num { font-family: var(--kc-font-heading); color: var(--kc-sage); font-weight: 600; }
.kc-back { font-size: calc(16px * var(--kc-scale)) !important; }
.kc-figure img { border-radius: var(--kc-r-md); background: #fff; max-width: 100%; height: auto; }
.kc-figure figcaption { font-size: calc(15px * var(--kc-scale)); color: var(--kc-ink-muted); }
.kc-severity { gap: var(--kc-s2) !important; }
.kc-severity .kc-card h3 { font-size: calc(21px * var(--kc-scale)); }
.kc-severity .kc-card.is-very-severe { background: var(--kc-brand-soft); }
.kc-resources h3 { margin-top: var(--kc-s4); }
.kc-resources p { margin-bottom: var(--kc-s2); }
@media (max-width: 960px) {
	.kc-longread:not(:has(> .wp-block-group__inner-container)), .kc-longread > .wp-block-group__inner-container { grid-template-columns: 1fr; gap: var(--kc-s3); }
	.kc-toc { position: static; }
}

/* Video facade ------------------------------------------------------------ */
.kc-video { max-width: 860px; margin: 0 auto; }
.kc-video__frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--kc-r-lg); overflow: hidden; background: var(--kc-brand-deep); }
.kc-video__frame img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .9; }
.kc-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.kc-video__play { position: absolute; inset: 0; margin: auto; width: max-content; height: max-content; display: inline-flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 var(--kc-s3); border-radius: var(--kc-r-pill); border: 0; background: var(--kc-raised); color: var(--kc-ink); font: 700 calc(19px * var(--kc-scale)) var(--kc-font-body); cursor: pointer; box-shadow: var(--kc-shadow); }
.kc-video__play:hover { background: var(--kc-brand-soft); }
.kc-video__play svg { width: 22px; height: 22px; fill: var(--kc-brand); }
.kc-video__caption { font-size: calc(16px * var(--kc-scale)); color: var(--kc-ink-muted); margin-top: var(--kc-s1); max-width: none !important; }

/* Join / donate ------------------------------------------------------------ */
.kc-join { max-width: 640px; margin: 0 auto; }
.kc-toggle { display: inline-flex; flex-wrap: wrap; padding: 6px; gap: 6px; background: var(--kc-sunken); border-radius: var(--kc-r-pill); margin: 0 0 var(--kc-s3); }
.kc-toggle button { transition: none !important; min-height: var(--kc-target); padding: 0 var(--kc-s3); border: 0; border-radius: var(--kc-r-pill); background: transparent; color: var(--kc-ink); font: 700 calc(18px * var(--kc-scale)) var(--kc-font-body); cursor: pointer; box-shadow: none; }
.kc-toggle button:hover { background: var(--kc-raised); color: var(--kc-ink); }
.kc-toggle button[aria-selected="true"] { background: var(--kc-brand); color: var(--kc-on-brand); }
.kc-toggle-wrap { text-align: center; }
.kc-panel { padding: var(--kc-s4) var(--kc-s3); border-radius: var(--kc-r-lg); background: var(--kc-raised); box-shadow: var(--kc-shadow); }
.kc-panel.is-donate { background: var(--kc-sand-soft); }
.kc-panel[hidden] { display: none; }
.kc-panel + .kc-panel { margin-top: var(--kc-s4); }
.kc-join.is-enhanced .kc-panel + .kc-panel { margin-top: 0; }
.kc-panel h2 { font-size: calc(28px * var(--kc-scale)); margin: 0 0 var(--kc-s1); }
.kc-panel .kc-intro { color: var(--kc-ink-muted); margin: 0 0 var(--kc-s3); }
.kc-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--kc-s1); padding: var(--kc-s2) var(--kc-s3); background: var(--kc-brand-soft); border-radius: var(--kc-r-md); margin: 0 0 var(--kc-s3); }
.kc-price b { font: 600 calc(36px * var(--kc-scale))/1 var(--kc-font-heading); color: var(--kc-ink); }
.kc-price span { color: var(--kc-ink); }
.kc-form fieldset { border: 0; padding: 0; margin: 0 0 var(--kc-s3); min-width: 0; }
.kc-form legend, .kc-form .kc-label { display: block; font: 700 calc(18px * var(--kc-scale))/1.4 var(--kc-font-body); color: var(--kc-ink); margin: 0 0 var(--kc-s1); padding: 0; }
.kc-form .kc-optional { font-weight: 400; color: var(--kc-ink-muted); }
.kc-field { margin: 0 0 var(--kc-s3); }
.kc-form input[type="text"], .kc-form input[type="email"], .kc-form input[type="tel"], .kc-form input[type="number"], .kc-form textarea, .kc-form select {
	box-sizing: border-box; width: 100%; min-height: var(--kc-target); padding: 10px var(--kc-s2);
	border: 2px solid var(--kc-field-border); border-radius: var(--kc-r-sm); background: var(--kc-paper); color: var(--kc-ink);
	font: 400 calc(19px * var(--kc-scale))/1.4 var(--kc-font-body); box-shadow: none;
}
.kc-panel.is-donate .kc-form input[type="text"], .kc-panel.is-donate .kc-form input[type="email"], .kc-panel.is-donate .kc-form input[type="number"], .kc-panel.is-donate .kc-form textarea { background: var(--kc-raised); }
.kc-form textarea { min-height: 110px; }
.kc-form .kc-hint { font-size: calc(16px * var(--kc-scale)); color: var(--kc-ink-muted); margin: 6px 0 0; }
.kc-form .kc-error { font-size: calc(16px * var(--kc-scale)); color: var(--kc-error); font-weight: 700; margin: 6px 0 0; }
.kc-form .kc-error:empty { display: none; }
.kc-form [aria-invalid="true"] { border-color: var(--kc-error) !important; }
.kc-choices { display: grid; gap: var(--kc-s1); }
.kc-choices.is-row { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.kc-choice { display: flex; gap: 12px; align-items: flex-start; min-height: var(--kc-target); padding: 12px var(--kc-s2); border: 2px solid var(--kc-field-border); border-radius: var(--kc-r-md); background: var(--kc-raised); cursor: pointer; font-size: calc(18px * var(--kc-scale)); line-height: 1.4; }
.kc-choice:has(input:checked) { border-color: var(--kc-brand); background: var(--kc-brand-soft); }
.kc-choice input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--kc-brand); flex: none; }
.kc-amounts { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: var(--kc-s1); }
.kc-amount { position: relative; }
.kc-amount input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.kc-amount span { display: flex; justify-content: center; align-items: center; min-height: 56px; border: 2px solid var(--kc-field-border); border-radius: var(--kc-r-md); background: var(--kc-raised); font: 700 calc(21px * var(--kc-scale)) var(--kc-font-body); color: var(--kc-ink); }
.kc-amount input:checked + span { border-color: var(--kc-brand); background: var(--kc-brand-soft); }
.kc-amount input:focus-visible + span { outline: 3px solid var(--kc-focus); outline-offset: 3px; }
.kc-check { display: flex; gap: 12px; align-items: flex-start; padding: var(--kc-s2); background: var(--kc-raised); border-radius: var(--kc-r-md); font-size: calc(17px * var(--kc-scale)); line-height: 1.5; cursor: pointer; }
.kc-panel:not(.is-donate) .kc-check { background: var(--kc-paper); }
.kc-check input { width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--kc-brand); flex: none; }
.kc-reveal[hidden] { display: none; }
.kc-reveal { margin-top: var(--kc-s2); }
.kc-error-summary { border: 3px solid var(--kc-error); border-radius: var(--kc-r-md); padding: var(--kc-s2) var(--kc-s3); margin: 0 0 var(--kc-s3); background: var(--kc-raised); }
.kc-error-summary h3 { margin: 0 0 var(--kc-s1); font-size: calc(21px * var(--kc-scale)); color: var(--kc-ink); }
.kc-error-summary ul { margin: 0; padding-left: 20px; }
.kc-error-summary a { color: var(--kc-error) !important; font-weight: 700; }
.kc-pay { margin-top: var(--kc-s3); }
.kc-pay__title { font-weight: 700; margin: 0 0 var(--kc-s1); }
.kc-pay__buttons { min-height: 110px; background: #fff; border-radius: var(--kc-r-md); padding: var(--kc-s2); }
.kc-pay__status { margin-top: var(--kc-s2); font-weight: 700; }
.kc-pay__status.is-error { color: var(--kc-error); }
.kc-secure { font-size: calc(16px * var(--kc-scale)); color: var(--kc-ink-muted); text-align: center; margin: var(--kc-s2) 0 0; }
.kc-done { text-align: center; padding: var(--kc-s4) var(--kc-s2); }
.kc-done h3 { font-size: calc(28px * var(--kc-scale)); margin: 0 0 var(--kc-s2); }
.kc-done .kc-done__icon { width: 64px; height: 64px; margin: 0 auto var(--kc-s2); border-radius: 50%; display: grid; place-items: center; background: var(--kc-sage-soft); color: var(--kc-success); }
.kc-done .kc-done__icon svg { width: 34px; height: 34px; stroke: currentColor; fill: none; stroke-width: 3; }
.kc-bank { background: var(--kc-raised); border-radius: var(--kc-r-md); padding: var(--kc-s3); margin: 0 0 var(--kc-s3); }
.kc-bank h3 { margin: 0 0 var(--kc-s1); font-size: calc(22px * var(--kc-scale)); }
.kc-bank dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px var(--kc-s2); margin: var(--kc-s1) 0; font-size: calc(19px * var(--kc-scale)); }
.kc-bank dt { font-weight: 700; }
.kc-bank dd { margin: 0; font-variant-numeric: tabular-nums; }
.kc-or { display: flex; align-items: center; gap: var(--kc-s2); color: var(--kc-ink-muted); margin: var(--kc-s3) 0; font-weight: 700; }
.kc-or::before, .kc-or::after { content: ""; flex: 1; height: 1px; background: var(--kc-line); }
.kc-noscript { padding: var(--kc-s2); border: 2px solid var(--kc-field-border); border-radius: var(--kc-r-md); }

/* Motion: content is always visible without JavaScript. ------------------ */
html.kc-motion .kc-reveal-on-scroll { will-change: opacity, transform; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
html[data-calm="on"] *, html[data-calm="on"] *::before, html[data-calm="on"] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }

/* Kadence page container tweaks for our full-width pages */
.kc-page .entry-content-wrap { padding: 0 !important; }
.kc-page .entry.single-entry { box-shadow: none; background: transparent; }
.kc-page .content-area { margin-top: 0; margin-bottom: 0; }

/* Back to top */
.kc-top { position: fixed; right: 16px; bottom: 16px; z-index: 50; }

/* Small refinements */
.kc-section h1, .kc-section .kc-eyebrow + h1 { margin-top: 0; }
.kc-section .kc-eyebrow { margin-bottom: var(--kc-s1); }
.kc-more summary { list-style: none; gap: var(--kc-s1); color: var(--kc-brand); text-decoration: underline; text-underline-offset: 4px; }
.kc-more summary::-webkit-details-marker { display: none; }
.kc-more summary::before { content: "+"; display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--kc-brand-soft); color: var(--kc-brand); font-weight: 700; text-decoration: none; }
.kc-more[open] summary::before { content: "−"; }
.kc-more { margin: 0 0 var(--kc-s3); }
.kc-choice input[type="radio"], .kc-check input[type="checkbox"] { cursor: pointer; }
@media (max-width: 560px) {
	.kc-toggle { display: grid; grid-template-columns: 1fr 1fr; width: 100%; box-sizing: border-box; }
	.kc-toggle button { padding: 0 10px; font-size: calc(16px * var(--kc-scale)); line-height: 1.2; }
	.kc-choices.is-row { grid-template-columns: 1fr; }
	.kc-panel { padding: var(--kc-s3) var(--kc-s2); }
}

/* =========================================================================
   v1.1 — hero, illustrations, video poster, navigation within reach
   ========================================================================= */

/* Hero */
.kc-hero .kc-h1, .kc-hero h1 { font-size: calc(clamp(36px, 4.6vw, 54px) * var(--kc-scale)); line-height: 1.12; letter-spacing: -0.015em; font-weight: 500; }
.kc-hero .kc-lead { color: var(--kc-ink); }
.kc-illustration { margin: 0; }
.kc-illustration svg { display: block; width: 100%; height: auto; }
.kc-glance { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--kc-s2); margin-top: var(--kc-s4) !important; }
.kc-glance > .wp-block-group__inner-container { display: contents; }
.kc-glance .kc-glance__item { display: grid; grid-template-columns: 44px 1fr; gap: 4px var(--kc-s2); align-items: start; padding: var(--kc-s2) 0 0; border-top: 2px solid var(--kc-line); }
.kc-glance .kc-glance__item > .wp-block-group__inner-container { display: contents; }
.kc-glance .kc-icon { grid-row: span 2; margin: 0 !important; }
.kc-glance p { margin: 0 !important; font-size: calc(17px * var(--kc-scale)) !important; line-height: 1.45 !important; }
.kc-glance p strong { display: block; font-family: var(--kc-font-heading); font-weight: 500; font-size: calc(19px * var(--kc-scale)); color: var(--kc-ink); margin-bottom: 2px; }
.kc-glance p a { font-weight: 700; }
@media (max-width: 900px) { .kc-glance { grid-template-columns: 1fr; } }

/* Video section */
.kc-video-section .wp-block-columns { align-items: center; gap: var(--kc-s5); }
.kc-video-section .kc-video { max-width: none; }
.kc-poster { position: absolute; inset: 0; background: #173f87; }
.kc-poster__art { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.kc-poster__text { position: absolute; left: 6%; top: 12%; max-width: 46%; color: #fdfbf7; }
.kc-poster__title { margin: 0 0 8px !important; font: 500 clamp(22px, 3.2vw, 40px)/1.1 var(--kc-font-heading) !important; color: #fdfbf7; max-width: none !important; }
.kc-poster__sub { margin: 0 !important; font-size: clamp(14px, 1.4vw, 18px) !important; line-height: 1.4 !important; color: #dce5f5; max-width: none !important; }
.kc-video__frame { background: #173f87; box-shadow: var(--kc-shadow); }
.kc-video__frame .kc-video__play { inset: auto auto 10% 6%; margin: 0; background: #fdfbf7; color: #173f87; }
.kc-video__frame .kc-video__play:hover { background: #dce5f5; }
.kc-video__frame .kc-video__play svg { fill: #173f87; }
@media (max-width: 600px) {
	.kc-poster__text { max-width: 60%; top: 9%; }
	.kc-video__frame .kc-video__play { min-height: 48px; padding: 0 18px; font-size: 16px; }
}

/* Floating bar (computer) */
.kc-dock { position: fixed; top: 12px; left: 50%; z-index: 999; transform: translate(-50%, 0); opacity: 1; transition: opacity .18s ease, transform .18s ease; }
.kc-dock[hidden] { display: block; visibility: hidden; opacity: 0; transform: translate(-50%, -8px); pointer-events: none; }
html[data-calm="on"] .kc-dock { transition: none; }
.kc-dock__inner { display: flex; align-items: center; gap: var(--kc-s2); padding: 6px 6px 6px 10px; background: var(--kc-raised); border: 1px solid var(--kc-line); border-radius: var(--kc-r-pill); box-shadow: 0 6px 24px rgba(23, 63, 135, .14); }
.kc-dock__brand { display: flex; align-items: center; gap: 6px; padding: 0 8px 0 4px; min-height: 44px; border-radius: var(--kc-r-pill); font: 600 calc(18px * var(--kc-scale)) var(--kc-font-heading); color: var(--kc-ink) !important; text-decoration: none; letter-spacing: .01em; }
.kc-dock__ribbon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--kc-brand-soft); }
.kc-dock__ribbon svg { width: 20px; height: 20px; fill: none; stroke: var(--kc-brand); stroke-width: 2.6; stroke-linecap: round; }
.kc-dock__logo { height: 40px; width: auto; display: block; background: var(--kc-logo-panel); border-radius: 10px; padding: 3px 6px; }
.kc-dock__links { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; }
.kc-dock__links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: var(--kc-r-pill); color: var(--kc-ink); text-decoration: none; font: 400 calc(17px * var(--kc-scale)) var(--kc-font-body); white-space: nowrap; }
.kc-dock__links a:hover { background: var(--kc-brand-soft); }
.kc-dock__links a[aria-current] { background: var(--kc-brand-soft); font-weight: 700; }
.kc-dock__cta { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: var(--kc-r-pill); background: var(--kc-brand); color: var(--kc-on-brand) !important; font: 700 calc(17px * var(--kc-scale)) var(--kc-font-body); text-decoration: none; white-space: nowrap; }
.kc-dock__cta:hover { background: var(--kc-brand-deep); }
.kc-dock__top { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--kc-ink); background: var(--kc-sunken); }
.kc-dock__top svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* Tab bar (phone) */
.kc-tabbar { display: none; }
@media (max-width: 900px) {
	.kc-dock { display: none !important; }
	.kc-tabbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; background: var(--kc-raised); border-top: 1px solid var(--kc-line); box-shadow: 0 -4px 18px rgba(23, 63, 135, .10); padding-bottom: env(safe-area-inset-bottom); }
	.kc-tabbar ul { display: grid; grid-template-columns: repeat(5, 1fr); list-style: none; margin: 0 auto; padding: 4px 4px; max-width: 560px; }
	.kc-tabbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 60px; border-radius: 14px; color: var(--kc-ink-muted); text-decoration: none; font: 700 13px/1.1 var(--kc-font-body); }
	.kc-tabbar svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
	.kc-tabbar a[aria-current] { color: var(--kc-brand); background: var(--kc-brand-soft); }
	.kc-tabbar a.is-join { color: var(--kc-on-brand); background: var(--kc-brand); margin: 4px 2px; min-height: 52px; }
	.kc-tabbar a.is-join[aria-current] { background: var(--kc-brand-deep); }
	html[data-text="xl"] .kc-tabbar a span, html[data-text="l"] .kc-tabbar a span { font-size: 14px; }
	body.kc-has-tabbar { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
	html:has(body.kc-has-tabbar) { scroll-padding-bottom: 90px; }
}
@media print { .kc-dock, .kc-tabbar, .kc-comfort { display: none !important; } }

.kc-glance .kc-glance__item { margin: 0 !important; }
@media (max-width: 900px) { .kc-hero .kc-illustration { max-width: 460px; margin: var(--kc-s2) auto 0; } }

/* Dark-mode logo (light lettering, version made for this site) */
.site-branding a.brand img.kc-logo-dark { display: none; }
html[data-theme="dark"] .site-branding a.brand img.custom-logo:not(.kc-logo-dark) { display: none; }
html[data-theme="dark"] .site-branding a.brand img.kc-logo-dark { display: block; background: transparent; padding: 0; }
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) .site-branding a.brand img.custom-logo:not(.kc-logo-dark) { display: none; }
	html:not([data-theme="light"]) .site-branding a.brand img.kc-logo-dark { display: block; background: transparent; padding: 0; }
}

/* v1.2 — calmer proportions */
.kc-hero h1 { font-size: calc(clamp(30px, 3.2vw, 40px) * var(--kc-scale)) !important; line-height: 1.18 !important; max-width: 18ch; }
.kc-photo img { aspect-ratio: 4 / 3; object-fit: cover; max-height: 460px; }
.kc-hero .kc-photo img, .kc-section .wp-block-columns .kc-photo img { aspect-ratio: 4 / 3; }

/* =========================================================================
   v1.3 — mobile menu: bold hamburger, full-screen panel in the site's style
   ========================================================================= */
.mobile-toggle-open-container .menu-toggle-open,
.mobile-toggle-open-container .menu-toggle-open:focus { width: 52px; height: 52px; padding: 0 !important; display: grid; place-items: center; border-radius: 14px; background: var(--kc-brand-soft); color: var(--kc-ink) !important; }
.mobile-toggle-open-container .menu-toggle-open:hover { background: var(--kc-brand); color: var(--kc-on-brand) !important; }
.menu-toggle-open .menu-toggle-label { display: none; }
.menu-toggle-open .menu-toggle-icon .kadence-svg-iconset { display: none; }
.menu-toggle-open .menu-toggle-icon { position: relative; width: 26px; height: 20px; display: block; }
.menu-toggle-open .menu-toggle-icon::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; border-radius: 4px; background: currentColor; box-shadow: 0 8px 0 currentColor, 0 16px 0 currentColor; }

.popup-drawer.popup-drawer-layout-fullwidth .drawer-inner { width: 100%; max-width: none; background: var(--kc-paper) !important; color: var(--kc-ink) !important; }
.popup-drawer .drawer-overlay { background: rgba(23, 28, 33, .35); }
.popup-drawer .drawer-header::before { content: "Menu"; font: 600 22px var(--kc-font-heading); color: var(--kc-ink); }
.popup-drawer .drawer-header { padding: 12px 16px !important; display: flex; justify-content: space-between; align-items: center; min-height: 76px; border-bottom: 1px solid var(--kc-line); background: var(--kc-raised); }
.popup-drawer .drawer-header .drawer-toggle { width: 52px; height: 52px; border-radius: 14px; background: var(--kc-brand) !important; color: var(--kc-on-brand) !important; padding: 0 !important; position: relative; }
.popup-drawer .drawer-header .drawer-toggle .toggle-close-bar { width: 24px; height: 4px; border-radius: 4px; background: currentColor; position: absolute; left: 14px; top: 24px; }
.popup-drawer .drawer-content { padding: 24px 16px calc(32px + env(safe-area-inset-bottom)) !important; max-width: 560px; margin: 0 auto; }
.popup-drawer .mobile-navigation ul { border: 0 !important; }
.popup-drawer .mobile-navigation ul li { border: 0 !important; margin: 0 0 8px; font-size: inherit !important; }
.popup-drawer .mobile-navigation ul li > a { display: flex !important; align-items: center; justify-content: space-between; min-height: 60px; padding: 0 20px !important; border-radius: 16px; background: var(--kc-raised); border: 1px solid var(--kc-line) !important; font: 500 calc(22px * var(--kc-scale))/1.2 var(--kc-font-heading) !important; color: var(--kc-ink) !important; text-decoration: none; }
.popup-drawer .mobile-navigation ul li > a::after { content: ""; width: 10px; height: 10px; border-right: 3px solid var(--kc-brand); border-top: 3px solid var(--kc-brand); transform: rotate(45deg); flex: none; margin-left: 12px; }
.popup-drawer .mobile-navigation ul li > a:hover { background: var(--kc-brand-soft); }
.popup-drawer .mobile-navigation ul li > a[aria-current="page"] { background: var(--kc-brand-soft); border-color: var(--kc-brand) !important; font-weight: 600 !important; }
.popup-drawer .mobile-header-button-wrap { margin: 16px 0 0; width: 100%; }
.popup-drawer .mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button { display: flex !important; align-items: center; background: var(--kc-brand) !important; color: var(--kc-on-brand) !important; font-weight: 700 !important; text-decoration: none !important; width: 100%; justify-content: center; min-height: 60px !important; border-radius: 16px !important; font-size: calc(20px * var(--kc-scale)) !important; }
.popup-drawer .mobile-header-button-wrap .button { width: 100%; justify-content: center; min-height: 60px !important; border-radius: 16px !important; font-size: calc(20px * var(--kc-scale)) !important; }
.popup-drawer .mobile-html, .popup-drawer .site-header-item-mobile-html { width: 100%; }
.kc-drawer-contact { margin-top: 24px; padding: 20px; border-radius: 16px; background: var(--kc-sage-soft); font-size: calc(17px * var(--kc-scale)); line-height: 1.5; }
.kc-drawer-contact p { margin: 0 0 8px; }
.kc-drawer-contact p:last-child { margin: 0; }
.kc-drawer-contact .kc-drawer-contact__title { font: 500 calc(19px * var(--kc-scale)) var(--kc-font-heading); }
.popup-drawer .kc-drawer-contact a, .kc-drawer-contact a { color: var(--kc-brand) !important; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
html[data-calm="on"] .popup-drawer, html[data-calm="on"] .popup-drawer .drawer-inner { transition: none !important; }
