/*
Theme Name: Ashes to Gold
Theme URI: https://ashestogold.uk/
Description: The Ashes to Gold website theme. Block templates and theme.json, with the design system carried over from the original Bricks build.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: atg
*/

/* ==========================================================================
   1. Design tokens
   ========================================================================== */

:root {
	/* Colours */
	--color-primary: #607138;
	--color-links: #607138;
	--color-brand: #95a768;
	--color-headings: #475327;
	--color-dark-bg: #2e351d;
	--color-accent: #d2df64;
	--color-highlight-bg: #f3f6da;
	--color-donate: #e2b33c;
	--color-donate-dark: #d19f22;
	--color-donate-bg: #f4ebd0;
	--color-text-dark: #1e2416;
	--color-text-muted: #565c4b;
	--color-text-light: #ffffff;
	--color-site-bg: #ffffff;
	--color-light-bg: #f7f7f2;
	--color-border: #d9dbcf;
	--color-input-border: #8c9179;
	--color-success: #2e6b2f;
	--color-warning: #8a6100;
	--color-error: #b42318;

	/* Fonts */
	--font-heading: "Barlow Condensed", "Arial Narrow", sans-serif;
	--font-body: "Barlow", "Segoe UI", Arial, sans-serif;

	/* Text */
	--text-xs: clamp(0.875rem, 0.866rem + 0.045vw, 0.906rem);
	--text-s: clamp(0.944rem, 0.932rem + 0.064vw, 0.990rem);
	--text-m: clamp(1.062rem, 1.027rem + 0.179vw, 1.188rem);
	--text-l: clamp(1.195rem, 1.130rem + 0.328vw, 1.425rem);
	--text-xl: clamp(1.345rem, 1.240rem + 0.522vw, 1.710rem);
	--text-2xl: clamp(1.513rem, 1.359rem + 0.770vw, 2.052rem);
	--line-height-text: calc(8px + 2.25ex);

	/* Headings */
	--h3: clamp(1.313rem, 1.233rem + 0.398vw, 1.591rem);
	--h2: clamp(1.750rem, 1.607rem + 0.714vw, 2.250rem);
	--h1: clamp(2.333rem, 2.090rem + 1.212vw, 3.181rem);
	--h-display: clamp(3.110rem, 2.713rem + 1.984vw, 4.499rem);
	--line-height-headings: calc(4px + 2ex);

	/* Space */
	--space-2xs: clamp(0.768rem, 0.686rem + 0.411vw, 1.055rem);
	--space-xs: clamp(0.960rem, 0.832rem + 0.639vw, 1.407rem);
	--space-s: clamp(1.200rem, 1.007rem + 0.965vw, 1.875rem);
	--space-m: clamp(1.500rem, 1.214rem + 1.429vw, 2.500rem);
	--space-l: clamp(1.875rem, 1.459rem + 2.082vw, 3.333rem);
	--space-xl: clamp(2.344rem, 1.744rem + 2.998vw, 4.442rem);
	--space-2xl: clamp(2.930rem, 2.075rem + 4.274vw, 5.921rem);

	/* Section space */
	--section-space-s: clamp(3.125rem, 3.065rem + 0.298vw, 3.333rem);
	--section-space-m: clamp(3.750rem, 3.393rem + 1.786vw, 5.000rem);
	--section-space-l: clamp(4.500rem, 3.643rem + 4.286vw, 7.500rem);
	--section-space-xl: clamp(5.400rem, 3.729rem + 8.357vw, 11.250rem);

	/* Layout */
	--content-gap-m: var(--space-s);
	--content-gap-s: calc(var(--content-gap-m) / 2);
	--content-gap-xs: calc(var(--content-gap-m) / 3);
	--content-gap-l: calc(var(--content-gap-m) * 1.25);
	--container-gap: var(--space-l);
	--grid-gap: var(--space-m);
	--gutter: var(--grid-gap);

	/* Grids */
	--grid-1: minmax(0, 1fr);
	--grid-2: repeat(2, minmax(0, 1fr));
	--grid-3: repeat(3, minmax(0, 1fr));
	--grid-4: repeat(4, minmax(0, 1fr));
	--grid-3-2: minmax(0, 3fr) minmax(0, 2fr);
	--grid-auto: repeat(auto-fit, minmax(min(26.25rem, 100% - calc(var(--gutter) * 2)), 1fr));

	/* Widths */
	--width-wide: 90rem;
	--width-container: 75rem;
	--width-narrow: 60rem;
	--width-article: 65ch;

	/* Radius */
	--radius-s: 0.25rem;
	--radius-m: 0.5rem;
	--radius-l: 1rem;
	--radius-full: 50%;

	/* Effects */
	--shadow-s: 0 1px 2px rgb(30 36 22 / 0.08);
	--shadow-m: 0 6px 20px -6px rgb(30 36 22 / 0.18);
	--focus-ring: 0 0 0 3px var(--color-site-bg), 0 0 0 6px var(--color-headings);

}

/* ==========================================================================
   2. Base
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
	margin: 0;
	background: var(--color-site-bg);
	color: var(--color-text-dark);
	font-family: var(--font-body);
	font-size: var(--text-m);
	font-weight: 400;
	line-height: var(--line-height-text);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 600;
	line-height: var(--line-height-headings);
	color: var(--color-headings);
	text-wrap: balance;
}
h1 { font-size: var(--h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); }
h4 { font-size: var(--text-l); }

/* Default margins off: spacing comes from the layout classes below */
h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, blockquote { margin: 0; }

img { max-width: 100%; height: auto; }

a { color: var(--color-links); font-weight: 500; transition: color 0.2s ease; }

/* Links in text: underlined always (colour alone is not enough), thicker on hover */
:where(main, footer) :is(p, li:not(.wp-block-post), td, dd, figcaption) a:not(.btn, .wp-block-button__link),
.wp-block-group > a:not(.btn, .wp-block-button__link) {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
:where(main, footer) :is(p, li:not(.wp-block-post), td, dd, figcaption) a:not(.btn, .wp-block-button__link):is(:hover, :focus-visible) {
	color: var(--color-headings);
	text-decoration-thickness: 0.12em;
}

/* Focus: always visible */
:focus-visible { outline: 3px solid var(--color-headings); outline-offset: 3px; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed !important; top: 0.5rem; left: 0.5rem; z-index: 100000; width: auto; height: auto; clip: auto; padding: 0.75rem 1rem; background: var(--color-site-bg); color: var(--color-headings); }

/* Sticky footer: short pages (404, booking confirmed, thank you) fill the window; a closing hero stretches and centres its text */
.wp-site-blocks { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.wp-site-blocks > main { flex: 1 0 auto; display: flex; flex-direction: column; }
.wp-site-blocks > main > .wp-block-post-content { flex: 1 0 auto; display: flex; flex-direction: column; }
:is(.wp-site-blocks > main, .wp-site-blocks > main > .wp-block-post-content) > .hero:last-child { flex: 1 0 auto; display: flex; flex-direction: column; justify-content: center; }

/* ==========================================================================
   3. Layout: sections, containers, stacks and grids
   ========================================================================== */

.section {
	display: flex;
	flex-direction: column;
	align-items: center;
	row-gap: var(--container-gap);
	padding: var(--section-space-m) var(--gutter);
}

/* The section straight after a hero (or the project notice) starts closer to it */
.hero + .section, .notice-section + .section { padding-top: var(--section-space-s); }

.container {
	display: flex;
	flex-direction: column;
	row-gap: var(--content-gap-m);
	width: var(--width-container);
	max-width: 100%;
	margin-inline: auto;
}
.container--narrow { width: var(--width-narrow); }

.stack { display: flex; flex-direction: column; row-gap: var(--content-gap-m); width: 100%; }
.row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--content-gap-m); }

.grid { display: grid; grid-template-columns: var(--grid-2); gap: var(--grid-gap); width: 100%; }
.grid--3 { grid-template-columns: var(--grid-3); }
.grid--4 { grid-template-columns: var(--grid-4); }
.grid--3-2 { grid-template-columns: var(--grid-3-2); }
.grid--gap-l { gap: var(--space-l); }
.grid--center { align-items: center; }
@media (max-width: 991px) {
	.grid--3, .grid--4, .grid--3-2 { grid-template-columns: var(--grid-2); }
}
@media (max-width: 767px) {
	.grid, .grid--3, .grid--4, .grid--3-2 { grid-template-columns: var(--grid-1); }
}

/* Rich text: contextual spacing between paragraphs, lists and sub-headings */
.prose > * + * { margin-top: 1em; }
.prose > :is(h2, h3, h4) + * { margin-top: 0.5em; }
.prose > :is(h2, h3, h4):not(:first-child) { margin-top: 1.5em; }
.prose :is(ul, ol) { padding-left: 1.25em; }
.prose li + li { margin-top: 0.5em; }

.intro { font-size: var(--text-l); max-width: var(--width-article); }
.is-display { font-size: var(--h-display); font-weight: 700; }

.metatext { font-size: var(--text-s); color: var(--color-text-muted); }

/* Backgrounds */
.bg-dark { background-color: var(--color-dark-bg); color: var(--color-text-light); }
.bg-primary { background-color: var(--color-primary); color: var(--color-text-light); }
.bg-light { background-color: var(--color-light-bg); }
.bg-highlight { background-color: var(--color-highlight-bg); }
.bg-dark :is(h1, h2, h3, h4, h5, h6), .bg-primary :is(h1, h2, h3, h4, h5, h6) { color: var(--color-text-light); }
.bg-dark a:not(.btn, .wp-block-button__link) { color: var(--color-accent); }
.bg-primary a:not(.btn, .wp-block-button__link) { color: var(--color-text-light); }
.bg-dark :focus-visible { outline-color: var(--color-accent); }
.bg-primary :focus-visible { outline-color: var(--color-text-light); }
.bg-primary .badge a:not(.btn), .badge a:not(.btn) { color: var(--color-headings); text-decoration: none; }
/* Dates and small print on dark green heroes need to be light */
.bg-primary .metatext, .bg-primary.metatext { color: var(--color-text-light) !important; opacity: 0.9; }

/* ==========================================================================
   4. Buttons (block editor buttons and the buttons that shortcodes print)
   ========================================================================== */

.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: var(--content-gap-m); }
.wp-block-buttons > .wp-block-button { margin: 0; }

.wp-block-button__link, .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: var(--content-gap-xs) var(--space-xs);
	font-family: var(--font-body);
	font-size: var(--text-m);
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	color: var(--color-text-light);
	background-color: var(--color-primary);
	border: 2px solid var(--color-primary);
	border-radius: var(--radius-s);
	cursor: pointer;
	transition: all 0.3s ease;
}
.wp-block-button__link:is(:hover, :focus-visible), .btn:is(:hover, :focus-visible) {
	color: var(--color-text-light);
	background-color: var(--color-headings);
	border-color: var(--color-headings);
}

/* Outline (Forest outline on white) */
.is-style-outline > .wp-block-button__link, .btn--outline {
	color: var(--color-primary);
	background-color: transparent;
	border-color: var(--color-primary);
	padding: var(--content-gap-xs) var(--space-xs);
}
.is-style-outline > .wp-block-button__link:is(:hover, :focus-visible), .btn--outline:is(:hover, :focus-visible) {
	color: var(--color-text-light);
	background-color: var(--color-primary);
	border-color: var(--color-primary);
}

/* Donate (gold) */
.is-style-donate > .wp-block-button__link, .btn--donate {
	color: var(--color-text-dark);
	background-color: var(--color-donate);
	border-color: var(--color-donate);
}
.is-style-donate > .wp-block-button__link:is(:hover, :focus-visible), .btn--donate:is(:hover, :focus-visible) {
	color: var(--color-text-dark);
	background-color: var(--color-donate-dark);
	border-color: var(--color-donate-dark);
}

/* Light (white on dark heroes) */
.is-style-light > .wp-block-button__link, .btn--light {
	color: var(--color-headings);
	background-color: var(--color-site-bg);
	border-color: var(--color-site-bg);
}
.is-style-light > .wp-block-button__link:is(:hover, :focus-visible), .btn--light:is(:hover, :focus-visible) {
	color: var(--color-headings);
	background-color: var(--color-highlight-bg);
	border-color: var(--color-highlight-bg);
}

.btn-disabled { display: inline-flex; align-items: center; min-height: 3rem; padding: var(--content-gap-xs) var(--space-xs); background: var(--color-border); color: var(--color-text-dark); border-radius: var(--radius-s); font-weight: 600; }

/* ==========================================================================
   5. Header and main menu
   ========================================================================== */

.site-header { padding: 2rem var(--gutter); background: var(--color-site-bg); border-bottom: 1px solid var(--color-border); }
.site-header__inner { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: space-between; column-gap: var(--content-gap-s); row-gap: var(--content-gap-m); width: var(--width-container); max-width: 100%; margin-inline: auto; }
.site-header .wp-block-site-logo { flex-shrink: 0; line-height: 0; }
.site-header .wp-block-site-logo img { height: 3.5rem; width: auto; max-width: none; }
.site-header .header-buttons { flex-shrink: 0; flex-wrap: wrap; gap: var(--content-gap-s); }

.site-nav { flex-shrink: 0; margin-left: auto; }
.site-nav__menu, .site-nav__menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.site-nav__menu a { display: block; text-decoration: none; font-weight: 600; font-size: var(--text-m); color: var(--color-text-dark); white-space: nowrap; }
.site-nav__menu a:is(:hover, :focus-visible), .site-nav__menu .current-menu-item > a, .site-nav__menu .current-menu-ancestor > a, .site-nav__menu .current-menu-ancestor > .site-nav__item > a { color: var(--color-links); }
.site-nav__item { display: flex; align-items: center; }
.site-nav__sub-toggle { font-size: var(--text-m); display: inline-flex; align-items: center; justify-content: center; margin: 0; padding: 0.2rem 0.3rem; background: none; border: 0; color: inherit; cursor: pointer; }
.site-nav__sub-toggle svg { width: 1em; height: 1em; transition: transform 0.2s ease; }
.site-nav__sub-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.site-nav__toggle, .site-nav__close { display: none; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; padding: 0; background: none; border: 0; color: var(--color-text-dark); cursor: pointer; }
.site-nav__toggle svg, .site-nav__close svg { width: 1.6rem; height: 1.6rem; }
.site-nav__backdrop { display: none; }
.menu-cta { display: none; }
.site-nav__overview { display: none; }

/* Desktop: the menu sits in the header, What We Do opens a drop-down */
@media (min-width: 1201px) {
	.site-nav__menu { display: flex; align-items: center; }
	.site-nav__menu > li { position: relative; }
	.site-nav__menu > li > a, .site-nav__menu > li > .site-nav__item > a { padding: var(--content-gap-xs); }
	.site-nav__menu > li > .site-nav__item > a { padding-right: 0; }
	.site-nav__menu .sub-menu {
		position: absolute; top: 100%; left: 0; z-index: 100; min-width: 14rem;
		padding: 0.5rem 0; background: var(--color-site-bg);
		border: 1px solid var(--color-border); box-shadow: 0 6px 16px 0 rgba(30, 36, 22, 0.12);
		visibility: hidden; opacity: 0; transform: translateY(0.25rem); transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
	}
	.site-nav__menu .sub-menu a { padding: 0.5rem 1rem; }
	.site-nav__menu li:hover > .sub-menu, .site-nav__menu li.is-open > .sub-menu { visibility: visible; opacity: 1; transform: none; }
}

/* Up to 1200px: a menu button opens a panel from the right */
@media (max-width: 1200px) {
	.site-header__inner { gap: var(--content-gap-s); flex-wrap: wrap; }
	.site-header .wp-block-site-logo { order: 1; margin-right: auto; }
	.site-header .header-buttons { order: 2; margin-left: auto; }
	.site-nav { order: 3; margin-left: 0; }
	.site-header .header-get-support { display: none; }
	.site-header .header-buttons .wp-block-button__link { min-height: 2.5rem; padding: 0.35rem 1rem; }

	.site-nav__toggle { display: inline-flex; }
	.site-nav__panel {
		position: fixed; top: 0; right: 0; bottom: 0; z-index: 10001;
		width: 22rem; max-width: 100%; padding: 4.5rem 0 2rem; overflow-y: auto;
		background: var(--color-site-bg); box-shadow: -6px 0 24px rgba(30, 36, 22, 0.18);
		transform: translateX(100%); visibility: hidden; transition: transform 0.25s ease, visibility 0.25s;
	}
	.site-nav.is-open .site-nav__panel { transform: none; visibility: visible; }
	.site-nav__close { display: inline-flex; position: absolute; top: 1rem; right: 1rem; }
	.site-nav__backdrop { position: fixed; inset: 0; z-index: 10000; background: rgba(30, 36, 22, 0.45); }
	.site-nav.is-open .site-nav__backdrop { display: block; }

	.site-nav__menu > li > a, .site-nav__item > a { padding: 0.6rem 1.25rem; font-size: var(--text-l); }
	.site-nav__item { justify-content: space-between; padding-right: 0.75rem; }
	.site-nav__item > a { flex: 1; }
	.site-nav__sub-toggle { width: 2.75rem; height: 2.75rem; }
	.site-nav__menu .sub-menu { display: none; padding-bottom: var(--content-gap-xs); }
	.site-nav__menu li.is-open > .sub-menu { display: block; }
	.site-nav__menu .sub-menu a { padding: 0.45rem 1.25rem 0.45rem 2.25rem; font-size: var(--text-m); font-weight: 500; }

	.menu-cta { display: block; padding-inline: 1.25rem; }
	.site-nav__overview { display: block; }
	.site-nav__overview a { font-weight: 600; }
	.site-nav__menu .menu-cta a { display: flex; justify-content: center; margin-top: var(--content-gap-s); padding: var(--content-gap-xs) var(--space-xs); border: 2px solid var(--color-primary); border-radius: var(--radius-s); text-align: center; font-size: var(--text-m); font-weight: 600; }
	.site-nav__menu .menu-cta--support a { color: var(--color-primary); }
	.site-nav__menu .menu-cta--donate a { background: var(--color-donate); border-color: var(--color-donate); color: var(--color-text-dark); }
}
@media (max-width: 478px) {
	.site-header .wp-block-site-logo img { height: 2.5rem; }
	.site-header__inner { gap: 0.5rem; }
}
/* Phones: a slimmer header (was about 60px of padding above and below) */
@media (max-width: 767px) {
	.site-header { padding-block: 0.75rem; }
}
body.atg-menu-open { overflow: hidden; }

/* ==========================================================================
   6. Footer
   ========================================================================== */

/* Desktop: logo left, phone, email and social icons in the middle, Donate right. Tablet and phone: everything centred, icons and Donate share one line */
.site-footer { padding: var(--section-space-s) var(--gutter) var(--space-m); }
.site-footer > .container { row-gap: var(--space-s); }
.site-footer__top { display: flex; flex-wrap: nowrap; align-items: center; gap: var(--content-gap-m); width: 100%; }
.footer-logo img { display: block; height: 2.75rem; width: auto; object-fit: contain; object-position: left center; }
.site-footer p { color: var(--color-text-light); }
.footer-legal p { font-size: var(--text-xs); }
.footer-legal { display: flex; flex-direction: column; row-gap: var(--content-gap-xs); padding-top: var(--space-s); border-top: 1px solid rgb(255 255 255 / 0.2); text-align: center; }
.footer-sep { margin-inline: 0.35em; }
/* Krystal logo: sized from the text (1.25em) so it shrinks with the small print; centred on the text line, then nudged down 0.1em */
.footer-hosting a { display: inline-block; line-height: 0; }
.footer-hosting img { height: 1.25em; width: auto; vertical-align: -0.23em; position: relative; top: 0.1em; }
.footer-contact { margin-inline-start: auto; }
.footer-actions { display: contents; }
.footer-social { display: flex; gap: 0.5rem; margin-inline-end: auto; }
.footer-social a { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid rgb(255 255 255 / 0.35); border-radius: 50%; color: var(--color-text-light); transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.footer-social a:is(:hover, :focus-visible) { background-color: var(--color-accent); border-color: var(--color-accent); color: var(--color-dark-bg); }
@media (min-width: 992px) { .footer-contact { white-space: nowrap; } }
@media (max-width: 991px) {
	.site-footer__top { flex-direction: column; text-align: center; }
	.footer-contact, .footer-social { margin-inline: 0; }
	.footer-actions { display: flex; align-items: center; justify-content: center; gap: var(--content-gap-m); }
}

/* ==========================================================================
   7. Components
   ========================================================================== */

/* Hero */
.hero h1 { text-transform: uppercase; }
.eyebrow { font-family: var(--font-heading); font-weight: 600; font-size: var(--text-s); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-headings); }
.bg-primary .eyebrow, .bg-dark .eyebrow { color: var(--color-accent); }

/* Photos */
:is(.hero-image, .photo, .split-image) img, img:is(.hero-image, .photo) { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-m); }
.hero-image img, img.hero-image { border: 0.375rem solid var(--color-site-bg); }
.split-image img, img.split-image { aspect-ratio: 3 / 2; }

/* Section labels with pips */
.section-tab { display: inline-flex; align-items: center; align-self: flex-start; padding: 0.35em 0.9em 0.35em 2.5em; background: var(--color-primary) url("assets/img/pips.png") no-repeat 0.7em center / 1.3em auto; color: var(--color-text-light); font-family: var(--font-heading); font-weight: 600; font-size: var(--text-l); line-height: 1.2; letter-spacing: 0.03em; text-transform: uppercase; }
.bg-primary .section-tab { background-color: var(--color-dark-bg); }

/* Cards */
.card { position: relative; display: flex; flex-direction: column; gap: var(--content-gap-s); background: var(--color-site-bg); border: 1px solid var(--color-border); border-radius: var(--radius-m); padding: var(--space-s); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.card:has(.clickable-parent):hover { transform: translateY(-4px); box-shadow: var(--shadow-m); }
.card > * { margin: 0; }
/* Cards: push a lone action (button group, bare .btn, or paragraph wrapping one button) to the bottom so actions line up across a row; later actions follow it normally */
.card > :is(.wp-block-buttons, .btn, p:has(> .btn:only-child)) { margin-top: auto; }
.card > :is(.wp-block-buttons, .btn, p:has(> .btn:only-child)) ~ :is(.wp-block-buttons, .btn, p:has(> .btn:only-child)) { margin-top: 0; }
.clickable-parent a, a.clickable-parent { color: inherit; text-decoration: none; }
.clickable-parent a::after, a.clickable-parent::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.wp-block-post-template > li { display: flex; }
.wp-block-post-template > li > .card { width: 100%; }

.wp-block-group.card { row-gap: var(--content-gap-m); }
.card.card--media { padding: 0; overflow: hidden; gap: 0; }
.card--media .card-media { position: relative; line-height: 0; }
.card--media .card-media img { aspect-ratio: 4 / 3; border-radius: 0; }
.card--media .card-media .section-tab { position: absolute; left: 0; bottom: 0; font-size: var(--text-m); }
.card--media .card-body { display: flex; flex-direction: column; align-items: flex-start; gap: var(--content-gap-s); padding: var(--space-xs) var(--space-s) var(--space-s); flex-grow: 1; }
.card--media .card-body > * { margin: 0; }
.card--media .card-link { margin-top: auto; padding-top: var(--content-gap-xs); font-weight: 600; color: var(--color-links); }
.card--media .card-link::after { content: " →"; }
.card--media:hover .card-link { text-decoration: underline; text-underline-offset: 0.15em; }
.card--media .card-body :is(h2, h3) { font-size: var(--h3); }
.atg-services h3::before, .card h3.has-pips::before { content: ""; display: inline-block; width: 1.25em; height: 1.1em; margin-right: 0.4em; vertical-align: -0.12em; background: url("assets/img/pips.png") no-repeat center / contain; }
.stat-card h3 { font-size: var(--h1); margin: 0; }

.badge { display: inline-block; align-self: flex-start; line-height: 1.4; background: var(--color-highlight-bg); color: var(--color-headings); font-size: var(--text-s); font-weight: 600; padding: 0.2em 0.7em; border-radius: var(--radius-s); }
.badge--price { background: var(--color-donate-bg); color: var(--color-text-dark); }

.callout { background: var(--color-highlight-bg); border-left: 0.375rem solid var(--color-headings); border-radius: 0 var(--radius-s) var(--radius-s) 0; padding: var(--space-s); }
.callout p { margin: 0; }
.callout--crisis { position: relative; padding-left: calc(var(--space-s) + 2.75rem); }
.callout--crisis::before { content: ""; position: absolute; left: var(--space-s); top: var(--space-s); width: 2rem; height: 2rem; background: url("assets/img/pips.png") no-repeat center / contain; }
.callout--crisis :is(h2, h3) { margin: 0 0 0.25em; font-size: var(--h3); }
.callout--crisis > p + p { margin-top: 0.5em; }
.callout--crisis .callout__label { margin-top: 0.9em; font-weight: 600; font-size: var(--text-s); text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-text-muted); }
.callout--crisis .callout__label + .callout__phone { margin-top: 0.1em; line-height: 1.1; }
.callout--crisis .callout__emergency { font-size: var(--text-s); }
.callout__phone { font-family: var(--font-heading); font-weight: 700; font-size: var(--h2); color: var(--color-headings); }
.callout__phone a { color: inherit; text-decoration: none !important; }

.donate-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-m); align-items: center; padding: var(--space-m); background: var(--color-donate-bg); border-radius: var(--radius-m); }
.donate-panel > .stack { row-gap: var(--content-gap-s); }
.donate-panel h2, .donate-panel p { margin: 0; }
.donate-panel > p { justify-self: end; }
.donate-panel > p .btn { min-width: 11rem; justify-content: center; }
.cta-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-m); align-items: center; padding: var(--space-m); background: var(--color-highlight-bg); border-radius: var(--radius-m); }
.cta-card > .stack { row-gap: var(--content-gap-xs); }
.cta-card :is(h2, h3), .cta-card p { margin: 0; }
.cta-card h2 { font-size: var(--h3); }
@media (max-width: 767px) {
	.cta-card, .donate-panel { grid-template-columns: var(--grid-1); }
	.donate-panel > p { justify-self: stretch; }
	.donate-panel > p .btn { width: 100%; }
}
.hero .donate-reassure { margin: 0; font-size: var(--text-s); }

/* Lists printed by shortcodes */
.atg-services, .atg-events { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: var(--grid-3); gap: var(--grid-gap); }
.atg-timeline { list-style: none; margin: 0; padding: 0 0 0 var(--space-s); border-left: 0.25rem solid var(--color-accent); display: flex; flex-direction: column; gap: var(--space-s); }
.atg-timeline > li { display: flex; flex-direction: column; gap: var(--content-gap-xs); }
.atg-timeline h3, .atg-timeline p { margin: 0; }
.atg-funders { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: var(--space-s); align-items: stretch; }
.atg-funders li { display: flex; align-items: center; justify-content: center; height: 6.5rem; padding: 0.75rem 1rem; background: var(--color-site-bg); border: 1px solid var(--color-border); border-radius: 8px; overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.atg-funders a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; cursor: pointer; }
.atg-funders img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; opacity: 0.9; transition: opacity 0.2s ease; }
.atg-funders li:hover, .atg-funders li:focus-within { transform: translateY(-2px); box-shadow: var(--shadow-s); }
.atg-funders li:hover img, .atg-funders li:focus-within img { opacity: 1; }
.atg-funders a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; border-radius: 4px; }
@media (max-width: 600px) { .atg-funders { grid-template-columns: repeat(2, minmax(0, 1fr)); } .atg-funders li { height: 5.5rem; padding: 0.6rem 0.75rem; } }
@media (prefers-reduced-motion: reduce) { .atg-funders li, .atg-funders img { transition: none; } .atg-funders li:hover, .atg-funders li:focus-within { transform: none; } }
.atg-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: var(--grid-3); gap: var(--grid-gap); }
.atg-gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-m); }
@media (max-width: 991px) { .atg-gallery, .atg-services, .atg-events { grid-template-columns: var(--grid-2); } }
@media (max-width: 767px) { .atg-gallery, .atg-services, .atg-events { grid-template-columns: var(--grid-1); } }

/* Testimonials */
.atg-testimonial { margin: 0; }
.atg-testimonials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-m); }
@media (max-width: 767px) { .atg-testimonials { grid-template-columns: var(--grid-1); } }
.atg-testimonial blockquote { padding-left: 1.75rem; border-left: 0.25rem solid var(--color-border); margin: 0; font-family: var(--font-heading); font-size: var(--text-2xl); font-weight: 600; line-height: var(--line-height-headings); }
.atg-testimonial blockquote::before { content: ""; display: block; width: 2.25rem; height: 2.25rem; margin-bottom: var(--content-gap-s); background-color: var(--color-accent); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M4 18c0-6 3-10 9-12l1.2 2.2C10.800 9.600 9.400 11.400 9.200 14H14v12H4V18zm14 0c0-6 3-10 9-12l1.200 2.200c-3.400 1.400-4.800 3.200-5 5.800H28v12H18V18z'/%3E%3C/svg%3E") no-repeat center / contain; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M4 18c0-6 3-10 9-12l1.2 2.2C10.800 9.600 9.400 11.400 9.200 14H14v12H4V18zm14 0c0-6 3-10 9-12l1.200 2.200c-3.400 1.400-4.800 3.200-5 5.800H28v12H18V18z'/%3E%3C/svg%3E") no-repeat center / contain; }
.atg-testimonial figcaption { margin-top: var(--content-gap-s); font-size: var(--text-s); font-weight: 600; color: var(--color-text-muted); text-align: left; }
.atg-testimonial--lines blockquote p { margin: 0 0 var(--content-gap-xs, .35rem); font-size: var(--text-xl); }
.atg-testimonial--lines blockquote p:last-child { margin-bottom: 0; }
.atg-testimonial-more { margin-top: var(--content-gap-s); }
.atg-testimonial-more summary { cursor: pointer; font-size: var(--text-s); font-weight: 600; color: var(--color-primary); text-decoration: underline; text-underline-offset: .2em; list-style: none; }
.atg-testimonial-more summary::-webkit-details-marker { display: none; }
.atg-testimonial-more summary::after { content: ' +'; text-decoration: none; display: inline-block; }
.atg-testimonial-more[open] summary::after { content: ' \2212'; }
.atg-testimonial-more summary:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.atg-testimonial-more > div { margin-top: var(--content-gap-s); font-size: var(--text-m); font-weight: 400; line-height: 1.6; color: var(--color-text-dark); }
.atg-testimonial-more > div p { margin: 0 0 var(--content-gap-s); }

/* Icons */
.atg-icon { flex: none; width: 1.5rem; height: 1.5rem; color: var(--color-primary); }

/* ==========================================================================
   8. Events
   ========================================================================== */

.event-list { display: flex; flex-direction: column; align-items: stretch; gap: var(--content-gap-m); width: 100%; }
.event-list > * { width: 100%; }

.event-card { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-s); align-items: center; padding: var(--space-s); background: var(--color-site-bg); border: 1px solid var(--color-border); border-radius: var(--radius-m); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.event-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-m); }
.event-card :is(h2, h3) { margin: 0 0 0.25em; font-size: var(--h3); }
.event-card :is(h2, h3) a { color: inherit; text-decoration: none; }
.event-card :is(h2, h3) a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.event-card p { margin: 0; }
.event-card__side { display: flex; flex-direction: column; align-items: flex-end; gap: var(--content-gap-xs); text-align: right; }
.event-card__side .btn { position: relative; z-index: 2; }
.event-card--full { background: var(--color-light-bg); }
.date-chip { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 4.5rem; padding: 0.5em; background: var(--color-highlight-bg); color: var(--color-headings); border-radius: var(--radius-s); font-family: var(--font-heading); font-weight: 700; line-height: 1; text-transform: uppercase; }
.date-chip__day { font-size: var(--h2); }
.date-chip__month { font-size: var(--text-s); letter-spacing: 0.08em; margin-top: 0.3em; }
.event-card--full .date-chip { background: var(--color-border); }
@media (max-width: 767px) {
	.event-card { grid-template-columns: auto minmax(0, 1fr); }
	.event-card__side { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; text-align: left; }
}

.event-dateline { display: flex; align-items: center; gap: 0.5em; margin: 0; font-size: var(--text-l); }
.event-dateline .atg-icon { color: var(--color-accent); }
.event-main { gap: 0; }
.event-main > h2 { margin: 0 0 var(--content-gap-s, 0.5rem); }
.event-body > * { margin: 0; }
.event-body > * + * { margin-top: var(--content-gap-m); }
.event-body > h2 { margin-top: var(--space-m); margin-bottom: var(--content-gap-s, 0.5rem); }
.event-body > h2 + * { margin-top: 0; }
.event-body ul { padding-left: 1.25em; }
.event-body li + li { margin-top: 0.4em; }
.event-sidebar { align-self: flex-start; }
.event-summary { display: flex; flex-direction: column; gap: var(--content-gap-m); width: 100%; padding: var(--space-s); background: var(--color-site-bg); border: 1px solid var(--color-border); border-radius: var(--radius-m); box-shadow: var(--shadow-s); }
.event-summary__price { margin: 0; font-family: var(--font-heading); font-weight: 700; font-size: var(--h2); line-height: 1; color: var(--color-headings); }
.event-summary__price span { font-family: var(--font-body); font-weight: 400; font-size: var(--text-s); color: var(--color-text-muted); }
.event-summary__list { display: flex; flex-direction: column; gap: var(--content-gap-s); margin: 0; padding: 0; list-style: none; }
.event-summary__list > li { display: flex; gap: 0.75em; align-items: flex-start; padding-top: var(--content-gap-s); border-top: 1px solid var(--color-border); }
.event-summary__list > li > div { display: flex; flex-direction: column; min-width: 0; }
.event-summary__label { font-size: var(--text-s); font-weight: 600; color: var(--color-text-muted); }
.event-summary__list ul { margin: 0; padding-left: 1.1em; list-style: disc; }
.event-summary__list ul li { display: list-item; padding: 0; border: 0; }
.event-summary__cta { align-self: stretch; justify-content: center; text-align: center; }
.atg-event-sessions { margin: 0; padding-left: 1.1em; }
.atg-places--open, .atg-places { font-weight: 600; }
.atg-places--full, .atg-places--closed { color: var(--color-error); font-weight: 600; }
.atg-booking__intro { margin-top: 0; }
.atg-optional-hint { color: var(--color-text-muted); }
.event-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--grid-gap); }
.fact { display: flex; flex-direction: column; gap: var(--content-gap-xs); padding: var(--space-s); background: var(--color-site-bg); border: 1px solid var(--color-border); border-left: 0.375rem solid var(--color-primary); border-radius: var(--radius-m); }
.fact__label { font-family: var(--font-heading); font-weight: 600; font-size: var(--text-s); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-headings); }
.fact__value { font-size: var(--text-m); }
.fact__value ul { margin: 0; padding-left: 1.1em; }
.booking-card { position: sticky; top: var(--space-s); }
@media (max-width: 991px) { .event-facts { grid-template-columns: var(--grid-2); } }
@media (max-width: 767px) { .event-facts { grid-template-columns: var(--grid-1); } .booking-card { position: static; } }
#book { scroll-margin-top: var(--space-s); }

/* ==========================================================================
   9. Project pages
   ========================================================================== */

.atg-optional:not(:has(li, figure, .project-split, .project-products)) { display: none; }
.notice-section { padding-bottom: 0; }
.notice-section > .container:not(:has(*)) { display: none; }
.project-strapline { margin: 0; font-family: var(--font-heading); font-weight: 600; font-size: var(--h3); line-height: 1.2; color: var(--color-accent); }
.project-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-l); align-items: center; }
.project-split--text { grid-template-columns: minmax(0, 1fr); }
.project-split--flip .project-split__photo { order: -1; }
.project-split__text > * { margin-top: 0; }
.project-split__text .section-tab { margin-bottom: 0; }
.project-split__text .section-tab + h2 { margin-top: var(--content-gap-s); }
.project-split__text > * + * { margin-top: 1em; }
.project-split__text > h2 + * { margin-top: 0; }
.project-split__text h2 { margin-bottom: var(--content-gap-s); }
.project-split__text ul { margin: 0 0 1em; padding-left: 1.25em; }
.project-split__photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-m); }
.project-products .section-tab { margin-bottom: 0; }
.project-products > * + * { margin-top: 1em; }
.project-products .section-tab + h2 { margin-top: var(--content-gap-s); }
.project-products > h2 + * { margin-top: var(--content-gap-s); }
.project-products > .atg-events { margin-top: var(--content-gap-m); }
.project-products > .project-products__ask { margin-top: var(--space-l); }
.project-products__ask > h3 { margin: 0 0 var(--content-gap-s); }
.project-products__ask .jet-form-builder { margin-top: 0; }
@media (max-width: 767px) { .project-split { grid-template-columns: minmax(0, 1fr); gap: var(--space-s); } .project-split--flip .project-split__photo { order: 0; } }

/* ==========================================================================
   10. News
   ========================================================================== */

.news-body > .wp-block-post-content > * + * { margin-top: 1em; }
.news-body > .wp-block-post-content > :is(h2, h3):not(:first-child) { margin-top: 1.5em; }
.news-body > .wp-block-post-content :is(ul, ol) { padding-left: 1.25em; }
.news-body > .wp-block-post-content li + li { margin-top: 0.5em; }
.news-body .wp-block-post-content figure img { border-radius: var(--radius-m); }

/* ==========================================================================
   11. Legal pages (Privacy and Cookie Policy)
   ========================================================================== */

.legal-content { display: flex; flex-direction: column; width: 100%; max-width: calc(var(--width-narrow) + 2 * var(--gutter)); margin-inline: auto; padding: var(--section-space-m) var(--gutter); font-size: var(--text-m); line-height: var(--line-height-text); }
:where(.legal-content > *) { margin-block: 0; }
:where(.legal-content > * + *) { margin-top: var(--content-gap-m); }
.legal-content > .wp-block-post-content > * + * { margin-top: var(--content-gap-m); }
.legal-content h1 { font-size: var(--h1); line-height: var(--line-height-headings); margin-bottom: var(--space-s); }
.legal-content .wp-block-post-content > h2 { font-size: var(--h2); line-height: var(--line-height-headings); margin-top: var(--space-xl); padding-top: var(--space-m); border-top: 2px solid var(--color-border); }
.legal-content .wp-block-post-content > h3 { font-size: var(--text-xl); line-height: var(--line-height-headings); font-weight: 600; margin-top: var(--space-m); padding-left: var(--space-2xs); border-left: 4px solid var(--color-primary); }
.legal-content .wp-block-post-content > :is(h2, h3) + * { margin-top: var(--content-gap-s); }
.legal-content :is(ul, ol) { padding-left: var(--space-s); }
.legal-content li + li { margin-top: var(--content-gap-xs); }
.legal-content a { text-decoration: underline; text-underline-offset: 0.15em; overflow-wrap: anywhere; }
.legal-content figure.wp-block-table { overflow-x: auto; margin-inline: 0; }
.legal-content table { width: 100%; min-width: var(--width-article); border-collapse: collapse; font-size: var(--text-s); line-height: var(--line-height-text); }
.legal-content :is(th, td) { padding: var(--content-gap-xs) var(--content-gap-s); border: 1px solid var(--color-border); text-align: left; vertical-align: top; }
.legal-content th { background: var(--color-light-bg); color: var(--color-headings); }
.legal-content mark.atg-tbc { background: var(--color-accent); color: var(--color-text-dark); border-radius: var(--radius-s); }

/* ==========================================================================
   12. Forms (JetFormBuilder)
   ========================================================================== */

.jet-form-builder .jet-form-builder-row { margin-bottom: var(--content-gap-m); }
.jet-form-builder .jet-form-builder__label-text, .jet-form-builder .jet-form-builder__label { font-weight: 600; }
.jet-form-builder .jet-form-builder__field, .jet-form-builder input[type="text"], .jet-form-builder input[type="email"], .jet-form-builder input[type="tel"], .jet-form-builder input[type="number"], .jet-form-builder input[type="date"], .jet-form-builder select, .jet-form-builder textarea { box-sizing: border-box; width: 100%; min-height: 3rem; padding: 0.5rem 0.75rem; font: inherit; color: var(--color-text-dark); background: var(--color-site-bg); border: 1px solid var(--color-input-border); border-radius: var(--radius-s); }
.jet-form-builder textarea { min-height: 8rem; }
.jet-form-builder .jet-form-builder__field-label { color: inherit; cursor: pointer; }
.jet-form-builder .jet-form-builder__field-label > span::before { border-color: currentColor; }
.jet-form-builder .jet-form-builder__field-label :focus-visible + span::before { outline: 3px solid currentColor; outline-offset: 2px; }
.jet-form-builder .jet-form-builder__field-label:has(:disabled) { opacity: 0.6; cursor: not-allowed; }
.jet-form-builder .jet-form-builder__desc, .jet-form-builder .jet-form-builder__desc small { color: var(--color-text-muted); font-size: var(--text-s); }
.jet-form-builder .jet-form-builder__action-button, .jet-form-builder .jet-form-builder__submit { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: var(--content-gap-xs) var(--space-xs); font: inherit; font-weight: 600; color: var(--color-text-light); background: var(--color-primary); border: 2px solid var(--color-primary); border-radius: var(--radius-s); cursor: pointer; transition: all 0.3s ease; }
.jet-form-builder .jet-form-builder__action-button:hover, .jet-form-builder .jet-form-builder__action-button:focus-visible { background: var(--color-headings); border-color: var(--color-headings); }
.jet-form-builder-message { margin-top: var(--content-gap-s); padding: var(--content-gap-s); border-radius: var(--radius-s); }
.jet-form-builder-message--success { background: var(--color-highlight-bg); color: var(--color-success); }
.jet-form-builder-message--error, .jet-form-builder-message--validation-error { color: var(--color-error); }
.jet-form-builder .jet-form-builder__heading-desc { margin: 0; font-size: var(--text-s); line-height: var(--line-height-text); color: var(--color-text-muted); }
.jet-form-builder .jet-form-builder__heading-desc a { text-decoration: underline; text-underline-offset: 0.15em; }

/* ==========================================================================
   13. Donate page: no Donate links in the header or menu (the footer keeps its button) (they would only reload the page). The hero matches every other page on phones
   ========================================================================== */

body.atg-donate-page .site-header a[href$="/donate/"], body.atg-donate-page .menu-cta--donate { display: none !important; }
body.atg-donate-page .site-header .wp-block-button:has(> a[href$="/donate/"]) { display: none; }


/* Workshop product cards: every photo sits whole, centred in the same-height frame, with a magnifier badge on the photo itself */
.atg-zoom { display: flex; align-items: center; justify-content: center; height: 16rem; cursor: zoom-in; }
.atg-zoom__photo { position: relative; display: inline-flex; max-width: 100%; max-height: 100%; }
.project-products .atg-events .card .atg-zoom img { display: block; width: auto; height: auto; max-width: 100%; max-height: 16rem; background: #fff; border-radius: var(--radius-m); }
.atg-zoom__photo::after { content: ""; position: absolute; right: 0.5rem; bottom: 0.5rem; width: 2rem; height: 2rem; border-radius: 50%; background: rgba(0, 0, 0, 0.65) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27white%27 stroke-width=%272%27 stroke-linecap=%27round%27%3E%3Ccircle cx=%2710.5%27 cy=%2710.5%27 r=%276.5%27/%3E%3Cpath d=%27M15.5 15.5L21 21M10.5 7.5v6M7.5 10.5h6%27/%3E%3C/svg%3E") center / 1.2rem no-repeat; pointer-events: none; transition: background-color 0.2s ease; }
.atg-zoom:hover .atg-zoom__photo::after, .atg-zoom:focus-visible .atg-zoom__photo::after { background-color: rgba(0, 0, 0, 0.85); }
/* Lightbox: centred dialog with the photo, its product name underneath, and previous/next buttons */
.atg-lightbox { position: fixed; inset: 0; margin: auto; width: fit-content; height: fit-content; border: 0; padding: 0; background: transparent; max-width: 96vw; max-height: 96vh; overflow: visible; }
.atg-lightbox::backdrop { background: rgba(0, 0, 0, 0.8); }
.atg-lightbox__figure { position: relative; margin: 0; background: #fff; border-radius: var(--radius-m); overflow: hidden; }
.atg-lightbox img { display: block; max-width: 92vw; max-height: 80vh; width: auto; height: auto; margin: 0 auto; }
.atg-lightbox__caption { padding: 0.75rem 1rem; text-align: center; font-weight: 600; }
.atg-lightbox__close, .atg-lightbox__nav { position: absolute; width: 2.5rem; height: 2.5rem; border: 0; border-radius: 50%; background: rgba(0, 0, 0, 0.65); color: #fff; line-height: 1; cursor: pointer; padding: 0; }
.atg-lightbox__close { top: 0.5rem; right: 0.5rem; }
.atg-lightbox__nav { top: calc(50% - 2.25rem); }
.atg-lightbox__prev { left: 0.5rem; }
.atg-lightbox__next { right: 0.5rem; }
.atg-lightbox__close:focus-visible, .atg-lightbox__nav:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
/* Lightbox button icons are drawn, not typed, so they sit exactly in the middle of the circle */
.atg-lightbox__close, .atg-lightbox__nav { font-size: 0; background-repeat: no-repeat; background-position: center; background-size: 1.25rem; background-color: rgba(0, 0, 0, 0.65); }
.atg-lightbox__close { background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27white%27 stroke-width=%272.5%27 stroke-linecap=%27round%27%3E%3Cpath d=%27M6 6l12 12M18 6L6 18%27/%3E%3C/svg%3E"); }
.atg-lightbox__prev { background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27white%27 stroke-width=%272.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M15 5l-7 7 7 7%27/%3E%3C/svg%3E"); }
.atg-lightbox__next { background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27white%27 stroke-width=%272.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M9 5l7 7-7 7%27/%3E%3C/svg%3E"); }
.atg-lightbox__close:hover, .atg-lightbox__nav:hover { background-color: rgba(0, 0, 0, 0.85); }

.award-logo { margin: 0; text-align: center; }
.award-logo img { width: 100%; max-width: 16rem; height: auto; }

/* Compact card: tighter heading-to-text gap */
.card.card--tight { gap: var(--content-gap-xs); }

/* ---- Ticket checkout (atg-tickets.php) ---- */
.atg-booking { display: flex; flex-direction: column; gap: var(--content-gap-m); }
.atg-checkout, .atg-dates { background: var(--color-site-bg); border: 1px solid var(--color-border); border-radius: var(--radius-m); box-shadow: var(--shadow-s); padding: var(--space-s); }
.atg-checkout__title { margin: 0 0 var(--content-gap-s); font-family: var(--font-heading); font-weight: 700; font-size: var(--text-l); color: var(--color-headings); }
.atg-dates__grid { display: flex; flex-direction: column; }
.atg-dates__day { display: flex; flex-wrap: wrap; align-items: center; gap: var(--content-gap-xs) var(--content-gap-s); padding: 0.75rem 0; border-top: 1px solid var(--color-border); }
.atg-dates__day:first-child { border-top: 0; padding-top: 0; }
.atg-dates__label { min-width: 7.5rem; }
.atg-dates__times { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.atg-dates__time { display: inline-flex; flex-direction: column; align-items: center; min-width: 6.5rem; padding: 0.5rem 0.875rem; border: 2px solid var(--color-input-border); border-radius: var(--radius-m); color: var(--color-text-dark); text-decoration: none; line-height: 1.2; }
.atg-dates__time span { font-weight: 700; }
.atg-dates__time small { font-size: var(--text-xs); color: var(--color-text-muted); }
.atg-dates__time:hover, .atg-dates__time:focus-visible { border-color: var(--color-primary); background: var(--color-highlight-bg); }
.atg-dates__time.is-current { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-text-light); }
.atg-dates__time.is-current small { color: var(--color-text-light); }
.atg-dates__time.is-unavailable { opacity: 0.6; text-decoration: line-through; }
.atg-tickets { list-style: none; margin: 0; padding: 0; }
.atg-ticket { display: flex; align-items: center; justify-content: space-between; gap: var(--content-gap-s); padding: var(--content-gap-s) 0.75rem; border: 1px solid var(--color-border); border-radius: var(--radius-m); margin-bottom: 0.625rem; transition: border-color 0.2s, background 0.2s; }
.atg-ticket.is-selected { border-color: var(--color-primary); background: var(--color-highlight-bg); }
.atg-ticket__info { display: flex; flex-direction: column; min-width: 0; }
.atg-ticket__name { font-weight: 700; font-size: var(--text-m); }
.atg-ticket__price { color: var(--color-headings); font-weight: 600; }
.atg-ticket__note { font-size: var(--text-xs); line-height: 1.35; color: var(--color-text-muted); margin-top: 0.125rem; }
.atg-qty { display: inline-flex; align-items: center; gap: 0.25rem; flex-shrink: 0; }
.atg-qty__btn { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 2px solid var(--color-primary); background: var(--color-site-bg); color: var(--color-primary); font-size: 1.375rem; line-height: 1; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.atg-qty__btn:hover:not(:disabled), .atg-qty__btn:focus-visible { background: var(--color-primary); color: var(--color-text-light); }
.atg-qty__btn:disabled { border-color: var(--color-border); color: var(--color-border); cursor: not-allowed; }
.atg-qty__value { min-width: 2rem; text-align: center; font-weight: 700; font-size: var(--text-m); }
.atg-checkout__hint { margin: 0.25rem 0 0; font-size: var(--text-s); color: var(--color-text-muted); }
.atg-checkout__error { margin: var(--content-gap-xs) 0 0; color: var(--color-error); font-weight: 600; }
.atg-checkout__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--content-gap-s); margin-top: var(--content-gap-m); padding-top: var(--content-gap-s); border-top: 1px solid var(--color-border); }
.atg-checkout__total-label { color: var(--color-text-muted); }
.atg-checkout__bar .atg-checkout__total { font-family: var(--font-heading); font-weight: 700; font-size: var(--text-xl); color: var(--color-headings); }
.atg-checkout__next:disabled { background: var(--color-border); border-color: var(--color-border); color: var(--color-text-muted); cursor: not-allowed; }
.atg-order { padding: var(--content-gap-s) 0.875rem; margin-bottom: var(--content-gap-m); background: var(--color-light-bg); border-radius: var(--radius-m); }
.atg-order__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.atg-order__head .atg-checkout__title { margin: 0; font-size: var(--text-m); }
.atg-order__edit { background: none; border: 0; padding: 0; color: var(--color-links); font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 0.15em; cursor: pointer; }
.atg-order__event { margin: 0.25rem 0 0.5rem; font-size: var(--text-s); color: var(--color-text-muted); }
.atg-order__lines { list-style: none; margin: 0; padding: 0; }
.atg-order__lines li, .atg-order__total { display: flex; justify-content: space-between; gap: 1rem; margin: 0; padding: 0.25rem 0; }
.atg-order__total { margin-top: 0.375rem; padding-top: 0.5rem; border-top: 1px solid var(--color-border); }
.atg-checkout .jet-form-builder-row:has([name="booking_places"]), .atg-checkout .jet-form-builder-row:has([name^="ticket_qty_"]) { display: none; }
.atg-checkout .jet-form-builder__submit { width: 100%; }
.atg-checkout__secure { margin: var(--content-gap-xs) 0 0; font-size: var(--text-s); color: var(--color-text-muted); }
@media (max-width: 479px) {
	.atg-checkout, .atg-dates { padding: var(--content-gap-m) 0.875rem; }
	.atg-checkout__bar { flex-direction: column; align-items: stretch; }
	.atg-checkout__next { width: 100%; }
	.atg-dates__time { min-width: 0; flex: 1 1 6rem; }
	.atg-dates__times { width: 100%; }
}
.badge--dates { margin-left: 0.5rem; vertical-align: middle; font-family: var(--font-body); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0; text-transform: none; background: var(--color-highlight-bg); color: var(--color-headings); border: 1px solid var(--color-brand); border-radius: 999px; white-space: nowrap; }

/* Dates inside the booking box (pick-a-date events) */
.atg-checkout .atg-dates { margin: 0 0 var(--content-gap-m); padding: 0; border: 0; box-shadow: none; background: none; }
.atg-checkout .atg-dates legend { padding: 0; }
.atg-dates__time { background: var(--color-site-bg); font: inherit; cursor: pointer; }
.atg-dates__time:disabled { opacity: 0.55; cursor: not-allowed; text-decoration: line-through; }
.atg-dates__time:disabled:hover { border-color: var(--color-input-border); background: var(--color-site-bg); }
.atg-order__date { font-weight: 600; color: var(--color-text-dark); }
/* Good to know: short paragraphs and bullets (atg_plain_text_blocks) */
.event-notes > * { margin: 0; }
.event-notes > * + * { margin-top: var(--content-gap-s); }
.event-notes ul { padding-left: 1.25em; }
.event-notes li + li { margin-top: 0.4em; }

/* Pick-a-date events: prompt shown until a date is chosen */
.atg-checkout__prompt { margin: 0; padding: 0.75rem 1rem; background: var(--color-highlight-bg); border-radius: var(--radius-m); color: var(--color-headings); font-weight: 600; }
.atg-checkout__pick { margin-top: var(--content-gap-m); }

/* Event cards on phones: date chip beside the title, details full width, then a footer row with price and places on the left and Book on the right */
@media (max-width: 767px) {
	.event-card { grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: var(--content-gap-s) var(--content-gap-m); }
	.date-chip { min-width: 3.5rem; padding: 0.55em 0.4em; }
	.date-chip__day { font-size: var(--h3); }
	.event-card .metatext { line-height: 1.45; margin-top: 0.2em; }
	.event-card__side { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "price button" "places button"; align-items: center; gap: 0.35rem var(--content-gap-m); padding-top: var(--content-gap-s); border-top: 1px solid var(--color-border); text-align: left; }
	.event-card__side > .badge { grid-area: price; justify-self: start; }
	.event-card__side > .metatext { grid-area: places; margin: 0; }
	.event-card__side > .btn, .event-card__side > .btn-disabled { grid-area: button; }
}
/* Event cards v2: tags row (project + dates pill) above the title, icons on the detail lines */
.event-card__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0 0 0.4rem !important; }
.event-card__project { font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-primary); }
.event-card__tags .badge--dates { margin-left: 0; }
.event-card__meta { display: flex; align-items: flex-start; gap: 0.45rem; margin-top: 0.3rem !important; }
.event-card__meta .atg-icon { width: 1.1rem; height: 1.1rem; margin-top: 0.15em; color: var(--color-brand); }
/* Event cards v3: chip and side span both rows on desktop; on phones the details run full width under the title */
.event-card { grid-template-areas: "chip head side" "chip details side"; row-gap: 0; }
.event-card > .date-chip { grid-area: chip; align-self: center; }
.event-card__head { grid-area: head; align-self: end; }
.event-card__details { grid-area: details; align-self: start; }
.event-card__side { grid-area: side; align-self: center; }
.event-card__low, .atg-places--low { color: var(--color-warning) !important; font-weight: 700; }
@media (max-width: 767px) {
	.event-card { grid-template-areas: "chip head" "details details" "side side"; row-gap: var(--content-gap-s); }
	.event-card > .date-chip { align-self: start; }
	.event-card__head { align-self: center; }
	.event-card__details .event-card__meta:first-child { margin-top: 0 !important; }
}
/* Card titles fill the line (headings are balanced site-wide, which wrapped short card titles early) */
.event-card :is(h2, h3) { text-wrap: pretty; }

/* ==========================================================================
   14. Contact page: message form beside a contact sheet, then the places you can visit
   ========================================================================== */

/* Crisis box, wide: the message on the left, the Lifeline number on the right (text still comes from Site details) */
.contact-crisis .callout--crisis { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-l); align-items: center; }
.contact-crisis .callout--crisis > :is(h2, h3) { grid-column: 1; grid-row: 1; }
.contact-crisis .callout--crisis > p:nth-of-type(1) { grid-column: 1; grid-row: 2 / span 2; align-self: start; max-width: var(--width-article); }
.contact-crisis .callout--crisis > .callout__label { grid-column: 2; grid-row: 1; margin-top: 0; align-self: end; }
.contact-crisis .callout--crisis > .callout__phone { grid-column: 2; grid-row: 2; margin-top: 0.1em; }
.contact-crisis .callout--crisis > .callout__emergency { grid-column: 2; grid-row: 3; margin-top: 0.25em; }
@media (max-width: 767px) {
	.contact-crisis .callout--crisis { display: block; }
	.contact-crisis .callout--crisis > .callout__label { margin-top: 0.9em; }
}

/* Form on the left, contact sheet on the right; on tablets and phones the sheet comes first */
.contact-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--space-xl); align-items: start; width: 100%; }
.contact-layout__form { display: flex; flex-direction: column; gap: var(--content-gap-m); }
.contact-layout__form > * { margin: 0; }
.contact-sheet { display: flex; flex-direction: column; gap: var(--space-s); padding: var(--space-s); background: var(--color-light-bg); border-radius: var(--radius-m); }
.contact-sheet > * { margin: 0; }
.contact-sheet__group { display: flex; flex-direction: column; gap: var(--content-gap-xs); }
.contact-sheet__group > * { margin: 0; }
.contact-sheet__group + .contact-sheet__group { padding-top: var(--space-s); border-top: 1px solid var(--color-border); }
.contact-sheet h3 { font-size: var(--text-xl); }
@media (min-width: 992px) { .contact-sheet { position: sticky; top: var(--space-s); } }
@media (max-width: 991px) {
	.contact-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-l); }
	.contact-sheet { order: -1; }
}

/* Phone and email lines ([atg_contact_line]): label above, value below; phone numbers large */
.contact-line { display: flex; flex-direction: column; gap: 0.1em; }
.contact-line__label { font-size: var(--text-s); font-weight: 600; color: var(--color-text-muted); }
.contact-line__value { font-size: var(--text-m); overflow-wrap: anywhere; }
.contact-line__value--phone { font-family: var(--font-heading); font-weight: 700; font-size: var(--text-2xl); line-height: 1.1; }
.contact-line__value--phone a { color: var(--color-headings); text-decoration: none !important; }
.contact-line__value--phone a:is(:hover, :focus-visible) { color: var(--color-primary); }

/* Social icons on a light background (same [atg_social] markup as the footer) */
.contact-social .footer-social { margin: 0; }
.contact-social .footer-social a { border-color: var(--color-border); color: var(--color-headings); background: var(--color-site-bg); }
.contact-social .footer-social a:is(:hover, :focus-visible) { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-text-light); }

.contact-smallprint { font-size: var(--text-xs); color: var(--color-text-muted); }

/* Places you can visit ([atg_place]): each a white panel, photo flush to the edge beside the details; photo on top on phones */
.place-list { display: flex; flex-direction: column; gap: var(--space-m); width: 100%; }
.place-list > * { margin: 0; }
.place { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: stretch; background: var(--color-site-bg); border: 1px solid var(--color-border); border-radius: var(--radius-m); overflow: hidden; }
.place__photo img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.place__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--content-gap-s); padding: var(--space-s) var(--space-m); }
.place__body > * { margin: 0; }
.place__facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--content-gap-xs) var(--space-s); margin-top: var(--content-gap-xs); }
.place__facts dt { font-size: var(--text-s); font-weight: 600; color: var(--color-text-muted); padding-top: 0.1em; }
.place__facts dd { margin: 0; overflow-wrap: anywhere; }
.place__link { display: inline-flex; align-items: center; gap: 0.4em; font-weight: 600; }
.place__link .atg-icon { width: 1.25rem; height: 1.25rem; }
@media (max-width: 767px) {
	.place { grid-template-columns: minmax(0, 1fr); }
	.place__photo img { height: auto; }
	.place__body { padding: var(--space-s); }
	.place__facts { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
	.place__facts dd + dt { margin-top: var(--content-gap-s); }
}

/* The places people can't drop in to: plain text under a rule, not panels */
.place-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-m) var(--space-l); width: 100%; padding-top: var(--space-m); border-top: 1px solid var(--color-border); }
.place-notes > * { display: flex; flex-direction: column; gap: var(--content-gap-xs); margin: 0; }
.place-notes > * > * { margin: 0; }
.place-notes h3 { font-size: var(--text-xl); }
@media (max-width: 767px) { .place-notes { grid-template-columns: minmax(0, 1fr); } }

/* Links to a project form (/what-we-do/oasis/#enquiry-form) land with a little space above it */
.project-form { scroll-margin-top: var(--space-m); }

/* News: category filter, search and pagination */
.news-filter { align-items: center; gap: var(--content-gap-s) var(--content-gap-m); margin-bottom: var(--space-m); }
.news-filter__cats { display: flex; flex-wrap: wrap; gap: var(--content-gap-xs); }
.news-filter__cats > p { margin: 0; }
.news-filter__cats .wp-block-categories { display: contents; }
.news-filter__cats .wp-block-categories li { display: block; margin: 0; }
.news-filter .news-filter__cats a:not(.btn) { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 1.1em; border: 2px solid var(--color-border); border-radius: 999px; background: var(--color-site-bg); color: var(--color-headings); font-weight: 600; line-height: 1.2; text-decoration: none; transition: background-color 0.15s, border-color 0.15s, color 0.15s; }
.news-filter .news-filter__cats a:not(.btn):is(:hover, :focus-visible) { border-color: var(--color-primary); background: var(--color-highlight-bg); color: var(--color-headings); text-decoration: none; }
body.blog .news-filter .news-filter__all > a:not(.btn), .news-filter .news-filter__cats .current-cat > a:not(.btn) { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-text-light); }
.news-filter .wp-block-search { flex: 0 1 22rem; margin: 0; }
.news-filter .wp-block-search__inside-wrapper { display: flex; gap: var(--content-gap-xs); padding: 0; border: 0; }
.news-filter .wp-block-search__input { flex: 1; min-width: 0; min-height: 2.75rem; margin: 0; padding: 0 0.85em; border: 2px solid var(--color-input-border); border-radius: var(--radius-s); background: var(--color-site-bg); color: var(--color-text-dark); font: inherit; }
.news-filter .wp-block-search__button { display: inline-flex; align-items: center; min-height: 2.75rem; margin: 0; padding: 0 1.25em; border: 2px solid var(--color-primary); border-radius: var(--radius-s); background: var(--color-primary); color: var(--color-text-light); font-weight: 600; }
.news-filter .wp-block-search__button:is(:hover, :focus-visible) { border-color: var(--color-headings); background: var(--color-headings); }
@media (max-width: 767px) {
	.news-filter { flex-direction: column; align-items: stretch; }
	.news-filter .wp-block-search { flex-basis: auto; width: 100%; }
	.news-filter .news-filter__cats a:not(.btn) { padding: 0 0.85em; font-size: var(--text-s); }
}
.wp-block-query-pagination { align-items: center; gap: var(--content-gap-xs); margin-top: var(--space-l); }
.wp-block-query-pagination-numbers { display: flex; flex-wrap: wrap; gap: var(--content-gap-xs); }
.wp-block-query-pagination :is(.page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next) { display: inline-flex; align-items: center; justify-content: center; gap: 0.4em; min-width: 2.75rem; min-height: 2.75rem; margin: 0; padding: 0 0.8em; border: 2px solid var(--color-border); border-radius: var(--radius-s); background: var(--color-site-bg); color: var(--color-headings); font-weight: 600; line-height: 1; text-decoration: none; }
.wp-block-query-pagination a:is(.page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next):is(:hover, :focus-visible) { border-color: var(--color-primary); background: var(--color-highlight-bg); }
.wp-block-query-pagination .page-numbers.current { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-text-light); }
.wp-block-query-pagination .page-numbers.dots { min-width: auto; padding: 0 0.25em; border-color: transparent; }
/* News cards without a featured image get a branded placeholder so rows stay even */
.wp-block-post .card--media .card-media:not(:has(img)) { aspect-ratio: 4 / 3; background: var(--color-light-bg) url("assets/img/pips.png") no-repeat center / 22% auto; }


/* News: single post */
.news-hero .container { row-gap: var(--content-gap-s); }
.news-hero .container > * { margin: 0; }
.news-hero .eyebrow a:not(.btn) { color: var(--color-accent); text-decoration: none; }
.news-hero .eyebrow a:not(.btn):is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: 0.2em; }
.news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--content-gap-xs) var(--content-gap-s); }
.news-meta > * { margin: 0; }
.news-meta .news-pill { display: flex; flex-wrap: wrap; gap: var(--content-gap-xs); }
.news-meta .news-pill .wp-block-post-terms__separator { display: none; }
.news-hero .news-meta .news-pill a:not(.btn) { display: inline-flex; align-items: center; min-height: 2rem; padding: 0 0.9em; border-radius: 999px; background: var(--color-site-bg); color: var(--color-headings); font-size: var(--text-s); font-weight: 600; line-height: 1.2; text-decoration: none; transition: background-color 0.15s, color 0.15s; }
.news-hero .news-meta .news-pill a:not(.btn):is(:hover, :focus-visible) { background: var(--color-highlight-bg); color: var(--color-headings); }
.news-readtime::before { content: "\00b7"; margin-inline-end: var(--content-gap-s); }

/* Featured image overlaps the hero; posts without one are left alone */
.news-feature { display: flex; flex-direction: column; gap: var(--content-gap-xs); }
.news-feature > * { margin: 0; }
.news-feature:not(:has(img)) { display: none; }
.news-feature img { box-shadow: var(--shadow-m); }
.news-feature__caption { text-align: center; }
main:has(.news-feature img) .news-hero { padding-bottom: calc(var(--section-space-m) + var(--space-xl)); }
main:has(.news-feature img) .news-body-section { padding-top: 0; }
main:has(.news-feature img) .news-feature { position: relative; margin-top: calc(-1 * var(--space-xl)); }

/* Standfirst: the opening paragraph */
.news-body > .wp-block-post-content > p:first-child { font-size: var(--text-l); color: var(--color-headings); }

/* Share row and back link */
.news-after { display: flex; flex-direction: column; gap: var(--content-gap-m); margin-top: var(--space-m); padding-top: var(--space-s); border-top: 1px solid var(--color-border); }
.news-after > * { margin: 0; }
.news-share { display: flex; flex-wrap: wrap; align-items: center; gap: var(--content-gap-xs) var(--content-gap-s); }
.news-share__title { margin: 0; font-family: var(--font-heading); font-weight: 600; color: var(--color-headings); }
.news-share__links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.news-share__btn { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0; border: 2px solid var(--color-primary); border-radius: 50%; background: var(--color-site-bg); color: var(--color-primary); cursor: pointer; transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.news-share__btn[hidden] { display: none; }
.news-share__btn:is(:hover, :focus-visible), .news-share__btn.is-copied { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-text-light); }
.news-share__status { font-size: var(--text-s); font-weight: 600; color: var(--color-headings); }

/* Support band: the Home donate panel with two buttons */
.donate-panel > .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 767px) {
	.donate-panel > .wp-block-buttons { justify-content: stretch; }
	.donate-panel > .wp-block-buttons > .wp-block-button { flex: 1 1 100%; }
	.donate-panel > .wp-block-buttons .wp-block-button__link { width: 100%; justify-content: center; text-align: center; }
}

/* More news grid: no default list indent, so it lines up with the heading */
.container > .wp-block-post-template { margin: 0; padding: 0; list-style: none; }

/* Event cards on desktop: price badge, places line and button all sit flush to the right edge (.badge defaults to align-self: flex-start) */
@media (min-width: 768px) {
	.event-card__side { align-items: flex-end; }
	.event-card__side > .badge, .event-card__side > .metatext, .event-card__side > .btn, .event-card__side > .btn-disabled { align-self: flex-end; text-align: right; margin-left: auto; }
}

/* Event cards on phones v4: date chip beside the project name and dates/sessions pill (stacked), then the title full width above the details */
@media (max-width: 767px) {
	.event-card { grid-template-areas: "chip tags" "title title" "details details" "side side"; }
	.event-card__head { display: contents; }
	.event-card__tags { grid-area: tags; align-self: center; flex-direction: column; align-items: flex-start; gap: 0.35rem; margin: 0 !important; }
	.event-card__head > :is(h2, h3) { grid-area: title; margin: 0; }
	/* No project and no pill: the title takes the spot beside the chip instead */
	.event-card:not(:has(.event-card__tags)) { grid-template-areas: "chip title" "details details" "side side"; }
	.event-card:not(:has(.event-card__tags)) .event-card__head > :is(h2, h3) { align-self: center; }
}

/* Focal point: keep heads in frame for the tall Progressive Building Society photo in the 3:2 split slot */
.project-split__photo img[src*="oasis-progressive-building-society"] { object-position: 50% 36%; }

/* iOS Safari: native date/time inputs ignore width:100% and push past the column; strip native sizing so they match the other fields */
.jet-form-builder input[type="date"], .jet-form-builder input[type="time"], .jet-form-builder input[type="datetime-local"], .jet-form-builder input[type="month"], input[type="date"], input[type="time"], input[type="datetime-local"] { -webkit-appearance: none; appearance: none; display: block; min-width: 0; max-width: 100%; width: 100%; box-sizing: border-box; }
input[type="date"]::-webkit-date-and-time-value, input[type="time"]::-webkit-date-and-time-value, input[type="datetime-local"]::-webkit-date-and-time-value { text-align: left; margin: 0; min-height: 1.5em; }
.jet-form-builder .jet-form-builder-row, .jet-form-builder .jet-form-builder__field-wrap { min-width: 0; }
#coming-up { scroll-margin-top: var(--space-m); }

/* accent-on-green: on the green band the Leaf accent (#D2DF64) is too faint for small text (3.7:1, needs 4.5:1).
   A paler leaf passes (4.5:1). Leaf stays as it is everywhere else. */
.bg-primary .eyebrow, .bg-primary .eyebrow a:not(.btn), .bg-primary .project-strapline,
.bg-primary.news-hero .eyebrow a:not(.btn), .news-hero .bg-primary .eyebrow a:not(.btn) { color: #EAF2A8; }

/* Forms that redirect on success (Contact, Oasis, Moorbrook, group, Workshop item, Partnership, Blossom, free booking): hide the success message so it does not flash before the redirect. Errors still show. JetFormBuilder dims the form while it submits. The paid booking form (49) keeps its message while it hands over to Stripe. */
:is([data-form-id="75"],[data-form-id="76"],[data-form-id="77"],[data-form-id="78"],[data-form-id="2096"],[data-form-id="2170"],[data-form-id="2392"],[data-form-id="43"]) .jet-form-builder-message--success { display: none; }


/* Accessibility: tables that scroll sideways are keyboard focusable (functions.php), so show where focus is */
figure.wp-block-table[tabindex]:focus-visible { outline: 3px solid var(--color-headings); outline-offset: 3px; }

/* Inline form errors (JetFormBuilder advanced validation): readable red, same size as other small text */
form.jet-form-builder .jet-form-builder-row .error-message { margin-top: 0.25em; font-size: var(--text-s); line-height: var(--line-height-text); color: var(--color-error); }
