/*
 * BlueSkyMoments: site stylesheet (sits on top of the Kadence theme).
 * Colours and fonts mirror the Kadence palette; the home page sections are core blocks with "bsm-" classes.
 */

/* Fonts, served from this plugin (SIL Open Font License). */
@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("../fonts/manrope-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Cormorant Garamond";
	font-style: normal;
	font-weight: 500 600;
	font-display: swap;
	src: url("../fonts/cormorant-garamond-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Cormorant Garamond";
	font-style: italic;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/cormorant-garamond-italic-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--bsm-night: #0b1320;      /* navy ground */
	--bsm-night-2: #111c2e;
	--bsm-sky: #5cb8e6;        /* sky blue on dark grounds */
	--bsm-sky-soft: #9fd8f5;
	--bsm-sky-deep: #0a6e9e;   /* sky blue that passes contrast on white */
	--bsm-red: #e3262f;        /* from the logo: the play mark only */
	--bsm-mist: #f1f5f8;       /* pale morning sky for soft sections */
	--bsm-paper: #ffffff;
	--bsm-ink: #1d2430;
	--bsm-muted: #4a5260;
	--bsm-line: #d9e2ea;
	--bsm-on-dark: #e8edf3;
	--bsm-on-dark-muted: #a9b5c4;
	--bsm-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--bsm-sans: Manrope, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--bsm-gutter: clamp(1.25rem, 4vw, 3rem);
	--bsm-space: clamp(4.5rem, 2.25rem + 6.5vw, 8.5rem);
}

::selection {
	background: var(--bsm-sky-soft);
	color: var(--bsm-night);
}

:focus-visible {
	outline: 2px solid var(--bsm-sky-deep);
	outline-offset: 3px;
}

.site-header :focus-visible,
.site-footer :focus-visible,
.bsm-hero :focus-visible,
.bsm-dark :focus-visible,
.bsm-cta :focus-visible,
#mobile-drawer :focus-visible {
	outline-color: var(--bsm-sky-soft);
}

h1, h2, h3,
.wp-block-heading {
	text-wrap: balance;
	font-optical-sizing: auto;
}

p {
	text-wrap: pretty;
}

/* ---------------------------------------------------------------- Header */

.bsm-call {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.bsm-call__icon {
	flex: none;
	opacity: 0.9;
}

.site-header .header-html {
	display: flex;
	align-items: center;
	padding-left: 0.5rem;
	line-height: 1;
}

/* Below 1360px wide the header keeps only the phone icon; the number stays for screen readers. */
@media (max-width: 1359px) {
	.site-header .header-html .bsm-call__number {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

.bsm-call--icon {
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	margin-right: 0.25rem;
}

.site-header .header-button {
	margin-left: 0.75rem;
}

/* Mobile menu panel: larger serif links, a calm column. */
#mobile-drawer .drawer-inner {
	padding-top: 1rem;
}

#mobile-drawer .mobile-navigation ul li > a,
#mobile-drawer .mobile-navigation ul li .drawer-nav-drop-wrap > a {
	font-family: var(--bsm-serif);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0;
	padding-block: 0.55rem;
}

#mobile-drawer .mobile-navigation ul ul li > a {
	font-family: var(--bsm-sans);
	font-size: 1rem;
}

#mobile-drawer .mobile-header-button-wrap .button,
#mobile-drawer .mobile-header-button-wrap a {
	display: block;
	text-align: center;
}

/* ------------------------------------------------------- Section system */

.entry-content > .bsm-hero,
.entry-content > .bsm-section,
.entry-content > .bsm-cta {
	margin-top: 0;
	margin-bottom: 0;
}

.bsm-section {
	background: var(--bsm-paper);
	color: var(--bsm-ink);
}

/* Kadence zeroes the side padding of full-width blocks; this puts the gutter back. */
.entry-content .bsm-section {
	padding: var(--bsm-space) var(--bsm-gutter);
}

/* Kadence has no theme.json, so WordPress wraps each group's blocks in an inner container. Centre it. */
.bsm-section > .wp-block-group__inner-container,
.bsm-section.is-layout-constrained > :not(.alignfull) {
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
}

.bsm-section.bsm-mist {
	background: var(--bsm-mist);
}

.bsm-section.bsm-dark {
	background: var(--bsm-night);
	color: var(--bsm-on-dark);
}

.bsm-section .wp-block-heading {
	margin: 0 0 1.1rem;
}

.bsm-section h2.wp-block-heading {
	font-size: clamp(2.1rem, 1.3rem + 2.5vw, 3.5rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	max-width: 26ch;
}

.bsm-dark .wp-block-heading,
.bsm-dark h2,
.bsm-dark h3 {
	color: #fff;
}

.bsm-head {
	margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4rem);
}

.bsm-head p {
	max-width: 38rem;
	font-size: 1.0625rem;
	color: var(--bsm-muted);
	margin: 0;
}

.bsm-dark .bsm-head p {
	color: var(--bsm-on-dark-muted);
}

.bsm-lead {
	font-family: var(--bsm-serif);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.35rem, 1.15rem + 0.6vw, 1.65rem);
	line-height: 1.4;
	color: var(--bsm-night);
}

.bsm-actions {
	margin-top: clamp(2.5rem, 2rem + 2vw, 3.5rem) !important;
	gap: 0.75rem 1rem;
}

/* --------------------------------------------------------------- Buttons */

.bsm-hero .wp-block-button .wp-block-button__link,
.bsm-section .wp-block-button .wp-block-button__link,
.bsm-cta .wp-block-button .wp-block-button__link {
	border: 1px solid transparent;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* On dark grounds: a white button and a quiet outline. */
.bsm-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.bsm-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.bsm-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: #fff;
	color: var(--bsm-night);
}

.bsm-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.bsm-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.bsm-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: var(--bsm-sky-soft);
	color: var(--bsm-night);
}

/*
 * Outline buttons keep one look whatever has been done with them (change round 11). Kadence's own rules for a
 * visited, focused or pressed outline button outweighed the ones here (0,5,0 against 0,4,0): a visited "Watch my
 * films" took Kadence's link blue (#0A6E9E) while "See my photos", not yet clicked, stayed white; a focused or pressed
 * one turned a darker blue (#085479); and hover, focus and press widened the edge from 1 to 2 px, so the button grew.
 * Each rule below also names the row of buttons (".wp-block-buttons"), one class more than Kadence's, and covers
 * every state: at rest, visited, or focused by a click; then hovered, pressed, or focused from the keyboard.
 */
.bsm-hero .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link,
.bsm-hero .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:visited,
.bsm-hero .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus,
.bsm-dark .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link,
.bsm-dark .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:visited,
.bsm-dark .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:visited,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus {
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.55);
}

.bsm-hero .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover,
.bsm-hero .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus-visible,
.bsm-hero .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:active,
.bsm-dark .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover,
.bsm-dark .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus-visible,
.bsm-dark .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:active,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus-visible,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:active {
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	border: 1px solid #fff;
}

/* On light grounds: a sky blue button and a navy outline (the outline in every state, as above). */
.bsm-section:not(.bsm-dark) .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link,
.bsm-section:not(.bsm-dark) .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:visited,
.bsm-section:not(.bsm-dark) .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus {
	background: transparent;
	color: var(--bsm-night);
	border: 1px solid rgba(11, 19, 32, 0.35);
}

.bsm-section:not(.bsm-dark) .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover,
.bsm-section:not(.bsm-dark) .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus-visible,
.bsm-section:not(.bsm-dark) .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:active {
	background: var(--bsm-night);
	color: #fff;
	border: 1px solid var(--bsm-night);
}

/* ------------------------------------------------------------------ Hero */

.bsm-hero.wp-block-cover {
	min-height: 100vh;
	padding: clamp(8rem, 18vh, 11rem) var(--bsm-gutter) clamp(3.25rem, 9vh, 6rem);
	color: #fff;
}

@supports (min-height: 100svh) {
	.bsm-hero.wp-block-cover {
		min-height: 100svh !important;
	}
}

.bsm-hero .wp-block-cover__image-background {
	object-position: 52% 40%;
}

.bsm-hero .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(180deg, rgba(11, 19, 32, 0.58) 0%, rgba(11, 19, 32, 0.1) 18%, rgba(11, 19, 32, 0.04) 38%, rgba(11, 19, 32, 0.58) 60%, rgba(11, 19, 32, 0.93) 100%) !important;
}

.bsm-hero .wp-block-cover__inner-container {
	max-width: 74rem;
	margin-inline: auto;
	text-align: center;
}

.bsm-hero h1.wp-block-heading {
	color: #fff;
	font-size: clamp(2.2rem, 1.1rem + 3.9vw, 4.6rem);
	line-height: 1.04;
	letter-spacing: -0.015em;
	margin: 0 auto 1.25rem;
	max-width: 16em;
	text-shadow: 0 1px 30px rgba(11, 19, 32, 0.35);
}

.bsm-hero .bsm-lead {
	font-family: var(--bsm-sans);
	font-style: normal;
	font-weight: 400;
	font-size: clamp(1.02rem, 0.95rem + 0.35vw, 1.25rem);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.88);
	max-width: 40rem;
	margin: 0 auto 2.25rem;
}

.bsm-hero .wp-block-buttons {
	justify-content: center;
	gap: 0.75rem 1rem;
}

.bsm-hero__picture {
	display: contents;
}

/* ----------------------------------------------------------------- Intro */

.bsm-intro__cols.wp-block-columns {
	gap: clamp(2.5rem, 1rem + 6vw, 7rem);
	max-width: 1180px;
	margin-bottom: 0;
}

.bsm-intro__media.wp-block-column {
	flex-basis: 44%;
}

.bsm-intro__text.wp-block-column {
	flex-basis: 56%;
}

.bsm-intro__text > p:not(.bsm-lead) {
	max-width: 36rem;
}

.bsm-intro h2.wp-block-heading {
	font-size: clamp(2.1rem, 1.35rem + 1.9vw, 3.1rem);
}

.bsm-intro__text .bsm-lead {
	margin: 0 0 1.25rem;
}

.bsm-intro__text .wp-block-buttons {
	margin-top: 2rem;
	gap: 0.75rem 1rem;
}

/* The intro frame: a camera's viewfinder corners around the image. */
.bsm-frame {
	position: relative;
	margin: 0;
	padding: 14px;
}

.bsm-frame img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 34% 50%;
}

.bsm-frame::before,
.bsm-frame::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	--c: var(--bsm-sky-deep);
	--l: 28px;
	--w: 1.5px;
}

.bsm-frame::before {
	background:
		linear-gradient(var(--c), var(--c)) top left / var(--l) var(--w),
		linear-gradient(var(--c), var(--c)) top left / var(--w) var(--l),
		linear-gradient(var(--c), var(--c)) top right / var(--l) var(--w),
		linear-gradient(var(--c), var(--c)) top right / var(--w) var(--l);
	background-repeat: no-repeat;
}

.bsm-frame::after {
	background:
		linear-gradient(var(--c), var(--c)) bottom left / var(--l) var(--w),
		linear-gradient(var(--c), var(--c)) bottom left / var(--w) var(--l),
		linear-gradient(var(--c), var(--c)) bottom right / var(--l) var(--w),
		linear-gradient(var(--c), var(--c)) bottom right / var(--w) var(--l);
	background-repeat: no-repeat;
}

/* ----------------------------------------------------------------- Films */

.bsm-films.bsm-dark {
	background:
		radial-gradient(70% 55% at 85% 0%, rgba(92, 184, 230, 0.11), transparent 70%),
		var(--bsm-night);
}

.bsm-film-grid > .wp-block-group__inner-container,
.bsm-film-grid:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(2rem, 1.5rem + 2vw, 3rem) clamp(1rem, 0.5rem + 1.5vw, 1.75rem);
}

.bsm-film-grid .bsm-film {
	margin: 0 !important;
}

.bsm-film-grid .bsm-film-featured {
	grid-column: 1 / -1;
}

.bsm-film {
	margin: 0;
}

/* A cinema frame (2.39:1): the letterboxed posters fill it edge to edge. */
.bsm-film .bsm-film__frame {
	position: relative;
	aspect-ratio: 2.39 / 1;
	overflow: hidden;
	background: #05090f;
}

.bsm-film.is-playing .bsm-film__frame {
	aspect-ratio: 16 / 9;
}

.bsm-film__frame::before {
	display: none !important;
}

.bsm-film__link {
	position: absolute;
	inset: 0;
	display: block;
	color: #fff;
}

.bsm-film__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s ease;
}

.bsm-film__link:hover .bsm-film__poster {
	transform: scale(1.025);
}

.bsm-film__play {
	position: absolute;
	left: 50%;
	top: 50%;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: -32px 0 0 -32px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, 0.9);
	background: rgba(11, 19, 32, 0.35);
	color: #fff;
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.bsm-film-featured .bsm-film__play {
	width: 92px;
	height: 92px;
	margin: -46px 0 0 -46px;
}

.bsm-film__play svg {
	width: 42%;
	height: 42%;
	margin-left: 8%;
}

.bsm-film__link:hover .bsm-film__play,
.bsm-film__link:focus-visible .bsm-film__play {
	background: #fff;
	color: var(--bsm-red);
	transform: scale(1.06);
}

.bsm-film__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.bsm-film figcaption.wp-element-caption {
	margin: 1rem 0 0;
	text-align: left;
	font-size: 0.9375rem;
	line-height: 1.4;
	color: var(--bsm-on-dark-muted);
}

.bsm-film figcaption em {
	display: block;
	margin-bottom: 0.15rem;
	font-family: var(--bsm-serif);
	font-size: 1.55rem;
	font-weight: 500;
	line-height: 1.2;
	color: #fff;
}

.bsm-film-featured figcaption em {
	font-size: clamp(1.7rem, 1.4rem + 1vw, 2.2rem);
}

.bsm-films .bsm-actions {
	justify-content: flex-start;
}

/* ---------------------------------------------------------------- Photos */

.bsm-photo-grid.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: clamp(150px, 19vw, 290px);
	gap: clamp(6px, 0.8vw, 12px);
	max-width: 1240px !important;
	margin: 0 auto;
}

.bsm-photo-grid.wp-block-gallery.has-nested-images figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
	height: 100%;
}

.bsm-photo-grid.wp-block-gallery.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

.bsm-photo-grid.wp-block-gallery > figure:nth-child(1),
.bsm-photo-grid.wp-block-gallery > figure:nth-child(4) {
	grid-row: span 2;
}

.bsm-photo-grid.wp-block-gallery > figure:nth-child(1) img {
	object-position: 50% 62%;
}

/* ------------------------------------------------------------- Services */

.bsm-cards.wp-block-columns {
	gap: clamp(1rem, 0.5rem + 1.5vw, 2rem);
	margin-bottom: 0;
}

.bsm-card .wp-block-image {
	margin: 0 0 1.25rem;
}

.bsm-card .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.bsm-card h3.wp-block-heading {
	font-size: clamp(1.4rem, 1.2rem + 0.55vw, 1.7rem);
	line-height: 1.15;
	margin: 0 0 0.4rem;
}

.bsm-card h3 a {
	color: var(--bsm-night);
	text-decoration: none;
}

.bsm-card h3 a:hover,
.bsm-card h3 a:focus-visible {
	color: var(--bsm-sky-deep);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.bsm-card p {
	margin: 0;
	font-size: 0.975rem;
	color: var(--bsm-muted);
}

.bsm-points.wp-block-columns {
	margin: clamp(2.5rem, 2rem + 2vw, 3.75rem) 0 0;
	gap: clamp(1.5rem, 1rem + 2vw, 3rem);
	padding-top: 1.75rem;
	border-top: 1px solid var(--bsm-line);
}

.bsm-points p {
	margin: 0;
	color: var(--bsm-muted);
	max-width: 32rem;
}

.bsm-points p strong {
	display: block;
	font-family: var(--bsm-serif);
	font-size: 1.45rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--bsm-night);
	margin-bottom: 0.2rem;
}

/* ------------------------------------------------- Venues, set as credits */

.bsm-venues {
	text-align: center;
}

.bsm-venues .wp-block-heading {
	margin-inline: auto !important;
}

.bsm-venue-list.wp-block-list {
	list-style: none;
	margin: clamp(2.5rem, 2rem + 2vw, 3.5rem) auto 0 !important;
	padding: 0;
	max-width: 50rem !important;
}

.bsm-venue-list li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 1.75rem;
	align-items: baseline;
	margin: 0;
	padding: 0.3rem 0;
	text-align: left;
	font-size: 0.95rem;
	color: var(--bsm-on-dark-muted);
}

/* Each new area in the credits opens with a little air. */
.bsm-venue-list li.bsm-credits-break {
	margin-top: 1rem;
}

.bsm-venue-list li strong {
	text-align: right;
	font-family: var(--bsm-serif);
	font-size: clamp(1.3rem, 1.05rem + 0.8vw, 1.75rem);
	font-weight: 500;
	line-height: 1.25;
	color: #fff;
}

.bsm-venues .bsm-actions {
	justify-content: center;
}

/* --------------------------------------------------------------- Reviews */

/* Three reviews: side by side on wider screens, one column on phones. */
.bsm-review-grid.wp-block-columns {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(2.5rem, 1.5rem + 3vw, 4rem) clamp(1.75rem, 0.75rem + 2.5vw, 3.5rem);
	margin-bottom: 0;
}

.bsm-review-grid .bsm-review.wp-block-quote p {
	font-size: clamp(1.15rem, 1.05rem + 0.3vw, 1.3rem);
	line-height: 1.5;
}

.bsm-review-grid.wp-block-columns > .wp-block-column {
	margin: 0;
}

.bsm-review.wp-block-quote {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
	background: none;
}

.bsm-review.wp-block-quote::before {
	content: "\2605\2605\2605\2605\2605";
	content: "\2605\2605\2605\2605\2605" / "";
	display: block;
	margin-bottom: 1.1rem;
	font-size: 0.85rem;
	letter-spacing: 0.25em;
	color: var(--bsm-sky-deep);
}

.bsm-review.wp-block-quote p {
	margin: 0;
	font-family: var(--bsm-serif);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.25rem, 1.1rem + 0.45vw, 1.45rem);
	line-height: 1.5;
	color: var(--bsm-night);
}

.bsm-review.wp-block-quote cite {
	display: block;
	margin-top: 1.25rem;
	font-style: normal;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--bsm-ink);
}

.bsm-review.wp-block-quote cite::before {
	content: "";
	display: inline-block;
	vertical-align: middle;
	width: 1.5rem;
	height: 1px;
	margin-right: 0.6rem;
	background: var(--bsm-sky-deep);
}

/* ----------------------------------------------------------------- Areas */

.bsm-area-list.wp-block-list {
	list-style: none;
	margin: 0 auto !important;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 clamp(1.5rem, 1rem + 2vw, 3rem);
	max-width: none !important;
}

.bsm-area-list li {
	position: relative;
	margin: 0;
	padding: 1.5rem 0 1.75rem;
	border-top: 1px solid var(--bsm-line);
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--bsm-muted);
}

.bsm-area-list li a {
	display: block;
	margin-bottom: 0.4rem;
	font-family: var(--bsm-serif);
	font-size: clamp(1.45rem, 1.2rem + 0.7vw, 1.85rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--bsm-night);
	text-decoration: none;
}

.bsm-area-list li a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.bsm-area-list li a:hover,
.bsm-area-list li a:focus-visible {
	color: var(--bsm-sky-deep);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

/* ------------------------------------------------------- Closing invite */

.bsm-cta.wp-block-cover {
	min-height: clamp(30rem, 72vh, 42rem);
	padding: clamp(5rem, 3rem + 7vw, 9rem) var(--bsm-gutter);
	text-align: center;
	color: #fff;
}

/*
 * The photo should read: navy at 34% over the whole band, deepening softly to about 58% in the middle, behind the
 * words (about 42% on average; it was 62% in the middle rising to 86% at the edges). Text shadows and a faint fill
 * on the outline button keep the words at 4.5:1 or better on the brightest of the pages' photos.
 */
.bsm-cta .wp-block-cover__background {
	opacity: 1 !important;
	background:
		radial-gradient(56% 52% at 50% 50%, rgba(11, 19, 32, 0.36) 0%, rgba(11, 19, 32, 0.18) 55%, rgba(11, 19, 32, 0) 100%),
		rgba(11, 19, 32, 0.34) !important;
}

.bsm-cta .wp-block-cover__inner-container {
	max-width: 44rem;
	margin-inline: auto;
}

.bsm-cta h2.wp-block-heading {
	color: #fff;
	font-size: clamp(2.2rem, 1.35rem + 2.8vw, 3.8rem);
	line-height: 1.06;
	letter-spacing: -0.01em;
	margin: 0 auto 1.1rem;
	text-shadow: 0 1px 2px rgba(11, 19, 32, 0.5), 0 2px 26px rgba(11, 19, 32, 0.6);
}

.bsm-cta p {
	color: #fff;
	font-size: 1.0625rem;
	margin: 0 auto 2.25rem;
	max-width: 34rem;
	text-shadow: 0 1px 2px rgba(11, 19, 32, 0.8), 0 0 16px rgba(11, 19, 32, 0.7);
}

.bsm-cta .wp-block-buttons {
	justify-content: center;
	gap: 0.75rem 1rem;
}

/* The faint navy fill in every state (change round 11: the same states and weight as the outline rules above). */
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:visited,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus {
	background: rgba(11, 19, 32, 0.42);
	text-shadow: 0 1px 2px rgba(11, 19, 32, 0.6);
}

.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus-visible,
.bsm-cta .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:active {
	background: rgba(11, 19, 32, 0.62);
}

/* ---------------------------------------------------------------- Footer */

.site-footer .footer-widget-area .wp-block-heading {
	margin: 0 0 1rem;
	font-family: var(--bsm-serif);
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.2;
	color: #fff;
}

.site-footer .footer-widget-area p {
	margin: 0 0 0.75rem;
}

.site-footer .footer-widget-area ul.wp-block-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer .footer-widget-area ul.wp-block-list li {
	margin: 0 0 0.45rem;
}

#colophon .footer-widget-area a {
	color: rgba(255, 255, 255, 0.86);
	text-decoration: none;
}

#colophon .footer-widget-area a:hover,
#colophon .footer-widget-area a:focus-visible {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.site-footer .bsm-footer-logo {
	margin: 0 0 1.25rem;
}

.site-footer .bsm-footer-tagline {
	color: #fff;
	font-weight: 600;
}

.site-footer .footer-html .bsm-legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	margin-top: 0.5rem;
}

/* ----------------------------------------------------------- Breakpoints */

@media (max-width: 1023px) {
	.bsm-cards.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.wp-block-columns.bsm-cards > .wp-block-column {
		flex-basis: calc(50% - 1rem) !important;
		flex-grow: 0;
	}


	.bsm-area-list.wp-block-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.bsm-intro__cols.wp-block-columns {
		gap: 2.5rem;
	}

	.wp-block-columns.bsm-cards:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex-basis: calc(50% - 0.5rem) !important;
	}

	.bsm-cards.wp-block-columns {
		gap: 2rem 1rem;
	}

	.bsm-film-grid > .wp-block-group__inner-container,
	.bsm-film-grid:not(:has(> .wp-block-group__inner-container)) {
		grid-template-columns: minmax(0, 1fr);
	}

	.bsm-film__play {
		width: 54px;
		height: 54px;
		margin: -27px 0 0 -27px;
	}

	.bsm-film-featured .bsm-film__play {
		width: 64px;
		height: 64px;
		margin: -32px 0 0 -32px;
	}

	.bsm-photo-grid.wp-block-gallery.has-nested-images {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 44vw;
	}

	.bsm-area-list.wp-block-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.bsm-review-grid.wp-block-columns {
		grid-template-columns: minmax(0, 1fr);
	}

}

@media (max-width: 599px) {
	.bsm-venue-list li {
		grid-template-columns: minmax(0, 1fr);
		text-align: center;
		padding: 0.45rem 0;
	}

	.bsm-venue-list li strong {
		text-align: center;
	}

	/* Phones: a smaller title so the couple's faces stay clear; "Check your date" across the width, the two
	   outline buttons side by side below it. */
	.bsm-hero h1.wp-block-heading {
		font-size: 1.95rem;
		line-height: 1.08;
		margin-bottom: 1rem;
	}

	.bsm-hero .bsm-lead {
		font-size: 0.98rem;
		line-height: 1.55;
		margin-bottom: 1.75rem;
	}

	.bsm-hero .wp-block-buttons {
		flex-wrap: wrap;
		gap: 0.625rem;
	}

	.bsm-hero .wp-block-button {
		flex: 1 1 0;
	}

	.bsm-hero .wp-block-button:not(.is-style-outline) {
		flex-basis: 100%;
	}

	.bsm-hero .wp-block-button .wp-block-button__link {
		width: 100%;
		padding-inline: 0.5rem;
		font-size: 0.875rem;
		white-space: nowrap;
	}

	.bsm-cta .wp-block-button {
		flex: 1 1 100%;
	}

	.bsm-cta .wp-block-button .wp-block-button__link {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bsm-film__poster,
	.bsm-film__play,
	.bsm-hero .wp-block-button__link,
	.bsm-section .wp-block-button__link,
	.bsm-cta .wp-block-button__link {
		transition: none;
	}

	.bsm-film__link:hover .bsm-film__poster,
	.bsm-film__link:hover .bsm-film__play {
		transform: none;
	}
}

/* =========================================================== Inner pages */

/* Kadence's title band is switched off on each page; every page opens with its own head (".bsm-page-head"). */
.entry-content > .bsm-page-head {
	margin-top: 0;
	margin-bottom: 0;
}

.entry-content .bsm-page-head {
	padding: clamp(2.25rem, 1.5rem + 2.5vw, 3.5rem) var(--bsm-gutter) clamp(3.75rem, 2rem + 5vw, 6.5rem);
}

.bsm-page-head.bsm-dark {
	background:
		radial-gradient(55% 90% at 100% 0%, rgba(92, 184, 230, 0.12), transparent 70%),
		var(--bsm-night);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.bsm-page-head h1.wp-block-heading {
	color: #fff;
	font-size: clamp(2.45rem, 1.45rem + 3.3vw, 4.4rem);
	line-height: 1.04;
	letter-spacing: -0.015em;
	margin: 0 0 1.4rem;
	max-width: 20ch;
}

.bsm-page-head .bsm-lead {
	color: #fff;
	max-width: 34rem;
	margin: 0 0 1.25rem;
}

.bsm-page-head p:not(.bsm-lead) {
	color: var(--bsm-on-dark-muted);
	max-width: 38rem;
}

.bsm-page-head .wp-block-buttons {
	margin-top: 2rem;
	gap: 0.75rem 1rem;
}

.bsm-page-head .bsm-head-cols.wp-block-columns {
	gap: clamp(2.5rem, 1rem + 5vw, 6rem);
	margin-bottom: 0;
}

.bsm-page-head .bsm-head-cols > .wp-block-column:first-child {
	flex-basis: 56%;
}

.bsm-page-head .bsm-head-cols > .wp-block-column:last-child {
	flex-basis: 44%;
}

/* A head with no photo: centred, like the home page hero. */
.bsm-page-head--text > .wp-block-group__inner-container,
.bsm-page-head--text:not(:has(> .wp-block-group__inner-container)) {
	text-align: center;
}

.bsm-page-head.bsm-page-head--text h1.wp-block-heading,
.bsm-page-head.bsm-page-head--text p {
	margin-left: auto;
	margin-right: auto;
}

.bsm-page-head--text .bsm-breadcrumbs ol,
.bsm-page-head--text .wp-block-buttons {
	justify-content: center;
}

/* The viewfinder corners, in sky blue on the navy ground. */
.bsm-dark .bsm-frame::before,
.bsm-dark .bsm-frame::after {
	--c: var(--bsm-sky);
}

.bsm-page-head .bsm-frame img {
	aspect-ratio: 5 / 4;
	object-position: 50% 45%;
}

.bsm-page-head .bsm-frame.is-portrait img {
	aspect-ratio: 4 / 5;
}

/* Breadcrumbs: a quiet line above the title. */
.bsm-breadcrumbs {
	margin: 0 0 clamp(2.25rem, 1.5rem + 2.5vw, 3.75rem);
}

.bsm-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--bsm-on-dark-muted);
}

.bsm-breadcrumbs li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
}

.bsm-breadcrumbs li + li::before {
	content: "";
	width: 1rem;
	height: 1px;
	background: currentColor;
	opacity: 0.6;
}

.bsm-page-head .bsm-breadcrumbs a {
	display: inline;
	color: inherit;
	text-decoration: none;
}

.bsm-page-head .bsm-breadcrumbs a:hover,
.bsm-page-head .bsm-breadcrumbs a:focus-visible {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.bsm-breadcrumbs [aria-current="page"] {
	color: #fff;
}

/* Links in running text on the navy ground. */
.bsm-dark p a:not(.wp-block-button__link),
.bsm-dark .wp-block-list li a:not(.wp-block-button__link) {
	color: var(--bsm-sky-soft);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.bsm-dark p a:not(.wp-block-button__link):hover,
.bsm-dark .wp-block-list li a:not(.wp-block-button__link):hover {
	color: #fff;
}

/* The films band straight under a page head continues its navy without a second glow. */
.bsm-page-head + .bsm-section.bsm-films.bsm-dark {
	background: var(--bsm-night);
}

/* One review on its own: centred, with a readable measure. */
.bsm-review-single .bsm-review.wp-block-quote {
	max-width: 48rem;
	margin-inline: auto;
	text-align: center;
}

.bsm-review-single .bsm-actions {
	justify-content: center;
}

/* Links in the closing invitation's text. */
.bsm-cta p a {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

/* A section that follows another of the same colour needs no second gap. */
.entry-content .bsm-section.bsm-flush-top {
	padding-top: 0;
}

/* Reading width for running text. */
.bsm-prose > .wp-block-group__inner-container,
.bsm-prose:not(:has(> .wp-block-group__inner-container)) {
	max-width: 46rem !important;
}

.bsm-prose p,
.bsm-prose li {
	font-size: 1.0625rem;
	line-height: 1.75;
}

.bsm-prose h2.wp-block-heading {
	font-size: clamp(1.9rem, 1.4rem + 1.4vw, 2.6rem);
	margin-top: 3rem;
}

.bsm-prose h3.wp-block-heading {
	font-size: clamp(1.45rem, 1.25rem + 0.6vw, 1.75rem);
	margin: 2.25rem 0 0.75rem;
}

.bsm-prose > .wp-block-group__inner-container > :first-child,
.bsm-prose > :first-child {
	margin-top: 0;
}

.bsm-prose a:not(.wp-block-button__link) {
	color: var(--bsm-sky-deep);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.bsm-prose .wp-block-buttons {
	margin-top: 2rem;
	gap: 0.75rem 1rem;
}

/* Legal pages: smaller headings, long lines kept short. */
.bsm-legal-text h2.wp-block-heading {
	font-size: clamp(1.6rem, 1.3rem + 0.9vw, 2rem);
	margin: 2.75rem 0 0.75rem;
}

.bsm-legal-text .wp-block-table {
	margin: 1.5rem 0 2rem;
	overflow-x: auto;
}

.bsm-legal-text table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.bsm-legal-text th,
.bsm-legal-text td {
	text-align: left;
	vertical-align: top;
	padding: 0.7rem 0.75rem 0.7rem 0;
	border-bottom: 1px solid var(--bsm-line);
}

.bsm-legal-text th {
	font-weight: 600;
	color: var(--bsm-night);
}

/* A statement in the serif: one quotation or idea given room. */
.bsm-statement {
	font-family: var(--bsm-serif);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.45rem, 1.15rem + 1vw, 2.05rem);
	line-height: 1.42;
	color: var(--bsm-night);
	max-width: 46rem;
	margin: 0 auto;
	text-align: center;
}

/* Photo and words side by side; ".bsm-split--flip" puts the photo on the right. */
.bsm-split.wp-block-columns {
	gap: clamp(2rem, 1rem + 5vw, 6rem);
	margin-bottom: 0;
}

.bsm-split + .bsm-split {
	margin-top: clamp(4rem, 2.5rem + 5vw, 7rem);
}

.bsm-split--flip.wp-block-columns {
	flex-direction: row-reverse;
}

.bsm-split .wp-block-image {
	margin: 0;
}

.bsm-split .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.bsm-split h2.wp-block-heading {
	font-size: clamp(2rem, 1.4rem + 1.7vw, 2.9rem);
}

.bsm-split p {
	max-width: 36rem;
}

.bsm-split .wp-block-buttons {
	margin-top: 1.75rem;
	gap: 0.75rem 1rem;
}

/* Features of a venue: a short serif title over a few lines each, two by two. */
.bsm-feature-grid > .wp-block-group__inner-container,
.bsm-feature-grid:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.75rem, 1rem + 2vw, 2.75rem) clamp(2rem, 1rem + 4vw, 5rem);
}

.bsm-feature {
	padding-top: 1.25rem;
	border-top: 1px solid var(--bsm-line);
}

.bsm-feature h3.wp-block-heading {
	margin: 0 0 0.4rem;
	font-size: clamp(1.45rem, 1.2rem + 0.7vw, 1.8rem);
	line-height: 1.2;
}

.bsm-feature p {
	margin: 0;
	color: var(--bsm-muted);
}

/* Plain lists inside sections: a short rule before each item instead of a bullet. */
.bsm-ticks.wp-block-list {
	list-style: none;
	margin: 1rem 0 1.5rem;
	padding: 0;
}

.bsm-ticks li {
	position: relative;
	margin: 0 0 0.6rem;
	padding-left: 1.75rem;
}

.bsm-ticks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.85em;
	width: 1rem;
	height: 1px;
	background: var(--bsm-sky-deep);
}

.bsm-dark .bsm-ticks li::before {
	background: var(--bsm-sky);
}

/* Two or three columns of text under one heading. */
.bsm-text-cols.wp-block-columns {
	gap: clamp(2rem, 1rem + 4vw, 5rem);
	margin-bottom: 0;
}

.bsm-text-cols h2.wp-block-heading,
.bsm-text-cols h3.wp-block-heading {
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem);
}

/* ------------------------------------------------- Films page groups */

.bsm-film-group + .bsm-film-group {
	margin-top: clamp(4rem, 2.5rem + 5vw, 7rem);
}

.bsm-film-group__head > .wp-block-group__inner-container,
.bsm-film-group__head:not(:has(> .wp-block-group__inner-container)) {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 2rem;
}

.bsm-film-group__head {
	margin-bottom: clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
	padding-bottom: 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.bsm-film-group__head h3.wp-block-heading {
	margin: 0;
	font-size: clamp(1.7rem, 1.35rem + 1.1vw, 2.35rem);
	color: #fff;
}

.bsm-film-group__head p {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--bsm-on-dark-muted);
}

.bsm-film-group__head a {
	color: var(--bsm-sky-soft);
}

/* Films on a light ground. */
.bsm-section:not(.bsm-dark) .bsm-film figcaption.wp-element-caption {
	color: var(--bsm-muted);
}

.bsm-section:not(.bsm-dark) .bsm-film figcaption em {
	color: var(--bsm-night);
}

/* Film posters that open a page rather than play (area pages). */
.bsm-film-cards.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 0.5rem + 1.5vw, 1.75rem);
}

.bsm-film-cards.wp-block-gallery.has-nested-images figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
	display: block;
}

.bsm-film-cards figure.wp-block-image a {
	position: relative;
	display: block;
}

.bsm-film-cards.wp-block-gallery.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: auto !important;
	aspect-ratio: 2.39 / 1;
	object-fit: cover;
}

/* Keep the poster at 2.39:1 with its caption inside the card. Core's cropped-gallery rules stretch the link and the
   image to the full height of the grid row, which squashed the poster and pushed the caption out under the next block. */
.bsm-film-cards.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) a {
	height: auto;
	flex: none;
}

.bsm-film-cards.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) img {
	flex: none;
}

/* No blurred band behind these captions: they sit under the poster. */
.bsm-film-cards.wp-block-gallery.has-nested-images figure.wp-block-image::before {
	display: none;
}

.bsm-film-cards figure.wp-block-image a::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 54px;
	height: 54px;
	margin: -27px 0 0 -27px;
	border: 1.5px solid rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	background: rgba(11, 19, 32, 0.35) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.5v13l11-6.5z' fill='%23fff'/%3E%3C/svg%3E") 57% 50% / 42% no-repeat;
}

.bsm-film-cards.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: static;
	max-height: none;
	margin: 0.9rem 0 0;
	padding: 0;
	background: none;
	text-align: left;
	font-size: 0.9375rem;
	line-height: 1.4;
	color: var(--bsm-muted);
}

.bsm-film-cards figcaption a {
	color: var(--bsm-night);
}

.bsm-film-cards figcaption em {
	display: block;
	font-family: var(--bsm-serif);
	font-size: 1.5rem;
	font-weight: 500;
	font-style: italic;
	line-height: 1.2;
	color: var(--bsm-night);
}

/* --------------------------------------------- Photography: the gallery */

.bsm-gallery-chapter + .bsm-gallery-chapter {
	margin-top: clamp(3.5rem, 2rem + 4vw, 6rem);
}

.bsm-gallery-chapter h3.wp-block-heading {
	margin: 0 0 1.25rem;
	font-size: clamp(1.7rem, 1.35rem + 1.1vw, 2.35rem);
}

.bsm-masonry.wp-block-gallery.has-nested-images {
	display: block;
	columns: 3;
	column-gap: clamp(8px, 0.9vw, 14px);
}

.bsm-masonry.wp-block-gallery.has-nested-images figure.wp-block-image {
	display: block;
	width: 100% !important;
	margin: 0 0 clamp(8px, 0.9vw, 14px) !important;
	break-inside: avoid;
}

.bsm-masonry.wp-block-gallery.has-nested-images figure.wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
}

.bsm-masonry figure.wp-block-image a {
	display: block;
	cursor: zoom-in;
}

/* The gallery's opening pair (change round 9): two photos side by side at every width, cut to the same 3:2 shape
   so the row ends evenly. The photo viewer still shows each photo whole. */
.bsm-masonry.bsm-gallery-pair.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(8px, 0.9vw, 14px);
	columns: auto;
}

.bsm-masonry.bsm-gallery-pair.wp-block-gallery.has-nested-images figure.wp-block-image {
	margin: 0 !important;
}

.bsm-masonry.bsm-gallery-pair.wp-block-gallery.has-nested-images figure.wp-block-image img {
	aspect-ratio: 3 / 2;
	height: auto;
	object-fit: cover;
}

/* The photo viewer (made by the bsm-site plugin when a photo in the gallery is chosen). */
html:has(.bsm-lightbox[open]) {
	overflow: hidden;
}

.bsm-lightbox {
	width: 100vw;
	height: 100vh;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(5, 9, 15, 0.97);
	color: #fff;
}

.bsm-lightbox[open] {
	display: grid;
	place-items: center;
}

.bsm-lightbox::backdrop {
	background: rgba(5, 9, 15, 0.97);
}

.bsm-lightbox__figure {
	display: grid;
	justify-items: center;
	gap: 0.85rem;
	margin: 0;
	padding: 3.75rem 5rem;
}

.bsm-lightbox__img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: calc(100vh - 10rem);
	object-fit: contain;
}

.bsm-lightbox__caption {
	max-width: 40rem;
	font-size: 0.9375rem;
	line-height: 1.45;
	text-align: center;
	color: var(--bsm-on-dark-muted);
}

.bsm-lightbox__button {
	position: absolute;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 50%;
	background: rgba(11, 19, 32, 0.6);
	color: #fff;
	cursor: pointer;
}

.bsm-lightbox__button:hover,
.bsm-lightbox__button:focus-visible {
	background: #fff;
	color: var(--bsm-night);
}

.bsm-lightbox__button svg {
	width: 20px;
	height: 20px;
}

.bsm-lightbox__close {
	top: 1rem;
	right: 1rem;
}

.bsm-lightbox__prev,
.bsm-lightbox__next {
	top: 50%;
	margin-top: -24px;
}

.bsm-lightbox__prev {
	left: 1rem;
}

.bsm-lightbox__next {
	right: 1rem;
}

@media (max-width: 599px) {
	.bsm-lightbox__figure {
		padding: 4.5rem 0.75rem 6rem;
	}

	.bsm-lightbox__prev,
	.bsm-lightbox__next {
		top: auto;
		bottom: 1.25rem;
		margin-top: 0;
	}

	.bsm-lightbox__prev {
		left: calc(50% - 60px);
	}

	.bsm-lightbox__next {
		right: calc(50% - 60px);
	}
}

/* Three photos in a row (area and venue pages). */
.bsm-photo-row.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(8px, 0.9vw, 14px);
	margin-top: clamp(2rem, 1.5rem + 2vw, 3rem);
}

.bsm-photo-row.wp-block-gallery.has-nested-images figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
}

.bsm-photo-row.wp-block-gallery.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100% !important;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.bsm-photo-row.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	padding: 2.5rem 0.75rem 0.75rem;
	font-size: 0.8125rem;
	text-align: left;
}

/* -------------------------------------------------------- Reviews page */

.bsm-review-wall > .wp-block-group__inner-container,
.bsm-review-wall:not(:has(> .wp-block-group__inner-container)) {
	columns: 2 24rem;
	column-gap: clamp(2.5rem, 1rem + 5vw, 6rem);
}

.bsm-review-wall .bsm-review.wp-block-quote {
	break-inside: avoid;
	margin: 0 0 clamp(2.75rem, 2rem + 2vw, 4rem);
}

.bsm-review-wall .bsm-review.wp-block-quote p {
	font-size: clamp(1.15rem, 1.05rem + 0.35vw, 1.3rem);
	line-height: 1.55;
}

/* ------------------------------------------------------------------ FAQ */

.bsm-faq-list > .wp-block-group__inner-container,
.bsm-faq-list:not(:has(> .wp-block-group__inner-container)) {
	max-width: 52rem !important;
}

.bsm-faq.wp-block-details {
	margin: 0;
	border-top: 1px solid var(--bsm-line);
}

.bsm-faq.wp-block-details:last-child {
	border-bottom: 1px solid var(--bsm-line);
}

.bsm-faq summary {
	position: relative;
	display: block;
	list-style: none;
	cursor: pointer;
	padding: 1.5rem 3rem 1.5rem 0;
	font-family: var(--bsm-serif);
	font-size: clamp(1.35rem, 1.15rem + 0.65vw, 1.7rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--bsm-night);
}

.bsm-faq summary::-webkit-details-marker {
	display: none;
}

/* A plus that turns into a minus. */
.bsm-faq summary::before,
.bsm-faq summary::after {
	content: "";
	position: absolute;
	right: 0.5rem;
	top: 50%;
	width: 16px;
	height: 1.5px;
	background: var(--bsm-sky-deep);
	transition: transform 0.2s ease;
}

.bsm-faq summary::after {
	transform: rotate(90deg);
}

.bsm-faq[open] summary::after {
	transform: rotate(0deg);
}

.bsm-faq summary:hover {
	color: var(--bsm-sky-deep);
}

.bsm-faq > :not(summary) {
	max-width: 44rem;
	margin: 0 0 1.5rem;
	color: var(--bsm-muted);
}

/* The answer's last paragraph keeps its space above the next question's line (change round 11): Kadence's
   ".single-content p:last-child" (0,2,1) took it away, so an open answer sat on that line. */
.bsm-faq.wp-block-details > :not(summary):last-child {
	margin-bottom: 1.5rem;
}

.bsm-faq a {
	color: var(--bsm-sky-deep);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

/* ---------------------------------------------------- Venues directory */

.bsm-venue-group + .bsm-venue-group {
	margin-top: clamp(3.5rem, 2rem + 4vw, 6rem);
}

.bsm-venue-group__head > .wp-block-group__inner-container,
.bsm-venue-group__head:not(:has(> .wp-block-group__inner-container)) {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 2rem;
}

.bsm-venue-group__head {
	margin-bottom: 0.5rem;
}

.bsm-venue-group__head h2.wp-block-heading {
	margin: 0;
	font-size: clamp(1.9rem, 1.4rem + 1.5vw, 2.7rem);
}

.bsm-venue-group__head p {
	margin: 0;
	font-size: 0.9375rem;
}

.bsm-venue-group__head a,
.bsm-venue-card a {
	color: var(--bsm-sky-deep);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.bsm-venue-cards > .wp-block-group__inner-container,
.bsm-venue-cards:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 clamp(1.5rem, 1rem + 2vw, 3rem);
}

.bsm-venue-card {
	padding: 1.5rem 0 1.75rem;
	border-top: 1px solid var(--bsm-line);
}

.bsm-venue-card h3.wp-block-heading {
	margin: 0 0 0.35rem;
	font-size: clamp(1.5rem, 1.25rem + 0.7vw, 1.85rem);
	line-height: 1.15;
}

.bsm-venue-card p {
	margin: 0 0 0.35rem;
	font-size: 0.9375rem;
	color: var(--bsm-muted);
}

.bsm-venue-card .bsm-venue-style {
	font-family: var(--bsm-serif);
	font-style: italic;
	font-size: 1.2rem;
	color: var(--bsm-night);
}

.bsm-venue-card .bsm-venue-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	margin-top: 0.75rem;
}

/* Area pages (change round 7): "Venues I have filmed or photographed at", a short list after the photographs.
   Two columns on wider screens, one on phones. */
.bsm-worked-at {
	margin-top: clamp(2.5rem, 1.5rem + 3vw, 4rem);
}

.bsm-worked-at h3.wp-block-heading {
	margin: 0 0 0.9rem;
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem);
	line-height: 1.15;
}

.bsm-worked-at .bsm-ticks.wp-block-list {
	max-width: none;
	margin: 0;
	columns: 2;
	column-gap: clamp(2rem, 1rem + 3vw, 4rem);
	color: var(--bsm-muted);
}

.bsm-worked-at .bsm-ticks li {
	break-inside: avoid;
}

@media (max-width: 781px) {
	.bsm-worked-at .bsm-ticks.wp-block-list {
		columns: 1;
	}
}

/* ------------------------------------------------------------- Contact */

.bsm-contact-cols.wp-block-columns {
	gap: clamp(2.5rem, 1rem + 5vw, 6rem);
	margin-bottom: 0;
}

.bsm-contact-cols > .wp-block-column:first-child {
	flex-basis: 60%;
}

.bsm-contact-cols > .wp-block-column:last-child {
	flex-basis: 40%;
}

.bsm-contact-card {
	padding: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem);
	background: var(--bsm-mist);
}

.bsm-contact-card h2.wp-block-heading {
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem);
}

.bsm-contact-card p {
	color: var(--bsm-muted);
}

.bsm-contact-card .bsm-phone {
	margin: 0 0 1rem;
	font-family: var(--bsm-serif);
	font-size: clamp(1.8rem, 1.4rem + 1.2vw, 2.4rem);
	font-weight: 500;
	line-height: 1.1;
	font-variant-numeric: lining-nums;
}

.bsm-contact-card .bsm-phone a {
	color: var(--bsm-night);
	text-decoration: none;
}

.bsm-contact-card .bsm-phone a:hover,
.bsm-contact-card .bsm-phone a:focus-visible {
	color: var(--bsm-sky-deep);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.bsm-contact-card a:not(.wp-block-button__link) {
	color: var(--bsm-sky-deep);
}

/* Fluent Forms, in the site's type and colours. */
.bsm-section .fluentform .ff-el-group {
	margin-bottom: 1.35rem;
}

.bsm-section .fluentform .ff-el-input--label label {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--bsm-ink);
}

.bsm-section .fluentform .ff-el-form-control {
	padding: 0.8rem 0.9rem;
	border: 1px solid #aebbc8;
	border-radius: 2px;
	background: #fff;
	color: var(--bsm-ink);
	font-family: var(--bsm-sans);
	font-size: 1rem;
	line-height: 1.5;
}

.bsm-section .fluentform .ff-el-form-control:focus {
	border-color: var(--bsm-sky-deep);
	box-shadow: 0 0 0 3px rgba(10, 110, 158, 0.18);
	outline: none;
}

.bsm-section .fluentform .ff-el-form-check label {
	font-size: 0.975rem;
	color: var(--bsm-ink);
}

.bsm-section .fluentform .bsm-form-note {
	margin: 0;
	font-size: 0.875rem;
	color: var(--bsm-muted);
}

.bsm-section .fluentform .bsm-form-note a {
	color: var(--bsm-sky-deep);
}

.bsm-section .fluentform .ff-el-help-message,
.bsm-section .fluentform .ff_t_c {
	font-size: 0.875rem;
	color: var(--bsm-muted);
}

.bsm-section .fluentform .ff-btn-submit {
	padding: 0.95rem 1.9rem;
	border: 0;
	border-radius: 2px;
	background: var(--bsm-night);
	color: #fff;
	font-family: var(--bsm-sans);
	font-size: 1rem;
	font-weight: 600;
	opacity: 1;
}

.bsm-section .fluentform .ff-btn-submit:hover,
.bsm-section .fluentform .ff-btn-submit:focus-visible {
	background: var(--bsm-sky-deep);
	opacity: 1;
}

/* ------------------------------------------------------------- Inner-page breakpoints */

@media (max-width: 1023px) {
	.bsm-venue-cards > .wp-block-group__inner-container,
	.bsm-venue-cards:not(:has(> .wp-block-group__inner-container)) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.bsm-page-head .bsm-head-cols.wp-block-columns {
		gap: 2.5rem;
	}

	.bsm-page-head .bsm-frame img,
	.bsm-page-head .bsm-frame.is-portrait img {
		aspect-ratio: 4 / 3;
	}

	.bsm-split--flip.wp-block-columns {
		flex-direction: column;
	}

	.bsm-feature-grid > .wp-block-group__inner-container,
	.bsm-feature-grid:not(:has(> .wp-block-group__inner-container)) {
		grid-template-columns: minmax(0, 1fr);
	}

	.bsm-masonry.wp-block-gallery.has-nested-images {
		columns: 2;
	}

	.bsm-photo-row.wp-block-gallery.has-nested-images {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bsm-photo-row.wp-block-gallery > figure:first-child {
		grid-column: 1 / -1;
	}

	.bsm-photo-row.wp-block-gallery.has-nested-images > figure:first-child img {
		aspect-ratio: 3 / 2;
	}

	.bsm-film-cards.wp-block-gallery.has-nested-images {
		grid-template-columns: minmax(0, 1fr);
	}

	.bsm-film-group__head > .wp-block-group__inner-container,
	.bsm-film-group__head:not(:has(> .wp-block-group__inner-container)) {
		display: block;
	}

	.bsm-film-group__head p {
		margin-top: 0.4rem;
	}
}

@media (max-width: 599px) {
	.bsm-breadcrumbs {
		margin-bottom: 1.75rem;
	}

	.bsm-venue-cards > .wp-block-group__inner-container,
	.bsm-venue-cards:not(:has(> .wp-block-group__inner-container)) {
		grid-template-columns: minmax(0, 1fr);
	}

	.bsm-page-head h1.wp-block-heading {
		font-size: 2.3rem;
	}

}

@media (prefers-reduced-motion: reduce) {
	.bsm-faq summary::before,
	.bsm-faq summary::after {
		transition: none;
	}
}
