/*
Theme Name: WSRA 80064
Theme URI: https://wsra.org.uk/
Author: West Somerset Railway Association
Description: Website theme for the restoration of BR Standard Class 4 tank locomotive 80064. Accessible (WCAG 2.2 AA target), self-hosted fonts, no tracking.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wsra-80064
Tags: block-patterns, full-site-editing, accessibility-ready
*/

/* ---------- Lining: the BR lined-black motif (grey, cream, red) ---------- */
:root {
	--wsra-lining: linear-gradient(
		to bottom,
		var(--wp--preset--color--lining-grey) 0 2px,
		transparent 2px 6px,
		var(--wp--preset--color--lining-cream) 6px 8px,
		transparent 8px 12px,
		var(--wp--preset--color--lining-red) 12px 14px
	);
}

.wsra-lined-rule {
	height: 14px;
	background: var(--wsra-lining);
	border: 0;
	margin: 0;
}

.is-style-lined {
	position: relative;
	padding-bottom: calc(var(--wp--preset--spacing--50) + 14px) !important;
}
.is-style-lined::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 14px;
	background: var(--wsra-lining);
}

/* Lined panel: a box framed with the lining, like a cab-side panel */
.is-style-lined-panel {
	border: 2px solid var(--wp--preset--color--smokebox);
	outline: 2px solid var(--wp--preset--color--lining-red);
	outline-offset: 4px;
	padding: var(--wp--preset--spacing--40) !important;
	margin-block: 6px;
}

/* ---------- Header ---------- */
.wsra-header {
	border-bottom: 1px solid var(--wp--preset--color--paper);
}
.wsra-header .wp-block-site-title a {
	text-decoration: none;
	color: var(--wp--preset--color--smokebox);
}
.wsra-header .wp-block-navigation a:where(:not(.wp-element-button)) {
	text-decoration: none;
	padding-block: 0.35rem;
	border-bottom: 2px solid transparent;
}
.wsra-header .wp-block-navigation a:where(:not(.wp-element-button)):hover,
.wsra-header .wp-block-navigation .current-menu-item > a {
	border-bottom-color: var(--wp--preset--color--lining-red);
}
.wsra-header .wsra-nav-donate a {
	background: var(--wp--preset--color--lining-red);
	color: var(--wp--preset--color--base) !important;
	padding: 0.55rem 1rem !important;
	border-radius: 3px;
	border-bottom: 0 !important;
}
.wsra-header .wsra-nav-donate a:hover {
	background: var(--wp--preset--color--smokebox);
}

/* ---------- Cab-side hero ---------- */
.wsra-cabside {
	background: var(--wp--preset--color--smokebox);
	color: var(--wp--preset--color--lining-cream);
}
.wsra-cabside h1.wsra-number,
.wsra-cabside .wsra-number {
	font-family: var(--wp--preset--font-family--cabin);
	font-weight: 700;
	font-size: clamp(4.5rem, 18vw, 12rem);
	line-height: 0.9;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--lining-cream);
	margin: 0;
}
.wsra-cabside h2,
.wsra-cabside h3,
.wsra-cabside p {
	color: var(--wp--preset--color--lining-cream);
}
.wsra-cabside .wsra-hero-lead {
	font-size: var(--wp--preset--font-size--large);
	max-width: 34rem;
	line-height: 1.45;
}
.wsra-cabside a:where(:not(.wp-element-button)) {
	color: var(--wp--preset--color--lining-cream);
}
.wsra-cabside .is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--lining-cream);
	border: 2px solid var(--wp--preset--color--lining-cream);
	background: transparent;
}
.wsra-cabside .is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--lining-cream);
	color: var(--wp--preset--color--smokebox);
}
.wsra-cabside .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: var(--wp--preset--color--lining-cream);
	color: var(--wp--preset--color--smokebox);
}

/* Page title band on inner pages */
.wsra-page-head {
	background: var(--wp--preset--color--smokebox);
}
.wsra-page-head h1 {
	color: var(--wp--preset--color--lining-cream);
	margin: 0;
}

/* ---------- Appeal progress ---------- */
.wsra-appeal {
	font-family: var(--wp--preset--font-family--cabin);
	margin-block: 1.5rem;
}
.wsra-appeal__figures {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.75rem;
	margin: 0 0 0.75rem;
}
.wsra-appeal__raised {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	color: var(--wp--preset--color--smokebox);
}
.wsra-cabside .wsra-appeal__raised { color: var(--wp--preset--color--lining-cream); }
.wsra-appeal__of { font-size: 1.0625rem; }
.wsra-appeal__track {
	height: 1.25rem;
	background: var(--wp--preset--color--paper);
	border: 2px solid var(--wp--preset--color--smokebox);
	border-radius: 2px;
	overflow: hidden;
}
.wsra-cabside .wsra-appeal__track {
	background: transparent;
	border-color: var(--wp--preset--color--lining-cream);
}
.wsra-appeal__fill {
	height: 100%;
	background: var(--wp--preset--color--lining-red);
	min-width: 2px;
}
.wsra-appeal__meta {
	font-size: var(--wp--preset--font-size--small);
	margin-top: 0.5rem;
	color: var(--wp--preset--color--lining-grey);
}
.wsra-cabside .wsra-appeal__meta { color: var(--wp--preset--color--lining-cream); }

/* ---------- Notes for editors: shown until the fact is confirmed ---------- */
.wsra-confirm {
	background: #FFF4C2;
	color: #3A3000;
	border-left: 4px solid #B08900;
	padding: 0.75rem 1rem;
	font-family: var(--wp--preset--font-family--cabin);
	font-size: 1rem;
}
.wsra-confirm::before {
	content: "Note for editors: ";
	font-weight: 700;
}

/* ---------- Photo credits ---------- */
.wsra-credit {
	display: block;
	font-size: 0.875rem;
	color: var(--wp--preset--color--lining-grey);
}
.wp-block-gallery .wsra-credit { color: inherit; }

/* ---------- Tables ---------- */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th {
	text-align: left;
	background: var(--wp--preset--color--smokebox);
	color: var(--wp--preset--color--lining-cream);
	font-weight: 600;
}
.wp-block-table th,
.wp-block-table td {
	border: 1px solid #C9CDC9;
	padding: 0.6rem 0.75rem;
	vertical-align: top;
}
.wp-block-table tbody tr:nth-child(even) td { background: var(--wp--preset--color--paper); }
.wp-block-table { overflow-x: auto; }

/* ---------- News cards ---------- */
.wsra-news .wp-block-post {
	border-top: 4px solid var(--wp--preset--color--smokebox);
	padding-top: 1rem;
}
.wsra-news .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--smokebox); }
.wsra-news .wp-block-post-title a:hover { text-decoration: underline; }

/* ---------- Footer ---------- */
.wsra-footer {
	background: var(--wp--preset--color--smokebox);
	color: var(--wp--preset--color--lining-cream);
}
.wsra-footer h2, .wsra-footer h3, .wsra-footer p, .wsra-footer a { color: var(--wp--preset--color--lining-cream); }
.wsra-footer .wp-block-navigation a { text-decoration: underline; }

/* ---------- Accessibility floor ---------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid #FFBF47;
	outline-offset: 2px;
	box-shadow: 0 0 0 5px var(--wp--preset--color--smokebox);
}
.skip-link.screen-reader-text:focus {
	background: #FFBF47;
	color: #000;
	font-family: var(--wp--preset--font-family--cabin);
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
img { height: auto; }

/* ---------- Spacing for header, footer, sections ---------- */
.wsra-header { padding-block: 1rem; }
.wsra-header__bar { align-items: center; gap: 1rem 2rem; }
.wsra-brand { gap: 0 !important; }
.wsra-brand .wp-block-site-title { margin: 0; font-size: 2rem; line-height: 1; }
.wsra-brand__sub {
	margin: 0.2rem 0 0 !important;
	font-family: var(--wp--preset--font-family--cabin);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--lining-grey);
}
.wsra-footer { padding-bottom: var(--wp--preset--spacing--50); margin-top: var(--wp--preset--spacing--60); }
.wsra-footer > .wsra-lined-rule { max-width: none; margin-inline: calc(-1 * var(--wp--style--root--padding-left)) calc(-1 * var(--wp--style--root--padding-right)); }
.wsra-footer__cols { padding-top: var(--wp--preset--spacing--50); }
.wsra-footer__legal { border-top: 1px solid var(--wp--preset--color--lining-grey); padding-top: 1rem; margin-top: var(--wp--preset--spacing--50); }
.wsra-section { padding-block: var(--wp--preset--spacing--60); }
.wsra-section--paper { background: var(--wp--preset--color--paper); }
.wsra-cabside { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50); }
.wsra-page-head { padding-block: var(--wp--preset--spacing--50); }
.wsra-main { margin-top: 0; }
.wsra-main > .wp-block-post-content > :first-child { margin-top: var(--wp--preset--spacing--50); }
.wsra-main .wp-block-post-content > .alignfull:first-child { margin-top: 0; }
.wsra-page-head .wp-block-post-date,
.wsra-page-head .wp-block-post-terms,
.wsra-page-head .wp-block-post-terms a,
.wsra-page-head .wp-block-query-title,
.wsra-page-head p { color: var(--wp--preset--color--lining-cream); }
.wsra-page-head .wp-block-query-title { margin: 0; }
.wsra-post-meta { gap: 0.5rem 1.5rem; font-family: var(--wp--preset--font-family--cabin); }
.wsra-post-foot { margin-top: var(--wp--preset--spacing--50); }

.wp-block-post-content > h2.wp-block-heading { margin-top: var(--wp--preset--spacing--50); }
.wp-block-post-content > h3.wp-block-heading { margin-top: 2rem; }
.wp-block-details { border-top: 1px solid #C9CDC9; padding-block: 0.75rem; }
.wp-block-details summary { font-family: var(--wp--preset--font-family--cabin); font-weight: 600; cursor: pointer; }

.wsra-home-photo { padding-top: var(--wp--preset--spacing--50); }
.wsra-home-photo .wp-block-image { margin: 0; }

/* Gallery: captions sit under each photo instead of over it */
.wsra-gallery.wp-block-gallery.has-nested-images figure.wp-block-image {
	flex-direction: column;
	align-self: flex-start;
}
.wsra-gallery.wp-block-gallery.has-nested-images figure.wp-block-image::before { display: none; }
.wsra-gallery.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img,
.wsra-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) img {
	aspect-ratio: 3 / 2;
	width: 100%;
	height: auto;
	flex: none;
	object-fit: cover;
}
.wsra-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) .wp-lightbox-container { flex: none; width: 100%; }
.wsra-gallery.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: static;
	background: none;
	color: var(--wp--preset--color--ink);
	text-shadow: none;
	text-align: left;
	max-height: none;
	overflow: visible;
	padding: 0.5rem 0 0;
	font-size: 0.9375rem;
	line-height: 1.4;
	font-family: var(--wp--preset--font-family--cabin);
}
.wsra-gallery figcaption .wsra-credit { margin-top: 0.15rem; color: var(--wp--preset--color--lining-grey); }

/* Footer social icons in lining cream, not brand blue */
.wsra-footer .wp-block-social-links.is-style-logos-only .wp-social-link { color: var(--wp--preset--color--lining-cream); }
.wsra-footer .wp-block-social-links .wp-block-social-link-anchor svg { width: 1.75rem; height: 1.75rem; }
@media (max-width: 599px) {
	.wsra-gallery.wp-block-gallery.has-nested-images.columns-2 figure.wp-block-image:not(#individual-image) { width: 100%; }
}
.wsra-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { flex-grow: 0; }
