/**
 * Broadstone component library.
 *
 * Components are deliberately content-agnostic. WordPress templates, Brizy
 * blocks and editor content may share these classes without owning data rules.
 */

/* Section headings */
.btc-section-heading {
	display: grid;
	gap: var(--btc-space-xs);
	margin-block-end: var(--btc-space-lg);
	max-width: 48rem;
}

.btc-section-heading--center {
	margin-inline: auto;
	text-align: center;
}

.btc-section-heading__eyebrow {
	color: var(--btc-colour-primary);
	font-size: var(--btc-step--1);
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0;
	text-transform: uppercase;
}

.btc-section-heading__title {
	margin: 0;
}

.btc-section-heading__title::after {
	background: var(--btc-colour-gold);
	content: "";
	display: block;
	height: 0.1875rem;
	margin-block-start: var(--btc-space-sm);
	width: 2.5rem;
}

.btc-section-heading--center .btc-section-heading__title::after {
	margin-inline: auto;
}

.btc-section-heading__intro {
	color: var(--btc-colour-muted);
	font-size: var(--btc-step-1);
	margin: 0;
}

/* Buttons and small actions */
.btc-button {
	align-items: center;
	background: var(--btc-colour-primary);
	border: 2px solid var(--btc-colour-primary);
	border-radius: var(--btc-radius-sm);
	color: var(--btc-colour-white);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 700;
	gap: var(--btc-space-xs);
	justify-content: center;
	min-height: var(--btc-touch-target);
	padding: 0.625rem 1rem;
	text-decoration: none;
	transition: background-color var(--btc-transition), border-color var(--btc-transition), color var(--btc-transition), transform var(--btc-transition);
}

.btc-button:hover {
	background: var(--btc-colour-primary-strong);
	border-color: var(--btc-colour-primary-strong);
	color: var(--btc-colour-white);
}

.btc-button:active {
	transform: translateY(1px);
}

.btc-button--secondary {
	background: transparent;
	color: var(--btc-colour-primary);
}

.btc-button--secondary:hover {
	background: var(--btc-colour-primary);
	color: var(--btc-colour-white);
}

.btc-button--gold {
	background: var(--btc-colour-gold);
	border-color: var(--btc-colour-gold);
	color: var(--btc-colour-primary-strong);
}

.btc-button--gold:hover {
	background: #ad7e2c;
	border-color: #ad7e2c;
	color: var(--btc-colour-primary-strong);
}

.btc-button--light {
	background: var(--btc-colour-white);
	border-color: var(--btc-colour-white);
	color: var(--btc-colour-primary);
}

.btc-button--light:hover {
	background: var(--btc-colour-info);
	border-color: var(--btc-colour-info);
	color: var(--btc-colour-primary-strong);
}

.btc-button--emergency {
	background: var(--btc-colour-error);
	border-color: var(--btc-colour-error);
	color: var(--btc-colour-white);
}

.btc-button--emergency:hover {
	background: #7d1719;
	border-color: #7d1719;
	color: var(--btc-colour-white);
}

.btc-button--small {
	font-size: var(--btc-step--1);
	padding: 0.45rem 0.75rem;
}

.btc-button--large {
	font-size: var(--btc-step-1);
	min-height: 3.25rem;
	padding-inline: 1.5rem;
}

.btc-icon-button {
	align-items: center;
	background: var(--btc-colour-primary);
	border: 0;
	border-radius: var(--btc-radius-sm);
	color: var(--btc-colour-white);
	cursor: pointer;
	display: inline-flex;
	height: var(--btc-touch-target);
	justify-content: center;
	width: var(--btc-touch-target);
}

/* Forms and search */
.btc-form {
	display: grid;
	gap: var(--btc-space-md);
}

.btc-form__row {
	display: grid;
	gap: var(--btc-space-sm);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.btc-field {
	display: grid;
	gap: var(--btc-space-2xs);
}

.btc-field label {
	margin: 0;
}

.btc-field__required {
	color: var(--btc-colour-error);
}

.btc-field__help,
.btc-field__error {
	font-size: var(--btc-step--1);
	margin: 0;
}

.btc-field__help {
	color: var(--btc-colour-muted);
}

.btc-field__error {
	color: var(--btc-colour-error);
	font-weight: 700;
}

.btc-field--error :where(input, select, textarea) {
	border-color: var(--btc-colour-error);
	border-width: 2px;
}

.btc-choice {
	align-items: flex-start;
	display: flex;
	gap: var(--btc-space-xs);
}

.btc-choice input {
	flex: 0 0 auto;
	height: 1.25rem;
	margin-block-start: 0.15rem;
	min-height: 0;
	width: 1.25rem;
}

.btc-choice label {
	font-weight: 400;
	margin: 0;
}

.btc-search {
	display: flex;
	max-width: 32rem;
	width: 100%;
}

.btc-search input[type="search"] {
	border-end-end-radius: 0;
	border-start-end-radius: 0;
	flex: 1;
	min-width: 0;
}

.btc-search .btc-icon-button {
	border-end-start-radius: 0;
	border-start-start-radius: 0;
	height: var(--btc-control-height);
}

.btc-filter-group {
	border: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-xs);
	margin: 0;
	padding: 0;
}

.btc-filter-group legend {
	font-weight: 700;
	margin-block-end: var(--btc-space-xs);
	width: 100%;
}

.btc-filter {
	position: relative;
}

.btc-filter input {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	position: absolute;
	width: 1px;
}

.btc-filter label {
	background: var(--btc-colour-white);
	border: 1px solid var(--btc-colour-secondary);
	border-radius: var(--btc-radius-sm);
	color: var(--btc-colour-primary);
	cursor: pointer;
	margin: 0;
	min-height: var(--btc-touch-target);
	padding: 0.625rem 1rem;
}

.btc-filter input:checked + label {
	background: var(--btc-colour-primary);
	color: var(--btc-colour-white);
}

.btc-filter input:focus-visible + label {
	outline: 3px solid var(--btc-colour-focus);
	outline-offset: 3px;
}

/* Cards */
.btc-card-grid {
	display: grid;
	gap: var(--btc-space-md);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.btc-card {
	background: var(--btc-colour-white);
	border: var(--btc-border-width) solid var(--btc-colour-border);
	border-radius: var(--btc-radius-md);
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	transition: border-color var(--btc-transition), box-shadow var(--btc-transition), transform var(--btc-transition);
}

.btc-card:focus-within,
.btc-card:hover {
	border-color: var(--btc-colour-secondary);
	box-shadow: var(--btc-shadow-card);
	transform: translateY(-2px);
}

.btc-card__media {
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--btc-colour-info), var(--btc-colour-secondary));
	overflow: hidden;
}

.btc-card__media img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.btc-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--btc-space-sm);
	padding: var(--btc-space-md);
}

.btc-card__icon {
	align-items: center;
	background: var(--btc-colour-info);
	border-radius: 50%;
	color: var(--btc-colour-primary);
	display: inline-flex;
	flex: 0 0 auto;
	height: 3rem;
	justify-content: center;
	width: 3rem;
}

.btc-card__title {
	font-size: var(--btc-step-2);
	margin: 0;
}

.btc-card__body {
	color: var(--btc-colour-muted);
	flex: 1;
}

.btc-card__body > :last-child {
	margin-block-end: 0;
}

.btc-card__link {
	align-items: center;
	display: inline-flex;
	font-weight: 700;
	gap: var(--btc-space-xs);
	width: fit-content;
}

.btc-card__meta {
	color: var(--btc-colour-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--btc-step--1);
	gap: var(--btc-space-xs) var(--btc-space-sm);
	margin: 0;
}

.btc-card__badge {
	align-self: flex-start;
	background: var(--btc-colour-primary);
	border-radius: var(--btc-radius-sm);
	color: var(--btc-colour-white);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 0.25rem 0.5rem;
	text-transform: uppercase;
}

a.btc-card__badge { text-decoration: none; }
a.btc-card__badge:hover { background: var(--btc-colour-secondary); color: var(--btc-colour-white); }
.btc-card__badges { display: flex; flex-wrap: wrap; gap: var(--btc-space-xs); }

.btc-card--service {
	text-align: center;
}

.btc-card--service .btc-card__content {
	align-items: center;
}

.btc-card--event {
	position: relative;
}

.btc-card__date {
	background: var(--btc-colour-white);
	border-radius: var(--btc-radius-sm);
	box-shadow: var(--btc-shadow-card);
	color: var(--btc-colour-primary);
	font-size: var(--btc-step--1);
	font-weight: 700;
	left: var(--btc-space-sm);
	line-height: 1.1;
	padding: var(--btc-space-xs);
	position: absolute;
	text-align: center;
	top: var(--btc-space-sm);
	width: 3.5rem;
}

.btc-card__date strong {
	display: block;
	font-family: var(--btc-font-display);
	font-size: var(--btc-step-2);
}

.btc-card--councillor .btc-card__media {
	aspect-ratio: 4 / 3;
}

.btc-card--meeting {
	border-inline-start: 0.375rem solid var(--btc-colour-gold);
}

/* Alerts and status */
.btc-alert {
	background: var(--btc-colour-info);
	border-inline-start: 0.375rem solid var(--btc-colour-secondary);
	border-radius: var(--btc-radius-sm);
	display: grid;
	gap: var(--btc-space-xs);
	padding: var(--btc-space-md);
}

.btc-alert--success {
	border-inline-start-color: var(--btc-colour-success);
}

.btc-alert--warning {
	background: var(--btc-colour-warning);
	border-inline-start-color: var(--btc-colour-gold);
}

.btc-alert--error {
	background: var(--btc-colour-error-soft);
	border-inline-start-color: var(--btc-colour-error);
}

.btc-alert__title,
.btc-alert__content {
	margin: 0;
}

/* Accordions */
.btc-accordion {
	border-block-start: 1px solid var(--btc-colour-border);
}

.btc-accordion details {
	border-block-end: 1px solid var(--btc-colour-border);
}

.btc-accordion summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-family: var(--btc-font-display);
	font-size: var(--btc-step-1);
	font-weight: 600;
	justify-content: space-between;
	list-style: none;
	min-height: var(--btc-touch-target);
	padding: var(--btc-space-sm) 0;
}

.btc-accordion summary::-webkit-details-marker {
	display: none;
}

.btc-accordion summary::after {
	content: "+";
	font-family: var(--btc-font-interface);
	font-size: var(--btc-step-2);
	font-weight: 400;
	margin-inline-start: var(--btc-space-sm);
}

.btc-accordion details[open] summary::after {
	content: "−";
}

.btc-accordion__content {
	padding-block-end: var(--btc-space-md);
}

/* Tables and document rows */
.btc-table-scroll {
	border: 1px solid var(--btc-colour-border);
	border-radius: var(--btc-radius-sm);
	overflow-x: auto;
	overscroll-behavior-inline: contain;
}

.btc-table-scroll table {
	min-width: 42rem;
}

.btc-table-scroll tbody tr:nth-child(even) {
	background: var(--btc-colour-surface-subtle);
}

.btc-document-row {
	align-items: center;
	background: var(--btc-colour-white);
	border-block-end: var(--btc-border-width) solid var(--btc-colour-border);
	display: grid;
	gap: var(--btc-space-sm);
	grid-template-columns: minmax(0, 1fr) auto;
	padding: var(--btc-space-sm);
}

.btc-document-row__title,
.btc-document-row__meta {
	margin: 0;
}

.btc-document-row__meta {
	color: var(--btc-colour-muted);
	font-size: var(--btc-step--1);
}

/* Breadcrumbs and pagination */
.btc-breadcrumbs {
	background: var(--btc-colour-surface-subtle);
	font-size: var(--btc-step--1);
	padding-block: 0.75rem;
}

.btc-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-xs);
	list-style: none;
	margin: 0;
	padding: 0;
}

.btc-breadcrumbs li:not(:last-child)::after {
	color: var(--btc-colour-muted);
	content: "/";
	margin-inline-start: var(--btc-space-xs);
}

.btc-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-xs);
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.btc-pagination a,
.btc-pagination span {
	align-items: center;
	border: 1px solid var(--btc-colour-border);
	border-radius: var(--btc-radius-sm);
	display: inline-flex;
	height: var(--btc-touch-target);
	justify-content: center;
	min-width: var(--btc-touch-target);
	padding-inline: var(--btc-space-xs);
	text-decoration: none;
}

.btc-pagination [aria-current="page"] {
	background: var(--btc-colour-primary);
	border-color: var(--btc-colour-primary);
	color: var(--btc-colour-white);
}

/* Heroes */
.btc-hero {
	background: var(--btc-colour-primary-strong);
	color: var(--btc-colour-white);
	display: grid;
	isolation: isolate;
	min-height: 20rem;
	place-items: end stretch;
	position: relative;
}

.btc-hero::before {
	background: linear-gradient(90deg, var(--btc-colour-overlay) 0%, rgb(5 25 18 / 52%) 48%, transparent 82%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: -1;
}

.btc-hero__media {
	height: 100%;
	inset: 0;
	object-fit: cover;
	object-position: center 48%;
	position: absolute;
	width: 100%;
	z-index: -2;
}

.btc-hero__content {
	margin-inline: auto;
	max-width: var(--btc-content-wide);
	padding: var(--btc-space-xl) var(--btc-gutter);
	width: 100%;
}

.btc-hero__content > * {
	max-width: 38rem;
}

.btc-hero :where(h1, h2, p) {
	color: inherit;
}

.btc-hero h1,
.btc-hero h2 {
	margin-block-end: var(--btc-space-md);
}

.btc-hero h1::after,
.btc-hero h2::after {
	background: var(--btc-colour-gold);
	content: "";
	display: block;
	height: 0.1875rem;
	margin-block-start: var(--btc-space-sm);
	width: 2.5rem;
}

.btc-hero--large {
	min-height: clamp(26rem, 50vw, 38rem);
}

.btc-hero--compact {
	min-height: 13rem;
}

.btc-hero--compact::before {
	background: linear-gradient(90deg, var(--btc-colour-primary-strong), var(--btc-colour-primary));
}

/* Utility bar, site header and mobile navigation */
.btc-utility-bar {
	background: var(--btc-colour-primary-strong);
	color: var(--btc-colour-white);
	font-size: var(--btc-step--1);
}

.btc-utility-bar__inner {
	align-items: center;
	display: flex;
	gap: var(--btc-space-sm);
	justify-content: flex-end;
	min-height: var(--btc-utility-height);
}

.btc-text-controls { align-items: center; display: flex; gap: 0.25rem; }
.btc-text-controls__label { font-weight: 700; margin-inline-end: 0.25rem; }
.btc-text-controls button { background: transparent; border: 1px solid rgb(255 255 255 / 55%); border-radius: var(--btc-radius-sm); color: inherit; cursor: pointer; font: inherit; font-weight: 700; min-height: 2.5rem; padding: 0.25rem 0.6rem; }
.btc-text-controls button:hover { background: rgb(255 255 255 / 15%); }
.btc-text-controls button:disabled { cursor: not-allowed; opacity: 0.5; }

.btc-utility-bar a {
	color: inherit;
}

#header {
	position: sticky;
	top: 0;
	z-index: var(--btc-z-header);
}

.btc-site-header {
	background: var(--btc-colour-white);
	box-shadow: 0 0.25rem 1rem rgb(3 24 17 / 10%);
	position: relative;
}

body.admin-bar #header {
	top: 32px;
}

:where([id]) {
	scroll-margin-top: 7rem;
}

@media (max-width: 782px) {
	body.admin-bar #header {
		top: 46px;
	}
}

.btc-site-header__inner {
	align-items: center;
	display: flex;
	gap: var(--btc-space-md);
	justify-content: space-between;
	min-height: var(--btc-header-height);
}

.btc-site-brand {
	align-items: center;
	color: var(--btc-colour-primary-strong);
	display: inline-flex;
	font-family: var(--btc-font-interface);
	font-size: 1.125rem;
	font-weight: 800;
	gap: 0.75rem;
	line-height: 1.05;
	text-decoration: none;
}

.btc-site-brand > span {
	max-width: 12rem;
}

.btc-site-brand__mark {
	align-items: center;
	border: 2px solid var(--btc-colour-gold);
	border-radius: 0 0 45% 45%;
	color: var(--btc-colour-gold);
	display: inline-flex;
	font-family: var(--btc-font-display);
	font-size: 1.5rem;
	height: 3rem;
	justify-content: center;
	width: 2.5rem;
}

.btc-site-brand__logo {
	height: 3.5rem;
	object-fit: contain;
	width: auto;
}

.btc-utility-nav ul {
	display: flex;
	gap: var(--btc-space-sm);
	list-style: none;
	margin: 0;
	padding: 0;
}

.btc-primary-nav ul {
	align-items: center;
	display: flex;
	gap: var(--btc-space-sm-md);
	list-style: none;
	margin: 0;
	padding: 0;
}

.btc-primary-nav a {
	color: var(--btc-colour-text);
	font-weight: 700;
	padding-block: 1.6rem;
	text-decoration: none;
}

.btc-primary-nav a:hover,
.btc-primary-nav a[aria-current="page"] {
	box-shadow: inset 0 -3px var(--btc-colour-gold);
	color: var(--btc-colour-primary);
}

.btc-mobile-nav {
	display: none;
}

.btc-mobile-nav summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-weight: 700;
	gap: var(--btc-space-xs);
	list-style: none;
	min-height: var(--btc-touch-target);
}

.btc-mobile-nav summary::-webkit-details-marker {
	display: none;
}

.btc-mobile-nav__panel {
	background: var(--btc-colour-white);
	box-shadow: var(--btc-shadow-raised);
	left: 0;
	padding: var(--btc-space-sm) var(--btc-gutter) var(--btc-space-md);
	position: absolute;
	right: 0;
	top: 100%;
}

.btc-mobile-nav__panel ul {
	display: grid;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.btc-mobile-nav__panel a {
	border-block-end: 1px solid var(--btc-colour-border);
	color: var(--btc-colour-text);
	display: block;
	font-weight: 700;
	min-height: var(--btc-touch-target);
	padding: 0.75rem 0;
	text-decoration: none;
}

/* Calls to action */
.btc-cta {
	align-items: center;
	background: var(--btc-colour-primary);
	border-radius: var(--btc-radius-md);
	color: var(--btc-colour-white);
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-md);
	justify-content: space-between;
	padding: var(--btc-space-lg);
}

.btc-cta :where(h2, h3, p) {
	color: inherit;
}

.btc-cta__content > :last-child {
	margin-block-end: 0;
}

.btc-cta--subtle {
	background: var(--btc-colour-surface-subtle);
	color: var(--btc-colour-text);
}

.btc-cta--newsletter {
	background: linear-gradient(120deg, var(--btc-colour-primary-strong), var(--btc-colour-primary));
}

.btc-newsletter-form {
	align-items: stretch;
	display: flex;
	flex: 1 1 22rem;
	max-width: 36rem;
}

.btc-newsletter-form input {
	background: var(--btc-colour-white);
	border: 2px solid var(--btc-colour-white);
	border-end-end-radius: 0;
	border-start-end-radius: 0;
	color: var(--btc-colour-text);
	flex: 1;
	height: auto;
	line-height: 1.5;
	min-height: var(--btc-touch-target);
	min-width: 10rem;
	padding: 0.75rem 1rem;
}

.btc-newsletter-form input::placeholder {
	color: var(--btc-colour-text-muted);
	opacity: 1;
}

.btc-newsletter-form input:focus-visible {
	outline: 0.1875rem solid var(--btc-colour-gold);
	outline-offset: 0.1875rem;
	position: relative;
	z-index: 1;
}

.btc-newsletter-form .btc-button {
	align-self: stretch;
	border-end-start-radius: 0;
	border-start-start-radius: 0;
}

/* Footer */
.btc-site-footer {
	background: var(--btc-colour-primary-strong);
	color: var(--btc-colour-white);
	font-size: 0.9375rem;
}

.btc-site-footer a,
.btc-site-footer :where(h2, h3, h4) {
	color: inherit;
}

.btc-site-footer__grid {
	display: grid;
	gap: var(--btc-space-lg);
	grid-template-columns: 1.4fr repeat(3, 1fr);
	padding-block: var(--btc-space-xl);
}

.btc-site-footer__column:not(:first-child) {
	border-inline-start: 1px solid rgb(255 255 255 / 20%);
	padding-inline-start: var(--btc-space-md);
}

.btc-site-footer__column h2,
.btc-site-footer__column h3 {
	font-family: var(--btc-font-interface);
	font-size: 1rem;
	margin-block-end: var(--btc-space-sm);
}

.btc-site-footer__column ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.btc-site-footer__column li + li {
	margin-block-start: var(--btc-space-xs);
}

.btc-site-footer__meta {
	align-items: center;
	border-block-start: 1px solid rgb(255 255 255 / 20%);
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-sm) var(--btc-space-lg);
	justify-content: space-between;
	padding-block: var(--btc-space-md);
}

.btc-site-footer__meta ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-sm);
	list-style: none;
	margin: 0;
	padding: 0;
}

.btc-footer-cookie-settings {
	appearance: none;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	font: inherit;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.btc-footer-cookie-settings:hover {
	text-decoration-thickness: 0.15em;
}

.btc-footer-cookie-settings:focus-visible {
	border-radius: var(--btc-radius-sm);
	outline: 0.1875rem solid var(--btc-colour-gold);
	outline-offset: 0.25rem;
}

.btc-archive-filters { display: flex; flex-wrap: wrap; gap: var(--btc-space-xs); }
.btc-archive-filter { background: var(--btc-colour-white); border: 1px solid var(--btc-colour-secondary); border-radius: 999px; font-weight: 700; padding: 0.45rem 0.8rem; text-decoration: none; }
.btc-archive-filter:hover, .btc-archive-filter[aria-current="page"] { background: var(--btc-colour-primary); color: var(--btc-colour-white); }

.btc-cookie-banner { background: rgb(255 255 255 / 98%); border-block-start: 4px solid var(--btc-colour-gold); bottom: 0; box-shadow: 0 -0.5rem 2rem rgb(3 24 17 / 20%); color: var(--btc-colour-text); left: 0; position: fixed; right: 0; z-index: calc(var(--btc-z-header) + 20); }
.btc-cookie-banner[hidden] { display: none; }
.btc-cookie-banner__inner { align-items: center; display: flex; gap: var(--btc-space-lg); justify-content: space-between; margin-inline: auto; max-width: var(--btc-content-wide); padding: var(--btc-space-md) var(--btc-gutter); }
.btc-cookie-banner h2 { font-size: var(--btc-step-2); margin-block-end: var(--btc-space-xs); }
.btc-cookie-banner p { margin: 0; }
.btc-cookie-banner__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--btc-space-xs); }

.btc-archive-actions {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: var(--btc-space-xs);
	margin-block-start: var(--btc-space-md);
}

.btc-archive-actions p {
	font-size: var(--btc-step--1);
	margin: 0;
	max-width: 44rem;
}

.btc-calendar-subscribe {
	background: var(--btc-colour-surface);
	border: 1px solid var(--btc-colour-border);
	border-inline-start: 0.35rem solid var(--btc-colour-gold);
	border-radius: var(--btc-radius-md);
	margin-block-start: var(--btc-space-md);
	max-width: none;
	padding: clamp(var(--btc-space-md), 3vw, var(--btc-space-lg));
	width: 100%;
}

.btc-calendar-subscribe__layout {
	align-items: center;
	display: grid;
	gap: var(--btc-space-lg);
	grid-template-columns: minmax(0, 1fr) minmax(15rem, 20rem);
}

.btc-calendar-subscribe__content h2,
.btc-calendar-subscribe__content p {
	max-width: 44rem;
}

.btc-calendar-subscribe h2 {
	margin-block: var(--btc-space-2xs) var(--btc-space-xs);
}

.btc-calendar-subscribe__actions,
.btc-meeting-calendar-action__links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-sm);
}

.btc-calendar-subscribe__actions {
	align-items: stretch;
	flex-direction: column;
}

.btc-calendar-subscribe__actions .btc-button {
	justify-content: center;
	width: 100%;
}

.btc-meeting-calendar-action__links {
	margin-block-start: var(--btc-space-md);
}

.btc-calendar-subscribe__status {
	font-size: var(--btc-step--1);
	font-weight: 700;
	min-height: 1.5em;
}

.btc-calendar-subscribe details {
	border-block-start: 1px solid var(--btc-colour-border);
	margin-block-start: var(--btc-space-sm);
	padding-block-start: var(--btc-space-sm);
}

.btc-calendar-subscribe summary {
	cursor: pointer;
	font-weight: 700;
}

.btc-calendar-subscribe details ul {
	margin-block-end: 0;
}

.btc-calendar-subscribe__feed-link {
	font-size: var(--btc-step--1);
	margin-block-end: 0;
}

.btc-calendar-subscribe + .btc-archive-filters {
	margin-block-start: var(--btc-space-lg);
}

.btc-meeting-calendar-action {
	background: var(--btc-colour-surface);
	border-inline-start: 0.35rem solid var(--btc-colour-gold);
	border-radius: var(--btc-radius-md);
	margin-block-start: var(--btc-space-lg);
	padding: var(--btc-space-md);
}

.btc-meeting-calendar-action h2 {
	font-size: var(--btc-step-2);
	margin-block-end: var(--btc-space-xs);
}

.btc-meeting-calendar-action p {
	margin: 0;
}

/* Event calendar */
.btc-event-calendar {
	padding-block: var(--btc-space-lg) var(--btc-space-xl);
}

.btc-event-calendar__panel {
	background: var(--btc-colour-white);
	border: 1px solid var(--btc-colour-border);
	border-radius: var(--btc-radius-lg);
	box-shadow: var(--btc-shadow-card);
	overflow: hidden;
}

.btc-event-calendar__header {
	align-items: center;
	display: flex;
	gap: var(--btc-space-lg);
	justify-content: space-between;
	padding: var(--btc-space-lg);
}

.btc-event-calendar__header h2 {
	margin-block: var(--btc-space-2xs) 0;
}

.btc-event-calendar__navigation {
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-xs);
}

.btc-event-calendar__navigation .btc-button {
	min-height: 2.75rem;
	padding: 0.55rem 0.8rem;
}

.btc-event-calendar__grid {
	border-block: 1px solid var(--btc-colour-border);
	overflow-x: auto;
}

.btc-event-calendar table {
	border: 0;
	border-collapse: collapse;
	margin: 0;
	table-layout: fixed;
	width: 100%;
}

.btc-event-calendar th {
	background: var(--btc-colour-primary);
	border-color: rgb(255 255 255 / 18%);
	color: var(--btc-colour-white);
	font-size: var(--btc-step--1);
	padding: var(--btc-space-xs);
	text-align: left;
}

.btc-event-calendar td {
	border: 1px solid var(--btc-colour-border);
	height: 9.5rem;
	padding: var(--btc-space-xs);
	vertical-align: top;
}

.btc-event-calendar td.is-today {
	box-shadow: inset 0 0 0 3px var(--btc-colour-gold);
}

.btc-event-calendar__empty {
	background: var(--btc-colour-cream);
}

.btc-event-calendar__day {
	align-items: center;
	display: inline-flex;
	font-weight: 800;
	height: 2rem;
	justify-content: center;
	width: 2rem;
}

.btc-event-calendar td.is-today .btc-event-calendar__day {
	background: var(--btc-colour-gold);
	border-radius: 50%;
	color: var(--btc-colour-primary-strong);
}

.btc-event-calendar td ul,
.btc-event-agenda ul {
	list-style: none;
	margin: var(--btc-space-2xs) 0 0;
	padding: 0;
}

.btc-event-calendar td li + li {
	margin-block-start: var(--btc-space-2xs);
}

.btc-event-calendar td a {
	background: var(--btc-colour-info);
	border-radius: var(--btc-radius-sm);
	color: var(--btc-colour-primary-strong);
	display: block;
	font-size: var(--btc-step--1);
	font-weight: 750;
	line-height: 1.25;
	padding: 0.45rem;
	text-decoration: none;
}

.btc-event-calendar td a:hover {
	background: var(--btc-colour-primary);
	color: var(--btc-colour-white);
}

.btc-event-calendar__time {
	display: block;
	font-size: 0.78em;
	font-weight: 650;
	margin-block-end: 0.15rem;
}

.btc-event-agenda {
	display: none;
	padding: var(--btc-space-md);
}

.btc-event-calendar__empty-message {
	background: var(--btc-colour-info);
	margin: 0;
	padding: var(--btc-space-md) var(--btc-space-lg);
}

.btc-event-agenda section + section {
	border-block-start: 1px solid var(--btc-colour-border);
	margin-block-start: var(--btc-space-md);
	padding-block-start: var(--btc-space-md);
}

.btc-event-agenda h3 {
	font-size: var(--btc-step-1);
	margin-block-end: var(--btc-space-xs);
}

.btc-event-agenda a {
	background: var(--btc-colour-cream);
	border-inline-start: 0.3rem solid var(--btc-colour-gold);
	color: var(--btc-colour-primary-strong);
	display: grid;
	gap: 0.15rem;
	padding: var(--btc-space-sm);
	text-decoration: none;
}

.btc-event-agenda li + li {
	margin-block-start: var(--btc-space-xs);
}

.btc-event-agenda small {
	color: var(--btc-colour-muted);
}

.btc-event-calendar__list-link {
	font-weight: 750;
	margin: 0;
	padding: var(--btc-space-md) var(--btc-space-lg);
	text-align: right;
}

@media (max-width: 48rem) {
	.btc-event-calendar__header {
		align-items: stretch;
		flex-direction: column;
		padding: var(--btc-space-md);
	}

	.btc-event-calendar__navigation {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.btc-event-calendar__navigation .btc-button:nth-child(2) {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.btc-event-calendar__grid {
		display: none;
	}

	.btc-event-agenda {
		display: block;
	}

	.btc-event-calendar__list-link {
		padding: var(--btc-space-md);
		text-align: left;
	}
}

@media (max-width: 60rem) {
	.btc-calendar-subscribe__layout {
		align-items: start;
		grid-template-columns: 1fr;
	}

	.btc-primary-nav {
		display: none;
	}

	.btc-mobile-nav {
		display: block;
	}

	.btc-site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.btc-site-footer__column:not(:first-child) {
		border: 0;
		padding: 0;
	}
}

@media (max-width: 37.5rem) {
	.btc-utility-bar__inner {
		flex-wrap: wrap;
		justify-content: space-between;
		padding-block: 0.35rem;
	}

	.btc-utility-nav { width: 100%; }
	.btc-utility-nav ul { justify-content: center; min-width: 0; }
	.btc-text-controls { justify-content: center; width: 100%; }

	.btc-utility-bar__optional {
		display: none;
	}

	.btc-site-brand {
		font-size: 1rem;
	}

	.btc-form__row,
	.btc-document-row,
	.btc-site-footer__grid {
		grid-template-columns: 1fr;
	}

	.btc-button--mobile-full,
	.btc-cta,
	.btc-cta .btc-button {
		align-items: stretch;
		width: 100%;
	}

	.btc-hero::before {
		background: linear-gradient(90deg, rgb(5 25 18 / 82%), rgb(5 25 18 / 58%));
	}

	.btc-site-footer__meta {
		align-items: flex-start;
		flex-direction: column;
	}

	.btc-cookie-banner__inner, .btc-cookie-banner__actions { align-items: stretch; flex-direction: column; }

	.btc-newsletter-form {
		display: grid;
		gap: var(--btc-space-xs);
		width: 100%;
	}

	.btc-newsletter-form input,
	.btc-newsletter-form .btc-button {
		border-radius: var(--btc-radius-sm);
		width: 100%;
	}

	.btc-calendar-subscribe__actions,
	.btc-meeting-calendar-action__links {
		align-items: stretch;
		flex-direction: column;
	}

	.btc-calendar-subscribe__actions .btc-button,
	.btc-meeting-calendar-action__links .btc-button {
		justify-content: center;
		width: 100%;
	}
}
