/* ==========================================================================
   Wallum Youth Collective - design system and motion layer
   Wallum heath palette: paperbark ground, heath green, banksia gold,
   boronia pink, Christmas bell red for giving. Fraunces display + Instrument Sans.
   Tokens read global-style presets first so blocks never hard-code values.
   The site is complete without JS; motion respects reduced-motion.
   ========================================================================== */

:root {
	--wy-night: var(--wp--preset--color--night, #1E2A24);
	--wy-paperbark: var(--wp--preset--color--paperbark, #F5F0E6);
	--wy-paper: var(--wp--preset--color--paper, #FFFDF8);
	--wy-sand: var(--wp--preset--color--sand, #E8DCC3);
	--wy-heath: var(--wp--preset--color--heath, #2F5A41);
	--wy-heath-soft: var(--wp--preset--color--heath-soft, #DCE7DA);
	--wy-banksia: var(--wp--preset--color--banksia, #C98A2E);
	--wy-banksia-soft: var(--wp--preset--color--banksia-soft, #F4E2C2);
	--wy-boronia: var(--wp--preset--color--boronia, #8E3F63);
	--wy-boronia-soft: var(--wp--preset--color--boronia-soft, #F1DCE6);
	--wy-bell: var(--wp--preset--color--bell, #C23B22);
	--wy-bell-deep: var(--wp--preset--color--bell-deep, #A12E19);
	--wy-muted: var(--wp--preset--color--muted, #5C665E);
	--wy-line: var(--wp--preset--color--line, #E3D8C4);
	--wy-text-2: #3A463F;

	--wy-display: var(--wp--preset--font-family--display, "Fraunces", Georgia, serif);
	--wy-body: var(--wp--preset--font-family--body, "Instrument Sans", system-ui, sans-serif);

	--wy-wrap: 1240px;
	--wy-gutter: clamp(16px, 4vw, 48px);
	--wy-section: clamp(64px, 8vw, 104px);
	--wy-r-lg: 28px;
	--wy-r-md: 18px;
	--wy-shadow: 0 1px 0 var(--wy-line), 0 24px 60px -24px rgba(30, 42, 36, .28);
	--wy-ease: cubic-bezier(.22, 1, .36, 1);
	--wy-tone-bg: var(--wy-heath-soft);
	--wy-tone-fg: var(--wy-heath);
}

/* ---------- Base ---------- */
body { background: var(--wy-paperbark); color: var(--wy-night); font-family: var(--wy-body); font-size: 1.0625rem; line-height: 1.6; -webkit-font-smoothing: antialiased; }
.wy-main, .wy-content { margin: 0 !important; padding: 0 !important; }
.wy-content > *, .wy-main > * { margin-block: 0 !important; }
/* Neutralise flow/constrained layout spacing inside our components; spacing comes from gap. */
:where(.wy-section, .wy-header, .wy-footer) :where(.is-layout-flow, .is-layout-constrained) > * { margin-block: 0; }
:where(.wy-section, .wy-header, .wy-footer) .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: none; }
.wy-section p, .wy-footer p, .wy-header p { margin: 0; }
.wy-main h1, .wy-main h2, .wy-main h3, .wy-main h4 { margin: 0; font-family: var(--wy-display); font-weight: 500; letter-spacing: -.015em; line-height: 1.08; color: inherit; text-wrap: balance; font-variation-settings: "opsz" 96; }
.wy-main h2 { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.25rem); }
.wy-main h3, .wy-h3 { font-size: 1.5rem; line-height: 1.15; }
.wy-h1, .wy-main h1 { font-size: clamp(2.6rem, 1.4rem + 4.6vw, 5rem); line-height: 1.02; font-variation-settings: "opsz" 144; }
.wy-main h1 em, .wy-main h2 em { font-style: italic; color: var(--wy-bell); font-weight: 400; }
a { color: inherit; text-underline-offset: 3px; }
.wy-main a:not(.wp-block-button__link):not(.wy-btn):not(.wy-way):not(.wy-tile--link):hover { color: var(--wy-bell-deep); }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--wy-banksia); outline-offset: 2px; border-radius: 6px; }
.wy-nowrap { white-space: nowrap; }
.wy-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wy-eyebrow { font: 600 .8125rem/1.2 var(--wy-body); letter-spacing: .08em; text-transform: uppercase; color: var(--wy-heath); }
.wy-lede { font-size: 1.25rem; color: var(--wy-text-2); max-width: 36ch; }
.wy-sub { color: var(--wy-muted); max-width: 52ch; }
.wy-note { font-size: .8125rem; color: var(--wy-muted); }
.wy-intro { font-size: 1.125rem; }

/* ---------- Layout ---------- */
.wy-section { position: relative; padding-block: var(--wy-section) 0; overflow: clip; }
.wy-section.wy-pad-s { padding-block: 40px 0; }
.wy-section.wy-tint { background: var(--wy-paper); margin-top: var(--wy-section) !important; padding-block: var(--wy-section); border-block: 1px solid var(--wy-line); }
.wy-section.wy-tint + .wy-section { padding-top: var(--wy-section); }
.wy-wrap { max-width: var(--wy-wrap); margin-inline: auto !important; padding-inline: var(--wy-gutter); position: relative; z-index: 1; display: flex; flex-direction: column; gap: 32px; }
.wy-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.wy-head__text { display: flex; flex-direction: column; gap: 12px; }
.wy-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 5vw, 64px); align-items: start; }
.wy-split__text { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 24px; }
.wy-split__text .wy-partners { margin-top: 24px; }

/* ---------- Buttons ---------- */
.wy-buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.wy-buttons .wp-block-button__link, .wy-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: .9em 1.5em; border-radius: 999px; font: 600 1rem/1 var(--wy-body); text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .2s var(--wy-ease), background-color .2s, color .2s, box-shadow .2s; }
.wy-btn-primary .wp-block-button__link, .wy-btn--primary { background: var(--wy-bell); color: #fff; }
.wy-btn-primary .wp-block-button__link:hover, .wy-btn--primary:hover { background: var(--wy-bell-deep); color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px -12px rgba(161, 46, 25, .7); }
.wy-btn-heath .wp-block-button__link { background: var(--wy-heath); color: #fff; }
.wy-btn-heath .wp-block-button__link:hover { background: var(--wy-night); color: #fff; }
.wy-btn-ghost .wp-block-button__link { background: transparent; color: var(--wy-night); border-color: var(--wy-night); }
.wy-btn-ghost .wp-block-button__link:hover { background: var(--wy-night); color: var(--wy-paperbark); }
.wy-btn-light .wp-block-button__link { background: var(--wy-paper); color: var(--wy-night); }
.wy-btn-light .wp-block-button__link:hover { background: #fff; transform: translateY(-1px); }
.wy-btn.is-loading { opacity: .7; pointer-events: none; }

/* ---------- Decorative motifs ---------- */
.wy-leaf { position: absolute; z-index: 0; pointer-events: none; }
.wy-leaf--hero { right: -120px; top: -80px; width: min(620px, 70vw); }
.wy-leaf svg { width: 100%; height: auto; display: block; }
.wy-leaf__blade { fill: var(--wy-heath-soft); }
.wy-leaf__vein { stroke: var(--wy-paperbark); stroke-width: 4; fill: none; }
.wy-dots { --dot: var(--wy-banksia-soft); position: absolute; pointer-events: none; background-image: radial-gradient(circle, var(--dot) 3.2px, transparent 3.6px); background-size: 22px 22px; }
.wy-dots--stats { --dot: rgba(201, 138, 46, .28); width: 200px; height: 200px; right: -60px; top: -60px; }

/* ---------- Hero ---------- */
.wy-hero { padding-block: clamp(32px, 4vw, 56px) clamp(24px, 4vw, 48px); }
.wy-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 48px; align-items: center; }
.wy-hero__grid--aside { grid-template-columns: 1.15fr .85fr; gap: clamp(32px, 5vw, 64px); }
.wy-hero__copy { display: flex; flex-direction: column; gap: 22px; max-width: 760px; }
.wy-hero__copy .wy-buttons { margin-top: 8px; }
.wy-trust { list-style: none; padding: 0; margin: 8px 0 0; display: flex; gap: 10px 22px; flex-wrap: wrap; color: var(--wy-muted); font-size: .9375rem; }
.wy-trust li, .wy-ticks li { display: flex; gap: 8px; align-items: center; color: var(--wy-muted); }
.wy-trust svg, .wy-ticks svg { color: var(--wy-heath); flex: none; }
.wy-hero__badge { width: min(320px, 100%); aspect-ratio: 1; border-radius: 50% 50% var(--wy-r-lg) 50%; display: grid; place-items: center; justify-self: end; background: var(--wy-tone-bg); color: var(--wy-tone-fg); }
.wy-hero__badge svg { width: 46%; height: 46%; }

/* ---------- Tones ---------- */
.wy-tone-heath { --wy-tone-bg: var(--wy-heath-soft); --wy-tone-fg: var(--wy-heath); }
.wy-tone-banksia { --wy-tone-bg: var(--wy-banksia-soft); --wy-tone-fg: #8A5A14; }
.wy-tone-boronia { --wy-tone-bg: var(--wy-boronia-soft); --wy-tone-fg: var(--wy-boronia); }
.wy-tone-sand { --wy-tone-bg: var(--wy-sand); --wy-tone-fg: var(--wy-night); }

/* ---------- Give card ---------- */
.wy-give { position: relative; background: var(--wy-paper); border-radius: var(--wy-r-lg); padding: 28px; box-shadow: var(--wy-shadow); display: flex; flex-direction: column; gap: 14px; }
.wy-give__title { font-size: 1.75rem !important; }
.wy-give__tag { position: absolute; top: -14px; right: 24px; background: var(--wy-banksia); color: var(--wy-night); font: 600 .75rem/1 var(--wy-body); padding: 8px 12px; border-radius: 99px; letter-spacing: .04em; text-transform: uppercase; }
.wy-give fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.wy-segs { display: grid; grid-template-columns: 1fr 1fr; background: var(--wy-paperbark); border-radius: 99px; padding: 4px; }
.wy-seg, .wy-chip { position: relative; cursor: pointer; }
.wy-seg input, .wy-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.wy-seg span { display: block; text-align: center; padding: 10px; border-radius: 99px; font: 600 .9375rem/1 var(--wy-body); color: var(--wy-muted); transition: background-color .2s, color .2s; }
.wy-seg input:checked + span { background: var(--wy-night); color: #fff; }
.wy-seg input:focus-visible + span, .wy-chip input:focus-visible + span { outline: 3px solid var(--wy-banksia); outline-offset: 2px; }
.wy-chips { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.wy-chip span, .wy-amt { display: block; text-align: center; border: 1.5px solid var(--wy-line); background: #fff; border-radius: 14px; padding: 14px 0; font: 600 1.125rem/1 var(--wy-body); font-variant-numeric: tabular-nums; color: var(--wy-night); transition: border-color .2s, background-color .2s, color .2s; }
.wy-chip input:checked + span, .wy-amt[aria-pressed="true"] { border-color: var(--wy-bell); background: #FCEDEA; color: var(--wy-bell-deep); }
.wy-chip:hover span, .wy-amt:hover { border-color: var(--wy-bell); }
.wy-other { display: flex; align-items: center; border: 1.5px solid var(--wy-line); border-radius: 14px; padding: 0 14px; background: #fff; color: var(--wy-muted); }
.wy-other input { border: 0 !important; box-shadow: none !important; border-radius: 0 !important; padding: 13px 8px !important; font: 500 1rem var(--wy-body); width: 100%; background: none; color: var(--wy-night); }
.wy-other input:focus { outline: none; }
.wy-other:focus-within { border-color: var(--wy-bell); }
.wy-impact { display: flex; gap: 12px; align-items: flex-start; background: var(--wy-heath-soft); border-radius: 14px; padding: 14px; font-size: .9375rem; color: #23402F; }
.wy-impact__icon { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--wy-heath) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M8 17h12l-1.6-4.6a2 2 0 0 0-1.9-1.4h-5a2 2 0 0 0-1.9 1.4zM10 17v2M18 17v2' stroke='%23fff' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center / 28px no-repeat; }
.wy-give__go { width: 100%; padding: 1.05em; font-size: 1.0625rem; }
.wy-give__fine { font-size: .8125rem; color: var(--wy-muted); text-align: center; }

/* ---------- Stats ---------- */
.wy-stats { position: relative; overflow: hidden; border-radius: var(--wy-r-lg); padding: 44px clamp(24px, 4vw, 56px) 28px; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 24px; }
.wy-stats--night { background: var(--wy-night); color: #C9D3CB; }
.wy-stats--heath { background: var(--wy-heath); color: #D7E3D9; }
.wy-stat { position: relative; }
.wy-stat b { display: block; font: 500 clamp(2.25rem, 1.6rem + 2vw, 3.5rem)/1 var(--wy-display); font-variant-numeric: tabular-nums; color: #fff; }
.wy-stat span { display: block; margin-top: 10px; font-size: .9375rem; }
.wy-stats__note { grid-column: 1 / -1; font-size: .75rem; opacity: .75; margin-top: 4px !important; }

/* ---------- Programs ---------- */
.wy-programs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.wy-prog { position: relative; background: var(--wy-paper); border-radius: var(--wy-r-lg); overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--wy-line); transition: transform .3s var(--wy-ease), box-shadow .3s; }
.wy-prog:hover { transform: translateY(-4px); box-shadow: var(--wy-shadow); }
.wy-prog__art { height: 180px; display: grid; place-items: center; background: var(--wy-tone-bg); color: var(--wy-tone-fg); }
.wy-prog__art svg { width: 96px; height: 96px; transition: transform .4s var(--wy-ease); }
.wy-prog:hover .wy-prog__art svg { transform: scale(1.06) rotate(-3deg); }
.wy-prog__body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.wy-prog__body p { color: var(--wy-muted); font-size: .9375rem; margin: 0; }
.wy-card-link { text-decoration: none; }
.wy-prog .wy-card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.wy-prog__unit { margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--wy-line); font-size: .875rem; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.wy-prog__fund { position: relative; z-index: 2; white-space: nowrap; font-weight: 600; color: var(--wy-bell-deep); text-decoration: none; }

/* ---------- Story ---------- */
.wy-story { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 5vw, 56px); align-items: center; }
.wy-story__text { display: flex; flex-direction: column; gap: 18px; }
.wy-frame { position: relative; margin: 0; aspect-ratio: 4 / 5; max-width: 100%; border-radius: 200px 200px var(--wy-r-lg) var(--wy-r-lg); background: var(--wy-boronia); overflow: hidden; }
.wy-frame svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.wy-frame__sun { fill: var(--wy-banksia); }
.wy-frame__hill { fill: var(--wy-heath); }
.wy-frame__shade { fill: var(--wy-night); opacity: .55; }
.wy-frame__bells { fill: var(--wy-bell); }
.wy-frame__stems { stroke: var(--wy-boronia-soft); stroke-width: 3; }
.wy-frame figcaption { position: absolute; left: 20px; bottom: 20px; background: var(--wy-paper); border-radius: 99px; padding: 8px 14px; font-size: .8125rem; font-weight: 600; }
.wy-quote { margin: 0; padding: 0; border: 0; }
.wy-quote p { font: 400 italic clamp(1.6rem, 1.1rem + 1.6vw, 2.5rem)/1.2 var(--wy-display); letter-spacing: -.01em; }
.wy-quote::before { content: "\201C"; display: block; font: 600 5rem/.6 var(--wy-display); color: var(--wy-banksia); margin-bottom: 18px; }
.wy-cite { font-weight: 400; color: var(--wy-muted); }
.wy-cite strong { color: var(--wy-night); }
.wy-partner-quote { max-width: 860px; display: flex; flex-direction: column; gap: 18px; }

/* ---------- Ways ---------- */
.wy-ways { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.wy-way { border-radius: var(--wy-r-lg); padding: 28px 24px; display: flex; flex-direction: column; gap: 12px; min-height: 260px; text-decoration: none; transition: transform .3s var(--wy-ease); }
.wy-way:hover { transform: translateY(-4px); }
.wy-way h3 { font-size: 1.625rem !important; }
.wy-way p { font-size: .9375rem; opacity: .9; }
.wy-way__go { margin-top: auto; font-weight: 600; }
.wy-way--bell { background: var(--wy-bell); color: #fff; }
.wy-way--heath { background: var(--wy-heath); color: #fff; }
.wy-way--banksia { background: var(--wy-banksia); color: var(--wy-night); }
.wy-way--paper { background: var(--wy-paper); border: 1px solid var(--wy-line); color: var(--wy-night); }

/* ---------- Events ---------- */
.wy-event { background: var(--wy-banksia-soft); border-radius: var(--wy-r-lg); display: grid; grid-template-columns: auto 1fr auto; gap: clamp(20px, 4vw, 40px); align-items: center; padding: 36px clamp(24px, 4vw, 48px); }
.wy-event__text { display: flex; flex-direction: column; gap: 8px; }
.wy-event__text h3 { font-size: 2rem !important; }
.wy-event__text p:last-child { color: #4D452F; }
.wy-date { background: var(--wy-paper); border-radius: 20px; padding: 16px 22px; text-align: center; display: flex; flex-direction: column; gap: 2px; min-width: 96px; }
.wy-date b { font: 600 2.5rem/1 var(--wy-display); }
.wy-date span { font: 600 .8125rem var(--wy-body); text-transform: uppercase; letter-spacing: .1em; color: var(--wy-muted); }
.wy-event-list { display: grid; gap: 20px; }
.wy-event-card { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; background: var(--wy-paper); border: 1px solid var(--wy-line); border-radius: var(--wy-r-lg); padding: 24px; transition: transform .3s var(--wy-ease), box-shadow .3s; }
.wy-event-card:hover { transform: translateY(-3px); box-shadow: var(--wy-shadow); }
.wy-event-card .wy-date { background: var(--wy-banksia-soft); }
.wy-event-card .wy-card-link::after { content: ""; position: absolute; inset: 0; }
.wy-event-card > div { display: flex; flex-direction: column; gap: 6px; }
.wy-event-card__meta { font-size: .875rem; color: var(--wy-heath); font-weight: 600; }
.wy-event-aside { justify-self: end; display: flex; flex-direction: column; gap: 20px; background: var(--wy-paper); border-radius: var(--wy-r-lg); padding: 28px; box-shadow: var(--wy-shadow); min-width: 280px; }
.wy-event-aside .wy-date { align-self: flex-start; background: var(--wy-banksia-soft); }
.wy-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; font-size: 1.0625rem; }
.wy-ticks li { color: var(--wy-night); }

/* ---------- Partners ---------- */
.wy-partners { list-style: none; margin: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px 28px; padding: 28px 0; border-block: 1px solid var(--wy-line); }
.wy-partners li { font: 600 1.0625rem var(--wy-display); color: #6E776F; letter-spacing: -.01em; }

/* ---------- Bands ---------- */
.wy-band-wrap { padding-block: var(--wy-section) 0; }
.wy-band { border-radius: var(--wy-r-lg); padding: clamp(28px, 4vw, 48px); display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.wy-band__text { display: flex; flex-direction: column; gap: 10px; max-width: 640px; }
.wy-band h2 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem) !important; }
.wy-band--bell .wy-band { background: var(--wy-bell); color: #fff; }
.wy-band--heath .wy-band { background: var(--wy-heath); color: #fff; }

/* ---------- Facts, steps, impact lists, FAQ ---------- */
.wy-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 0; background: var(--wy-line); border: 1px solid var(--wy-line); border-radius: var(--wy-r-md); overflow: hidden; }
.wy-facts > div { background: var(--wy-paper); padding: 20px; display: flex; flex-direction: column; gap: 6px; }
.wy-facts dt { font: 600 .75rem var(--wy-body); letter-spacing: .08em; text-transform: uppercase; color: var(--wy-heath); }
.wy-facts dd { margin: 0; font-weight: 500; }
.wy-facts--stack { grid-template-columns: 1fr; background: none; border: 0; gap: 14px; }
.wy-facts--stack > div { padding: 0; background: none; }
.wy-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; counter-reset: none; }
.wy-steps li { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 22px; background: var(--wy-paper); border: 1px solid var(--wy-line); border-radius: var(--wy-r-md); }
.wy-steps h3 { font-size: 1.25rem !important; }
.wy-steps p { font-size: .9375rem; color: var(--wy-muted); }
.wy-step__n { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--wy-heath); color: #fff; font: 600 .9375rem var(--wy-body); font-variant-numeric: tabular-nums; }
.wy-split .wy-steps { grid-template-columns: 1fr; }
.wy-impact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.wy-impact-list a { display: grid; grid-template-columns: 110px 1fr auto; gap: 16px; align-items: center; padding: 20px 22px; background: #fff; border: 1.5px solid var(--wy-line); border-radius: var(--wy-r-md); text-decoration: none; transition: border-color .2s, transform .2s var(--wy-ease); }
.wy-impact-list a:hover { border-color: var(--wy-bell); transform: translateX(4px); }
.wy-impact-list b { font: 600 1.75rem/1 var(--wy-display); color: var(--wy-bell-deep); font-variant-numeric: tabular-nums; }
.wy-impact-list__go { color: var(--wy-bell); font-weight: 600; }
.wy-faqs { display: grid; gap: 12px; max-width: 860px; }
.wy-faq { background: var(--wy-paper); border: 1px solid var(--wy-line); border-radius: var(--wy-r-md); padding: 0; }
.wy-faq summary { cursor: pointer; padding: 20px 56px 20px 22px; font: 500 1.25rem/1.3 var(--wy-display); list-style: none; position: relative; }
.wy-faq summary::-webkit-details-marker { display: none; }
.wy-faq summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font: 400 1.75rem/1 var(--wy-body); color: var(--wy-bell); transition: transform .2s; }
.wy-faq[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.wy-faq p { padding: 0 22px 22px; color: var(--wy-text-2); }
.wy-callout { background: var(--wy-heath-soft); border-radius: var(--wy-r-md); padding: 20px 22px; color: #23402F; font-size: .9375rem; }

/* ---------- Tiles ---------- */
.wy-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.wy-tiles--3 { grid-template-columns: repeat(3, 1fr); }
.wy-tile { background: var(--wy-paper); border: 1px solid var(--wy-line); border-radius: var(--wy-r-md); padding: 24px; display: flex; flex-direction: column; gap: 10px; color: var(--wy-night); }
.wy-tint .wy-tile { background: var(--wy-paperbark); }
.wy-tile h3 { font-size: 1.375rem !important; }
.wy-tile p { color: var(--wy-muted); font-size: .9375rem; }
.wy-tile__price { font: 600 .8125rem var(--wy-body) !important; letter-spacing: .06em; text-transform: uppercase; color: var(--wy-bell-deep) !important; }
.wy-tile--link { text-decoration: none; transition: transform .3s var(--wy-ease), border-color .2s; }
.wy-tile--link:hover { transform: translateY(-3px); border-color: var(--wy-heath); }
.wy-tile__go { margin-top: auto; padding-top: 8px; font-weight: 600; color: var(--wy-heath); }
.wy-board { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; counter-reset: rank; }
.wy-board li { counter-increment: rank; display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 12px; padding: 16px 20px; background: var(--wy-paperbark); border-radius: var(--wy-r-md); }
.wy-board li::before { content: counter(rank); font: 600 1.25rem var(--wy-display); color: var(--wy-banksia); }
.wy-board b { font-variant-numeric: tabular-nums; }

/* ---------- Team and report ---------- */
.wy-team { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.wy-person { background: var(--wy-paperbark); border-radius: var(--wy-r-md); padding: 22px; display: flex; flex-direction: column; gap: 6px; }
.wy-person__mono { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--wy-tone-bg); color: var(--wy-tone-fg); font: 600 1.125rem var(--wy-display); margin-bottom: 8px; }
.wy-person h3 { font-size: 1.25rem !important; }
.wy-person__role { font-weight: 600; color: var(--wy-heath); font-size: .875rem; }
.wy-person p:last-child { font-size: .9375rem; color: var(--wy-muted); }
.wy-report { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.wy-report > div { background: var(--wy-paper); border: 1px solid var(--wy-line); border-radius: var(--wy-r-lg); padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.wy-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.wy-bars li { display: grid; grid-template-columns: minmax(120px, 170px) 1fr 48px; gap: 12px; align-items: center; font-size: .9375rem; }
.wy-bars__track { height: 12px; background: var(--wy-paperbark); border-radius: 99px; overflow: hidden; }
.wy-bars__fill { display: block; height: 100%; border-radius: 99px; transform-origin: left; }
.wy-bars__fill--heath { background: var(--wy-heath); }
.wy-bars__fill--bell { background: var(--wy-bell); }
.wy-bars b { text-align: right; font-variant-numeric: tabular-nums; }

/* ---------- Donate and forms ---------- */
.wy-donate { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(32px, 5vw, 64px); align-items: start; }
.wy-donate__aside { display: flex; flex-direction: column; gap: 22px; position: sticky; top: 24px; }
.wy-card { background: var(--wy-paper); border-radius: var(--wy-r-lg); padding: clamp(22px, 3vw, 36px); box-shadow: var(--wy-shadow); display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.wy-impact-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.wy-impact-steps li { display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: baseline; padding-bottom: 10px; border-bottom: 1px dashed var(--wy-line); }
.wy-impact-steps b { font: 600 1.375rem var(--wy-display); color: var(--wy-bell-deep); font-variant-numeric: tabular-nums; }
.wy-donate-amounts { border: 0; padding: 0; margin: 0 0 4px; display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.wy-donate-amounts legend { font-weight: 600; margin-bottom: 10px; }
.wy-donate-amounts .wy-amt { flex: 1 1 72px; cursor: pointer; padding: 14px 8px; }
.wy-donate-amounts .wy-note { flex-basis: 100%; }
/* Jetpack form */
.wy-form .wp-block-jetpack-contact-form { display: flex; flex-wrap: wrap; gap: 16px; padding: 0 !important; }
.wy-form .wp-block-jetpack-contact-form > * { flex: 1 1 100%; margin: 0 !important; min-width: 0; }
.wy-form .wp-block-jetpack-contact-form > :is(.wy-half-wrap, :has(> .wy-half-wrap)) { flex: 1 1 calc(50% - 8px); }
.wy-form label, .wy-form .grunion-field-label { display: block; font: 600 .9375rem var(--wy-body); margin-bottom: 6px; color: var(--wy-night); }
.wy-form .grunion-label-required, .wy-form .required { color: var(--wy-muted); font-weight: 400; font-size: .8125rem; }
.wy-form input[type="text"], .wy-form input[type="email"], .wy-form input[type="tel"], .wy-form input[type="number"], .wy-form input[type="url"], .wy-form select, .wy-form textarea {
	width: 100% !important; box-sizing: border-box; font: 500 1rem var(--wy-body) !important; color: var(--wy-night) !important; background: #fff !important; border: 1.5px solid var(--wy-line) !important; border-radius: 14px !important; padding: 13px 14px !important; min-height: 50px; transition: border-color .2s, box-shadow .2s;
}
.wy-form textarea { min-height: 120px; }
.wy-form input:focus, .wy-form select:focus, .wy-form textarea:focus { outline: none; border-color: var(--wy-heath) !important; box-shadow: 0 0 0 3px var(--wy-heath-soft) !important; }
.wy-form .grunion-field-wrap, .wy-form [class*="wp-block-jetpack-field"] { margin: 0 !important; }
.wy-form input[type="checkbox"], .wy-form input[type="radio"] { width: 20px; height: 20px; accent-color: var(--wy-heath); vertical-align: middle; margin-right: 8px; }
.wy-form .grunion-checkbox-multiple-options, .wy-form .grunion-radio-options { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.wy-form .wp-block-jetpack-button .wp-block-button__link, .wy-form button[type="submit"] { width: 100%; background: var(--wy-bell); color: #fff; border: 0; border-radius: 999px; padding: 1.05em 1.5em; font: 600 1.0625rem/1 var(--wy-body); cursor: pointer; transition: background-color .2s, transform .2s var(--wy-ease); }
.wy-form .wp-block-jetpack-button .wp-block-button__link:hover, .wy-form button[type="submit"]:hover { background: var(--wy-bell-deep); transform: translateY(-1px); }
.wy-form .is-loading { opacity: .7; }
.wy-utm-wrap, .wy-form .wp-block-jetpack-contact-form > :has(> .wy-utm-wrap), .wy-utm-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.wy-invalid input, .wy-invalid select, .wy-invalid textarea { border-color: var(--wy-bell) !important; }
.wy-field-error { color: var(--wy-bell-deep); font-size: .875rem; margin-top: 6px !important; }

/* ---------- Thank you ---------- */
.wy-thanks { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; max-width: 720px; padding-block: 40px 20px; }
.wy-thanks__mark svg { width: 88px; height: 88px; }
.wy-thanks__mark circle { fill: var(--wy-heath-soft); }
.wy-thanks__mark path { fill: none; stroke: var(--wy-heath); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 60; stroke-dashoffset: 0; }
.js .wy-thanks__mark path { animation: wy-tick 900ms var(--wy-ease) 300ms both; }
@keyframes wy-tick { from { stroke-dashoffset: 60; } to { stroke-dashoffset: 0; } }

/* ---------- Prose and tables ---------- */
.wy-prose { max-width: 760px; display: flex; flex-direction: column; gap: 18px; padding-bottom: 20px; }
.wy-prose h2 { font-size: 1.75rem !important; margin-top: 18px !important; }
.wy-prose ul { margin: 0; padding-left: 1.2em; display: grid; gap: 8px; }
.wy-prose .wy-quote p { font-size: 1.75rem; }
.wy-table { margin: 0; overflow-x: auto; }
.wy-table table { border-collapse: collapse; width: 100%; font-size: .9375rem; background: var(--wy-paper); border-radius: var(--wy-r-md); overflow: hidden; }
.wy-table th, .wy-table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--wy-line); vertical-align: top; }
.wy-table th { font-weight: 600; background: var(--wy-heath-soft); }
.wy-erase { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }

/* ---------- Posts ---------- */
.wy-posts .wp-block-post-template { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.wy-posts .wp-block-post { background: var(--wy-paper); border: 1px solid var(--wy-line); border-radius: var(--wy-r-lg); padding: 26px; display: flex; flex-direction: column; gap: 12px; margin: 0 !important; }
.wy-tint .wy-posts .wp-block-post { background: var(--wy-paperbark); }
.wy-posts .wp-block-post-title { font-size: 1.5rem !important; margin: 0 !important; }
.wy-posts .wp-block-post-title a { text-decoration: none; }
.wy-posts .wp-block-post-excerpt { color: var(--wy-muted); font-size: .9375rem; margin: 0 !important; }
.wy-posts .wp-block-post-excerpt p { margin: 0; }
.wy-posts .wp-block-post-date { font-size: .8125rem; color: var(--wy-heath); font-weight: 600; margin-top: auto !important; }
.wy-single-meta { display: flex; gap: 16px; color: var(--wy-muted); font-size: .875rem; }

/* ---------- Header ---------- */
.wy-header { background: var(--wy-paperbark); position: relative; z-index: 20; }
.wy-consent { position: fixed; inset: auto 1rem 1rem 1rem; z-index: 99999; max-width: 760px; margin-inline: auto; display: flex; gap: 1rem 1.5rem; align-items: center; flex-wrap: wrap; padding: 1rem 1.25rem; border-radius: 16px; background: var(--wy-night); color: var(--wy-paperbark); box-shadow: 0 24px 60px rgba(0, 0, 0, .35); font-size: .9375rem; line-height: 1.5; }
.wy-consent p { margin: 0; flex: 1 1 320px; }
.wy-consent a { color: var(--wy-banksia-soft); text-decoration: underline; text-underline-offset: 2px; }
.wy-consent__actions { display: flex; gap: .75rem; flex-wrap: wrap; }
.wy-consent__btn { font: inherit; font-weight: 600; cursor: pointer; padding: .6em 1.3em; border-radius: 999px; border: 1px solid var(--wy-bell, #C23B22); background: var(--wy-bell, #C23B22); color: #fff; }
.wy-consent__btn:hover { background: var(--wy-bell-deep, #A12E19); border-color: var(--wy-bell-deep, #A12E19); }
.wy-consent__btn--ghost { background: transparent; border-color: rgba(255, 255, 255, .6); color: var(--wy-paperbark); }
.wy-consent__btn--ghost:hover { background: var(--wy-paperbark); border-color: var(--wy-paperbark); color: var(--wy-night); }
.wy-consent__btn:focus-visible, .wy-linkbtn:focus-visible { outline: 3px solid var(--wy-banksia); outline-offset: 2px; }
html { scroll-padding-bottom: var(--wy-consent-h, 0px); }
body:has(.wy-consent) { padding-bottom: var(--wy-consent-h, 0px); }
.wy-linkbtn { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.wy-demobar { background: var(--wy-night); color: var(--wy-paperbark); font-size: .8125rem; line-height: 1.4; }
.wy-demobar__in { max-width: var(--wy-wrap); margin: 0 auto; padding: 8px var(--wy-gutter); display: flex; align-items: center; gap: 6px 12px; flex-wrap: wrap; }
.wy-demobar a { margin-left: auto; color: var(--wy-banksia-soft, #F4E2C2); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.wy-header > .wy-ribbon { margin-block-start: 0; }
.wy-demobar .wy-demo-tag { padding: 2px 7px; font-size: .75rem; }
.wy-ribbon { background: var(--wy-heath); color: var(--wy-paperbark); font-size: .9375rem; }
.wy-ribbon__in { max-width: var(--wy-wrap); margin: 0 auto; padding: 10px var(--wy-gutter); display: flex; align-items: center; gap: 8px 18px; flex-wrap: wrap; }
.wy-ribbon strong { font-weight: 600; }
.wy-meter { flex: 1 1 140px; max-width: 260px; height: 8px; background: rgba(255, 255, 255, .18); border-radius: 99px; overflow: hidden; }
.wy-meter span { display: block; height: 100%; background: var(--wy-banksia); border-radius: 99px; }
.js .wy-meter span { animation: wy-grow 1.2s var(--wy-ease) .3s both; transform-origin: left; }
@keyframes wy-grow { from { transform: scaleX(0); } }
.wy-ribbon a { margin-left: auto; font-weight: 600; color: #fff; }
.wy-header__bar { max-width: var(--wy-wrap); margin: 0 auto !important; padding: 0 var(--wy-gutter); height: 84px; display: flex; align-items: center; gap: 32px; }
.wy-logo { margin: 0 !important; }
.wy-logo a { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--wy-night); }
.wy-logo a::before { content: ""; flex: none; width: 40px; height: 40px; background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'><rect x='15' y='4' width='14' height='30' rx='7' fill='%23C98A2E'/><g fill='%23F5F0E6'><circle cx='19' cy='10' r='1.6'/><circle cx='25' cy='10' r='1.6'/><circle cx='22' cy='15' r='1.6'/><circle cx='19' cy='20' r='1.6'/><circle cx='25' cy='20' r='1.6'/><circle cx='22' cy='25' r='1.6'/><circle cx='19' cy='29' r='1.6'/><circle cx='25' cy='29' r='1.6'/></g><path d='M22 34v8M22 38c-6 0-10-3-12-7M22 38c6 0 10-3 12-7' stroke='%232F5A41' stroke-width='2.4' fill='none' stroke-linecap='round'/></svg>") center / contain no-repeat; }
.wy-logo__text b { display: block; font: 600 1.6rem/1 var(--wy-display); letter-spacing: -.02em; }
.wy-logo__text small { display: block; font: 500 .7rem/1.2 var(--wy-body); letter-spacing: .14em; text-transform: uppercase; color: var(--wy-muted); margin-top: 3px; }
.wy-nav { margin-left: auto !important; font-weight: 500; font-size: 1rem; gap: 28px !important; }
.wy-nav a { text-decoration: none; }
.wy-nav a:hover, .wy-nav .current-menu-item > a { color: var(--wy-bell-deep); }
.wy-header .wy-buttons { flex: none; }
.wy-header-cta .wp-block-button__link { padding: .8em 1.4em; }
@media (max-width: 599px) { .wy-header .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; border: 1.5px solid var(--wy-night); border-radius: 50%; place-items: center; } .wy-header .wp-block-navigation__responsive-container-open:not([hidden]) { display: grid; } }
.wy-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--wy-paperbark) !important; padding: 24px var(--wy-gutter); }
.wy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font: 500 1.75rem var(--wy-display); }

/* ---------- Footer ---------- */
.wy-footer { background: var(--wy-heath); color: #E4ECE3; margin-top: clamp(80px, 9vw, 112px); padding: 72px var(--wy-gutter) 32px; }
.wy-footer > * { max-width: var(--wy-wrap); margin-inline: auto !important; }
.wy-footer a { text-decoration: none; color: #E4ECE3; }
.wy-footer a:hover { color: #fff; text-decoration: underline; }
.wy-footer__cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
.wy-footer__about { display: flex; flex-direction: column; gap: 12px; max-width: 34ch; }
.wy-footer__brand { font: 600 1.9rem/1 var(--wy-display); color: #fff; }
.wy-footer .wy-footer__h { font: 600 .8125rem var(--wy-body) !important; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 14px !important; color: #fff; }
.wy-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: .9375rem; }
.wy-footer__ack { margin-top: 56px !important; padding: 22px 0; border-top: 1px solid rgba(255, 255, 255, .18); font-size: .9375rem; }
.wy-footer__legal { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: .8125rem; color: #B9C8BC; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .18); }
.wy-footer__demo { max-width: 62ch; }
.wy-demo-tag { background: var(--wy-banksia); color: var(--wy-night); padding: 3px 8px; border-radius: 6px; font-weight: 600; }

/* ---------- WPConsent banner, restyled to the palette ---------- */
#wpconsent-root, .wpconsent-banner-holder {
	--wpconsent-background: var(--wy-paper);
	--wpconsent-text: var(--wy-night);
	--wpconsent-outline-color: var(--wy-line);
	--wpconsent-accept-bg: var(--wy-heath);
	--wpconsent-accept-color: #fff;
	--wpconsent-cancel-bg: transparent;
	--wpconsent-cancel-color: var(--wy-night);
	--wpconsent-preferences-bg: transparent;
	--wpconsent-preferences-color: var(--wy-muted);
	--wpconsent-font-size: 15px;
}

/* ---------- Motion ---------- */
.js .wy-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--wy-ease), transform .7s var(--wy-ease); }
.js .wy-reveal.is-in { opacity: 1; transform: none; }
.js .wy-hero--home .wy-h1 { animation: wy-rise .9s var(--wy-ease) both; }
.js .wy-hero--home .wy-lede { animation: wy-rise .9s var(--wy-ease) .12s both; }
.js .wy-hero--home .wy-give { animation: wy-rise 1s var(--wy-ease) .25s both; }
.js .wy-leaf--hero .wy-leaf__vein { stroke-dasharray: 900; animation: wy-draw 2.4s var(--wy-ease) .3s both; }
.js .wy-leaf--hero svg { animation: wy-sway 14s ease-in-out infinite alternate; transform-origin: 80% 10%; }
@keyframes wy-rise { from { opacity: 0; transform: translateY(28px); } }
@keyframes wy-draw { from { stroke-dashoffset: 900; } to { stroke-dashoffset: 0; } }
@keyframes wy-sway { from { transform: rotate(0); } to { transform: rotate(-3deg); } }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.js .wy-reveal { opacity: 1; transform: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	.wy-programs, .wy-ways, .wy-team { grid-template-columns: repeat(2, 1fr); }
	.wy-facts { grid-template-columns: repeat(2, 1fr); }
	.wy-footer__cols { grid-template-columns: 1fr 1fr; }
	.wy-header__bar { gap: 16px; }
}
@media (max-width: 960px) {
	.wy-hero__grid--aside, .wy-story, .wy-split, .wy-donate, .wy-report { grid-template-columns: 1fr; }
	.wy-split__text, .wy-donate__aside { position: static; }
	.wy-hero__badge { justify-self: start; width: 160px; }
	.wy-event-aside { justify-self: stretch; min-width: 0; }
	.wy-event { grid-template-columns: auto 1fr; }
	.wy-event > .wy-btn { grid-column: 1 / -1; justify-self: start; }
	.wy-tiles--3, .wy-posts .wp-block-post-template { grid-template-columns: 1fr 1fr; }
	.wy-leaf--hero { width: 420px; right: -200px; }
}
@media (max-width: 600px) {
	.wy-programs, .wy-ways, .wy-team, .wy-tiles--3, .wy-posts .wp-block-post-template, .wy-facts, .wy-footer__cols { grid-template-columns: 1fr; }
	.wy-stats { grid-template-columns: 1fr 1fr; }
	.wy-form .wp-block-jetpack-contact-form > :is(.wy-half-wrap, :has(> .wy-half-wrap)) { flex-basis: 100%; }
	.wy-ribbon__match { display: none; }
	.wy-demobar__long { display: none; }
	.wy-demobar a { margin-left: 0; }
	.wy-leaf--hero { width: 300px; right: -170px; top: -40px; opacity: .7; }
	.wy-ribbon a { margin-left: 0; }
	.wy-frame { aspect-ratio: 1 / 1; }
	.wy-way { min-height: 0; }
	.wy-event-card { grid-template-columns: 1fr; }
	.wy-event-card .wy-date { justify-self: start; }
	.wy-impact-list a { grid-template-columns: 1fr auto; }
	.wy-impact-list a span:not(.wy-impact-list__go) { grid-column: 1 / -1; grid-row: 2; }
	.wy-bars li { grid-template-columns: 1fr 44px; }
	.wy-bars__label { grid-column: 1 / -1; }
	.wy-header__bar { height: 72px; }
	.wy-header-cta .wp-block-button__link { padding: .7em 1.1em; font-size: .9375rem; }
	.wy-logo__text small { display: none; }
}
