/* Leeds Care Association — child theme overrides. */

/* --- Forms ------------------------------------------- */

.lca-form p {
	margin: 0 0 var(--wp--preset--spacing--30, 1rem);
}

.lca-form label {
	display: block;
	font-weight: 700;
	margin-bottom: 0.25rem;
}

.lca-form input[type="text"],
.lca-form input[type="email"],
.lca-form input[type="tel"],
.lca-form input[type="password"],
.lca-form select,
.lca-form textarea {
	width: 100%;
	max-width: 32rem;
	padding: 0.6rem 0.8rem;
	border: 1px solid #0f1735;
	border-radius: 2px;
	font: inherit;
	background: #fff;
	color: #0f1735;
}

.lca-form button.wp-element-button {
	cursor: pointer;
	border: none;
	font: inherit;
}

/* Honeypot — hidden from people, present for bots. */
.lca-form .lca-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* --- Notices --------------------------------------------------------- */

.lca-notice {
	padding: 0.75rem 1rem;
	border-left: 4px solid currentColor;
	margin-bottom: var(--wp--preset--spacing--30, 1rem);
	font-weight: 600;
}

.lca-notice--success {
	border-left-color: var(--wp--preset--color--custom-teal, #0a6);
}

.lca-notice--error {
	border-left-color: var(--wp--preset--color--custom-salmon, #c33);
}

/* --- Account links (header + footer) --------------------------------- */

.lca-account-links {
	display: flex;
	gap: var(--wp--preset--spacing--30, 1rem);
	align-items: center;
}

.lca-account-links__link {
	text-decoration: none;
	font-weight: 700;
}

.lca-account-links__link:hover,
.lca-account-links__link:focus {
	text-decoration: underline;
}

.lca-header-account {
	margin-left: auto;
}

.wp-block-navigation .wp-block-navigation-item__content[aria-current="page"] {
	font-weight: 700;
}

/* --- Angled brand bands (header + footer) ---------------------------- *
 *
 * Two flat colour fields split by a single hard diagonal — no image, no
 * gradient blur. Painted as two absolutely positioned pseudo-elements:
 * ::before lays down the base colour edge to edge, ::after paints the
 * second colour on top, clipped to a four-point polygon whose two vertical
 * edges are offset from one another by --lca-band-skew. That offset is what
 * produces the angle.
 *
 * Tuning:
 *   --lca-band-height  nominal band depth (also the min-height)
 *   --lca-band-split   where the diagonal crosses the band's TOP edge, as a
 *                      percentage of the viewport width
 *   --lca-band-skew    how far the diagonal travels horizontally over the
 *                      full band height. Keep it at ~1.45 x the height to
 *                      hold the ~56-degrees-off-vertical angle in the mock;
 *                      a fixed px value keeps that angle constant at every
 *                      viewport width.
 *
 * The header band's diagonal leans right on the way down, the footer's
 * leans left — they are mirrored about the horizontal, not rotated.
 */

.lca-band {
	--lca-band-height: 80px;
	--lca-band-skew: 116px;
	--lca-band-split: 60%;
	position: relative;
	min-height: var(--lca-band-height);
	background-color: transparent;
}

.lca-band::before,
.lca-band::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

/* Keep the block content — including the pills that overhang the band —
   above both painted fields.
   width:100% matters: the bands are flex columns so they can pin their
   content to the bottom (header) or the middle (footer), and core's
   alignwide rule puts `margin-inline:auto` on the child. Auto cross-axis
   margins cancel `align-items:stretch`, so without an explicit width the
   child would shrink to fit its content and sit centred instead of filling
   the wide column. */
.lca-band > * {
	position: relative;
	z-index: 1;
	width: 100%;
}

/* Header: brand blue across the left, lavender wedge top right. */
.lca-band--top {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.lca-band--top::before {
	background-color: var(--wp--preset--color--primary, #3d4a89);
}

.lca-band--top::after {
	background-color: var(--wp--preset--color--tertiary, #e4e7f1);
	clip-path: polygon(
		var(--lca-band-split) 0,
		100% 0,
		100% 100%,
		calc(var(--lca-band-split) + var(--lca-band-skew)) 100%
	);
}

/* Footer: lavender across the left, blue sweeping in from the right. */
.lca-band--bottom {
	--lca-band-height: 120px;
	--lca-band-skew: 174px;
	--lca-band-split: 40%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.lca-band--bottom::before {
	background-color: var(--wp--preset--color--tertiary, #e4e7f1);
}

.lca-band--bottom::after {
	background-color: var(--wp--preset--color--primary, #3d4a89);
	clip-path: polygon(
		var(--lca-band-split) 0,
		100% 0,
		100% 100%,
		calc(var(--lca-band-split) - var(--lca-band-skew)) 100%
	);
}

/* Narrow viewports: the skew is a fixed length, so shorten it or the
   diagonal runs off the end of the band. */
@media (max-width: 781px) {
	.lca-band {
		--lca-band-skew: 72px;
		--lca-band-split: 62%;
	}

	.lca-band--bottom {
		--lca-band-height: 96px;
		--lca-band-skew: 88px;
		--lca-band-split: 46%;
	}

	/* The credit-line pill is shrink-to-fit, which leaves it a ragged
	   width once the text wraps. Let it fill the column instead. */
	.lca-band--bottom > * > * {
		width: 100%;
	}
}

/* --- Header brand logo ------------------------------------------------ */

.lca-header-brand__logo {
	margin: 0;
	line-height: 0;
}

.lca-header-brand__logo a {
	display: block;
	line-height: 0;
}

.lca-header-brand__logo img {
	display: block;
	width: 210px;
	max-width: 100%;
	height: auto;
}


/* --- Members-area resources ------------------------------------------ */

.lca-resources {
	display: grid;
	gap: var(--wp--preset--spacing--50, 2rem);
	margin-top: var(--wp--preset--spacing--50, 2rem);
}

.lca-resources__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.lca-resources__list li {
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

.lca-resources__date {
	opacity: 0.7;
	font-size: 0.875em;
	margin-left: 0.5rem;
}


/* --- Accordion band --------------------------------------------------- */

/* Core's block-library rule pads the toggle button by
   var(--wp--preset--spacing--20) (10px) top and bottom, and theme.json cannot
   reach it (styles.blocks core/accordion-heading targets the <h2>/<h3>
   wrapper, which Sankofa already zeroes). Designer note: shorten the closed
   rows so the colour-blocked band is less demanding on vertical space. */

.wp-block-accordion-heading .wp-block-accordion-heading__toggle {
	padding-top: 0.375rem;
	padding-bottom: 0.375rem;
}


/* --- Card carousel (Swiper) ------------------------------------------ *
 *
 * dist/js/carousel.js starts Swiper on each `.js-lca-carousel`. Until it
 * does (no script, or the block editor) the wrapper is a plain scroll-snap
 * strip sized from the same cards-per-view value:
 *
 *     card = (100% - (n - 1) x gap) / n
 */

.lca-carousel {
	--lca-carousel-per-view: 1.2;
	--lca-carousel-gap: var(--wp--preset--spacing--40, 30px);
}

@media (min-width: 600px) {

	.lca-carousel {
		--lca-carousel-per-view: 2.3;
	}
}

@media (min-width: 1024px) {

	.lca-carousel {
		--lca-carousel-per-view: 3.5;
	}
}

.s-swiper .swiper:not(.swiper-initialized) .swiper-wrapper {
	display: flex;
	gap: var(--lca-carousel-gap);
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
}

.s-swiper .swiper:not(.swiper-initialized) .swiper-slide {
	flex: 0 0 calc(
		(100% - (var(--lca-carousel-per-view) - 1) * var(--lca-carousel-gap)) /
			var(--lca-carousel-per-view)
	);
	width: auto;
	scroll-snap-align: start;
}

.s-swiper .swiper-slide {
	min-width: 0;
	height: auto;
	margin-block: 0;
}

.lca-carousel__card .wp-block-image {
	margin: 0;
}

.lca-carousel__card img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* --- Carousel controls ------------------------------------------------ */

.lca-carousel__controls {
	display: none;
	gap: 0.75rem;
	margin-top: var(--wp--preset--spacing--40, 30px);
}

.lca-carousel.is-ready .lca-carousel__controls,
.editor-styles-wrapper .lca-carousel__controls {
	display: flex;
}

.lca-carousel__button.swiper-button-lock {
	display: none;
}

/* 52px square: comfortably past the 44px target the WCAG 2.2 pointer-target
   criterion asks for, which matters for an older audience.
   Cream #F3EEE2 on brand blue #3D4A89 is 7.14:1. */
.lca-carousel__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	padding: 0;
	border: 2px solid var(--wp--preset--color--primary, #3d4a89);
	border-radius: 50%;
	background-color: var(--wp--preset--color--primary, #3d4a89);
	color: var(--wp--preset--color--contrast, #f3eee2);
	cursor: pointer;
}

/* Ink #0F1735 under cream is 15.19:1. */
.lca-carousel__button:hover {
	border-color: var(--wp--preset--color--secondary, #0f1735);
	background-color: var(--wp--preset--color--secondary, #0f1735);
}

.lca-carousel__button:focus-visible {
	outline: 3px solid var(--wp--preset--color--secondary, #0f1735);
	outline-offset: 3px;
}

/* Spent, not merely dimmed: the fill drops from solid blue to pale tint, so
   the state reads as a shape change and not only as a contrast drop. The arrow
   still sits at 6.69:1 (brand blue on tint). The border stays brand blue
   (7.14:1 on cream) so the button never disappears. */
.lca-carousel__button[disabled] {
	background-color: var(--wp--preset--color--tertiary, #e4e7f1);
	color: var(--wp--preset--color--primary, #3d4a89);
	cursor: default;
}

.lca-carousel__button svg {
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	fill: currentColor;
}


/* --- Homepage (Figma: LC Wireframes / Homepage) ----------------------- */

.lca-footer-cta.alignwide {
	max-width: 55.5rem;
}

.lca-footer-cta > .wp-block-column:first-child {
	flex-basis: 42% !important;
	flex-grow: 0;
}

.lca-section-title {
	font-size: clamp(1.875rem, 1.2rem + 2vw, 2.625rem);
	font-weight: 500;
	line-height: 1.2;
}

.lca-card-title {
	margin-top: var(--wp--preset--spacing--40, 1.5rem);
	margin-bottom: var(--wp--preset--spacing--30, 1rem);
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.2;
}

.lca-eyebrow {
	margin-top: var(--wp--preset--spacing--30, 1rem);
	margin-bottom: 0;
	color: var(--wp--preset--color--custom-greystone, #4e5a93);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.lca-eyebrow + .lca-card-title {
	margin-top: var(--wp--preset--spacing--20, 0.625rem);
}

.lca-photo {
	margin: 0;
}

.lca-photo img {
	display: block;
	width: 100%;
	border-radius: 3px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.lca-photo--tinted {
	position: relative;
}

.lca-photo--tinted::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 3px;
	background-color: rgba(61, 74, 137, 0.2);
	pointer-events: none;
}

.wp-block-button.lca-button-wide .wp-block-button__link {
	min-width: min(18.5rem, 100%);
}

.lca-carousel--logos {
	--lca-carousel-per-view: 1.4;
}

@media (min-width: 600px) {

	.lca-carousel--logos {
		--lca-carousel-per-view: 2.4;
	}
}

@media (min-width: 1024px) {

	.lca-carousel--logos {
		--lca-carousel-per-view: 3.5;
	}
}

.lca-carousel--square .lca-carousel__card img {
	aspect-ratio: 1;
}

.lca-carousel--bios .lca-carousel__card p {
	margin-top: 0;
	margin-bottom: 0.875rem;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.3;
}

.lca-eyebrow--name {
	margin-bottom: var(--wp--preset--spacing--30, 1rem);
	letter-spacing: 0;
	text-transform: none;
}

.lca-hero__title {
	margin: 0 0 var(--wp--preset--spacing--30, 1rem);
	font-size: clamp(2.25rem, 1.5rem + 2vw, 3rem);
	font-weight: 700;
	line-height: 1.2;
}

.lca-body {
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.5;
}

.lca-body p {
	margin: 0 0 1rem;
}

.lca-body p:last-child {
	margin-bottom: 0;
}

.lca-hero .lca-hero__eyebrow {
	margin: 0 0 var(--wp--preset--spacing--40, 1.5rem);
	color: var(--wp--preset--color--contrast, #f3eee2);
	font-size: 1.25rem;
	font-weight: 700;
}

.lca-hero .lca-hero__title {
	color: var(--wp--preset--color--contrast, #f3eee2);
}

.lca-hero .lca-hero__intro {
	margin: 0;
	color: var(--wp--preset--color--contrast, #f3eee2);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.5;
}

.lca-bio p {
	margin: 0 0 0.875rem;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.3;
}

.lca-card-title a {
	color: inherit;
	text-decoration: none;
}

.lca-card-title a:hover,
.lca-card-title a:focus-visible {
	text-decoration: underline;
}

.lca-load-more-wrap > summary {
	display: inline-block;
	list-style: none;
	cursor: pointer;
	text-decoration: underline;
}

.lca-load-more-wrap > summary::-webkit-details-marker {
	display: none;
}

.lca-load-more-wrap[open] > summary {
	display: none;
}

.lca-login__panel {
	height: 100%;
	padding: var(--wp--preset--spacing--50, 2rem);
}

.lca-login-form {
	max-width: 28rem;
}

.lca-login-form input[type="password"] {
	width: 100%;
	max-width: 32rem;
	padding: 0.6rem 0.8rem;
	border: 1px solid currentColor;
	border-radius: 2px;
	background: transparent;
	color: inherit;
	font: inherit;
}

.lca-login-form input:focus-visible,
.lca-form input:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary, #3d4a89);
	outline-offset: 2px;
}

.lca-form .lca-login-form__remember {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

.lca-form .lca-login-form__remember label {
	margin: 0;
	font-weight: 400;
}

.lca-login-form__remember input {
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	accent-color: var(--wp--preset--color--secondary, #0f1735);
}

.lca-login-form button.wp-element-button {
	background-color: var(--wp--preset--color--secondary, #0f1735);
	color: var(--wp--preset--color--base, #fbf8f2);
}

.lca-login-form__lost a,
.lca-body a {
	color: inherit;
	text-underline-offset: 0.15em;
}

.lca-members-resources h3 {
	margin-top: 0;
	font-size: 1.625rem;
	font-weight: 500;
}

.lca-members-resources .lca-resources {
	grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
	gap: var(--wp--preset--spacing--60, 3rem);
	margin-top: 0;
}

.lca-editor-notice {
	margin: 0;
	padding: 1.5rem 2rem;
	border: 1px dashed var(--wp--preset--color--primary, #3d4a89);
	background: var(--wp--preset--color--tertiary, #e4e7f1);
	color: var(--wp--preset--color--secondary, #0f1735);
	font-size: 1rem;
}

.wp-block-button.lca-button-outline .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--secondary, #0f1735);
	background-color: transparent;
	color: var(--wp--preset--color--secondary, #0f1735);
}

.wp-block-button.lca-button-outline .wp-block-button__link:hover,
.wp-block-button.lca-button-outline .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--secondary, #0f1735);
	color: var(--wp--preset--color--base, #fbf8f2);
}

.lca-downloads__intro .lca-section-title {
	margin-top: var(--wp--preset--spacing--40, 1.5rem);
}

.lca-downloads__item {
	padding: 1.25rem 2rem;
	border-top: 1px solid rgba(15, 23, 53, 0.15);
}

.lca-downloads__item:last-of-type {
	border-bottom: 1px solid rgba(15, 23, 53, 0.15);
}

.lca-downloads__link {
	margin: 0;
	font-size: clamp(1.25rem, 1rem + 1vw, 1.625rem);
	font-weight: 500;
	line-height: 1.25;
}

.lca-downloads__link a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.lca-downloads__meta {
	margin: 0.875rem 0 0;
	font-size: 0.75rem;
	text-transform: uppercase;
}

.lca-load-more {
	margin: var(--wp--preset--spacing--30, 1rem) 0 0 2rem;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
}

.lca-load-more a {
	color: inherit;
}

.lca-quote .wp-block-quote {
	margin: 0;
	padding: 0 0 0 1.25rem;
	border-left: 2px solid var(--wp--preset--color--secondary, #0f1735);
}

.lca-quote .wp-block-quote p {
	min-height: 12rem;
	font-size: clamp(1.625rem, 1rem + 2vw, 2.625rem);
	font-weight: 500;
	line-height: 1.4;
}

.lca-quote .wp-block-quote cite {
	font-size: 0.75rem;
	font-style: italic;
	font-weight: 300;
}

.lca-contact__row {
	padding: 1.25rem 2rem;
}

.lca-contact__row + .lca-contact__row {
	border-top: 1px solid rgba(15, 23, 53, 0.15);
}

.lca-contact__heading {
	margin: 0 0 var(--wp--preset--spacing--30, 1rem);
	font-size: 1.625rem;
	font-weight: 500;
}

.lca-contact__links {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
}

.lca-contact__links a,
.lca-contact__social a {
	color: var(--wp--preset--color--primary, #3d4a89);
}

.lca-contact__small {
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
	line-height: 1.4;
}

.lca-contact__small a {
	color: inherit;
	text-decoration: none;
}

.lca-contact__social {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 600;
}

.lca-contact__social a {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
}

.lca-contact__social img {
	width: 20px;
	height: 20px;
}

.lca-map {
	max-width: 65rem;
	margin-inline: auto;
}

.lca-map iframe,
.lca-map .lca-embed {
	display: block;
	width: 100%;
	aspect-ratio: 1040 / 617;
	border: 1px solid rgba(15, 23, 53, 0.15);
}

.lca-map__link {
	margin: 0.5rem 0 0;
	font-size: 0.75rem;
}

.lca-expander summary {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 2rem;
	margin-bottom: var(--wp--preset--spacing--40, 1.5rem);
	font-size: clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
	font-weight: 600;
	line-height: 1.25;
	list-style: none;
	cursor: pointer;
}

.lca-expander summary::-webkit-details-marker {
	display: none;
}

.lca-expander summary::after {
	content: "+";
	flex: none;
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
	transition: transform 0.2s ease;
}

.lca-expander[open] summary::after {
	transform: rotate(45deg);
}

@media (prefers-reduced-motion: reduce) {

	.lca-expander summary::after {
		transition: none;
	}
}

.lca-signup-panel {
	max-width: 42rem;
}

.lca-carousel--logos .lca-carousel__card img,
.lca-logo-placeholder {
	aspect-ratio: 1;
	object-fit: contain;
	object-position: left center;
}

.lca-logo-placeholder {
	width: 100%;
	border: 1px dashed rgba(0, 0, 0, 0.35);
}

.lca-error__text {
	max-width: 36rem;
}

.lca-news-grid .wp-block-post-template {
	gap: var(--wp--preset--spacing--60, 3rem) var(--wp--preset--spacing--40, 1.5rem);
	margin: 0;
	padding: 0;
}

.lca-news-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.lca-news-card__image {
	margin: 0;
}

.lca-news-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.lca-news-card__image--empty img {
	padding: 22% 18%;
	background-color: var(--wp--preset--color--tertiary, #e4e7f1);
	object-fit: contain;
}

.lca-news-card .lca-news-card__terms {
	margin-top: var(--wp--preset--spacing--30, 1rem);
}

.lca-news-card__terms a {
	color: inherit;
	text-decoration: none;
}

.lca-news-card .lca-news-card__title {
	margin: var(--wp--preset--spacing--20, 0.625rem) 0 0;
}

.lca-news-card__date {
	margin-top: 0.5rem;
	font-size: 0.75rem;
	text-transform: uppercase;
}

.lca-news-card__excerpt {
	margin-top: var(--wp--preset--spacing--20, 0.625rem);
	font-size: 1rem;
	line-height: 1.5;
}

.lca-news-card__excerpt p {
	margin: 0;
}

.lca-news-card__excerpt .wp-block-post-excerpt__more-text {
	display: none;
}

.lca-news-pagination {
	margin-top: var(--wp--preset--spacing--60, 3rem);
	font-weight: 600;
}

.lca-news-pagination a {
	color: inherit;
}

.lca-news-grid .wp-block-post-template.is-layout-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1023px) {

	.lca-news-grid .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {

	.lca-news-grid .wp-block-post-template.is-layout-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.lca-single__header .lca-single__terms a {
	color: inherit;
	text-decoration: none;
}

.lca-single__date {
	margin-top: 0;
	font-size: 0.75rem;
	text-transform: uppercase;
}

.lca-single__image {
	margin: var(--wp--preset--spacing--50, 2rem) 0 0;
}

.lca-single__image img {
	display: block;
	width: 100%;
	border-radius: 3px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.single-post .wp-block-post-content .lca-prose > * {
	max-width: 46rem;
}

.single-post .wp-block-post-content .lca-prose img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: var(--wp--preset--spacing--40, 1.5rem) 0;
}

.lca-single__back {
	font-weight: 600;
}

.lca-single__back a {
	color: inherit;
}

.lca-partner-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40, 1.5rem);
}

@media (max-width: 1023px) {

	.lca-partner-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {

	.lca-partner-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.lca-partner-grid > .lca-partner-card {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30, 1rem);
	margin: 0;
	padding: var(--wp--preset--spacing--40, 1.5rem);
	background: #fff;
	border-radius: 3px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
}

.lca-partner-card > * {
	margin: 0;
}

.lca-partner-card a {
	overflow-wrap: anywhere;
}

.lca-partner-card__logo img {
	display: block;
	width: 100%;
	height: 7rem;
	object-fit: contain;
	object-position: left center;
}

.lca-partner-card .lca-body {
	font-size: 0.9375rem;
}

.lca-partner-card .lca-body ul {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
}

.lca-partner-card .lca-body li {
	margin-bottom: 0.25rem;
}

.lca-partner-card__benefit .lca-eyebrow {
	margin: 0 0 0.25rem;
}

.lca-partner-card__link {
	margin-top: auto;
	font-weight: 600;
}

.lca-partner-card__link a {
	color: inherit;
}

/* --- Meeting amends, 18 September 2026 -------------------------------- */

.is-layout-constrained > .lca-wordmark.alignwide {
	max-width: min(60%, var(--wp--style--global--wide-size));
	margin-inline: auto !important;
}

@media (max-width: 781px) {

	.is-layout-constrained > .lca-wordmark.alignwide {
		max-width: 80%;
	}
}

.lca-carousel--logos .lca-carousel__card {
	text-align: center;
}

.lca-carousel--logos .lca-carousel__card .wp-block-image {
	width: 100%;
	max-width: 12rem;
	aspect-ratio: 5 / 2;
	margin-inline: auto;
}

.lca-carousel--logos .lca-carousel__card .wp-block-image img {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	object-fit: contain;
	object-position: center;
}

.lca-carousel--logos .lca-eyebrow,
.lca-carousel--logos .lca-card-title {
	text-align: center;
}

.lca-board-name {
	margin-top: 0;
	font-size: clamp(1.375rem, 1.1rem + 0.8vw, 1.75rem);
}

.lca-board-role {
	margin-top: 0.25rem;
}

.lca-carousel--bios .lca-carousel__card {
	padding: var(--wp--preset--spacing--40, 1.5rem);
	background-color: var(--wp--preset--color--contrast, #f3eee2);
}

.lca-contact__links {
	font-size: 1rem;
	text-transform: none;
}

.lca-contact__small {
	font-size: 0.9375rem;
}

.lca-map--square iframe,
.lca-map--square .lca-embed {
	aspect-ratio: 1;
}

.lca-prose {
	max-width: 46rem;
}

.lca-prose h3 {
	margin-top: var(--wp--preset--spacing--50, 2rem);
	font-size: 1.375rem;
	font-weight: 600;
}

.lca-prose ul {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
}

.lca-prose li {
	margin-bottom: 0.5rem;
	font-size: 1rem;
	line-height: 1.5;
}

/* --- Membership application form ------------------------------------ */

.lca-application-panel {
	max-width: 56rem;
}

.lca-application-form .lca-form__group {
	border: 0;
	border-top: 1px solid currentColor;
	margin: 0 0 var(--wp--preset--spacing--50, 2.5rem);
	padding: var(--wp--preset--spacing--30, 1rem) 0 0;
}

.lca-application-form legend {
	font-weight: 700;
	font-size: 1.25rem;
	padding: 0 0.5rem 0 0;
}

.lca-application-form .lca-form__choices {
	border: 0;
	margin: 0 0 var(--wp--preset--spacing--30, 1rem);
	padding: 0;
}

.lca-application-form .lca-form__choices legend {
	font-size: 1rem;
	margin-bottom: 0.5rem;
}

.lca-application-form .lca-form__choice,
.lca-application-form .lca-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.35rem;
}

.lca-application-form .lca-form__choice label,
.lca-application-form .lca-form__consent label {
	font-weight: 400;
	margin: 0;
}

.lca-application-form input[type="checkbox"],
.lca-application-form input[type="radio"] {
	accent-color: #0f1735;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.15rem 0 0;
	flex: 0 0 auto;
}

.lca-application-form textarea {
	min-height: 5rem;
}

.lca-application-form .lca-form__field--count input {
	width: 6rem;
}

.lca-application-form .lca-form__required {
	font-weight: 400;
	font-size: 0.85em;
}

.lca-application-form .lca-form__description {
	display: block;
	font-size: 0.9em;
	margin-bottom: 0.35rem;
}

.lca-application-form .lca-form__error {
	display: block;
	margin-top: 0.35rem;
	font-weight: 700;
	color: var(--wp--preset--color--custom-salmon, #c33);
}

.lca-application-form [aria-invalid="true"] {
	border-width: 2px;
	border-color: var(--wp--preset--color--custom-salmon, #c33);
}

.lca-application-form .lca-form__fee output {
	font-weight: 700;
}

.lca-form__summary {
	font-weight: 400;
}

.lca-form__summary ul {
	margin: 0.5rem 0 0 1.1rem;
	padding: 0;
}

@media (min-width: 48rem) {

	.lca-application-form .lca-form__group--numbers {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--wp--preset--spacing--40, 2rem);
	}

	.lca-application-form .lca-form__group--numbers legend {
		grid-column: 1 / -1;
	}

	.lca-application-form .lca-form__group--client_groups .lca-form__choices {
		column-count: 2;
	}
}


/* --- Block editor ------------------------------------------------------ */

.editor-visual-editor__post-title-wrapper {
	margin: 0 0 var(--wp--preset--spacing--40, 30px) !important;
	padding: 1.25rem 2rem !important;
	border-bottom: 1px solid #e0e0e0;
	background: #fff;
}

.editor-visual-editor__post-title-wrapper .editor-post-title {
	max-width: none !important;
	margin: 0 !important;
	color: #1e1e1e;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1.25;
	text-align: left;
}

.block-list-appender .block-editor-button-block-appender {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: auto;
	padding: 1.5rem;
	border: 2px dashed #3d4a89;
	border-radius: 4px;
	background: #fff;
	color: #3d4a89;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 1rem;
	font-weight: 600;
	box-shadow: none;
}

.block-list-appender .block-editor-button-block-appender::after {
	content: "Add section";
}

.block-list-appender .block-editor-button-block-appender:hover,
.block-list-appender .block-editor-button-block-appender:focus {
	background: #3d4a89;
	color: #fff;
}

.editor-styles-wrapper .lca-expander::details-content {
	content-visibility: visible;
	block-size: auto;
}

/* --- Click-to-load embeds ---------------------------------------------- */

.lca-embed:not(.is-loaded) {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	background: var(--wp--preset--color--tertiary, #e4e7f1);
	color: var(--wp--preset--color--secondary, #0f1735);
	text-align: center;
}

.lca-embed.is-loaded {
	border: 0;
}

.lca-embed iframe {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
}

.lca-embed__placeholder p {
	max-width: 22rem;
	margin: 0 auto 1rem;
	font-size: 0.9375rem;
}

.lca-embed__button {
	cursor: pointer;
	padding: 0.75rem 1.5rem;
	border: 0;
	border-radius: 2px;
	background: var(--wp--preset--color--secondary, #0f1735);
	color: var(--wp--preset--color--base, #fbf8f2);
	font: inherit;
}

.lca-embed__button:focus-visible {
	outline: 3px solid var(--wp--preset--color--secondary, #0f1735);
	outline-offset: 3px;
}

/* --- Cookie banner ----------------------------------------------------- */

.lca-consent {
	position: fixed;
	inset: auto 0 0;
	z-index: 1000;
	max-height: 100vh;
	overflow-y: auto;
	background: var(--wp--preset--color--secondary, #0f1735);
	color: var(--wp--preset--color--base, #fbf8f2);
	box-shadow: 0 -4px 24px rgba(15, 23, 53, 0.25);
}

.lca-consent[hidden] {
	display: none;
}

.lca-consent__inner {
	display: grid;
	gap: 1.25rem 3rem;
	max-width: var(--wp--style--global--wide-size, 80rem);
	margin-inline: auto;
	padding: 1.5rem var(--wp--preset--spacing--30, 1rem);
}

@media (min-width: 60rem) {
	.lca-consent__inner {
		grid-template-columns: 1fr auto;
		align-items: center;
	}

	.lca-consent__prefs {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

.lca-consent__title {
	margin: 0 0 0.5rem;
	color: inherit;
	font-size: 1.25rem;
	font-weight: 600;
}

.lca-consent__title:focus {
	outline: none;
}

.lca-consent__intro p {
	max-width: 46rem;
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.lca-consent a {
	color: inherit;
	text-underline-offset: 0.15em;
}

.lca-consent__prefs {
	display: grid;
	gap: 0.75rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(251, 248, 242, 0.25);
}

.lca-consent__prefs[hidden] {
	display: none;
}

.lca-consent__option {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.lca-consent__option input {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0.15rem 0 0;
	accent-color: var(--wp--preset--color--base, #fbf8f2);
}

.lca-consent__option strong {
	display: block;
}

.lca-consent__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.lca-consent__button {
	flex: 1 1 10rem;
	cursor: pointer;
	padding: 0.75rem 1.5rem;
	border: 1px solid var(--wp--preset--color--base, #fbf8f2);
	border-radius: 2px;
	background: var(--wp--preset--color--base, #fbf8f2);
	color: var(--wp--preset--color--secondary, #0f1735);
	font: inherit;
	font-weight: 600;
	white-space: nowrap;
}

.lca-consent__button[hidden] {
	display: none;
}

.lca-consent__button--outline {
	background: transparent;
	color: var(--wp--preset--color--base, #fbf8f2);
}

.lca-consent__button:hover {
	background: var(--wp--preset--color--tertiary, #e4e7f1);
	color: var(--wp--preset--color--secondary, #0f1735);
}

.lca-consent__button:focus-visible,
.lca-consent a:focus-visible {
	outline: 3px solid var(--wp--preset--color--base, #fbf8f2);
	outline-offset: 3px;
}

/* --- Meeting amends, 25 September 2026 -------------------------------- */

/* Members area and Log out under the Become a member button: one at each
   end of the button's width, with a short divider between them. */
.lca-footer-cta .lca-button-wide,
.lca-footer-cta .lca-button-wide .wp-block-button__link {
	width: min(18.5rem, 100%);
}

.lca-footer-cta .lca-account-links {
	width: min(18.5rem, 100%);
	justify-content: space-between;
	margin-top: var(--wp--preset--spacing--30, 1rem);
}

.lca-footer-cta .lca-account-links::after {
	content: "";
	order: 1;
	width: 1px;
	height: 1.25em;
	background-color: currentColor;
	opacity: 0.4;
}

.lca-footer-cta .lca-account-links__link:last-child {
	order: 2;
}

.lca-footer-cta .lca-account-links:has(> :only-child) {
	justify-content: flex-start;
}

.lca-footer-cta .lca-account-links:has(> :only-child)::after {
	display: none;
}

/* News pagination: body size, not display size. */
.lca-news-pagination,
.lca-news-pagination .wp-block-query-pagination-numbers,
.lca-news-pagination a,
.lca-news-pagination .page-numbers {
	font-size: 1rem;
}

.lca-news-pagination .page-numbers {
	padding: 0 0.35em;
}

/* Contact page: larger contact details. */
.lca-contact__links {
	font-size: 1.25rem;
}

.lca-contact__small {
	font-size: 1.125rem;
}

/* Useful links, grouped under LCA's categories. */
.lca-downloads__group {
	margin-bottom: var(--wp--preset--spacing--50, 2rem);
}

/* Grouped lists (the Contact page's useful links): heading above, groups in
   two columns from tablet up. */
.lca-downloads--grouped .lca-downloads__intro {
	margin-bottom: var(--wp--preset--spacing--50, 2rem);
}

.lca-downloads--grouped .lca-downloads__intro .lca-body {
	max-width: 46rem;
}

@media (min-width: 782px) {

	.lca-downloads__groups {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--wp--preset--spacing--60, 3rem);
		align-items: start;
	}
}

.lca-downloads__summary {
	margin: 0.5rem 0 0;
	font-size: 1rem;
	line-height: 1.5;
}

.lca-downloads__group-title {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.lca-downloads__group .lca-downloads__item {
	margin-block: 0;
	padding: 0.875rem 2rem;
}

.lca-downloads__group .lca-downloads__link {
	font-size: 1.125rem;
}

.lca-prose h4 {
	margin-top: var(--wp--preset--spacing--40, 1.5rem);
	font-size: 1.125rem;
	font-weight: 600;
}

/* Tables in text sections (the cookie policy). */
.lca-prose table {
	width: 100%;
	margin: 1rem 0 1.5rem;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.4;
}

.lca-prose th,
.lca-prose td {
	padding: 0.625rem 0.75rem;
	border-bottom: 1px solid rgba(15, 23, 53, 0.15);
	text-align: left;
	vertical-align: top;
}

.lca-prose th {
	border-bottom-color: var(--wp--preset--color--secondary, #0f1735);
	font-weight: 700;
}

.lca-prose td:first-child {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 0.875rem;
	overflow-wrap: anywhere;
}

@media (max-width: 599px) {

	.lca-prose table,
	.lca-prose tbody,
	.lca-prose tr,
	.lca-prose td {
		display: block;
	}

	.lca-prose thead {
		display: none;
	}

	.lca-prose tr {
		padding: 0.5rem 0;
		border-bottom: 1px solid rgba(15, 23, 53, 0.15);
	}

	.lca-prose td {
		padding: 0.125rem 0;
		border: 0;
	}
}

/* --- Mobile alignment, 28 September 2026 ------------------------------ */

/* Inputs are width: 100% plus padding and border; without border-box they
   run past the right-hand gutter on phones. */
.lca-form input,
.lca-form select,
.lca-form textarea {
	box-sizing: border-box;
}

/* The hero cover already has the 20px side gutter. Its inner container adds
   the theme's global padding on top, pushing the hero text in to 40px while
   everything below starts at 20px. */
@media (max-width: 781px) {

	.lca-hero > .wp-block-cover__inner-container.has-global-padding {
		padding-right: 0;
		padding-left: 0;
	}
}

/* Small print read by an older audience: 12px was too small on phones. */
.lca-downloads__meta,
.lca-map__link,
.lca-contact__social {
	font-size: 0.875rem;
}

/* News page: the pinned link above the grid (Site settings > News page). */
.lca-pinned {
	padding: var(--wp--preset--spacing--40, 1.5rem) var(--wp--preset--spacing--40, 1.5rem);
	border-left: 4px solid var(--wp--preset--color--primary, #3d4a89);
	background: var(--wp--preset--color--tertiary, #e4e7f1);
	color: var(--wp--preset--color--secondary, #0f1735);
}

.lca-pinned__link {
	margin: 0;
	font-size: clamp(1.25rem, 1rem + 1vw, 1.625rem);
	font-weight: 600;
	line-height: 1.25;
}

.lca-pinned__link a {
	color: inherit;
	text-underline-offset: 0.15em;
}

.lca-pinned__text {
	margin: 0.5rem 0 0;
	font-size: 1rem;
	line-height: 1.5;
}

/* --- Header menu button (Barbara, 2 Oct 2026) ------------------------ *
 *
 * The page names stay behind an "Open menu" button at every width, as there
 * are too many to sit in a row beside the logo and account links. */

.lca-header-nav .wp-block-navigation button.wp-block-navigation__responsive-container-open,
.lca-header-nav .wp-block-navigation button.wp-block-navigation__responsive-container-close {
	padding: 0.5rem 0.75rem;
	font-family: inherit;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}
