@charset "UTF-8";

/*!
Theme Name: _s
Theme URI: https://underscores.me/
Author: Automattic
Author URI: https://automattic.com/
Description: Hi. I'm a starter theme called <code>_s</code>, or <em>underscores</em>, if you like. I'm a theme meant for hacking so don't use me as a <em>Parent Theme</em>. Instead try turning me into the next, most awesome, WordPress theme out there. That's what I'm here for.
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: _s
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

_s is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/* Warmer off-white: header bar + welcome band */

/* Page + band heroes: uppercase League line (Hire us, page H1, CPT intro serif span) */

/* Home welcome band: one step larger than other heroes */

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #16425b;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
	color: #16425b;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-weight: 700;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #f6f4f1;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */

/* Canvas behind the page: matches the footer so overscroll / sub-pixel gaps are not bright white. */
html {
	background-color: #16425b;
}

body {
	margin: 0;
	background: #fff;
}

#page {
	margin-bottom: 0;
	padding-bottom: 0;
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

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

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
a {
	color: #751f31;
}

a:visited {
	color: #51a3a3;
}

a:hover,
a:focus,
a:active {
	color: #16425b;
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #16425b;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Site footer
--------------------------------------------- */

/* Site footer (global)
--------------------------------------------- */
.site-footer {
	margin-top: 0;
	margin-bottom: 0;
	padding: 0;
	background-color: #16425b;
	color: #f6f4f1;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
}

.site-footer a {
	color: #51a3a3;
	text-decoration-color: rgba(81, 163, 163, 0.45);
	text-underline-offset: 0.12em;
}

.site-footer a:hover,
.site-footer a:focus {
	color: #fff;
	text-decoration-color: rgba(255, 255, 255, 0.55);
}

.site-footer__accent {
	height: 4px;
	background-color: #51a3a3;
}

.site-footer__widgets {
	padding: 2.5rem 1.5rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer__widgets-inner {
	display: grid;
	gap: 2rem;
	max-width: 72rem;
	margin: 0 auto;
}

@media (min-width: 48em) {

	.site-footer__widgets-inner {
		grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	}
}

.site-footer__widget .widget-title {
	color: #fff;
	margin-top: 0;
}

.site-footer__main {
	max-width: 72rem;
	margin: 0 auto;
	padding: 2.75rem 1.5rem 2rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer__columns {
	display: grid;
	gap: 2.25rem;
}

@media (min-width: 40em) {

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

@media (min-width: 62em) {

	.site-footer__columns {
		grid-template-columns: 1.15fr 0.95fr 0.95fr 1.05fr;
		gap: 2rem;
	}
}

.site-footer__heading {
	margin: 0 0 0.85rem;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #fff;
}

.site-footer__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: rgba(246, 244, 241, 0.92);
}

.site-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__list li + li {
	margin-top: 0.55rem;
}

.site-footer__list a {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
}

.site-footer__link-placeholder {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	color: rgba(246, 244, 241, 0.45);
	cursor: default;
}

.site-footer__mailto {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	word-break: break-word;
}

.site-footer__note {
	margin: 0.65rem 0 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: rgba(246, 244, 241, 0.55);
}

.site-footer__newsletter {
	margin-top: 1.25rem;
}

.site-footer__newsletter-faux {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.65rem;
	align-items: center;
}

.site-footer__newsletter-input-faux {
	flex: 1 1 10rem;
	min-height: 2.5rem;
	border-radius: 2px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(0, 0, 0, 0.15);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
}

.site-footer__newsletter-btn-faux {
	min-height: 2.5rem;
	padding: 0 1.1rem;
	border-radius: 2px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.85);
	background: rgba(255, 255, 255, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.25);
}

/* Newsletter widget (Mailchimp embeds, MC4WP, etc.)
--------------------------------------------- */
.site-footer__newsletter form {
	margin-top: 0.65rem;
	max-width: 22rem;
}

.site-footer__newsletter :where(#mc_embed_signup, .mc4wp-form, form) {
	color: inherit;
	font: inherit;
}

.site-footer__newsletter :where(#mc_embed_signup) {
	background: transparent;
}

.site-footer__newsletter :where(#mc_embed_signup form) {
	padding: 0;
}

.site-footer__newsletter :where(.mc-field-group, .mc4wp-form-fields, .mc4wp-form-fields > p) {
	margin: 0;
}

.site-footer__newsletter :where(.mc4wp-form-fields, #mc_embed_signup form) {
	display: grid;
	gap: 0.65rem;
}

.site-footer__newsletter :where(.mc-field-group) {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	width: auto;
}

.site-footer__newsletter :where(label) {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(246, 244, 241, 0.72);
}

.site-footer__newsletter :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], select, textarea) {
	width: 100%;
	min-height: 2.5rem;
	padding: 0.55rem 0.75rem;
	border-radius: 2px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(0, 0, 0, 0.15);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
	color: rgba(246, 244, 241, 0.95);
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	line-height: 1.2;
}

.site-footer__newsletter :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea)::placeholder {
	color: rgba(246, 244, 241, 0.45);
}

.site-footer__newsletter :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], select, textarea):focus {
	outline: none;
	border-color: rgba(255, 255, 255, 0.45);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(81, 163, 163, 0.25);
}

.site-footer__newsletter :where(input[type="submit"], button[type="submit"], .mc4wp-form input[type="submit"]) {
	appearance: none;
	cursor: pointer;
	min-height: 2.5rem;
	padding: 0 1.1rem;
	border-radius: 2px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.9);
	background: rgba(255, 255, 255, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.25);
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.site-footer__newsletter :where(input[type="submit"], button[type="submit"]):hover,
.site-footer__newsletter :where(input[type="submit"], button[type="submit"]):focus {
	background: rgba(255, 255, 255, 0.55);
	border-color: rgba(255, 255, 255, 0.35);
	color: rgba(22, 66, 91, 0.95);
}

.site-footer__newsletter :where(input[type="submit"], button[type="submit"]):active {
	transform: translateY(1px);
}

.site-footer__newsletter :where(.indicates-required, .asterisk, .mc-field-group .asterisk) {
	display: none !important;
}

.site-footer__newsletter :where(#mc_embed_signup .indicates-required) {
	display: none !important;
}

.site-footer__newsletter :where(.mc-indicates-required) {
	display: none !important;
}

.site-footer__newsletter :where(#mce-responses, .mc4wp-response) {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: rgba(246, 244, 241, 0.75);
}

.site-footer__newsletter :where(#mc_embed_signup div.response) {
	margin: 0.5rem 0 0;
	padding: 0;
	width: auto;
}

.site-footer__newsletter :where(#mc_embed_signup .clear) {
	clear: none;
}

@media (min-width: 34em) {

	.site-footer__newsletter :where(#mc_embed_signup form) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.site-footer__newsletter :where(#mc_embed_signup .mc-field-group:nth-child(3)) {
		grid-column: 1/-1;
	}

	.site-footer__newsletter :where(#mc_embed_signup .clear) {
		grid-column: 1/-1;
	}
}

.site-footer__social {
	margin-top: 2rem;
	padding-top: 1.75rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer__social-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__social-link,
.site-footer__social-placeholder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: rgba(246, 244, 241, 0.55);
	background: rgba(0, 0, 0, 0.2);
	border: 1px solid rgba(255, 255, 255, 0.18);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
	text-decoration: none;
}

.site-footer__social-link:hover,
.site-footer__social-link:focus {
	border-color: rgba(255, 255, 255, 0.32);
	color: rgba(246, 244, 241, 0.9);
}

.site-footer__social-link .tse-social__icon {
	width: 1.35rem;
	height: 1.35rem;
	display: block;
	fill: currentColor;
}

.site-footer__bottom {
	max-width: 72rem;
	margin: 0 auto;
	padding: 1.35rem 1.5rem 1.75rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.875rem;
}

.site-footer__copyright {
	margin: 0;
	color: rgba(246, 244, 241, 0.95);
}

.site-footer__credit {
	margin: 0;
	opacity: 0.85;
}

.site-footer__credit a {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
}

/* Pre-footer newsletter band
--------------------------------------------- */
.newsletter-band {
	background: #f6f4f1;
	border-top: 4px solid #51a3a3;
	border-bottom: 1px solid rgba(22, 66, 91, 0.08);
	color: #16425b;
}

.newsletter-band__inner {
	max-width: 72rem;
	margin: 0 auto;
	padding: 1rem 1.5rem 1.15rem;
}

.newsletter-band__form {

	/* Match footer column width so the signup row can breathe */
	max-width: 72rem;
	width: 100%;
	margin: 0 auto;
}

.newsletter-band .mc4wp-form,
.newsletter-band #mc_embed_signup,
.newsletter-band .wp-block-mailchimp-mailchimp-form {
	max-width: none;
	width: 100%;
	margin: 0 auto;
}

.newsletter-band :where(.indicates-required, .mc-indicates-required, .mc-indicates-required, .mc-indicates-required) {
	display: none !important;
}

.newsletter-band :where(.mc_custom_border_hdr, .mc_container > h2, .mc_container h2) {
	margin: 30px 0 0;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #16425b;
	text-align: center;
}

.newsletter-band :where(.mc_subheader, .mc_subheader p) {
	margin: 0 auto 30px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgba(22, 66, 91, 0.75);
	max-width: 42rem;
	text-align: center;
}

.newsletter-band :where(.mc4wp-form-fields, #mc_embed_signup form) {
	display: grid;
	gap: 0.55rem;
}

.newsletter-band :where(.mc_signup_form, form) {
	margin: 0;
}

.newsletter-band :where(.mc_container) {
	text-align: center;
}

.newsletter-band :where(.mc_signup_container, .mc_form_inside, .mc_merge_var, .mc_signup_submit) {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}

.newsletter-band :where(.mc_merge_var) {
	margin-bottom: 0 !important;
}

.newsletter-band :where(.wp-block-mailchimp-mailchimp-form-field) {
	margin: 0;
	width: auto;
	min-width: 0;
}

.newsletter-band :where(.mc-field-group) {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	width: auto;
	min-width: 0;
	max-width: none;
}

.newsletter-band :where(label) {
	margin: 0 0 0.15rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.7);
	text-align: left;
}

/* Hide Last name (etc.) when the plugin still outputs merge fields you excluded in settings. */
.newsletter-band :where(.mc_merge_var:has(input[name="LNAME"]), .mc_merge_var:has(input[name="PHONE"]), .mc_merge_var:has(input[name="BIRTHDAY"])) {
	display: none !important;
}

.newsletter-band :where(input[name="LNAME"], input[name="PHONE"], input[name="BIRTHDAY"]) {
	display: none !important;
}

.newsletter-band :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], select, textarea) {
	width: 100%;
	min-height: 2.35rem;
	padding: 0.45rem 0.75rem;
	border-radius: 999px;
	border: 1px solid rgba(22, 66, 91, 0.18);
	background: rgba(255, 255, 255, 0.75);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.03), inset 0 1px 2px rgba(0, 0, 0, 0.06);
	color: rgba(22, 66, 91, 0.95);
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	line-height: 1.2;
}

.newsletter-band :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea)::placeholder {
	color: rgba(22, 66, 91, 0.45);
}

.newsletter-band :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], select, textarea):focus {
	outline: none;
	border-color: rgba(81, 163, 163, 0.8);
	box-shadow: 0 0 0 3px rgba(81, 163, 163, 0.2);
}

.newsletter-band :where(input[type="submit"], button[type="submit"]) {
	appearance: none;
	cursor: pointer;
	min-height: 2.35rem;
	padding: 0 1.25rem;
	min-width: 10.5rem;
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: #fff;
	background: #16425b;
	border: 1px solid rgba(22, 66, 91, 0.35);
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.newsletter-band :where(input[type="submit"], button[type="submit"]):hover,
.newsletter-band :where(input[type="submit"], button[type="submit"]):focus {
	background: rgba(22, 66, 91, 0.9);
	border-color: rgba(22, 66, 91, 0.55);
	color: #fff;
}

.newsletter-band :where(input[type="submit"], button[type="submit"]):active {
	transform: translateY(1px);
}

.newsletter-band :where(form.mc_signup_form) {
	margin: 0 auto;
	width: 100%;
	max-width: 68rem;
}

.newsletter-band :where(form.mc_signup_form .mc_form_inside) {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: flex-end;
	gap: 0.65rem;
	width: 100%;
	max-width: none;
	overflow-x: auto;
}

.newsletter-band :where(.wp-block-mailchimp-mailchimp-form-field, .mc_merge_var) {
	flex: 1 1 0;
	min-width: 0;
	max-width: 13rem;
	width: auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.newsletter-band :where(.mc_merge_var:has(input[type="email"])) {
	flex: 1.25 1 0;
	max-width: 18rem;
}

.newsletter-band :where(.mc_signup_submit) {
	flex: 0 0 auto;
	align-self: flex-end;
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	min-height: 0;
}

.newsletter-band :where(.mc_signup_submit input[type="submit"], .mc_signup_submit button[type="submit"]) {
	width: auto;
	height: auto;
	align-self: auto;
	flex: none;
}

@media (max-width: 36em) {

	.newsletter-band :where(form.mc_signup_form .mc_form_inside) {
		flex-wrap: wrap;
		overflow-x: visible;
	}

	.newsletter-band :where(.wp-block-mailchimp-mailchimp-form-field, .mc_merge_var) {
		flex: 1 1 100%;
		max-width: none;
	}

	.newsletter-band :where(.mc_merge_var:has(input[type="email"])) {
		flex: 1 1 100%;
		max-width: none;
	}

	.newsletter-band :where(.mc_signup_submit) {
		flex: 1 1 100%;
		align-self: stretch;
	}

	.newsletter-band :where(.mc_signup_submit input[type="submit"], .mc_signup_submit button[type="submit"]) {
		width: 100%;
	}
}

@media (min-width: 48em) {

	.newsletter-band :where(form.mc_signup_form) {
		max-width: 72rem;
		display: block;
	}

	.newsletter-band :where(.mc4wp-form-fields, #mc_embed_signup form, form.mc_signup_form) {
		display: block;
	}

	.newsletter-band :where(form.mc_signup_form .mc_form_inside) {
		flex-wrap: nowrap;
		gap: 0.75rem;
		justify-content: center;
		overflow-x: visible;
	}

	.newsletter-band :where(.mc_signup_submit, .clear, .mc4wp-form-fields > p:last-child) {
		margin-top: 0;
	}

	.newsletter-band :where(input[type="submit"], button[type="submit"]) {
		white-space: nowrap;
	}
}

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

/* Shared FAB size (match hero scroll button) */

/* Desktop logo: circular “badge” larger than the bar so it overhangs (classic dance-school nav) */

/* Site header: off-white bar + desktop horizontal nav; mobile/compact = standalone FAB + slide drawer
--------------------------------------------- */
body.menu-drawer-open {
	overflow: hidden;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 9999;
	overflow: visible;
	background-color: #f6f4f1;
	color: #16425b;
	border-bottom: none;
	box-shadow: none;
}

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

@media screen and (max-width: 782px) {

	body.admin-bar .site-header {
		top: 46px;
	}
}

body.home .site-header,
body.page-hero-layout .site-header {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
}

body.admin-bar.home .site-header,
body.admin-bar.page-hero-layout .site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {

	body.admin-bar.home .site-header,
	body.admin-bar.page-hero-layout .site-header {
		top: 46px;
	}
}

body.home .site-header.site-header--compact,
body.page-hero-layout .site-header.site-header--compact {
	position: fixed;
}

.site-header a {
	color: rgba(22, 66, 91, 0.92);
	text-shadow: none;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.site-header a:hover,
.site-header a:active {
	color: rgba(22, 66, 91, 0.92);
}

.site-header__inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: space-between;
	gap: 0 1.5rem;
	max-width: 72rem;
	margin-left: auto;
	margin-right: auto;
	padding: 0 clamp(1.25rem, 4vw, 2.5rem);
	min-height: 4.5rem;
	overflow: visible;
}

.site-header .site-branding {
	flex: 0 0 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: flex-start;

	/* Box matches bar height so the row stays short; logo overflows vertically */
	align-self: center;
	height: 4.5rem;
	min-height: 4.5rem;
	max-height: 4.5rem;
	padding: 0;
	margin-right: 0.35rem;
	overflow: visible;
	position: relative;
	z-index: 2;
}

.site-header .custom-logo-link {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: clamp(5.35rem, 12vw, 7rem);
	height: clamp(5.35rem, 12vw, 7rem);
	line-height: 0;
	border-radius: 50%;
	border: 3px solid #fff;
	box-sizing: border-box;
	box-shadow: 0 2px 14px rgba(22, 66, 91, 0.14);
	background-color: rgba(246, 244, 241, 0.97);
}

.site-header .custom-logo-link img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	object-fit: contain;
	border-radius: 50%;
}

.site-header .main-navigation {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	align-self: stretch;
	justify-content: flex-end;
	gap: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0.02em;
	font-feature-settings: "kern" 1;
}

.site-header .main-navigation #primary-menu {
	column-gap: 0.15rem;
	row-gap: 0;
	align-items: stretch;
	height: 100%;
	min-height: 4.5rem;
}

.site-header .main-navigation #primary-menu > li {
	display: flex;
	align-items: stretch;
}

.site-header .main-navigation #primary-menu > li > a {
	display: flex;
	align-items: center;
	padding: 0 clamp(1rem, 2vw, 1.65rem);
	min-height: 4.5rem;
	box-sizing: border-box;
	border-radius: 0;
	color: rgba(22, 66, 91, 0.92);
}

.site-header .main-navigation #primary-menu > li.current-menu-item > a,
.site-header .main-navigation #primary-menu > li.current-menu-ancestor > a {
	background-color: transparent;
	color: rgba(22, 66, 91, 0.92);
}

.site-header .main-navigation #primary-menu > li > a:hover,
.site-header .main-navigation #primary-menu > li > a:focus {
	background-color: #16425b;
	color: #f6f4f1;
	outline: none;
}

.site-header .main-navigation #primary-menu > li > a:focus-visible {
	outline: 2px solid #16425b;
	outline-offset: -2px;
}

.site-header .main-navigation #primary-menu > li > a:hover:focus-visible {
	outline-color: #f6f4f1;
}

@media screen and (min-width: 37.5em) {

	.site-header #primary-menu > .menu-item-has-children > a {
		padding-right: clamp(0.75rem, 1.5vw, 1.15rem);
	}

	.site-header #primary-menu > .menu-item-has-children > a::after {
		content: "";
		display: inline-block;
		width: 0.4em;
		height: 0.4em;
		margin-left: 0.45em;
		vertical-align: middle;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translate(-15%, -15%);
		opacity: 0.85;
	}
}

@media screen and (min-width: 37.5em) {

	.site-header .main-navigation {
		justify-content: center;
	}
}

/* ---- Desktop (expanded): drawer wrappers invisible to layout; horizontal menu unchanged ---- */
@media screen and (min-width: 37.5em) {

	.site-header:not(.site-header--compact) .menu-drawer {
		display: contents;
	}

	.site-header:not(.site-header--compact) .menu-drawer__panel {
		display: contents;
	}

	.site-header:not(.site-header--compact) .menu-drawer__backdrop {
		display: none !important;
	}

	.site-header:not(.site-header--compact) .menu-drawer__close {
		display: none !important;
	}

	.site-header:not(.site-header--compact) .menu-toggle {
		display: none;
	}
}

/* ---- Standalone FAB + slide drawer: small screens OR compact header ---- */
@media screen and (max-width: 37.4375em) {

	.site-header {
		background: transparent;
		border: none;
		box-shadow: none;
	}

	.site-header .site-header__inner {
		min-height: 0;
		padding: 0;
		max-width: none;
		margin: 0;
		justify-content: flex-end;
		align-items: flex-start;
		background: transparent;
	}

	.site-header .site-branding {
		display: none;
	}

	.site-header .main-navigation {
		flex: 0 0 auto;
		width: auto;
		align-items: flex-start;
		align-self: flex-start;
		position: relative;
	}

	/* Hide horizontal menu until drawer open (beats nav @media flex rule on compact desktop) */
	.site-header .main-navigation #primary-menu {
		display: none !important;
	}

	.site-header .main-navigation.toggled .menu-drawer__panel #primary-menu {
		display: flex !important;
	}

	/* Navy circle, white burger icon — same footprint as hero arrow */
	.site-header .menu-toggle {
		position: fixed;
		z-index: 100002;
		top: max(1rem, env(safe-area-inset-top, 0px));
		right: clamp(1rem, 4vw, 2.5rem);
		width: clamp(4.5rem, 12vw, 5.75rem);
		height: clamp(4.5rem, 12vw, 5.75rem);
		margin: 0;
		padding: 0;
		border: none;
		border-radius: 50%;
		background-color: #16425b;
		color: #f6f4f1;
		box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	}

	body.admin-bar .site-header .menu-toggle {
		top: calc(32px + max(1rem, env(safe-area-inset-top, 0px)));
	}
}

@media screen and (max-width: 37.4375em) and (max-width: 782px) {

	body.admin-bar .site-header .menu-toggle {
		top: calc(46px + max(1rem, env(safe-area-inset-top, 0px)));
	}
}

@media screen and (max-width: 37.4375em) {

	.site-header .menu-toggle:hover,
	.site-header .menu-toggle:focus {
		background-color: rgb(19.36, 58.08, 80.08);
		color: #f6f4f1;
		outline: none;
		box-shadow: 0 6px 28px rgba(0, 0, 0, 0.4);
	}

	.site-header .menu-toggle__bars {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: clamp(1.35rem, 3.5vw, 1.85rem);
		pointer-events: none;
	}

	.site-header .menu-toggle__bar {
		display: block;
		width: 100%;
		height: 2px;
		border-radius: 1px;
		flex-shrink: 0;
		background-color: #fff;
	}
}

@media screen and (max-width: 37.4375em) {

	/* Backdrop */
	.site-header .menu-drawer__backdrop {
		position: fixed;
		inset: 0;
		z-index: 100000;
		margin: 0;
		padding: 0;
		border: none;
		background: rgba(22, 66, 91, 0.45);
		cursor: pointer;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.28s ease, visibility 0.28s ease;
	}

	.site-header .main-navigation.toggled .menu-drawer__backdrop {
		opacity: 1;
		visibility: visible;
	}

	/* Panel */
	.site-header .menu-drawer__panel {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		z-index: 100001;
		width: min(100%, 26rem);
		max-width: 100%;
		background: #f6f4f1;
		box-shadow: -8px 0 40px rgba(22, 66, 91, 0.12);
		display: flex;
		flex-direction: column;
		padding: clamp(4.5rem, 12vh, 6rem) clamp(1.75rem, 5vw, 2.5rem) 2rem;
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.site-header .main-navigation.toggled .menu-drawer__panel {
		transform: translateX(0);
	}
}

@media screen and (max-width: 37.4375em) and (prefers-reduced-motion: reduce) {

	.site-header .menu-drawer__backdrop {
		transition: none;
	}

	.site-header .menu-drawer__panel {
		transition: none;
	}
}

@media screen and (max-width: 37.4375em) {

	/* Close (burgundy circle, cream X) */
	.site-header .menu-drawer__close {
		position: absolute;
		top: max(1rem, env(safe-area-inset-top, 0px));
		left: 0;
		transform: translateX(calc(-100% - 0.65rem));
		width: 3rem;
		height: 3rem;
		padding: 0;
		border: none;
		border-radius: 50%;
		background: #751f31;
		color: #f6f4f1;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
	}

	body.admin-bar .site-header .menu-drawer__close {
		top: calc(32px + 0.5rem);
	}
}

@media screen and (max-width: 37.4375em) and (max-width: 782px) {

	body.admin-bar .site-header .menu-drawer__close {
		top: calc(46px + 0.5rem);
	}
}

@media screen and (max-width: 37.4375em) {

	.site-header .menu-drawer__close-icon {
		position: relative;
		width: 1.1rem;
		height: 1.1rem;
		display: block;
	}

	.site-header .menu-drawer__close-icon::before,
	.site-header .menu-drawer__close-icon::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 1.15rem;
		height: 2px;
		background: currentColor;
		border-radius: 1px;
	}

	.site-header .menu-drawer__close-icon::before {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.site-header .menu-drawer__close-icon::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}
}

@media screen and (max-width: 37.4375em) {

	/* Menu list inside drawer */
	.site-header .menu-drawer__panel #primary-menu {
		flex-direction: column;
		justify-content: center;
		flex: 1 1 auto;
		min-height: 0;
		margin: 0;
		padding: 0;
		list-style: none;
		counter-reset: tse-drawer-nav;
		gap: 0;
	}

	.site-header .menu-drawer__panel #primary-menu > li {
		display: block;
		border-bottom: 1px solid rgba(22, 66, 91, 0.08);
	}

	.site-header .menu-drawer__panel #primary-menu > li:last-child {
		border-bottom: none;
	}

	.site-header .main-navigation.toggled .menu-drawer__panel #primary-menu > li > a {
		display: flex;
		align-items: baseline;
		gap: 0.75rem;
		min-height: 0;
		padding: 1.15rem 0 1.15rem 2.75rem;
		font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
		font-size: clamp(1.15rem, 3.5vw, 1.45rem);
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: rgba(22, 66, 91, 0.92);
		background: transparent;
		position: relative;
	}

	.site-header .main-navigation.toggled .menu-drawer__panel #primary-menu > li > a:hover,
	.site-header .main-navigation.toggled .menu-drawer__panel #primary-menu > li > a:focus {
		color: #751f31;
		background: transparent;
	}

	.site-header .main-navigation.toggled .menu-drawer__panel #primary-menu > li.current-menu-item > a,
	.site-header .main-navigation.toggled .menu-drawer__panel #primary-menu > li.current-menu-ancestor > a {
		color: #751f31;
	}

	.site-header .main-navigation.toggled .menu-drawer__panel #primary-menu > li > a::before {
		counter-increment: tse-drawer-nav;
		content: counter(tse-drawer-nav, decimal-leading-zero);
		position: absolute;
		left: 0;
		top: 1.15rem;
		font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
		font-size: 0.7rem;
		font-weight: 500;
		letter-spacing: 0.08em;
		color: rgba(22, 66, 91, 0.45);
	}

	/* Submenus in drawer: stack, no flyout */
	.site-header .menu-drawer__panel #primary-menu ul {
		position: static;
		display: none;
		float: none;
		min-width: 0;
		margin: 0;
		padding: 0 0 0.75rem 2.75rem;
		border: none;
		box-shadow: none;
		background: transparent;
	}

	.site-header .menu-drawer__panel #primary-menu li.focus > ul,
	.site-header .menu-drawer__panel #primary-menu li:hover > ul {
		display: block;
	}

	.site-header .menu-drawer__panel #primary-menu ul a {
		padding: 0.5rem 0;
		font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
		font-size: 0.95rem;
		font-weight: 500;
		text-transform: none;
		letter-spacing: 0.02em;
	}

	.site-header .menu-drawer__panel #primary-menu ul a::before {
		display: none;
	}

	.site-header .menu-drawer__panel .menu-item__badge {
		margin: 0.25rem 0 0;
	}

	/* Hide chevron in drawer top-level */
	.site-header .menu-drawer__panel #primary-menu > .menu-item-has-children > a::after {
		display: none;
	}
}

@media screen and (min-width: 37.5em) {

	.site-header.site-header--compact {
		background: transparent;
		border: none;
		box-shadow: none;
	}

	.site-header.site-header--compact .site-header__inner {
		min-height: 0;
		padding: 0;
		max-width: none;
		margin: 0;
		justify-content: flex-end;
		align-items: flex-start;
		background: transparent;
	}

	.site-header.site-header--compact .site-branding {
		display: none;
	}

	.site-header.site-header--compact .main-navigation {
		flex: 0 0 auto;
		width: auto;
		align-items: flex-start;
		align-self: flex-start;
		position: relative;
	}

	/* Hide horizontal menu until drawer open (beats nav @media flex rule on compact desktop) */
	.site-header.site-header--compact .main-navigation #primary-menu {
		display: none !important;
	}

	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__panel #primary-menu {
		display: flex !important;
	}

	/* Navy circle, white burger icon — same footprint as hero arrow */
	.site-header.site-header--compact .menu-toggle {
		position: fixed;
		z-index: 100002;
		top: max(1rem, env(safe-area-inset-top, 0px));
		right: clamp(1rem, 4vw, 2.5rem);
		width: clamp(4.5rem, 12vw, 5.75rem);
		height: clamp(4.5rem, 12vw, 5.75rem);
		margin: 0;
		padding: 0;
		border: none;
		border-radius: 50%;
		background-color: #16425b;
		color: #f6f4f1;
		box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	}

	body.admin-bar .site-header.site-header--compact .menu-toggle {
		top: calc(32px + max(1rem, env(safe-area-inset-top, 0px)));
	}
}

@media screen and (min-width: 37.5em) and (max-width: 782px) {

	body.admin-bar .site-header.site-header--compact .menu-toggle {
		top: calc(46px + max(1rem, env(safe-area-inset-top, 0px)));
	}
}

@media screen and (min-width: 37.5em) {

	.site-header.site-header--compact .menu-toggle:hover,
	.site-header.site-header--compact .menu-toggle:focus {
		background-color: rgb(19.36, 58.08, 80.08);
		color: #f6f4f1;
		outline: none;
		box-shadow: 0 6px 28px rgba(0, 0, 0, 0.4);
	}

	.site-header.site-header--compact .menu-toggle__bars {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: clamp(1.35rem, 3.5vw, 1.85rem);
		pointer-events: none;
	}

	.site-header.site-header--compact .menu-toggle__bar {
		display: block;
		width: 100%;
		height: 2px;
		border-radius: 1px;
		flex-shrink: 0;
		background-color: #fff;
	}
}

@media screen and (min-width: 37.5em) {

	/* Backdrop */
	.site-header.site-header--compact .menu-drawer__backdrop {
		position: fixed;
		inset: 0;
		z-index: 100000;
		margin: 0;
		padding: 0;
		border: none;
		background: rgba(22, 66, 91, 0.45);
		cursor: pointer;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.28s ease, visibility 0.28s ease;
	}

	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__backdrop {
		opacity: 1;
		visibility: visible;
	}

	/* Panel */
	.site-header.site-header--compact .menu-drawer__panel {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		z-index: 100001;
		width: min(100%, 26rem);
		max-width: 100%;
		background: #f6f4f1;
		box-shadow: -8px 0 40px rgba(22, 66, 91, 0.12);
		display: flex;
		flex-direction: column;
		padding: clamp(4.5rem, 12vh, 6rem) clamp(1.75rem, 5vw, 2.5rem) 2rem;
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__panel {
		transform: translateX(0);
	}
}

@media screen and (min-width: 37.5em) and (prefers-reduced-motion: reduce) {

	.site-header.site-header--compact .menu-drawer__backdrop {
		transition: none;
	}

	.site-header.site-header--compact .menu-drawer__panel {
		transition: none;
	}
}

@media screen and (min-width: 37.5em) {

	/* Close (burgundy circle, cream X) */
	.site-header.site-header--compact .menu-drawer__close {
		position: absolute;
		top: max(1rem, env(safe-area-inset-top, 0px));
		left: 0;
		transform: translateX(calc(-100% - 0.65rem));
		width: 3rem;
		height: 3rem;
		padding: 0;
		border: none;
		border-radius: 50%;
		background: #751f31;
		color: #f6f4f1;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
	}

	body.admin-bar .site-header.site-header--compact .menu-drawer__close {
		top: calc(32px + 0.5rem);
	}
}

@media screen and (min-width: 37.5em) and (max-width: 782px) {

	body.admin-bar .site-header.site-header--compact .menu-drawer__close {
		top: calc(46px + 0.5rem);
	}
}

@media screen and (min-width: 37.5em) {

	.site-header.site-header--compact .menu-drawer__close-icon {
		position: relative;
		width: 1.1rem;
		height: 1.1rem;
		display: block;
	}

	.site-header.site-header--compact .menu-drawer__close-icon::before,
	.site-header.site-header--compact .menu-drawer__close-icon::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 1.15rem;
		height: 2px;
		background: currentColor;
		border-radius: 1px;
	}

	.site-header.site-header--compact .menu-drawer__close-icon::before {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.site-header.site-header--compact .menu-drawer__close-icon::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}
}

@media screen and (min-width: 37.5em) {

	/* Menu list inside drawer */
	.site-header.site-header--compact .menu-drawer__panel #primary-menu {
		flex-direction: column;
		justify-content: center;
		flex: 1 1 auto;
		min-height: 0;
		margin: 0;
		padding: 0;
		list-style: none;
		counter-reset: tse-drawer-nav;
		gap: 0;
	}

	.site-header.site-header--compact .menu-drawer__panel #primary-menu > li {
		display: block;
		border-bottom: 1px solid rgba(22, 66, 91, 0.08);
	}

	.site-header.site-header--compact .menu-drawer__panel #primary-menu > li:last-child {
		border-bottom: none;
	}

	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__panel #primary-menu > li > a {
		display: flex;
		align-items: baseline;
		gap: 0.75rem;
		min-height: 0;
		padding: 1.15rem 0 1.15rem 2.75rem;
		font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
		font-size: clamp(1.15rem, 3.5vw, 1.45rem);
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: rgba(22, 66, 91, 0.92);
		background: transparent;
		position: relative;
	}

	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__panel #primary-menu > li > a:hover,
	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__panel #primary-menu > li > a:focus {
		color: #751f31;
		background: transparent;
	}

	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__panel #primary-menu > li.current-menu-item > a,
	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__panel #primary-menu > li.current-menu-ancestor > a {
		color: #751f31;
	}

	.site-header.site-header--compact .main-navigation.toggled .menu-drawer__panel #primary-menu > li > a::before {
		counter-increment: tse-drawer-nav;
		content: counter(tse-drawer-nav, decimal-leading-zero);
		position: absolute;
		left: 0;
		top: 1.15rem;
		font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
		font-size: 0.7rem;
		font-weight: 500;
		letter-spacing: 0.08em;
		color: rgba(22, 66, 91, 0.45);
	}

	/* Submenus in drawer: stack, no flyout */
	.site-header.site-header--compact .menu-drawer__panel #primary-menu ul {
		position: static;
		display: none;
		float: none;
		min-width: 0;
		margin: 0;
		padding: 0 0 0.75rem 2.75rem;
		border: none;
		box-shadow: none;
		background: transparent;
	}

	.site-header.site-header--compact .menu-drawer__panel #primary-menu li.focus > ul,
	.site-header.site-header--compact .menu-drawer__panel #primary-menu li:hover > ul {
		display: block;
	}

	.site-header.site-header--compact .menu-drawer__panel #primary-menu ul a {
		padding: 0.5rem 0;
		font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
		font-size: 0.95rem;
		font-weight: 500;
		text-transform: none;
		letter-spacing: 0.02em;
	}

	.site-header.site-header--compact .menu-drawer__panel #primary-menu ul a::before {
		display: none;
	}

	.site-header.site-header--compact .menu-drawer__panel .menu-item__badge {
		margin: 0.25rem 0 0;
	}

	/* Hide chevron in drawer top-level */
	.site-header.site-header--compact .menu-drawer__panel #primary-menu > .menu-item-has-children > a::after {
		display: none;
	}
}

/* Dropdown (desktop horizontal): light panel */
.site-header .main-navigation ul ul {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 16rem;
	margin-top: 0;
	padding: 0.5rem 0 0.65rem;
	border-radius: 0;
	border: 1px solid rgba(22, 66, 91, 0.12);
	box-shadow: 0 14px 36px rgba(22, 66, 91, 0.12);
	background: #fff;
}

.site-header .main-navigation ul.sub-menu:has(.menu-item__badge) {
	padding-top: 2rem;
}

.site-header .main-navigation ul.sub-menu:has(.menu-item__badge)::before {
	content: var(--nav-submenu-level-label, "Level");
	position: absolute;
	top: 0.55rem;
	left: 1rem;
	right: 1rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.45);
	pointer-events: none;
}

.site-header .main-navigation ul ul li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	padding: 0.3rem 0;
}

.site-header .main-navigation ul ul a {
	color: rgba(22, 66, 91, 0.95);
	padding: 0.4em 1.05rem;
	min-width: 0;
	width: 100%;
}

.site-header .main-navigation ul ul a:hover,
.site-header .main-navigation ul ul a:focus {
	color: #16425b;
	background-color: rgba(22, 66, 91, 0.07);
}

.site-header .menu-item__badge {
	display: inline-block;
	margin: 0 1rem 0.15rem;
	padding: 0.25em 0.65em;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.65rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-radius: 999px;
	color: #16425b;
	background: rgba(22, 66, 91, 0.08);
}

.site-header .menu-item__badge--beginner {
	background: rgba(81, 163, 163, 0.22);
	color: rgb(52.65, 105.95, 105.95);
}

.site-header .menu-item__badge--improver {
	background: rgba(59, 130, 246, 0.2);
	color: #1e40af;
}

.site-header .menu-item__badge--advanced {
	background: rgba(117, 31, 49, 0.2);
	color: rgb(99.45, 26.35, 41.65);
}

body.home .site-header:not(.site-header--compact),
body.page-hero-layout .site-header:not(.site-header--compact) {
	border-bottom: none;
}

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: block;
	width: 100%;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.main-navigation ul ul {
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	float: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 99999;
	display: none;
	min-width: 12.5rem;
	padding: 0.35rem 0;

	/* Deeper levels: stack below parent item (vertical), not to the side */
}

.main-navigation ul ul ul {
	top: 100%;
	left: 0;
	margin-top: 0;
}

.main-navigation ul ul li {
	position: relative;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: 0;
}

.main-navigation ul ul a {
	display: block;
	width: auto;
	min-width: 10rem;
	padding: 0.45em 1em;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	display: block;
	left: 0;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	text-decoration: none;
}

@media screen and (min-width: 37.5em) {

	/* Smooth dropdown open on hover/focus (desktop). */
	.site-header .main-navigation ul ul {
		display: block;
		opacity: 0;
		visibility: hidden;
		transform: translateY(0.5rem);
		pointer-events: none;
		transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
	}

	.site-header .main-navigation #primary-menu > li:hover > ul,
	.site-header .main-navigation #primary-menu > li.focus > ul {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
		transition-delay: 0s;
	}
}

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

	.site-header .main-navigation ul ul {
		transition: none;
		transform: none;
	}
}

/* Small menu: show panel when toggled (.menu-toggle styles live in header). */
.main-navigation.toggled ul {
	display: block;
}

@media screen and (min-width: 37.5em) {

	.menu-toggle {
		display: none;
	}

	/* Only the top-level menu is a row; submenus stay vertical columns */
	.main-navigation > ul.menu,
	.main-navigation ul#primary-menu {
		display: flex;
	}
}

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/* Page with hero template
--------------------------------------------- */

/* Page template: cream two-column hero (copy | circular featured image) + content below
--------------------------------------------- */

/* Aligns hero titles and body rails with `.about-the-dance-timeline__shell` / home-section bands. */
:root {
	--tse-editorial-gutter: clamp(1.5rem, 4vw, 2.5rem);
	--tse-editorial-max-width: 72rem;
}

.site-main--page-hero {
	max-width: none;
	margin: 0;
	padding: 0;
}

/* `page-hero-layout`: header is absolute. Keep hero background flush to the header,
   but push *content inside the hero* down so it clears the overhanging logo. */
body.page-hero-layout {
	--tse-header-clearance: clamp(5.5rem, 12vw, 8rem);
}

.page-hero--editorial {
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	padding-top: calc(var(--tse-header-clearance, 0px) + clamp(1.25rem, 3vw, 2rem));
	background-color: #f6f4f1;
	color: #16425b;
	border-bottom: 1px solid rgba(22, 66, 91, 0.1);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

.page-hero__inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding: clamp(1.5rem, 4vw, 2.5rem) 0 clamp(2rem, 4vw, 2.75rem);
}

.page-hero__top {
	display: grid;
	gap: clamp(1.75rem, 4vw, 2.5rem);
	align-items: start;
}

.page-hero__title-col {
	min-width: 0;
}

.page-hero__media-col {
	min-width: 0;
	margin-top: clamp(1.25rem, 3vw, 1.75rem);
}

.page-hero__figure {
	margin: 0;
	padding: 0;
	line-height: 0;
}

.page-hero__img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.page-hero .page-hero__title {
	margin: 0;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(2.5rem, 6vw, 4rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.05;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #111;
	text-shadow: none;
}

/* Teal rule + air between title and intro/excerpt (hidden when title is the only block). */
.page-hero .page-hero__title:not(:last-child)::after {
	content: "";
	display: block;
	width: clamp(2.75rem, 9vw, 4.25rem);
	height: 3px;
	margin-top: clamp(1rem, 2.5vw, 1.5rem);
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
	background-color: #51a3a3;
	border-radius: 1px;
}

.page-hero__intro,
.page-hero__excerpt {
	max-width: min(42rem, 100%);
}

.page-hero__intro {
	margin: 0 0 clamp(1.5rem, 3.5vw, 2.25rem);
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgb(39.55, 56.1, 64.45);
	opacity: 1;
	text-shadow: none;
}

.page-hero__intro p {
	margin: 0 0 0.5em;
}

.page-hero__intro p:last-child {
	margin-bottom: 0;
}

.page-hero__excerpt {
	margin: 0 0 clamp(1.5rem, 3.5vw, 2.25rem);
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgb(39.55, 56.1, 64.45);
	opacity: 1;
	text-shadow: none;
}

.page-hero__intro + .page-hero__excerpt {
	margin-top: clamp(0.5rem, 1.5vw, 1rem);
}

@media (min-width: 48em) {

	.page-hero--editorial:not(.page-hero--no-media) .page-hero__top {

		/* Slightly favour the title column; image is still capped by `.tse-hero-circle` / figure rules. */
		grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
		gap: clamp(1.75rem, 4vw, 3rem);
		align-items: center;
	}

	.page-hero--editorial:not(.page-hero--no-media) .page-hero__media-col {
		margin-top: 0;
		padding-top: 0;
	}
}

/* Classes + Workshops + Events & Socials pages: hardcoded hero graphic (not circular); flush to hero bottom */
.page-hero--landing-graphic .page-hero__inner {
	padding-bottom: 0;
}

.page-hero--landing-graphic .page-hero__figure--landing-graphic {
	max-width: min(52rem, 100%);
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 0;
}

.page-hero--landing-graphic .page-hero__img--landing-graphic {
	width: 100%;
	max-width: none;
	margin-left: auto;
	margin-right: auto;
	border-radius: 0;
	vertical-align: bottom;
	display: block;
}

.page-hero--landing-graphic .page-hero__media-col {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin-top: clamp(1.25rem, 3vw, 1.75rem);
}

@media (min-width: 48em) {

	.page-hero--landing-graphic.page-hero--editorial:not(.page-hero--no-media) .page-hero__top {

		/* Proportional split so the title column stays substantial (fixed max-vw tracks left it ~260px wide). */
		grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
		gap: clamp(2rem, 4.5vw, 3.5rem);
		align-items: stretch;
	}

	.page-hero--landing-graphic.page-hero--editorial:not(.page-hero--no-media) .page-hero__title-col {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-self: stretch;
		min-height: 0;
	}

	.page-hero--landing-graphic.page-hero--editorial:not(.page-hero--no-media) .page-hero__media-col {
		justify-self: end;
		margin-top: 0;
	}
}

/* Circular featured image + organic PNG layer (page hero + single CPT intros) */
.tse-hero-circle {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	max-width: min(28rem, 100%);
	margin-left: auto;
	margin-right: auto;
	aspect-ratio: 1;
}

.tse-hero-circle::before {
	content: "";
	position: absolute;
	inset: -4% 10% -8% 10%;
	z-index: 0;
	background-image: var(--tse-hero-organic, none);
	background-repeat: no-repeat;
	background-position: 62% 58%;
	background-size: 94% auto;
	pointer-events: none;
}

/* Meet the Team hero: drop the organic layer lower within the band. */
body.page-meet-the-team .tse-hero-circle::before {
	transform: translateY(20%);
}

/* Latest News single: match the "tuck under next section" organic placement. */
body.single-latest-news .tse-hero-circle::before {
	transform: translateY(20%);
}

.tse-hero-circle .page-hero__img,
.tse-hero-circle .class-single__intro-img {
	position: relative;
	z-index: 1;
	display: block;
	box-sizing: border-box;
	width: 76%;
	height: auto;
	aspect-ratio: 1;
	margin: 0;
	border: 0;
	border-radius: 50%;
	object-fit: cover;
	object-position: center;
	box-shadow: none;
}

@media (min-width: 48em) {

	.page-hero--editorial:not(.page-hero--no-media) .page-hero__media-col .tse-hero-circle {
		margin-left: 0;
		margin-right: 0;
		max-width: 100%;
	}
}

/* Body + comments: same rail as timeline shells (gutters outside the 72rem column, not inside). */
.site-main--page-hero .page-hero-below .entry-content,
.site-main--page-hero .page-hero-below .entry-footer,
.site-main--page-hero .comments-area {
	width: 100%;
	max-width: min(var(--tse-editorial-max-width), 100% - 2 * var(--tse-editorial-gutter));
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
}

.site-main--page-hero .page-hero-below .entry-content {
	padding-top: clamp(2.75rem, 5vw, 3.75rem);
	padding-bottom: 2rem;
}

/* Latest News single: hero date line under the accent rule */
.latest-news-hero__date {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.68);
}

/* About page (sub-nav + sections)
--------------------------------------------- */

/* About page: matches About the Dance intro band + page body
--------------------------------------------- */
body.page-about {
	background-color: rgb(242.75, 242.05, 241);
}

/* Same main shell as full-bleed pages (no hero on About — intro band carries top spacing). */
body.page-about .site-main--page-hero {
	max-width: none;
	margin: 0;
	padding: 0;
}

/* Intro: cream band. (About the Dance keeps huge top padding for overlay header + logo; About uses normal header — modest gap only.) */
body.page-about .about-the-dance-intro.home-section.about-intro {
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	padding-bottom: 0;
	background-color: #f6f4f1;
	color: #16425b;
	padding-top: clamp(1.25rem, 3vw, 2rem);
}

body.page-about .about-the-dance-intro__inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding-top: clamp(1.5rem, 4vw, 2.5rem);
	padding-right: 0;
	padding-bottom: 0;
	padding-left: 0;
}

/* Row 1: title + image; stats row inside __inner; story copy is .about-intro__story below */
body.page-about .about-intro__top {
	align-items: start;
}

body.page-about .about-intro__title-col {
	min-width: 0;
}

/* Full-width white band: ACF story + quote (below cream intro + stats) */
body.page-about .about-intro__story.home-section {
	margin: 0;
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	background-color: #fff;
	color: #16425b;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

body.page-about .about-intro__story-inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}

body.page-about .about-intro__est--full {
	text-align: left;
	margin: 0 0 clamp(1.75rem, 3vw, 2.5rem);
}

body.page-about .about-intro__est {
	text-align: left;
	margin-top: 0;
	margin-bottom: 1.25rem;
}

/* Two columns: founder + quote | main copy */
body.page-about .about-intro__story-grid {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
	align-items: start;
}

body.page-about .about-intro__founder-col {
	min-width: 0;
}

body.page-about .about-intro__founder-kicker {
	margin: 0 0 0.5rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.55);
}

body.page-about .about-intro__founder-name {
	margin: 0 0 0.35rem;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3.5vw, 2.35rem);
	font-weight: 700;
	line-height: 1.15;
	color: #111;
	letter-spacing: -0.02em;
}

body.page-about .about-intro__founder-role {
	margin: 0 0 1rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1rem;
	line-height: 1.45;
	color: rgba(22, 66, 91, 0.72);
}

body.page-about .about-intro__story-main {
	min-width: 0;
}

@media (min-width: 56em) {

	body.page-about .about-intro__story-grid {
		grid-template-columns: minmax(0, 15rem) minmax(0, 1fr);
		gap: clamp(2rem, 5vw, 3.5rem);
	}

	body.page-about .about-intro__story-main {
		padding-left: clamp(1.5rem, 3vw, 2.5rem);
		border-left: 1px solid rgba(22, 66, 91, 0.12);
	}
}

body.page-about .about-intro__media-col {
	min-width: 0;
	margin-top: clamp(1.25rem, 3vw, 1.75rem);
}

body.page-about .about-intro__figure {
	margin: 0;
	padding: 0;
	line-height: 0;
}

body.page-about .about-intro__img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

@media (min-width: 48em) {

	body.page-about .about-intro__top {

		/* Match page-hero: slightly wider title column */
		grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
		gap: clamp(1.75rem, 4vw, 3rem);
		align-items: center;
	}

	body.page-about .about-intro__media-col {
		margin-top: 0;
		padding-top: 0;
	}
}

.about-the-dance-intro__prose--after-quote {
	margin-top: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* Quote in founder column */
body.page-about .about-intro__quote--founder {
	margin: 0;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border-left: 0;
	background-color: rgb(236.36, 239.88, 241.88);
	border-radius: 10px;
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.05);
}

body.page-about .about-intro__quote--founder .about-intro__quote-text {
	margin: 0 0 1rem;
	padding: 0;
	font-size: 1.0625rem;
}

body.page-about .about-intro__quote-cite--founder {
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1.45;
	color: rgba(22, 66, 91, 0.55);
}

/* Match .about-the-dance-intro__stats margin-top ($about-dance-intro-row-gap) */
body.page-about .about-the-dance-intro__stats.about-the-dance-intro__stats--about {
	margin-bottom: clamp(2rem, 4vw, 2.75rem);
}

@media (min-width: 48em) {

	body.page-about .about-the-dance-intro__stats.about-the-dance-intro__stats--about {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

body.page-about .about-intro__quote-text {
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-style: italic;
	line-height: 1.6;
	color: rgba(22, 66, 91, 0.9);
}

/* Page editor body: same white lane as story section (no double rule between) */
body.page-about .page-hero-below.page-about-body {
	width: 100%;
	max-width: none;
	margin: 0;
	background-color: #fff;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

body.page-about .about-intro__story + .page-hero-below.page-about-body {
	border-top: 0;
	box-shadow: none;
}

body.page-about .page-about-body .entry-content {
	width: 100%;
	max-width: min(var(--tse-editorial-max-width), 100% - 2 * var(--tse-editorial-gutter));
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
	margin-top: 0;
	padding-top: clamp(2.5rem, 5vw, 4rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
	background-color: transparent;
	box-shadow: none;
	border-radius: 0;
}

body.page-about .about-intro__story + .page-hero-below.page-about-body .entry-content {
	padding-top: clamp(1.5rem, 3vw, 2.25rem);
}

body.page-about .page-about-body .entry-content > *:first-child {
	margin-top: 0;
}

body.page-about .page-about-body .entry-footer {
	width: 100%;
	max-width: min(var(--tse-editorial-max-width), 100% - 2 * var(--tse-editorial-gutter));
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

body.page-about .comments-area {
	width: 100%;
	max-width: min(var(--tse-editorial-max-width), 100% - 2 * var(--tse-editorial-gutter));
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
	background-color: #fff;
	border-top: 1px solid rgba(22, 66, 91, 0.08);
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

/* Section headings: align with home “Jump into the fun” / welcome uppercase lines */
.page-about .entry-content h2 {
	margin-top: 0;
	margin-bottom: 1.1em;
	padding-top: 0.15em;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #16425b;
	scroll-margin-top: 1.5rem;
}

.page-about .entry-content h2:not(:first-child) {
	margin-top: clamp(2.25rem, 5vw, 3.25rem);
	padding-top: clamp(1.75rem, 4vw, 2.5rem);
	border-top: 1px solid rgba(22, 66, 91, 0.1);
}

.page-about .entry-content p,
.page-about .entry-content li {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgb(39.55, 56.1, 64.45);
}

.page-about .entry-content p {
	margin: 0 0 1em;
}

.page-about .entry-content p:last-child {
	margin-bottom: 0;
}

.page-about .entry-content a {
	font-weight: 600;
}

/* -------------------------------------------------------------------------
   About page — bottom “See our classes” CTA (two columns)
------------------------------------------------------------------------- */

/* Brand teal wash — clearly separate from white story band above */
body.page-about .about-classes-cta.home-section {
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(22, 66, 91, 0.14);
	border-bottom: 1px solid rgba(22, 66, 91, 0.14);
	background-color: rgb(147.12, 197.96, 197.96);
}

/* Same rail as .about-intro__story-inner / .entry-content */
body.page-about .about-classes-cta__inner {
	max-width: 72rem;
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

body.page-about .about-classes-cta__grid {
	display: grid;
	grid-template-columns: 1fr;
	min-height: clamp(11rem, 22vw, 15rem);
}

body.page-about .about-classes-cta__col {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 0;
	min-width: 0;
}

body.page-about .about-classes-cta__col--lead {
	background-color: transparent;
}

body.page-about .about-classes-cta__col--services {
	background-color: rgb(122.76, 185.08, 185.08);
	border-top: 1px solid rgba(22, 66, 91, 0.12);
	border-radius: 10px;
	padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 3vw, 1.25rem);
	margin-top: clamp(0.5rem, 2vw, 1rem);
}

@media (min-width: 48em) {

	body.page-about .about-classes-cta__grid {
		grid-template-columns: 1fr 1fr;
		column-gap: 0;
	}

	body.page-about .about-classes-cta__col--services {
		border-top: none;
		border-left: 1px solid rgba(22, 66, 91, 0.14);
		border-radius: 0 10px 10px 0;
		margin-top: 0;
		padding-top: clamp(0.35rem, 1vw, 0.65rem);
		padding-bottom: clamp(0.35rem, 1vw, 0.65rem);
		padding-right: clamp(0.5rem, 1.5vw, 1rem);
		padding-left: clamp(1.5rem, 3vw, 2.5rem);
	}
}

body.page-about .about-classes-cta__title {
	margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.08em;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.85rem, 4vw, 2.65rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.12;
	color: #111;
	letter-spacing: -0.02em;
}

body.page-about .about-classes-cta__title-line {
	display: block;
}

body.page-about .about-classes-cta__title-line--italic {
	font-weight: 400;
	font-style: italic;
}

body.page-about .about-classes-cta__actions {
	margin: 0;
}

body.page-about .about-classes-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.65rem 1.35rem;
	border: 1px solid rgba(17, 17, 17, 0.35);
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	color: #111;
	background-color: #fff;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

body.page-about .about-classes-cta__btn:hover,
body.page-about .about-classes-cta__btn:focus {
	color: #16425b;
	border-color: #16425b;
	background-color: rgba(255, 255, 255, 0.95);
	outline: none;
}

body.page-about .about-classes-cta__btn:focus-visible {
	outline: 2px solid #16425b;
	outline-offset: 3px;
}

body.page-about .about-classes-cta__btn-arrow {
	font-weight: 400;
}

body.page-about .about-classes-cta__services {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

body.page-about .about-classes-cta__service-line {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1rem, 1.8vw, 1.0625rem);
	font-weight: 500;
	line-height: 1.5;
	color: rgb(24.52, 64.6, 86.24);
}

/* Hire Us page: cream intro; full-width body; optional client-logo marquee below
--------------------------------------------- */
body.page-hire-us {
	background-color: rgb(242.75, 242.05, 241);
}

body.page-hire-us .site-main--page-hero {
	max-width: none;
	margin: 0;
	padding: 0;
}

body.page-hire-us .about-the-dance-intro.home-section.hire-us-intro {
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	padding-bottom: 0;
	background-color: #f6f4f1;
	color: #16425b;

	/* Match .page-hero--editorial: clearance under overlay header + logo (see _page-hero.scss). */
	padding-top: calc(var(--tse-header-clearance, 0px) + clamp(1.25rem, 3vw, 2rem));
}

body.page-hire-us .about-the-dance-intro__inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding-top: clamp(1.5rem, 4vw, 2.5rem);
	padding-right: 0;
	padding-bottom: 0;
	padding-left: 0;
}

/* Match About the Dance editorial accent on the script line */
body.page-hire-us .hire-us-intro .about-the-dance-intro__heading-script {
	color: #51a3a3;
}

/* Full-width graphic under the two-column copy (wider than About the Dance history image) */
body.page-hire-us .hire-us-intro__media {
	margin-top: clamp(2rem, 4vw, 2.75rem);
}

body.page-hire-us .hire-us-intro__figure {

	/* Between full-bleed and half-width: ~75% of band, capped like three-quarters of the 72rem shell */
	width: min(75%, 54rem);
	margin-left: auto;
	margin-right: auto;
}

body.page-hire-us .hire-us-intro .about-the-dance-intro__cta {
	color: #51a3a3;
	border-color: rgba(81, 163, 163, 0.78);
}

body.page-hire-us .hire-us-intro .about-the-dance-intro__cta:hover,
body.page-hire-us .hire-us-intro .about-the-dance-intro__cta:focus {
	color: rgb(67.4557377049, 135.7442622951, 135.7442622951);
	border-color: rgba(81, 163, 163, 0.95);
	background-color: rgba(81, 163, 163, 0.06);
}

body.page-hire-us .page-hero-below.page-hire-us-body {
	width: 100%;
	max-width: none;
	margin: 0;
	background-color: transparent;
	border-top: 0;
	box-shadow: none;
}

/* White band: full-width main copy (Our Story body rail, no sidebar) */
body.page-hire-us .hire-us__story.home-section.about-intro__story {
	margin: 0;
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	background-color: #fff;
	color: #16425b;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

body.page-hire-us .hire-us__story .about-intro__story-inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}

body.page-hire-us .hire-us__story-main {
	min-width: 0;
}

body.page-hire-us .hire-us__story-main .entry-content {
	max-width: none;
	margin: 0;
	padding: 0;
}

body.page-hire-us .hire-us__story-main .entry-content > *:first-child {
	margin-top: 0;
}

/* -------------------------------------------------------------------------
   Hire Us — previous clients (CSS marquee, full bleed below body)
------------------------------------------------------------------------- */
body.page-hire-us .hire-us__clients-marquee.home-section {
	margin: 0;
	padding: clamp(0.5rem, 1.5vw, 1rem) 0 clamp(0.25rem, 1vw, 0.5rem);
	background-color: #f6f4f1;
	color: #16425b;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
	min-height: clamp(10rem, 22vw, 14rem);
}

body.page-hire-us .hire-us__clients-marquee__head {
	max-width: 72rem;
	margin: 0 auto;
	padding: clamp(2rem, 4.5vw, 3.25rem) clamp(1.5rem, 4vw, 2.5rem) clamp(1.25rem, 2.5vw, 1.75rem);
}

body.page-hire-us .hire-us__clients-marquee__kicker {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.55);
	text-align: center;
}

body.page-hire-us .hire-us__clients-marquee__viewport {
	overflow: hidden;
	width: 100%;
	padding-top: clamp(0.25rem, 1vw, 0.75rem);
	padding-bottom: clamp(2.25rem, 4.5vw, 3.5rem);
	mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
}

body.page-hire-us .hire-us__clients-marquee__track {
	display: flex;
	flex-wrap: nowrap;
	width: max-content;
	animation: hire-us-marquee-scroll var(--hire-us-marquee-duration, 50s) linear infinite;
	will-change: transform;
}

@keyframes hire-us-marquee-scroll {

	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

body.page-hire-us .hire-us__clients-marquee__group {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: clamp(1rem, 3vw, 1.75rem);
	padding: 0 clamp(1rem, 3vw, 1.5rem);
	flex-shrink: 0;
}

body.page-hire-us .hire-us__clients-marquee__frame {
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
	width: clamp(5rem, 13vw, 7.5rem);
	height: clamp(5rem, 13vw, 7.5rem);
	overflow: hidden;
	border-radius: 8px;
	background-color: rgb(236.36, 239.88, 241.88);
	border: 1px solid rgba(22, 66, 91, 0.12);
	line-height: 0;
}

body.page-hire-us .hire-us__clients-marquee__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

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

	body.page-hire-us .hire-us__clients-marquee__track {
		animation: none;
	}

	body.page-hire-us .hire-us__clients-marquee__viewport {
		overflow-x: auto;
		overflow-y: hidden;
		mask-image: none;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
	}

	body.page-hire-us .hire-us__clients-marquee__group {
		scroll-snap-align: start;
	}
}

body.page-hire-us .page-hire-us-body .entry-footer {
	max-width: 72rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(1.5rem, 4vw, 2.5rem);
	padding-right: clamp(1.5rem, 4vw, 2.5rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

body.page-hire-us .comments-area {
	max-width: 72rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	background-color: #fff;
	border-top: 1px solid rgba(22, 66, 91, 0.08);
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

.page-hire-us .entry-content h2 {
	margin-top: 0;
	margin-bottom: 1.1em;
	padding-top: 0.15em;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #16425b;
	scroll-margin-top: 1.5rem;
}

.page-hire-us .entry-content h2:not(:first-child) {
	margin-top: clamp(2.25rem, 5vw, 3.25rem);
	padding-top: clamp(1.75rem, 4vw, 2.5rem);
	border-top: 1px solid rgba(22, 66, 91, 0.1);
}

.page-hire-us .entry-content h4 {
	margin-top: 0;
	margin-bottom: 1.1em;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.25rem, 2.5vw, 1.5rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.03em;
	color: #16425b;
}

.page-hire-us .entry-content p,
.page-hire-us .entry-content li {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgb(39.55, 56.1, 64.45);
}

.page-hire-us .entry-content p {
	margin: 0 0 1em;
}

.page-hire-us .entry-content p:last-child {
	margin-bottom: 0;
}

.page-hire-us .entry-content a {
	font-weight: 600;
}

/* -------------------------------------------------------------------------
   Hire Us — bottom event inquiry CTA (matches About “See our classes” band)
------------------------------------------------------------------------- */
body.page-hire-us .hire-us-event-cta.home-section {
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(22, 66, 91, 0.14);
	border-bottom: 1px solid rgba(22, 66, 91, 0.14);
	background-color: rgb(147.12, 197.96, 197.96);
}

body.page-hire-us .hire-us-event-cta__inner {
	max-width: 72rem;
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

body.page-hire-us .hire-us-event-cta__grid {
	display: grid;
	grid-template-columns: 1fr;
	min-height: clamp(11rem, 22vw, 15rem);
}

body.page-hire-us .hire-us-event-cta__col {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 0;
	min-width: 0;
}

body.page-hire-us .hire-us-event-cta__col--lead {
	background-color: transparent;
}

body.page-hire-us .hire-us-event-cta__col--form {
	background-color: rgb(122.76, 185.08, 185.08);
	border-top: 1px solid rgba(22, 66, 91, 0.12);
	border-radius: 10px;
	padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 3vw, 1.25rem);
	margin-top: clamp(0.5rem, 2vw, 1rem);
	scroll-margin-top: clamp(4rem, 12vw, 6rem);
}

@media (min-width: 48em) {

	body.page-hire-us .hire-us-event-cta__grid {
		grid-template-columns: 1fr 1fr;
		column-gap: 0;
	}

	body.page-hire-us .hire-us-event-cta__col--form {
		border-top: none;
		border-left: 1px solid rgba(22, 66, 91, 0.14);
		border-radius: 0 10px 10px 0;
		margin-top: 0;
		padding-top: clamp(0.35rem, 1vw, 0.65rem);
		padding-bottom: clamp(0.35rem, 1vw, 0.65rem);
		padding-right: clamp(0.5rem, 1.5vw, 1rem);
		padding-left: clamp(1.5rem, 3vw, 2.5rem);
	}
}

body.page-hire-us .hire-us-event-cta__title {
	margin: 0 0 clamp(0.75rem, 2vw, 1rem);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.08em;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.85rem, 4vw, 2.65rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.12;
	color: #111;
	letter-spacing: -0.02em;
}

body.page-hire-us .hire-us-event-cta__title-line {
	display: block;
}

body.page-hire-us .hire-us-event-cta__title-line--italic {
	font-weight: 400;
	font-style: italic;
}

body.page-hire-us .hire-us-event-cta__lead {
	margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
	max-width: 28rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1rem, 1.8vw, 1.0625rem);
	font-weight: 500;
	line-height: 1.55;
	color: rgb(24.52, 64.6, 86.24);
}

body.page-hire-us .hire-us-event-cta__actions {
	margin: 0;
}

body.page-hire-us .hire-us-event-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.65rem 1.35rem;
	border: 1px solid rgba(17, 17, 17, 0.35);
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	color: #111;
	background-color: #fff;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

body.page-hire-us .hire-us-event-cta__btn:hover,
body.page-hire-us .hire-us-event-cta__btn:focus {
	color: #16425b;
	border-color: #16425b;
	background-color: rgba(255, 255, 255, 0.95);
	outline: none;
}

body.page-hire-us .hire-us-event-cta__btn:focus-visible {
	outline: 2px solid #16425b;
	outline-offset: 3px;
}

body.page-hire-us .hire-us-event-cta__btn-arrow {
	font-weight: 400;
}

body.page-hire-us .hire-us-event-cta__form {
	width: 100%;
	min-width: 0;
	color: rgb(24.52, 64.6, 86.24);
}

body.page-hire-us .hire-us-event-cta__form--fallback .hire-us-event-cta__fallback-text {
	margin: 0 0 1rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1rem, 1.8vw, 1.0625rem);
	line-height: 1.5;
}

body.page-hire-us .hire-us-event-cta__form--fallback .hire-us-event-cta__fallback-actions {
	margin: 0;
}

body.page-hire-us .hire-us-event-cta__mailto {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-weight: 600;
	font-size: 1.0625rem;
	color: #16425b;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

body.page-hire-us .hire-us-event-cta__mailto:hover,
body.page-hire-us .hire-us-event-cta__mailto:focus {
	text-decoration: none;
}

/* Contact Form 7 (optional shortcode inside CTA form area) */
body.page-hire-us .hire-us-event-cta__form .wpcf7-form {
	margin: 0;
}

body.page-hire-us .hire-us-event-cta__form input[type="text"],
body.page-hire-us .hire-us-event-cta__form input[type="email"],
body.page-hire-us .hire-us-event-cta__form input[type="tel"],
body.page-hire-us .hire-us-event-cta__form input[type="url"],
body.page-hire-us .hire-us-event-cta__form textarea,
body.page-hire-us .hire-us-event-cta__form select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0 0 0.65rem;
	padding: 0.5rem 0.65rem;
	border: 1px solid rgba(22, 66, 91, 0.25);
	border-radius: 6px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1rem;
	line-height: 1.4;
	color: #111;
	background-color: #fff;
}

body.page-hire-us .hire-us-event-cta__form textarea {
	min-height: 6rem;
	resize: vertical;
}

body.page-hire-us .hire-us-event-cta__form input[type="submit"],
body.page-hire-us .hire-us-event-cta__form button[type="submit"] {
	margin-top: 0.35rem;
	padding: 0.55rem 1.25rem;
	border: 1px solid rgba(17, 17, 17, 0.45);
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
	color: #111;
	background-color: #fff;
}

body.page-hire-us .hire-us-event-cta__form input[type="submit"]:hover,
body.page-hire-us .hire-us-event-cta__form button[type="submit"]:hover {
	border-color: #16425b;
	color: #16425b;
}

/* Contact page (general enquiries form)
--------------------------------------------- */
body.page-contact .contact-page__intro {
	padding-bottom: 0;
}

body.page-contact .contact-page__form-section {
	margin: 0;
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	background-color: #fff;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

body.page-contact .contact-page__form-inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}

body.page-contact .contact-page__form-grid {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
	align-items: start;
}

body.page-contact .contact-page__form-grid--no-form .contact-page__headline {
	font-size: clamp(2.15rem, 4.5vw, 2.95rem);
}

body.page-contact .contact-page__form-grid--no-form .contact-page__social-link {
	width: 3.05rem;
	height: 3.05rem;
}

body.page-contact .contact-page__form-grid--no-form .contact-page__social-link .tse-social__icon {
	width: 1.35rem;
	height: 1.35rem;
}

body.page-contact .contact-page__kicker {
	margin: 0 0 0.75rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.72);
}

body.page-contact .contact-page__headline {
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 4.2vw, 2.85rem);
	font-weight: 700;
	line-height: 1.08;
	color: #111;
	letter-spacing: -0.02em;
}

body.page-contact .contact-page__headline-accent {
	color: #751f31;
}

body.page-contact .contact-page__rule {
	width: 1.1rem;
	height: 2px;
	margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
	margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
	background-color: #751f31;
}

@media (min-width: 56em) {

	body.page-contact .contact-page__form-grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: clamp(2rem, 5vw, 3.5rem);
	}

	body.page-contact .contact-page__form-col {
		padding-left: clamp(1.5rem, 3vw, 2.5rem);
		border-left: 1px solid rgba(22, 66, 91, 0.12);
	}

	body.page-contact .contact-page__form-grid--no-form {
		grid-template-columns: minmax(0, 1fr);
		max-width: min(44rem, 100%);
	}

	body.page-contact .contact-page__form-grid--no-form .contact-page__headline {
		font-size: clamp(2.35rem, 5vw, 3.35rem);
	}

	body.page-contact .contact-page__form-grid--no-form .contact-page__rule {
		width: 2.75rem;
	}

	body.page-contact .contact-page__form-grid--no-form .contact-page__social {
		margin-top: clamp(1.75rem, 4vw, 2.75rem);
		padding-top: clamp(1.5rem, 3.5vw, 2.25rem);
	}

	body.page-contact .contact-page__form-grid--no-form .contact-page__social-heading {
		font-size: 0.8125rem;
		letter-spacing: 0.14em;
		margin-bottom: 1rem;
	}

	body.page-contact .contact-page__form-grid--no-form .contact-page__social-list {
		gap: 0.85rem;
	}

	body.page-contact .contact-page__form-grid--no-form .contact-page__social-link {
		width: 3.35rem;
		height: 3.35rem;
		box-shadow: 0 2px 12px rgba(22, 66, 91, 0.1);
	}

	body.page-contact .contact-page__form-grid--no-form .contact-page__social-link .tse-social__icon {
		width: 1.45rem;
		height: 1.45rem;
	}
}

body.page-contact .contact-page__form-lead {
	margin: 0 0 1.25rem;
	max-width: 36rem;
	font-size: 1rem;
	line-height: 1.55;
	color: rgba(17, 17, 17, 0.88);
}

body.page-contact .contact-page__direct-email {
	margin: 0 0 clamp(1.25rem, 3vw, 1.75rem);
}

body.page-contact .contact-page__direct-email-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.85rem;
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	color: #fff;
	background-color: #16425b;
	box-shadow: 0 4px 20px rgba(22, 66, 91, 0.25);
	transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

body.page-contact .contact-page__direct-email-link:hover,
body.page-contact .contact-page__direct-email-link:focus {
	background-color: rgb(19.36, 58.08, 80.08);
	color: #fff;
	outline: none;
	box-shadow: 0 6px 26px rgba(22, 66, 91, 0.32);
}

body.page-contact .contact-page__direct-email-link:focus-visible {
	outline: 2px solid #51a3a3;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {

	body.page-contact .contact-page__direct-email-link:hover,
	body.page-contact .contact-page__direct-email-link:focus {
		transform: translateY(-2px);
	}
}

body.page-contact .contact-page__social {
	margin-top: clamp(1.25rem, 3vw, 2rem);
	padding-top: clamp(1.25rem, 3vw, 1.75rem);
	border-top: 1px solid rgba(22, 66, 91, 0.12);
}

body.page-contact .contact-page__social-heading {
	margin: 0 0 0.75rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.65);
}

body.page-contact .contact-page__social-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.page-contact .contact-page__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	color: rgba(22, 66, 91, 0.82);
	background: rgba(22, 66, 91, 0.04);
	border: 1px solid rgba(22, 66, 91, 0.18);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.06);
	text-decoration: none;
}

body.page-contact .contact-page__social-link:hover,
body.page-contact .contact-page__social-link:focus {
	color: #16425b;
	border-color: rgba(22, 66, 91, 0.32);
	background: rgba(22, 66, 91, 0.07);
}

body.page-contact .contact-page__social-link .tse-social__icon {
	width: 1.15rem;
	height: 1.15rem;
	display: block;
	fill: currentColor;
}

/* Contact Form 7 (optional shortcode in `.contact-page__form`) */
body.page-contact .contact-page__form .wpcf7-form {
	margin: 0;
}

body.page-contact .contact-page__form input[type="text"],
body.page-contact .contact-page__form input[type="email"],
body.page-contact .contact-page__form input[type="tel"],
body.page-contact .contact-page__form input[type="url"],
body.page-contact .contact-page__form textarea,
body.page-contact .contact-page__form select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0 0 0.65rem;
	padding: 0.5rem 0.65rem;
	border: 1px solid rgba(22, 66, 91, 0.25);
	border-radius: 6px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1rem;
	line-height: 1.4;
	color: #111;
	background-color: #fff;
}

body.page-contact .contact-page__form textarea {
	min-height: 6rem;
	resize: vertical;
}

body.page-contact .contact-page__form input[type="submit"],
body.page-contact .contact-page__form button[type="submit"] {
	margin-top: 0.75rem;
	padding: 0.7rem 1.6rem;
	border: none;
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
	line-height: 1.3;
	color: #fff;
	background-color: #16425b;
	box-shadow: 0 4px 20px rgba(22, 66, 91, 0.25);
	transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

body.page-contact .contact-page__form input[type="submit"]:hover,
body.page-contact .contact-page__form input[type="submit"]:focus,
body.page-contact .contact-page__form button[type="submit"]:hover,
body.page-contact .contact-page__form button[type="submit"]:focus {
	background-color: rgb(19.36, 58.08, 80.08);
	color: #fff;
	outline: none;
	box-shadow: 0 6px 26px rgba(22, 66, 91, 0.32);
}

body.page-contact .contact-page__form input[type="submit"]:focus-visible,
body.page-contact .contact-page__form button[type="submit"]:focus-visible {
	outline: 2px solid #51a3a3;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {

	body.page-contact .contact-page__form input[type="submit"]:hover,
	body.page-contact .contact-page__form input[type="submit"]:focus,
	body.page-contact .contact-page__form button[type="submit"]:hover,
	body.page-contact .contact-page__form button[type="submit"]:focus {
		transform: translateY(-2px);
	}
}

body.page-contact .contact-page__fallback-text {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	line-height: 1.55;
	color: rgba(17, 17, 17, 0.88);
}

body.page-contact .contact-page__fallback-actions {
	margin: 0;
}

body.page-contact .contact-page__mailto {
	font-weight: 600;
	color: #16425b;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

body.page-contact .contact-page__mailto:hover,
body.page-contact .contact-page__mailto:focus {
	text-decoration: none;
}

/* Meet the Team page
--------------------------------------------- */
body.page-meet-the-team .meet-team-page__intro {
	padding-bottom: 0;
}

/* Allow the hero's organic layer to sit behind the panel below. */
body.page-meet-the-team .page-hero--editorial {
	position: relative;
	z-index: 0;
	overflow: visible;
}

body.page-meet-the-team .meet-team__panel {
	position: relative;
	z-index: 2;
}

body.page-meet-the-team .meet-team__panel {
	margin: 0;

	/* Pull the panel up so it masks the organic shape's bottom edge. */
	margin-top: calc(-1 * clamp(1.25rem, 3vw, 2rem));
	padding-top: clamp(1.25rem, 3vw, 2rem);
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	background-color: #fff;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

/* Latest News single: allow the organic layer to sit behind the body content. */
body.single-latest-news .page-hero--editorial {
	position: relative;
	z-index: 0;
	overflow: visible;
}

body.single-latest-news .page-hero-below {
	position: relative;
	z-index: 2;

	/* Pull the body up so it masks the organic shape's bottom edge. */
	margin-top: calc(-1 * clamp(4rem, 10vw, 6.5rem));
	background-color: #fff;
}

body.page-meet-the-team .meet-team__inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}

body.page-meet-the-team .meet-team__kicker {
	margin: 0 0 0.75rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.72);
}

body.page-meet-the-team .meet-team__title {
	margin: 0;
	max-width: 22ch;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 4.2vw, 2.85rem);
	font-weight: 700;
	line-height: 1.08;
	color: #111;
	letter-spacing: -0.02em;
}

body.page-meet-the-team .meet-team__title-accent {
	color: #751f31;
}

body.page-meet-the-team .meet-team__rule {
	width: 1.1rem;
	height: 2px;
	margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
	margin-bottom: clamp(1.25rem, 3vw, 1.75rem);
	background-color: #751f31;
}

body.page-meet-the-team .meet-team__lead {
	margin: 0 0 clamp(2rem, 4vw, 2.75rem);
	max-width: 40rem;
	font-size: 1.05rem;
	line-height: 1.6;
	color: rgba(17, 17, 17, 0.88);
}

/* Tiles: reuse the Workshops card layout (`.home-jump__grid` + `.workshops-card`). */
body.page-meet-the-team .meet-team__tiles-grid.home-jump__grid {
	margin: 0;
	padding: 0;
}

/* Force identical height to Workshops tiles (same clamp). */
body.page-meet-the-team .meet-team-card.workshops-card .workshops-card__inner {

	/* Workshops uses min-height; enforce fixed height here to prevent any content stretch. */
	height: clamp(25rem, 44vw, 33rem) !important;
	min-height: 0 !important;
}

/* Hide the large ghost number on team tiles. */
body.page-meet-the-team .meet-team-card .workshops-card__ghost {
	display: none !important;
}

/* Role under name inside Workshops-style tiles. */
body.page-meet-the-team .meet-team-card__role {
	margin: 0.65rem 0 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.92);
}

/* Bottom CTA band */
body.page-meet-the-team .meet-team__cta-band {
	margin: 0;
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	background-color: #faf9eb;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
}

body.page-meet-the-team .meet-team__cta-inner {
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 3vw, 1.75rem);
	align-items: flex-start;
	justify-content: space-between;
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding: clamp(2rem, 4vw, 3rem) 0;
}

@media (min-width: 48em) {

	body.page-meet-the-team .meet-team__cta-inner {
		flex-direction: row;
		align-items: center;
	}
}

body.page-meet-the-team .meet-team__cta-title {
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.65rem, 3.2vw, 2.15rem);
	font-weight: 700;
	line-height: 1.12;
	color: #111;
}

body.page-meet-the-team .meet-team__cta-title-line {
	display: block;
}

body.page-meet-the-team .meet-team__cta-title-line--accent {
	font-style: italic;
	color: #751f31;
}

body.page-meet-the-team .meet-team__cta-text {
	margin: 0.65rem 0 0;
	max-width: 28rem;
	font-size: 1rem;
	line-height: 1.55;
	color: rgba(22, 66, 91, 0.9);
}

body.page-meet-the-team .meet-team__cta-actions {
	margin: 0;
}

body.page-meet-the-team .meet-team__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.85rem 1.35rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
	color: #fff;
	background-color: #751f31;
	border-radius: 2px;
	border: 1px solid rgba(0, 0, 0, 0.08);
	transition: background-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

body.page-meet-the-team .meet-team__cta-btn:hover,
body.page-meet-the-team .meet-team__cta-btn:focus-visible {
	color: #fff;
	background-color: #16425b;
}

body.page-meet-the-team .meet-team__cta-btn-arrow {
	font-size: 1.1em;
	line-height: 1;
}

/* Front page
--------------------------------------------- */

/* Front page: hero, sections, testimonials
--------------------------------------------- */
.site-main--front {
	max-width: none;
	margin: 0;
	padding: 0;
}

/* Hero */
.home-hero {
	position: relative;
	display: grid;
	align-items: end;
	min-height: 85vh;
	overflow: hidden;
	color: #fff;
	background-color: #16425b;
}

.home-hero--no-media {
	min-height: 40vh;
	background: linear-gradient(145deg, #751f31 0%, #16425b 55%, rgb(14.3, 42.9, 59.15) 100%);
}

.home-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.home-hero__video,
.home-hero__poster {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-hero__poster {
	background-image: var(--home-hero-poster);
	background-size: cover;
	background-position: center;
}

.home-hero__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.25) 45%, rgba(0, 0, 0, 0.35) 100%);
}

.home-hero__content {
	position: relative;
	z-index: 2;
	max-width: 72rem;
	margin: 0 auto;
	padding: 3rem 1.5rem 4rem;
	width: 100%;
}

.home-hero__sub {
	margin: 0;
	max-width: 36em;
	color: #fff;
	font-size: clamp(1rem, 2vw, 1.25rem);
	line-height: 1.5;
	opacity: 0.95;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.4);
}

/* Bottom-right circular CTA — scroll to next section */
.home-hero__scroll {
	position: absolute;
	right: clamp(1rem, 4vw, 2.5rem);
	bottom: clamp(1rem, 4vw, 2.5rem);
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: clamp(4.5rem, 12vw, 5.75rem);
	height: clamp(4.5rem, 12vw, 5.75rem);
	padding: 0;
	border: none;
	border-radius: 50%;
	background-color: #751f31;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.home-hero__scroll:hover,
.home-hero__scroll:focus {
	background-color: rgb(102.96, 27.28, 43.12);
	color: #fff;
	outline: none;
	box-shadow: 0 6px 28px rgba(0, 0, 0, 0.4);
}

.home-hero__scroll:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

/* Beat global `a:visited` (brand teal) — same specificity order as base links. */
a.home-hero__scroll:link,
a.home-hero__scroll:visited {
	color: #fff;
}

.home-hero__scroll-icon {
	width: clamp(1.5rem, 4vw, 2rem);
	height: clamp(1.5rem, 4vw, 2rem);
}

@media (prefers-reduced-motion: no-preference) {

	.home-hero__scroll:hover,
	.home-hero__scroll:focus {
		transform: scale(1.06);
	}

	:where(html) {
		scroll-behavior: smooth;
	}
}

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

	.home-hero__scroll:hover,
	.home-hero__scroll:focus {
		transform: none;
	}

	:where(html) {
		scroll-behavior: auto;
	}

	.home-hero__video {
		display: none;
	}

	.home-hero:not(.home-hero--no-media) {
		background-image: var(--home-hero-poster);
		background-size: cover;
		background-position: center;
	}
}

/* Dance styles strip (under hero) — CSS marquee (same idea as Hire Us client logos) */
.home-dance-styles {
	border-top: 1px solid rgba(22, 66, 91, 0.08);
	border-bottom: 1px solid rgba(22, 66, 91, 0.08);
	background-color: #fff;
}

.home-dance-styles__viewport {
	overflow: hidden;
	width: 100%;
	padding: 0.65rem 0;
	mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent);
}

.home-dance-styles__track {
	display: flex;
	flex-wrap: nowrap;
	width: max-content;
	animation: home-dance-styles-marquee-scroll var(--home-dance-styles-marquee-duration, 50s) linear infinite;
	will-change: transform;
}

@keyframes home-dance-styles-marquee-scroll {

	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

.home-dance-styles__group {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	flex-shrink: 0;
	padding: 0 clamp(1rem, 3vw, 1.5rem);
}

.home-dance-styles__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.75rem clamp(1.25rem, 4vw, 3rem);
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(62.95, 78.35, 87.1);
}

.home-dance-styles__item {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	flex-shrink: 0;
	white-space: nowrap;
}

.home-dance-styles__dot {
	flex-shrink: 0;
	width: 0.35rem;
	height: 0.35rem;
	border-radius: 1px;
	background-color: #51a3a3;
}

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

	.home-dance-styles__track {
		animation: none;
	}

	.home-dance-styles__viewport {
		overflow-x: auto;
		overflow-y: hidden;
		mask-image: none;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
	}

	.home-dance-styles__group {
		scroll-snap-align: start;
	}
}

/* Two-column band under dance styles (serif headline | prose + pills) */
.home-soul-split {
	background-color: #fff;
	color: rgb(25.12, 34.8, 40.3);
	border-bottom: 1px solid rgba(22, 66, 91, 0.14);
}

.home-soul-split__inner {
	max-width: 72rem;
	margin: 0 auto;
}

.home-soul-split__grid {
	display: grid;
	gap: clamp(1.75rem, 4vw, 2.5rem);
	align-items: center;
}

.home-soul-split__col {
	min-width: 0;
}

.home-soul-split__col--title {
	padding-bottom: clamp(1.5rem, 4vw, 2rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.14);
}

.home-soul-split__title {
	margin: 0;
	max-width: 20ch;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 4.5vw, 3.35rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.12;
	letter-spacing: -0.02em;
	color: #111;
}

.home-soul-split__title-em {
	font-style: italic;
	font-weight: 700;
}

.home-soul-split__prose {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.65;
	color: rgb(25.12, 34.8, 40.3);
}

.home-soul-split__prose p {
	margin: 0 0 1em;
}

.home-soul-split__prose p:last-child {
	margin-bottom: 0;
}

.home-soul-split__pills {
	list-style: none;
	margin: clamp(1.25rem, 3vw, 1.75rem) 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.55rem;
}

.home-soul-split__pill-item {
	margin: 0;
}

.home-soul-split__pill {
	display: inline-block;
	padding: 0.45rem 1.1rem;
	border: 1px solid rgba(22, 66, 91, 0.14);
	border-radius: 999px;
	background-color: #fff;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgb(39.4, 57, 67);
}

@media (min-width: 52em) {

	.home-soul-split__grid {
		grid-template-columns: 1fr 1fr;
		gap: 0;
		align-items: stretch;
	}

	.home-soul-split__col--title {
		display: flex;
		align-items: center;
		padding-bottom: 0;
		border-bottom: none;
		padding-right: clamp(1.75rem, 4vw, 2.75rem);
		border-right: 1px solid rgba(22, 66, 91, 0.14);
	}

	.home-soul-split__col--copy {
		padding-left: clamp(1.75rem, 4vw, 2.75rem);
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}

/* Sections */
.home-section {
	padding: 4rem 1.5rem;
}

.home-soul-split.home-section {
	padding: clamp(2.75rem, 6vw, 4.5rem) clamp(1.5rem, 4vw, 2.5rem);
}

/* Cream bands: explicit sections so striping stays correct when welcome sits under hero */

/* Inner gutter on 72rem homepage rails (Jump, Harlem, testimonials mastheads align) */
.home-testimonials {
	background-color: #f6f4f1;
	color: #16425b;
}

.home-testimonials.home-section {
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

.home-testimonials__shell {
	max-width: 72rem;
	margin: 0 auto;
	padding-inline: clamp(1.25rem, 3vw, 1.75rem);
	border-top: 1px solid rgba(22, 66, 91, 0.12);
	padding-top: clamp(1rem, 2vw, 1.35rem);
}

.home-testimonials__header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin: 0;
	padding-bottom: clamp(1rem, 2vw, 1.35rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.home-testimonials__title {
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3.5vw, 2.35rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #111;
}

.home-testimonials__label {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.55);
}

.home-section__inner {
	max-width: 42rem;
	margin: 0 auto;
}

.home-section__title {
	margin: 0 0 1.25rem;
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.25;
}

/* “Born in Harlem” band — bordered ⅓ + ⅔ columns, CTA → About the Dance */
.home-swing-origin {
	background-color: #fff;
	color: #16425b;
}

.home-swing-origin.home-section {
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

.home-swing-origin__shell {
	max-width: 72rem;
	margin: 0 auto;
	padding-inline: clamp(1.25rem, 3vw, 1.75rem);
}

.home-swing-origin__header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin: 0;
	padding-bottom: clamp(1rem, 2vw, 1.35rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.home-swing-origin__title {
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3.5vw, 2.35rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #111;
}

.home-swing-origin__meta {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.55);
}

.home-swing-origin__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	margin: 0;
	padding: 0;
	border-top: none;
}

.home-swing-origin__shell:has(.home-swing-origin__header) .home-swing-origin__grid {
	border-top: 1px solid rgba(22, 66, 91, 0.12);
}

.home-swing-origin__col {
	min-width: 0;
	padding: clamp(1.35rem, 3vw, 2rem) clamp(1.25rem, 3vw, 1.75rem);
}

.home-swing-origin__col + .home-swing-origin__col {
	border-top: 1px solid rgba(22, 66, 91, 0.12);
}

.home-swing-origin__col--aside {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: clamp(2rem, 5vw, 3.5rem);
	min-height: 12rem;
}

.home-swing-origin__kicker {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.52);
}

.home-swing-origin__deco {
	margin: 0;
	align-self: flex-start;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(3.5rem, 14vw, 7rem);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.03em;
	color: rgba(22, 66, 91, 0.1);
	user-select: none;
	pointer-events: none;
}

.home-swing-origin__deco--image {
	max-width: min(100%, 18rem);
	line-height: 0;
	color: transparent;
}

.home-swing-origin__deco-img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
}

.home-swing-origin__prose {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.65;
	color: rgb(35, 50.4, 59.15);
}

.home-swing-origin__prose p {
	margin: 0 0 1em;
}

.home-swing-origin__prose p:last-child {
	margin-bottom: 0;
}

.home-swing-origin__cta-wrap {
	margin: clamp(1.35rem, 3vw, 1.75rem) 0 0;
}

.home-swing-origin__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.65rem 1.35rem;
	border: none;
	border-radius: 4px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	color: #fff;
	background-color: #751f31;
	box-shadow: 0 2px 12px rgba(117, 31, 49, 0.35);
	transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.home-swing-origin__cta:hover,
.home-swing-origin__cta:focus {
	color: #fff;
	background-color: rgb(102.96, 27.28, 43.12);
	box-shadow: 0 3px 16px rgba(117, 31, 49, 0.45);
	outline: none;
}

.home-swing-origin__cta:focus-visible {
	outline: 2px solid #16425b;
	outline-offset: 3px;
}

.home-swing-origin__cta-arrow {
	font-weight: 500;
}

a.home-swing-origin__cta:link,
a.home-swing-origin__cta:visited {
	color: #fff;
}

@media (min-width: 52em) {

	.home-swing-origin__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		align-items: stretch;
	}

	.home-swing-origin__col + .home-swing-origin__col {
		border-top: none;
		border-left: 1px solid rgba(22, 66, 91, 0.12);
	}

	.home-swing-origin__col--aside {
		min-height: auto;
	}
}

/* Welcome under video: cream band + About the Dance intro typography (see _page-about-the-dance.scss).
   Inner horizontal padding and title grid match that template; top padding is smaller than on
   About the Dance because the homepage band sits under the full-bleed hero, not under the header badge. */
body.home .site-main--front .about-the-dance-intro.home-welcome.home-section {
	padding: 0;
	padding-bottom: 0;
	background-color: #f6f4f1;
	color: #16425b;

	/* Space under the video hero (About the Dance page uses extra top for the header badge instead). */
	padding-top: clamp(2rem, 5vw, 3.5rem);
}

body.home .site-main--front .about-the-dance-intro.home-welcome .about-the-dance-intro__inner {
	max-width: 72rem;
	margin: 0 auto;
	padding-top: clamp(1.5rem, 4vw, 2.5rem);
	padding-right: clamp(1.5rem, 4vw, 2.5rem);
	padding-bottom: 0;
	padding-left: clamp(1.5rem, 4vw, 2.5rem);
}

body.home .site-main--front .about-the-dance-intro.home-welcome .about-the-dance-intro__heading-serif {
	font-size: clamp(3.125rem, 7.25vw, 4.75rem);
}

body.home .site-main--front .about-the-dance-intro.home-welcome .about-the-dance-intro__heading-script {
	color: #751f31;
}

/* Jump into the fun — open layout (Harlem-style masthead rule only; no shell/tile frames) */
.home-jump {
	background-color: #f6f4f1;
	color: #16425b;
}

body.home .home-jump:not(.classes-page-tiles).home-section {
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

.home-jump__shell {
	max-width: 72rem;
	margin: 0 auto;
	padding-inline: clamp(1.25rem, 3vw, 1.75rem);
	padding-bottom: clamp(1.25rem, 3vw, 1.75rem);
}

.home-jump__masthead {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin: 0;
	padding: 0 0 clamp(1rem, 2vw, 1.35rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.home-jump__masthead-title {
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3.5vw, 2.35rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #111;
}

.home-jump__masthead-meta {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.55);
}

.home-jump__grid {
	display: grid;
	gap: clamp(1.25rem, 3vw, 2rem);
	grid-template-columns: 1fr;
	margin: 0;
	padding: 0;
}

.home-jump__shell .home-jump__grid {
	padding: clamp(1.25rem, 3vw, 1.75rem) 0 0;
}

/* Homepage jump only: flat colour tiles (classes landing keeps card shadow + radius) */
.home-jump:not(.classes-page-tiles) .classes-level-tile__surface {
	border-radius: 0;
	box-shadow: none;
}

.home-jump:not(.classes-page-tiles) .classes-level-tile__surface:hover,
.home-jump:not(.classes-page-tiles) .classes-level-tile__surface:focus {
	box-shadow: none;
}

@media (min-width: 48em) {

	.home-jump__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: stretch;
	}
}

.home-jump__card {
	margin: 0;
}

a.home-jump__surface {
	cursor: pointer;
}

.home-jump__surface {
	display: grid;
	grid-template-rows: minmax(0, 3fr) minmax(0, 2fr);
	height: 100%;
	min-height: 18rem;
	overflow: hidden;
	border-radius: 0 0 1.125rem 1.125rem;
	background-color: #fff;
	color: inherit;
	text-decoration: none;
	box-shadow: 0 4px 28px rgba(22, 66, 91, 0.08);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.home-jump__surface:hover,
.home-jump__surface:focus {
	box-shadow: 0 8px 36px rgba(22, 66, 91, 0.14);
	outline: none;
}

@media (prefers-reduced-motion: no-preference) {

	.home-jump__surface:hover,
	.home-jump__surface:focus {
		transform: translateY(-2px);
	}
}

a.home-jump__surface:focus-visible {
	outline: 2px solid #51a3a3;
	outline-offset: 3px;
}

.home-jump__media {
	position: relative;
	min-height: 0;
	overflow: hidden;
	background-color: rgb(219.12, 222.64, 223);
}

.home-jump__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-jump__media-placeholder {
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background: linear-gradient(145deg, rgb(202.8, 227.4, 227.4) 0%, rgb(220.5, 199, 203.5) 100%);
}

.home-jump__panel {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 2vw, 1.25rem);
	text-align: start;
	color: #fff;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
}

.home-jump__card-title {
	margin: 0;
	max-width: 14rem;
	font-size: clamp(1.0625rem, 2vw, 1.1875rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #fff;
}

.home-jump__panel-text {
	flex: 1 1 auto;
	min-width: 0;
	max-width: calc(100% - 3.25rem);
}

.home-jump__panel .home-jump__card-title {
	max-width: none;
}

.home-jump__card-date {
	margin: 0.35rem 0 0;
	font-size: clamp(0.8125rem, 1.5vw, 0.9375rem);
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: 0.02em;
	color: rgba(255, 255, 255, 0.92);
}

.home-jump__panel--burgundy {
	background-color: #751f31;
}

.home-jump__panel--teal {
	background-color: #51a3a3;
}

.home-jump__panel--navy {
	background-color: #16425b;
}

.home-jump__pill {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid rgba(255, 255, 255, 0.95);
	border-radius: 999px;
	color: #fff;
}

.home-jump__pill-icon {
	display: block;
	width: 1.15rem;
	height: 1.15rem;
}

/* Testimonials — open grid (History / Harlem-style dividers), cream band */
.home-testimonials__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	max-width: none;
	border-top: none;
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.home-testimonials__shell:has(.home-testimonials__header) .home-testimonials__list {
	border-top: 1px solid rgba(22, 66, 91, 0.12);
}

.home-testimonials__item {
	margin: 0;
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.home-testimonials__item:last-child {
	border-bottom: none;
}

.home-testimonials__quote {
	margin: 0;
	padding: clamp(1.35rem, 3vw, 2rem) clamp(1rem, 2.5vw, 1.5rem);
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	quotes: "“" "”" "‘" "’";
}

.home-testimonials__quote p {
	margin: 0 0 1rem;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1rem, 1.8vw, 1.0625rem);
	line-height: 1.6;
	font-style: italic;
	color: rgb(34, 51.6, 61.6);
}

.home-testimonials__quote p::before {
	content: open-quote;
}

.home-testimonials__quote p::after {
	content: close-quote;
}

.home-testimonials__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.875rem;
	line-height: 1.35;
}

.home-testimonials__name {
	font-style: normal;
	font-weight: 600;
	color: #16425b;
}

.home-testimonials__context {
	font-weight: 500;
	color: #51a3a3;
}

@media (min-width: 48em) {

	.home-section__inner {
		max-width: 72rem;
	}

	.home-testimonials__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.home-testimonials__item {
		border-bottom: none;
		border-right: 1px solid rgba(22, 66, 91, 0.12);
	}

	.home-testimonials__item:nth-child(3n) {
		border-right: none;
	}
}

/* Final CTA — teal band, white pill button, inset list panel */
.home-ready-cta {
	position: relative;
	margin: 0;
	padding: 0;
	background-color: #51a3a3;
	color: #16425b;
}

/* Latest News — 1 featured tile + up to 2 supporting */
.home-latest-news {
	background-color: #fff;
	color: #16425b;
}

.home-latest-news.home-section {
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

.home-latest-news__shell {
	max-width: 72rem;
	margin: 0 auto;
	padding-inline: clamp(1.25rem, 3vw, 1.75rem);
}

.home-latest-news__header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin: 0;
	padding-bottom: clamp(1rem, 2vw, 1.35rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.home-latest-news__title {
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3.5vw, 2.35rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #111;
}

.home-latest-news__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.25rem, 3vw, 2rem);
	padding-top: clamp(1.25rem, 3vw, 1.75rem);
}

.home-latest-news__item {
	margin: 0;
	min-width: 0;
}

.home-latest-news__card {
	display: grid;
	grid-template-rows: minmax(0, 3fr) minmax(0, 2fr);
	height: 100%;
	min-height: 13.5rem;
	overflow: hidden;
	border-radius: 0 0 1.125rem 1.125rem;
	background-color: #fff;
	color: inherit;
	text-decoration: none;
	box-shadow: 0 10px 34px rgba(22, 66, 91, 0.12);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.home-latest-news__card:hover,
.home-latest-news__card:focus {
	box-shadow: 0 14px 44px rgba(22, 66, 91, 0.18);
	outline: none;
}

@media (prefers-reduced-motion: no-preference) {

	.home-latest-news__card:hover,
	.home-latest-news__card:focus {
		transform: translateY(-2px);
	}
}

a.home-latest-news__card:focus-visible {
	outline: 2px solid #51a3a3;
	outline-offset: 3px;
}

.home-latest-news__media {
	position: relative;
	min-height: 0;
	overflow: hidden;
	background-color: rgb(219.12, 222.64, 223);
}

.home-latest-news__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-latest-news__media-placeholder {
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background: linear-gradient(145deg, rgb(202.8, 227.4, 227.4) 0%, rgb(220.5, 199, 203.5) 100%);
}

.home-latest-news__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0) 70%);
	pointer-events: none;
}

.home-latest-news__body {
	padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 2vw, 1.25rem);
}

.home-latest-news__meta {
	margin: 0 0 0.55rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.58);
}

.home-latest-news__card-title {
	margin: 0;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.0625rem, 2vw, 1.25rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #111;
}

.home-latest-news__excerpt {
	margin: 0.6rem 0 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1rem;
	line-height: 1.65;
	color: rgb(35, 50.4, 59.15);
}

@media (min-width: 52em) {

	.home-latest-news__grid {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
		grid-template-rows: auto auto;
		align-items: stretch;
	}

	.home-latest-news__item--featured {
		grid-row: 1/span 2;
	}

	.home-latest-news__item:not(.home-latest-news__item--featured) .home-latest-news__card {
		min-height: 12rem;
	}

	.home-latest-news--single .home-latest-news__grid {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
	}

	.home-latest-news--single .home-latest-news__card {
		min-height: 18rem;
		grid-template-rows: minmax(0, 4fr) minmax(0, 2fr);
	}
}

.home-ready-cta.home-section {
	padding: clamp(4.25rem, 8.5vw, 6.25rem) clamp(1.5rem, 4vw, 2.5rem) 0;
}

.home-ready-cta__shell {
	max-width: 72rem;
	margin: 0 auto;
	padding-inline: clamp(1.25rem, 3vw, 1.75rem);
	padding-bottom: clamp(3.25rem, 6.5vw, 5rem);
}

.home-ready-cta__grid {
	display: grid;
	gap: clamp(2.25rem, 5vw, 3.25rem);
	align-items: center;
	grid-template-columns: 1fr;
}

.home-ready-cta__title {
	margin: 0 0 clamp(1.75rem, 3.5vw, 2rem);
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 4.25vw, 2.85rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.16;
	letter-spacing: -0.02em;
	color: #111;
}

.home-ready-cta__title-line {
	display: block;
}

.home-ready-cta__title-em {
	display: block;
	margin-top: 0.04em;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-style: italic;
	font-weight: 700;
}

.home-ready-cta__actions {
	margin: 0;
}

.home-ready-cta__button {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.7rem 1.6rem;
	border: none;
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	color: #16425b;
	background-color: #fff;
	box-shadow: 0 2px 14px rgba(22, 66, 91, 0.12);
	transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.home-ready-cta__button:hover,
.home-ready-cta__button:focus {
	color: #16425b;
	background-color: rgb(249.6, 248.4, 246.6);
	box-shadow: 0 4px 20px rgba(22, 66, 91, 0.18);
	outline: none;
}

.home-ready-cta__button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.home-ready-cta__button-arrow {
	font-weight: 500;
}

.home-ready-cta__panel {
	padding: clamp(1.75rem, 3.5vw, 2.5rem) clamp(2rem, 4vw, 2.75rem);
	border-radius: 0.75rem;
	background-color: rgba(22, 66, 91, 0.12);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.home-ready-cta__panel-line {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(0.96875rem, 1.7vw, 1.09375rem);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.01em;
	color: #1a1a1a;
}

.home-ready-cta__panel-line + .home-ready-cta__panel-line {
	margin-top: 0.55rem;
}

@media (min-width: 52em) {

	.home-ready-cta__grid {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: clamp(2.75rem, 6vw, 4.75rem);
		align-items: center;
	}
}

/* About the Dance page (after home so it overrides .home-section padding)
--------------------------------------------- */

/* About the Dance page: intro band (two columns, stats, image)
--------------------------------------------- */

/* Same vertical rhythm between: top grid → stats bar → image */

/* Only `page-about-the-dance.php` uses .site-main--about-the-dance — no global under-header gap. */
.site-main--about-the-dance {
	max-width: none;
	margin: 0;
	padding: 0;
}

/* Must beat `.home-section { padding: 4rem 1.5rem }` from home/_home.scss (loaded after this file). */
.site-main--about-the-dance .about-the-dance-intro.home-section {
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	padding-bottom: 0;
	background-color: #f6f4f1;
	color: #16425b;

	/*
   * Top spacing lives on the section (full cream band), not only __inner, so it isn’t “eaten”
   * visually by the circular logo, which overflows below the 4.5rem header bar.
   * = min 80px editorial gap + extra clearance under the badge.
   */
	padding-top: calc(max(80px, clamp(5rem, 12vw, 7.5rem)) + clamp(1.25rem, 3vw, 2.25rem));
}

.site-main--about-the-dance .about-the-dance-intro__inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding-top: clamp(1.5rem, 4vw, 2.5rem);
	padding-right: 0;
	padding-bottom: 0;
	padding-left: 0;
}

.about-the-dance-intro__top {
	display: grid;
	gap: clamp(1.75rem, 4vw, 2.5rem);
	align-items: start;
}

.about-the-dance-intro__col--title {
	min-width: 0;
}

.about-the-dance-intro__kicker {
	margin: 0 0 0.85rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.72);
}

.about-the-dance-intro__heading {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15em;
	font-weight: 700;
	line-height: 1.08;
}

.about-the-dance-intro__heading-serif {
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(2.5rem, 6vw, 4rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.05;
	color: #111;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.about-the-dance-intro__heading-script {
	font-family: "Dancing Script", cursive;
	font-size: clamp(2.75rem, 8vw, 4.5rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.05;
	color: #16425b;
}

.about-the-dance-intro__col--copy {
	min-width: 0;
	position: relative;
	padding-top: 0.15rem;
}

.about-the-dance-intro__est {
	margin: 0 0 1.25rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-align: right;
	color: rgba(22, 66, 91, 0.72);
}

.about-the-dance-intro__prose {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgb(39.55, 56.1, 64.45);
}

.about-the-dance-intro__prose p {
	margin: 0 0 1em;
}

.about-the-dance-intro__prose p:last-child {
	margin-bottom: 0;
}

.about-the-dance-intro__cta-wrap {
	margin: 1.35rem 0 0;
}

.about-the-dance-intro__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.65rem 1.35rem;
	border: 1px solid rgba(17, 17, 17, 0.85);
	border-radius: 6px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	color: #111;
	background-color: transparent;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.about-the-dance-intro__cta:hover,
.about-the-dance-intro__cta:focus {
	color: #16425b;
	border-color: #16425b;
	background-color: rgba(22, 66, 91, 0.04);
	outline: none;
}

.about-the-dance-intro__cta:focus-visible {
	outline: 2px solid #16425b;
	outline-offset: 3px;
}

.about-the-dance-intro__cta-arrow {
	font-weight: 400;
}

.about-the-dance-intro__stats {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	margin-top: clamp(2rem, 4vw, 2.75rem);
	padding: clamp(1.25rem, 2.5vw, 1.75rem) 0 clamp(1.25rem, 2.5vw, 1.75rem);
	border-top: 1px solid rgba(22, 66, 91, 0.12);
	background-color: #fff;
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.06);
}

.about-the-dance-intro__stat {
	padding: clamp(1rem, 2vw, 1.5rem) clamp(1rem, 2vw, 1.75rem);
	text-align: center;
	border-bottom: 1px solid rgba(22, 66, 91, 0.1);
}

.about-the-dance-intro__stat:last-child {
	border-bottom: none;
}

.about-the-dance-intro__stat-value {
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(2.25rem, 5vw, 3.25rem);
	font-weight: 700;
	line-height: 1.05;
	color: #111;
	letter-spacing: -0.02em;
}

.about-the-dance-intro__stat-label {
	margin-top: 0.5rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.65);
	line-height: 1.35;
}

.about-the-dance-intro__media {
	margin-top: clamp(2rem, 4vw, 2.75rem);
	margin-bottom: 0;
	padding-bottom: 0;
	line-height: 0;
	background-color: #f6f4f1;
}

.about-the-dance-intro__figure {
	margin: 0 auto;
	padding: 0;
	width: min(68%, 52rem);
	max-width: 100%;
	line-height: 0;
}

.about-the-dance-intro__img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

@media (min-width: 48em) {

	.about-the-dance-intro__top {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: clamp(2rem, 5vw, 4rem);
		align-items: start;
	}

	.about-the-dance-intro__col--copy {
		padding-left: clamp(1.5rem, 4vw, 2.5rem);
		border-left: 1px solid rgba(22, 66, 91, 0.12);
	}

	.about-the-dance-intro__stats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		padding-left: 0;
		padding-right: 0;
	}

	.about-the-dance-intro__stat {
		border-bottom: none;
		border-right: 1px solid rgba(22, 66, 91, 0.1);
	}

	.about-the-dance-intro__stat:last-child {
		border-right: none;
	}
}

/* -------------------------------------------------------------------------
   History section — 2×3 grid (editorial layout)
------------------------------------------------------------------------- */
.site-main--about-the-dance .about-the-dance-timeline.home-section {
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 4vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem);
	background-color: #fff;
	color: #16425b;
}

.about-the-dance-timeline__shell {
	max-width: 72rem;
	margin: 0 auto;
}

.about-the-dance-timeline__header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin: 0 0 0;
	padding-bottom: clamp(1rem, 2vw, 1.35rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.about-the-dance-timeline__title {
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3.5vw, 2.35rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #111;
}

.about-the-dance-timeline__meta {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.55);
}

.about-the-dance-timeline__grid {
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(22, 66, 91, 0.12);
}

.about-the-dance-timeline__cell {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2.35rem) clamp(1rem, 2.5vw, 1.75rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.about-the-dance-timeline__cell:last-child {
	border-bottom: none;
}

.about-the-dance-timeline__num {
	flex-shrink: 0;
	min-width: 2ch;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(0.9375rem, 1.35vw, 1.0625rem);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.06em;
	color: rgba(22, 66, 91, 0.45);
	line-height: 1.4;
	padding-top: 0.3em;
}

.about-the-dance-timeline__cell-main {
	min-width: 0;
}

.about-the-dance-timeline__cell-title {
	margin: 0 0 0.65em;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.125rem, 2.35vw, 1.375rem);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: #16425b;
}

.about-the-dance-timeline__cell-title:last-child {
	margin-bottom: 0;
}

.about-the-dance-timeline__prose {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.0625rem, 1.5vw, 1.125rem);
	line-height: 1.65;
	color: rgb(39.55, 56.1, 64.45);
}

.about-the-dance-timeline__prose p {
	margin: 0 0 1em;
}

.about-the-dance-timeline__prose p:last-child {
	margin-bottom: 0;
}

@media (min-width: 56em) {

	.about-the-dance-timeline__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0;
	}

	.about-the-dance-timeline__cell {
		border-bottom: 1px solid rgba(22, 66, 91, 0.12);
		border-right: 1px solid rgba(22, 66, 91, 0.12);
		min-height: 0;
	}

	.about-the-dance-timeline__cell:nth-child(2n) {
		border-right: none;
	}

	.about-the-dance-timeline__cell:nth-last-child(-n+2) {
		border-bottom: none;
	}
}

/* -------------------------------------------------------------------------
   Frankie Manning quote band
------------------------------------------------------------------------- */
.site-main--about-the-dance .about-the-dance-quote.home-section {
	padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1.5rem, 4vw, 2.5rem) clamp(3.75rem, 7vw, 5.75rem);
	background-color: #fff;
	color: #16425b;
}

.about-the-dance-quote__inner {
	max-width: 72rem;
	margin: 0 auto;
}

.about-the-dance-quote__box {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: clamp(1.25rem, 3vw, 2.25rem);
	padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.5rem, 4vw, 2.75rem) clamp(1.75rem, 4vw, 2.75rem) clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid rgba(22, 66, 91, 0.12);
	border-radius: 10px;
	background-color: rgb(250.95, 250.05, 248.7);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

.about-the-dance-quote__vertical {
	flex: 0 0 auto;
	margin: 0;
	padding: 0 0.15rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.55);
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	text-orientation: mixed;
	align-self: center;
	white-space: nowrap;
}

.about-the-dance-quote__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: clamp(1rem, 2vw, 1.35rem);
}

.about-the-dance-quote__blockquote {
	margin: 0;
	padding: 0;
	border: none;
}

.about-the-dance-quote__text {
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.35rem, 3.2vw, 2rem);
	font-weight: 400;
	font-style: italic;
	line-height: 1.45;
	letter-spacing: -0.01em;
	color: #111;
}

.about-the-dance-quote__mark {
	font-style: italic;
}

.about-the-dance-quote__cite {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	font-style: normal;
	line-height: 1.45;
	color: rgba(22, 66, 91, 0.65);
}

@media (max-width: 35em) {

	.about-the-dance-quote__box {
		flex-direction: column;
		align-items: flex-start;
	}

	.about-the-dance-quote__vertical {
		writing-mode: horizontal-tb;
		transform: none;
		letter-spacing: 0.16em;
	}
}

/* -------------------------------------------------------------------------
   Video gallery — cream band, three columns (shape variants)
------------------------------------------------------------------------- */
.site-main--about-the-dance .about-the-dance-video-gallery.home-section {
	margin: 0;
	padding: clamp(2.5rem, 5vw, 3.5rem) 0;
	background-color: #f6f4f1;
	color: #16425b;
	border-top: 1px solid rgba(22, 66, 91, 0.12);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.about-the-dance-video-gallery__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	max-width: 72rem;
	margin: 0 auto;
	padding: 0 clamp(1.5rem, 4vw, 2.5rem);
}

.about-the-dance-video-gallery__col {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	min-height: 0;
	padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1rem, 2.5vw, 1.75rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.about-the-dance-video-gallery__col:last-child {
	border-bottom: none;
}

/*
 * Intrinsic ratio via padding-bottom (not aspect-ratio + flex):
 * with only position:absolute children, a flex item can get 0 main-size height,
 * so the frame collapses and the iframe never paints.
 */
.about-the-dance-video-gallery__frame {
	position: relative;
	align-self: stretch;
	width: 100%;
	margin: 0 auto;
	height: 0;
	overflow: hidden;
	background-color: rgba(22, 66, 91, 0.06);
}

.about-the-dance-video-gallery__frame--circle {
	max-width: min(100%, 17.5rem);
	padding-bottom: 100%;
	border-radius: 50%;
}

.about-the-dance-video-gallery__frame--square {
	max-width: min(100%, 17.5rem);
	padding-bottom: 100%;
	border-radius: 0;
}

.about-the-dance-video-gallery__frame--rounded {
	max-width: min(100%, 22rem);
	padding-bottom: 56.25%;
	border-radius: 12px;
}

.about-the-dance-video-gallery__embed {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	overflow: hidden;
	z-index: 1;
}

/*
 * Fill the frame — no translate/oversized % (avoids WebKit clipping the player).
 */
.about-the-dance-video-gallery__embed iframe {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	border: 0;
}

.about-the-dance-video-gallery__label {
	margin: clamp(1rem, 2vw, 1.35rem) 0 0;
	max-width: 14rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.35;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.72);
}

@media (min-width: 48em) {

	.about-the-dance-video-gallery__grid {
		padding-left: clamp(1.5rem, 4vw, 2.5rem);
		padding-right: clamp(1.5rem, 4vw, 2.5rem);
	}

	.about-the-dance-video-gallery__grid--1 {
		grid-template-columns: minmax(0, 1fr);
		max-width: 28rem;
		margin-left: auto;
		margin-right: auto;
	}

	.about-the-dance-video-gallery__grid--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 56rem;
		margin-left: auto;
		margin-right: auto;
	}

	.about-the-dance-video-gallery__grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		max-width: 72rem;
	}

	.about-the-dance-video-gallery__col {
		border-bottom: none;
		border-right: 1px solid rgba(22, 66, 91, 0.12);
	}

	.about-the-dance-video-gallery__col:last-child {
		border-right: none;
	}
}

/* Terms & Conditions (timeline-style accordion)
--------------------------------------------- */

/* Terms & Conditions: reuse About the Dance “History” timeline look (grid + numbers)
--------------------------------------------- */
.site-main--page-hero .terms-conditions-accordion.home-section {
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 4vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem);
	background-color: #fff;
	color: #16425b;
}

/* <details> replaces <article> in the timeline grid — same borders, add accordion affordance */
.site-main--page-hero .terms-conditions-accordion__details.about-the-dance-timeline__cell {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2.35rem) clamp(1rem, 2.5vw, 1.75rem);
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
}

.site-main--page-hero .terms-conditions-accordion__details.about-the-dance-timeline__cell:last-child {
	border-bottom: none;
}

.terms-conditions-accordion__summary {
	grid-column: 1/-1;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	list-style: none;
	cursor: pointer;
	padding: 0;
	margin: 0;
}

.terms-conditions-accordion__summary::-webkit-details-marker {
	display: none;
}

.terms-conditions-accordion__summary .about-the-dance-timeline__cell-title {
	display: block;
	margin: 0;
	padding-right: 0.5rem;
}

.terms-conditions-accordion__summary-main {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	min-width: 0;
}

.terms-conditions-accordion__icon {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: 0.1em;
	border-radius: 4px;
	transition: background-color 0.15s ease, transform 0.2s ease;
}

.terms-conditions-accordion__icon::after {
	content: "";
	display: block;
	width: 0.45rem;
	height: 0.45rem;
	border-right: 2px solid rgba(22, 66, 91, 0.45);
	border-bottom: 2px solid rgba(22, 66, 91, 0.45);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.site-main--page-hero .terms-conditions-accordion__details[open] .terms-conditions-accordion__icon::after {
	transform: rotate(225deg);
}

/* Body lines up under title column (History layout) */
.terms-conditions-accordion__prose-row {
	grid-column: 2;
	margin: 0;
	padding-top: 0.75rem;
}

.site-main--page-hero .terms-conditions-accordion__details[open] .terms-conditions-accordion__prose-row {
	padding-top: 0.35rem;
}

.terms-conditions-accordion__prose {
	margin: 0;
}

@media (min-width: 56em) {

	.site-main--page-hero .terms-conditions-accordion .about-the-dance-timeline__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0;
	}

	.site-main--page-hero .terms-conditions-accordion__details.about-the-dance-timeline__cell {
		border-bottom: 1px solid rgba(22, 66, 91, 0.12);
		border-right: 1px solid rgba(22, 66, 91, 0.12);
		min-height: 0;
	}

	.site-main--page-hero .terms-conditions-accordion__details.about-the-dance-timeline__cell:nth-child(2n) {
		border-right: none;
	}

	.site-main--page-hero .terms-conditions-accordion__details.about-the-dance-timeline__cell:nth-last-child(-n+2) {
		border-bottom: none;
	}
}

/* Workshops loop
--------------------------------------------- */

/* Upcoming workshops — card grid (image top, solid colour panel bottom) */

/* Match Classes / “Jump into the fun” masthead + shell; cream `.home-jump` overridden to white. */
.workshops-loop.home-jump {
	background-color: #fff;
	color: #16425b;
}

.workshops-loop.home-section {
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

/* No workshops scheduled: same masthead rhythm as card grid, readable body copy */
.workshops-loop--empty .workshops-loop__empty {
	margin: clamp(2.25rem, 5vw, 3rem) 0 0;
	max-width: 36rem;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1rem, 1.85vw, 1.125rem);
	font-weight: 400;
	line-height: 1.55;
	color: rgb(143.16, 164.28, 176.28);
}

/* Air below masthead rule before tiles — matches “Choose your level” rhythm (global jump grid is tighter). */
.workshops-loop .home-jump__shell .home-jump__grid {
	padding-top: clamp(2.25rem, 5vw, 3rem);
}

.workshops-loop .home-jump__masthead + .workshops-loop__filters {
	margin-top: clamp(1.25rem, 3vw, 1.75rem);
}

.workshops-loop__filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.65rem 0.75rem;
	margin: 0 0 clamp(1.75rem, 4vw, 2.5rem);
	padding: 0;
	list-style: none;
}

.workshops-loop__filters li {
	margin: 0;
	padding: 0;
}

.workshops-loop__filter {
	margin: 0;
	padding: 0.65rem 1.5rem;
	border: none;
	border-radius: 999px;
	background-color: rgb(249.6, 248.4, 246.6);
	color: #16425b;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(0.9375rem, 1.75vw, 1.0625rem);
	font-weight: 600;
	letter-spacing: 0.02em;
	cursor: pointer;
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.06);
	transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.workshops-loop__filter:hover,
.workshops-loop__filter:focus {
	background-color: rgb(223.68, 238.44, 238.44);
	outline: none;
}

.workshops-loop__filter.is-active {
	background-color: rgb(244.65, 206.2, 163.6);
	box-shadow: 0 3px 14px rgba(22, 66, 91, 0.12);
}

@media (prefers-reduced-motion: no-preference) {

	.workshops-loop__filter.is-active {
		transform: translateY(-1px);
	}
}

.workshops-loop__filter:focus-visible {
	outline: 2px solid #51a3a3;
	outline-offset: 2px;
}

/* Grid layout + top spacing from `.home-jump__shell .home-jump__grid` in `_home.scss`. */
.workshops-loop__grid.home-jump__grid {
	margin: 0;
	padding: 0;
	list-style: none;
}

.workshops-card {
	margin: 0;
	height: 100%;
	border-radius: 15px;
	overflow: hidden;
	box-shadow: 0 6px 28px rgba(22, 66, 91, 0.12);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

@media (prefers-reduced-motion: no-preference) {

	.workshops-card:hover {
		box-shadow: 0 12px 40px rgba(22, 66, 91, 0.18);
		transform: translateY(-3px);
	}
}

.workshops-card__link {
	display: block;
	height: 100%;
	color: inherit;
	text-decoration: none;
	outline: none;
}

.workshops-card__link:focus-visible {
	outline: 2px solid #51a3a3;
	outline-offset: 3px;
	border-radius: 15px;
}

.workshops-card__inner {
	position: relative;
	display: grid;
	grid-template-rows: minmax(0, 3fr) minmax(0, 2fr);
	min-height: clamp(25rem, 44vw, 33rem);
	height: 100%;
	overflow: hidden;
	border-radius: 15px;
	background-color: rgb(219.12, 222.64, 223);
}

.workshops-card__media {
	position: relative;
	min-height: 0;
	overflow: hidden;
	background-color: rgb(219.12, 222.64, 223);
}

.workshops-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.workshops-card__media-placeholder {
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background: linear-gradient(145deg, rgb(206.28, 229.24, 229.24) 0%, rgb(224.64, 205.72, 209.68) 100%);
}

.workshops-card__panel {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-self: stretch;
	min-height: clamp(10rem, 26vw, 12.5rem);
	padding: clamp(1.1rem, 2.8vw, 1.45rem) clamp(1rem, 2vw, 1.25rem);
	overflow: hidden;
}

.workshops-card__panel--burgundy {
	background-color: #751f31;
}

.workshops-card__panel--teal {
	background-color: #51a3a3;
}

.workshops-card__panel--navy {
	background-color: #16425b;
}

.workshops-card__ghost {
	position: absolute;
	top: 0.15em;
	right: 0.1em;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-weight: 700;
	font-size: clamp(3.25rem, 11vw, 5.25rem);
	letter-spacing: -0.04em;
	line-height: 1;
	color: rgba(255, 255, 255, 0.16);
	pointer-events: none;
	user-select: none;
}

.workshops-card__body {
	position: relative;
	z-index: 1;
	max-width: 22rem;
}

.workshops-card__kicker {
	margin: 0 0 0.5rem;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.92);
}

.workshops-card__title {
	margin: 0;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.65rem, 3.1vw, 2.2rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: #fff;
}

.workshops-card__footer {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: flex-start;
	padding-top: 0.75rem;
}

.workshops-loop__footer {
	margin: clamp(2rem, 4vw, 2.75rem) 0 0;
	text-align: center;
}

.workshops-loop__view-all {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.65rem;
	border-radius: 999px;
	background-color: #16425b;
	color: #fff;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1rem, 1.85vw, 1.125rem);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	box-shadow: 0 4px 20px rgba(22, 66, 91, 0.25);
	transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

button.workshops-loop__view-all {
	border: none;
	cursor: pointer;
}

.workshops-loop__view-all-label {
	display: inline;
}

.workshops-loop__view-all:hover,
.workshops-loop__view-all:focus {
	background-color: rgb(19.36, 58.08, 80.08);
	color: #fff;
	outline: none;
	box-shadow: 0 6px 26px rgba(22, 66, 91, 0.32);
}

.workshops-loop__view-all:focus-visible {
	outline: 2px solid #51a3a3;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {

	.workshops-loop__view-all:hover,
	.workshops-loop__view-all:focus {
		transform: translateY(-2px);
	}
}

.workshops-loop__view-all-icon {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
}

/* Single team member
--------------------------------------------- */

/* Single Team Member page
--------------------------------------------- */

/* Same organic placement as class/workshop intro heroes (`.class-single__intro-media-col`). */
body.single-team_member .page-hero__media-col .tse-hero-circle::before,
body.single-team-member .page-hero__media-col .tse-hero-circle::before {
	inset: 2% 12% -38% 12%;
	background-position: 64% 68%;
	background-size: 84% auto;
}

/* Organic bleed: keep pseudo-element uncropped; bio sits above it (Latest News / Meet the Team pattern). */
body.single-team_member .team-member-hero.page-hero--editorial,
body.single-team-member .team-member-hero.page-hero--editorial {
	position: relative;
	z-index: 0;
	overflow: visible;
}

body.single-team_member .team-member-hero .page-hero__inner,
body.single-team_member .team-member-hero .page-hero__top,
body.single-team_member .team-member-hero .page-hero__media-col,
body.single-team-member .team-member-hero .page-hero__inner,
body.single-team-member .team-member-hero .page-hero__top,
body.single-team-member .team-member-hero .page-hero__media-col {
	overflow: visible;
}

body.single-team_member .team-member-hero__role,
body.single-team-member .team-member-hero__role {
	margin: clamp(0.75rem, 2vw, 1.15rem) 0 0;

	/* Reuse the “Bringin’ it back” script styling, but slightly smaller for roles. */
	font-size: clamp(2.1rem, 6vw, 3.25rem);
	color: #16425b;
}

body.single-team_member .team-member-body.page-hero-below,
body.single-team-member .team-member-body.page-hero-below {
	position: relative;
	z-index: 2;
	margin-top: calc(-1 * clamp(2rem, 5vw, 3.25rem));
	background-color: #fff;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

body.single-team_member .team-member-body__content,
body.single-team-member .team-member-body__content {
	max-width: 72rem;
	margin: 0 auto;
	padding: clamp(2.25rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 2.5rem);
	font-size: 1.05rem;
	line-height: 1.65;
	color: rgba(17, 17, 17, 0.88);
}

/* Classes landing tiles
--------------------------------------------- */

/* Classes landing: Option B tiles (solid colour, ghost numbers) */

/* White band under the page hero (`.home-jump` is cream on the homepage only). */
.classes-page-tiles.home-jump {
	background-color: #fff;
	color: #16425b;
}

/* Match homepage “Jump into the fun” section padding + masthead lives in `home-jump__shell`. */
.classes-page-tiles.home-section {
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

.classes-level-tile {
	margin: 0;
}

a.classes-level-tile__surface {
	cursor: pointer;
}

.classes-level-tile__surface {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 13rem;
	height: 100%;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border-radius: 1.125rem;
	overflow: hidden;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 4px 28px rgba(22, 66, 91, 0.08);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.classes-level-tile__surface:hover,
.classes-level-tile__surface:focus {
	box-shadow: 0 8px 36px rgba(22, 66, 91, 0.14);
	outline: none;
}

@media (prefers-reduced-motion: no-preference) {

	.classes-level-tile__surface:hover,
	.classes-level-tile__surface:focus {
		transform: translateY(-2px);
	}
}

a.classes-level-tile__surface:focus-visible {
	outline: 2px solid #f6f4f1;
	outline-offset: 3px;
}

.classes-level-tile__ghost {
	position: absolute;
	top: 0.25em;
	right: 0.25em;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-weight: 700;
	font-size: clamp(5rem, 10vw, 7.25rem);
	letter-spacing: -0.04em;
	line-height: 1;
	color: rgba(255, 255, 255, 0.16);
	pointer-events: none;
	user-select: none;
}

.classes-level-tile__body {
	position: relative;
	z-index: 1;
	max-width: 22rem;
}

.classes-level-tile__kicker {
	margin: 0 0 0.5rem;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.92);
}

.classes-level-tile__title {
	margin: 0;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.55rem, 2.85vw, 2.05rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: #fff;
	white-space: pre-line;
}

.classes-level-tile__footer {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: flex-start;
}

/* Classes landing: image under tiles
--------------------------------------------- */

/* Classes landing: image section under tiles */
.classes-choose-level-image {
	padding-top: 0;
	padding-bottom: 0;
	background-color: #fff;
}

.classes-choose-level-image__inner {
	max-width: 72rem;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	min-height: clamp(18rem, 30vw, 28rem);
}

.classes-choose-level-image__figure {
	margin: 0 auto;
	padding: 0;
	width: min(92%, 64rem);
	max-width: 100%;
}

.classes-choose-level-image__img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* Single class (CPT)
--------------------------------------------- */

/* Single class (CPT): Our Story–style intro, stats strip, two-column body (info | description)
--------------------------------------------- */

/* Full-bleed teal date bar uses 100vw; avoid horizontal scroll on narrow viewports */
@media (max-width: 47.99em) {

	.class-single--mobile-booking-layout {
		overflow-x: hidden;
	}
}

/* Cream main (top padding for overlay header lives in _page-hero.scss for all `page-hero-layout`). */
body.single-classes .site-main--page-hero,
body.single-workshop .site-main--page-hero,
body.single-workshops .site-main--page-hero {
	background-color: #f6f4f1;
}

/* Fills any vertical seam (margin collapse / stacking) so body white never shows between bands. */
body.single-classes .site-main--page-hero > .class-single,
body.single-workshop .site-main--page-hero > .class-single,
body.single-workshops .site-main--page-hero > .class-single {
	background-color: #f6f4f1;
}

/* Intro row gap → stats (matches About the Dance / Our Story) */

/* —— Intro band (cream): two-column top + stats inside inner —— */
.class-single__intro-band {
	padding: 0;
	padding-left: var(--tse-editorial-gutter);
	padding-right: var(--tse-editorial-gutter);
	padding-top: calc(var(--tse-header-clearance, 0px) + clamp(1.25rem, 3vw, 2rem));
	background-color: #f6f4f1;
	color: #16425b;
	border-bottom: none;
}

.class-single__intro-inner {
	max-width: min(var(--tse-editorial-max-width), 100%);
	margin: 0 auto;
	padding-top: clamp(1.5rem, 4vw, 2.5rem);
	padding-right: 0;
	padding-bottom: 0;
	padding-left: 0;
	overflow: visible;
}

.class-single__intro-inner--no-stats {
	padding-bottom: clamp(2rem, 4vw, 2.75rem);
}

/* Cream breathing room below the white stats strip (padding on band so it stays brand-cream, not main white). */
.class-single__intro-band--has-stats {
	padding-bottom: clamp(2.25rem, 4.5vw, 3.25rem);
}

.class-single__intro-top {
	display: grid;
	gap: clamp(1.75rem, 4vw, 2.5rem);
	align-items: start;
	overflow: visible;
}

.class-single__intro-title-col {
	min-width: 0;
}

.class-single__intro-media-col {
	min-width: 0;
	margin-top: clamp(1.25rem, 3vw, 1.75rem);
	overflow: visible;
}

.class-single__intro-figure {
	margin: 0;
	padding: 0;
	line-height: 0;
}

.class-single__intro-img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

@media (min-width: 48em) {

	.class-single__intro-band:not(.class-single__intro-band--no-thumb) .class-single__intro-top {
		grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
		gap: clamp(1.75rem, 4vw, 3rem);
		align-items: center;
	}

	.class-single__intro-band:not(.class-single__intro-band--no-thumb) .class-single__intro-media-col {
		margin-top: 0;
		padding-top: 0;
	}

	.class-single__intro-band:not(.class-single__intro-band--no-thumb) .class-single__intro-media-col .tse-hero-circle {
		margin-left: 0;
		margin-right: 0;
		max-width: 100%;
	}
}

/* Organic decoration: smaller, lower, peeks under the white stats strip */
.class-single__intro-media-col .tse-hero-circle::before {
	inset: 2% 12% -38% 12%;
	background-position: 64% 68%;
	background-size: 84% auto;
}

/* When the teal date bar overlaps the hero, pull the organic graphic up too so it tucks behind the bar. */
@media (max-width: 47.99em) {

	.class-single--hero-date-overlap .class-single__intro-media-col .tse-hero-circle::before {
		inset: 2% 12% 0% 12%;
	}

	/* Nudge the circular featured image up so the organic layer can peek out below it. */
	.class-single--hero-date-overlap .class-single__intro-media-col .tse-hero-circle .class-single__intro-img {
		transform: translateY(-30%);
	}
}

.class-single__intro-kicker {
	margin: 0 0 0.85rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.2rem, 1.8vw, 1.35rem);
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.25;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.72);
}

.class-single__intro-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1rem;
}

.class-single__intro-heading {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15em;
	font-weight: 700;
	line-height: 1.08;
}

/* Match page hero: teal rule before lead copy when present. */
.class-single__intro-heading:not(:last-child)::after {
	content: "";
	display: block;
	width: clamp(2.75rem, 9vw, 4.25rem);
	height: 3px;
	flex-shrink: 0;
	margin-top: clamp(1rem, 2.5vw, 1.5rem);
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
	background-color: #51a3a3;
	border-radius: 1px;
}

.class-single__intro-heading-serif {
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(2.5rem, 6vw, 4rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.05;
	color: #111;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.class-single__intro-heading-nowrap {
	white-space: nowrap;
}

.class-single__intro-heading-script {
	font-family: "Dancing Script", cursive;
	font-size: clamp(2.75rem, 8vw, 4.5rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.05;
	color: #51a3a3;
}

.class-single__intro-lead {
	margin: 0 0 clamp(1.5rem, 3.5vw, 2.25rem);
	max-width: min(42rem, 100%);
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgb(39.55, 56.1, 64.45);
}

.class-single__intro-lead p {
	margin: 0 0 1em;
}

.class-single__intro-lead p:last-child {
	margin-bottom: 0;
}

/* Info column: "When" (mobile only, when the sticky bar is only From + book). */
.class-single__section--when {
	display: none;
}

@media (max-width: 47.99em) {

	.class-single__section--when {
		display: block;
		scroll-margin-top: 1rem;
	}
}

.class-single__section--when .class-single__heading--ruled {
	margin-bottom: 0.9rem;
}

.class-single__when-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.class-single__when-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
}

.class-single__when-label {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.35;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.55);
}

.class-single__when-value {
	display: block;
	margin: 0;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.05rem, 2.5vw, 1.2rem);
	font-weight: 700;
	line-height: 1.3;
	color: #111;
	letter-spacing: -0.02em;
}

/* —— Stats strip: label above value; compact serif values (class detail text, not year-sized) —— */
.class-single__stats-bar {
	position: relative;
	z-index: 1;
	margin-top: clamp(2rem, 4vw, 2.75rem);
	margin-bottom: 0;
	padding: clamp(1.25rem, 2.5vw, 1.75rem) 0;
	border-top: 1px solid rgba(22, 66, 91, 0.12);
	background-color: #fff;
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.06);
}

.class-single__stat-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.class-single__stat-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-width: 0;
	padding: clamp(1.1rem, 2.2vw, 1.5rem) clamp(1.35rem, 3vw, 2.5rem);
	text-align: center;
	border-bottom: 1px solid rgba(22, 66, 91, 0.1);
}

.class-single__stat-item:last-child {
	border-bottom: none;
}

.class-single__stat-label {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.65);
	line-height: 1.35;
}

.class-single__stat-value {
	display: block;
	margin: 0;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1.05rem, 2vw, 1.2rem);
	font-weight: 700;
	line-height: 1.35;
	color: #111;
	letter-spacing: -0.015em;
	overflow-wrap: anywhere;
}

@media (min-width: 48em) {

	.class-single__stat-list {
		grid-template-columns: repeat(var(--class-single-stat-count, 3), minmax(0, 1fr));
		padding-left: 0;
		padding-right: 0;
	}

	.class-single__stat-item {
		border-bottom: none;
		border-right: 1px solid rgba(22, 66, 91, 0.1);
	}

	.class-single__stat-item:last-child {
		border-right: none;
	}
}

/* —— Body: white band, two columns (info | main description) —— */
.class-single__body-band {
	margin: 0;
	padding: 0;
	background-color: #fff;
	color: #16425b;
	border-top: 1px solid rgba(22, 66, 91, 0.1);
	box-shadow: 0 1px 0 rgba(22, 66, 91, 0.04);
}

.class-single__body-inner {
	max-width: 72rem;
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 2.5rem);
}

.class-single__story-grid {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
	align-items: start;
}

.class-single__story-grid--no-info,
.class-single__story-grid--no-desc {
	grid-template-columns: minmax(0, 1fr);
}

.class-single__info-col {
	min-width: 0;
}

.class-single__info-col-inner {
	position: sticky;
	top: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: clamp(1.75rem, 3vw, 2.25rem);
}

/* Sidebar blocks: match compact card stack (Tickets / Venue / Teachers). */
.class-single__info-col-inner > .class-single__section.class-single__info-block,
.class-single__info-col-inner > .class-single__info-block {
	background-color: #fff;
	border: 1px solid rgba(22, 66, 91, 0.12);
	border-radius: 0.65rem;
	padding: clamp(1rem, 2.25vw, 1.25rem);
	box-shadow: none;
}

/*
 * Tickets uses an extra inner `.class-single__pricing-card` inside the outer `.class-single__info-block`.
 * If *both* have padding, TICKETS looks like it has more "air" above the title than Venue/Teachers.
 */
.class-single__info-col-inner > .class-single__info-block--pricing {
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

/* Inner pricing card should carry the padding + border (single card, single top edge). */
.class-single__info-col-inner > .class-single__info-block--pricing .class-single__pricing-card--light {
	background: #fff;
	border: 1px solid rgba(22, 66, 91, 0.12);
	border-radius: 0.65rem;
	padding: clamp(1rem, 2.25vw, 1.25rem);
}

/* Ensure the first title in every sidebar card lines up the same under the top border. */
.class-single__info-col-inner > .class-single__section.class-single__info-block > :first-child,
.class-single__info-col-inner > .class-single__info-block > :first-child {
	margin-top: 0;
}

/* Left column: bump readability + keep type consistent (tickets/venue/teachers) */
.class-single__info-col {
	font-size: 1.0625rem;
	line-height: 1.6;
}

.class-single__info-col .class-single__section .class-single__heading--ruled,
.class-single__info-col .class-single__pricing-card .class-single__pricing-card-kicker {
	font-size: 0.875rem;
	letter-spacing: 0.11em;
	color: rgba(22, 66, 91, 0.62);
}

.class-single__info-col .class-single__pricing-card--light .class-single__pricing-card-kicker {
	color: rgba(22, 66, 91, 0.5);
}

.class-single__info-col .class-single__pricing-card--light .class-single__pricing-card-body {
	font-size: 1.0625rem;
}

.class-single__info-col .class-single__venue-address {
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: -0.01em;
}

.class-single__info-col .class-single__venue-map-link {
	font-size: 1.0625rem;
	font-weight: 700;
}

.class-single__info-col .class-single__teacher-name {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.1875rem;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: #751f31;
}

.class-single__info-col .class-single__teacher-name a {
	color: inherit;
}

.class-single__info-col .class-single__teacher-role {
	font-size: 1rem;
	font-weight: 500;
	color: #16425b;
}

body.admin-bar .class-single__info-col-inner {
	top: calc(32px + 1.25rem);
}

@media screen and (max-width: 782px) {

	body.admin-bar .class-single__info-col-inner {
		top: calc(46px + 1.25rem);
	}
}

.class-single__desc-col {
	min-width: 0;
}

@media (min-width: 56em) {

	.class-single--two-col-body .class-single__story-grid {
		grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
		gap: clamp(2rem, 5vw, 3.5rem);
	}

	.class-single--two-col-body .class-single__desc-col {
		padding-left: clamp(1.5rem, 3vw, 2.5rem);
		border-left: 1px solid rgba(22, 66, 91, 0.12);
	}

	/* Sidebar sticky clears site header + sticky meta strip */
	.class-single--has-meta-strip .class-single__info-col-inner {
		top: clamp(6.25rem, 16vw, 9.5rem);
	}

	body.admin-bar .class-single--has-meta-strip .class-single__info-col-inner {
		top: clamp(7.75rem, 17vw, 11rem);
	}
}

@media screen and (min-width: 56em) and (max-width: 782px) {

	body.admin-bar .class-single--has-meta-strip .class-single__info-col-inner {
		top: clamp(8.25rem, 18vw, 11.5rem);
	}
}

.class-single__story-grid--no-info .class-single__desc-col {
	padding-left: 0;
	border-left: none;
}

@media (max-width: 55.99em) {

	.class-single__desc-col {
		padding-left: 0;
		border-left: none;
	}

	.class-single__info-col-inner {
		position: static;
	}
}

.class-single__badge {
	display: inline-flex;
	align-items: center;
	padding: 0.4rem 0.9rem;
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	line-height: 1.2;
	text-transform: uppercase;
}

.class-single__badge--intro.class-single__badge--style {
	background: rgba(22, 66, 91, 0.08);
	color: #16425b;
	border: 1px solid rgba(22, 66, 91, 0.14);
}

.class-single__badge--intro.class-single__badge--level {
	background: #fff;
	border: 1px solid rgba(22, 66, 91, 0.18);
}

.class-single__badge--intro.class-single__badge--level-burgundy {
	color: #751f31;
}

.class-single__badge--intro.class-single__badge--level-teal {
	color: rgb(63.18, 127.14, 127.14);
}

.class-single__badge--intro.class-single__badge--level-navy {
	color: #16425b;
}

.class-single__section {
	scroll-margin-top: 6rem;
}

body.admin-bar .class-single__section {
	scroll-margin-top: 7.5rem;
}

@media screen and (max-width: 782px) {

	body.admin-bar .class-single__section {
		scroll-margin-top: 8rem;
	}
}

.class-single__heading--ruled {
	margin: 0 0 1.1rem;
	padding-bottom: 0.65rem;
	border-bottom: 1px solid rgba(22, 66, 91, 0.12);
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.3;
	text-transform: uppercase;
	color: rgba(22, 66, 91, 0.52);
}

.class-single__prose {
	font-size: 1rem;
	line-height: 1.65;
	color: #16425b;
}

.class-single__prose p {
	margin: 0 0 1em;
}

.class-single__prose p:last-child {
	margin-bottom: 0;
}

/* —— Pricing card (left column) —— */
.class-single__pricing-card {
	padding: clamp(1.25rem, 3vw, 1.5rem);
	border-radius: 1rem;
	color: #fff;
	box-shadow: 0 8px 32px rgba(22, 66, 91, 0.18);
}

.class-single__pricing-card--panel-burgundy {
	background-color: #751f31;
}

.class-single__pricing-card--panel-teal {
	background-color: rgb(74.52, 149.96, 149.96);
}

.class-single__pricing-card--panel-navy {
	background-color: #16425b;
}

/* Light tickets / pricing card (workshop, event, class) */
.class-single__pricing-card--light {
	background-color: #fff;
	color: #16425b;
	border: 1px solid rgba(22, 66, 91, 0.12);
	border-radius: 0.65rem;
	box-shadow: none;
}

.class-single__pricing-card--light .class-single__pricing-card-kicker {
	margin-bottom: 0.85rem;
	padding-bottom: 0.65rem;
	border-bottom-color: rgba(22, 66, 91, 0.1);
	color: rgba(22, 66, 91, 0.42);
}

.class-single__pricing-card--light .class-single__pricing-card-weeks {
	margin: -0.25rem 0 0.85rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.45;
	color: rgba(22, 66, 91, 0.72);
}

.class-single__pricing-card--light .class-single__pricing-card-body {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0;
	color: #16425b;
}

/* Ticket price rows (workshops): label left, price right */
.class-single__ticket-prices {
	margin: 0;
	padding: 0;
}

.class-single__ticket-price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.5rem 0;
	margin: 0;
}

.class-single__ticket-price-row + .class-single__ticket-price-row {
	border-top: 1px solid rgba(22, 66, 91, 0.1);
}

.class-single__ticket-prices dt.class-single__ticket-label {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	font-weight: 600;
	color: #16425b;
	min-width: 0;
}

.class-single__ticket-prices dd.class-single__ticket-price {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	font-weight: 700;
	color: #16425b;
	white-space: nowrap;
}

.class-single__pricing-card--light .class-single__pricing-card-body p + p,
.class-single__pricing-card--light .class-single__pricing-card-body li + li {
	border-top-color: rgba(22, 66, 91, 0.1);
}

@media (max-width: 47.99em) {

	/*
   * Mobile booking layout can turn the pricing body into a 2-up grid for legacy WYSIWYG pricing.
   * That grid also applies to our ticket <dl>, which makes label/price stack vertically.
   */
	.class-single--mobile-booking-layout .class-single__pricing-card-body--option-grid:has(> .class-single__ticket-prices) {
		display: block !important;
	}
}

.class-single__pricing-card--light .class-single__pricing-card-body a {
	color: #751f31;
}

.class-single__pricing-card--light .class-single__pricing-card-body strong {
	font-weight: 700;
}

.class-single__pricing-card--light .class-single__cta-secondary {
	border: 1px solid rgba(22, 66, 91, 0.28);
	color: #16425b;
}

.class-single__pricing-card--light .class-single__cta-secondary:hover,
.class-single__pricing-card--light .class-single__cta-secondary:focus {
	background: rgba(22, 66, 91, 0.06);
	border-color: rgba(22, 66, 91, 0.45);
}

.class-single__pricing-card--light a.class-single__cta-secondary:link,
.class-single__pricing-card--light a.class-single__cta-secondary:visited {
	color: #16425b;
}

.class-single__pricing-card-kicker {
	margin: 0 0 1rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.22);
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.52);
}

.class-single__pricing-card-body {
	margin: 0;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.0625rem, 2.4vw, 1.3rem);
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: -0.02em;
	color: rgba(255, 255, 255, 0.96);
}

.class-single__pricing-card-body p {
	margin: 0;
	color: inherit;
}

.class-single__pricing-card-body p + p {
	margin-top: 0;
	padding-top: 0.85rem;
	border-top: 1px solid rgba(0, 0, 0, 0.25);
}

.class-single__pricing-card-body a {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.class-single__pricing-card-body ul,
.class-single__pricing-card-body ol {
	margin: 0;
	padding-left: 1.15em;
	color: inherit;
}

.class-single__pricing-card-body li {
	margin: 0;
	padding: 0.35rem 0;
}

.class-single__pricing-card-body li + li {
	margin-top: 0;
	padding-top: 0.85rem;
	border-top: 1px solid rgba(0, 0, 0, 0.25);
}

.class-single__pricing-card-cta {
	margin: 1.15rem 0 0;
}

.class-single__pricing-card-waitlist {
	margin: 0.65rem 0 0;
}

/* Cream primary CTA on the coloured pricing card (same treatment as former hero button). */
.class-single__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.72rem 1.85rem;
	border: none;
	border-radius: 0.5rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25;
	text-decoration: none;
	color: #16425b;
	background-color: #f6f4f1;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.2);
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.class-single__cta:hover,
.class-single__cta:focus {
	background-color: rgb(228.78, 226.92, 224.13);
	color: #16425b;
	box-shadow: 0 3px 18px rgba(0, 0, 0, 0.22);
	outline: none;
}

.class-single__cta:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.95);
	outline-offset: 2px;
}

.class-single__cta--block {
	width: 100%;
	box-sizing: border-box;
	text-align: center;
}

.class-single__cta-secondary {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	box-sizing: border-box;
	padding: 0.65rem 1.25rem;
	border: 2px solid rgba(255, 255, 255, 0.88);
	border-radius: 0.5rem;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	color: #fff;
	background: transparent;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.class-single__cta-secondary:hover,
.class-single__cta-secondary:focus {
	background: rgba(255, 255, 255, 0.1);
	outline: none;
}

a.class-single__cta-secondary:link,
a.class-single__cta-secondary:visited {
	color: #fff;
}

/* —— Teachers —— */
.class-single__teacher-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.class-single__teacher-card {
	display: flex;
	gap: 0.85rem;
	align-items: center;
	margin: 0;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.class-single__teacher-card + .class-single__teacher-card {
	border-top: 1px solid rgba(22, 66, 91, 0.1);
}

.class-single__teacher-avatar {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.75rem;
	height: 3.75rem;
	border-radius: 50%;
	background: rgb(230.16, 214.68, 217.92);
	color: #751f31;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.class-single__teacher-img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

.class-single__teacher-initials:empty::before {
	content: "…";
	opacity: 0.45;
}

.class-single__teacher-name {
	margin: 0 0 0.35rem;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.125rem;
	font-weight: 700;
	color: #16425b;
}

.class-single__teacher-name a {
	color: inherit;
	text-decoration: none;
}

.class-single__teacher-name a:hover,
.class-single__teacher-name a:focus {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.class-single__teacher-role {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	color: rgba(22, 66, 91, 0.62);
}

.class-single__teacher-bio {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgba(22, 66, 91, 0.88);
}

.class-single__teacher-bio p {
	margin: 0 0 0.5em;
}

/* —— Venue (main column; no card shell) —— */
.class-single__venue-address {
	margin: 0 0 0.75rem;
	font-size: 1.0625rem;
	line-height: 1.5;
	font-weight: 600;
	color: #16425b;
}

.class-single__venue-map {
	margin: 0;
}

.class-single__venue-map-link {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
	color: #751f31;
}

.class-single__venue-map-link:hover,
.class-single__venue-map-link:focus {
	color: #16425b;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* —— Sticky meta strip (between intro and body; label + serif value, optional book) —— */
.class-single__meta-strip-wrap {
	position: sticky;
	top: 4.5rem;
	z-index: 120;
	margin: 0;
	padding: 0;
	background-color: #fff;
	border-top: 1px solid rgba(22, 66, 91, 0.12);
	border-bottom: 1px solid rgba(22, 66, 91, 0.08);
	box-shadow: 0 2px 12px rgba(22, 66, 91, 0.06);
}

body.admin-bar .class-single__meta-strip-wrap {
	top: calc(32px + 4.5rem);
}

@media screen and (max-width: 782px) {

	body.admin-bar .class-single__meta-strip-wrap {
		top: calc(46px + 4.5rem);
	}
}

/*
 * Hero strip (schedule + From/book panel): scrolls on mobile — no sticky card.
 * `position: relative` + z-index so the white strip paints above the hero organic bleed.
 */
@media (max-width: 47.99em) {

	body.single-workshop .class-single__meta-strip-wrap--hero-schedule-scroll,
	body.single-workshops .class-single__meta-strip-wrap--hero-schedule-scroll,
	body.single-classes .class-single__meta-strip-wrap--hero-schedule-scroll {
		position: relative;
		top: auto;
		z-index: 5;
	}

	body.single-workshop .class-single--hero-organic-under-meta .class-single__intro-band,
	body.single-workshops .class-single--hero-organic-under-meta .class-single__intro-band,
	body.single-classes .class-single--hero-organic-under-meta .class-single__intro-band {
		position: relative;
		z-index: 0;
	}
}

.class-single__meta-strip-wrap .class-single__quick-bar {
	max-width: 72rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(1.5rem, 4vw, 2.5rem);
	padding-right: clamp(1.5rem, 4vw, 2.5rem);
}

/* Booking strip hidden — short message when start date is in the past */
.class-single__meta-strip-wrap--course-expired .class-single__quick-bar--course-expired {
	padding-top: clamp(1.1rem, 2.5vw, 1.4rem);
	padding-bottom: clamp(1.1rem, 2.5vw, 1.4rem);
}

.class-single__course-expired-message {
	margin: 0;
	max-width: 42rem;
	font-family: "Libre Baskerville", georgia, "Times New Roman", serif;
	font-size: clamp(1rem, 1.85vw, 1.125rem);
	line-height: 1.55;
	color: rgb(143.16, 164.28, 176.28);
}

.class-single__quick-bar {
	margin: 0;
	padding: 0;
}

.class-single__quick-bar-inner {
	margin: 0;
	padding: 0;
}

@media (min-width: 48em) {

	.class-single__quick-bar-inner--hero-schedule-split {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(18rem, 36rem);
		align-items: stretch;
	}
}

@media (max-width: 47.99em) {

	.class-single__quick-bar-inner--hero-schedule-split {
		display: flex;
		flex-direction: column;
	}
}

.class-single__quick-bar-grid.class-single__quick-bar-grid--schedule-only {
	grid-template-columns: repeat(var(--class-single-quick-bar-n, 1), minmax(0, 1fr));
}

/* White rounded strip: From + Book (matches fixed dock panel) */
.class-single__quick-bar-cta-block {
	display: flex;
	align-items: stretch;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
}

@media (min-width: 48em) {

	.class-single__quick-bar-cta-block {
		padding: clamp(1rem, 2vw, 1.35rem) 0 clamp(1rem, 2vw, 1.35rem) clamp(1rem, 2vw, 1.5rem);
		border-left: 1px solid rgba(22, 66, 91, 0.12);
	}
}

@media (max-width: 47.99em) {

	.class-single__quick-bar-cta-block {
		padding: clamp(1rem, 3vw, 1.35rem) 0 0;
	}
}

.class-single__quick-bar-cta-panel {
	display: flex;
	width: 100%;
	max-width: 36rem;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	box-sizing: border-box;
	padding: 0.75rem 1rem 0.8rem;
	background: #fff;
	border: none;
	border-radius: 0.55rem;
	box-shadow: none;
}

.class-single__quick-bar-cta-panel--solo {
	justify-content: center;
}

.class-single__quick-bar-cta-from {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	gap: 0.1rem;
}

.class-single__quick-bar-cta-from-label {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	color: rgba(22, 66, 91, 0.5);
	text-transform: uppercase;
}

.class-single__quick-bar-cta-from-value {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #111;
	line-height: 1.2;
}

.class-single__quick-bar-book--cta-panel {
	flex: 0 0 auto;
}

.class-single__quick-bar-grid {
	display: grid;
	grid-template-columns: repeat(var(--class-single-quick-bar-n, 0), minmax(0, 1fr)) minmax(11.5rem, auto);
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.class-single__quick-bar-grid--no-action {
	grid-template-columns: repeat(var(--class-single-quick-bar-n, 1), minmax(0, 1fr));
}

@media (max-width: 47.99em) {

	.class-single__quick-bar-grid,
	.class-single__quick-bar-grid--no-action {
		grid-template-columns: 1fr;
	}

	.class-single__quick-bar--hero-schedule-split .class-single__quick-bar-grid--schedule-only {
		grid-template-columns: 1fr;
	}

	/* When booking + a parsed "From" price: single row (price | CTA) */
	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-grid {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: clamp(0.75rem, 3vw, 1.25rem);
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-cell:not(.class-single__quick-bar-cell--from):not(.class-single__quick-bar-cell--action) {
		display: none;
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-cell--from {
		flex: 1 1 auto;
		min-width: 0;
		align-items: flex-start;
		align-self: center;
		text-align: left;
		padding: 0.75rem 0;
		border: none;
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-cell--from::after {
		display: none;
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-cell--from .class-single__quick-bar-label {
		color: rgba(22, 66, 91, 0.48);
		font-size: 0.6875rem;
		letter-spacing: 0.16em;
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-cell--from .class-single__quick-bar-value {
		font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
		font-size: clamp(1.35rem, 5vw, 1.65rem);
		font-weight: 700;
		letter-spacing: -0.02em;
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-cell--action {
		flex: 0 0 auto;
		padding: 0.65rem 0;
		border: none;
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-book,
	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-book:hover,
	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-book:focus {
		color: #fff;
	}
}

.class-single__quick-bar-cell {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-width: 0;
	margin: 0;
	padding: clamp(1.2rem, 2.8vw, 1.85rem) clamp(1rem, 2.8vw, 1.85rem);
	text-align: center;
}

.class-single__quick-bar-cell:not(.class-single__quick-bar-cell--action):not(:last-child)::after {
	content: "";
	position: absolute;
	top: 1.1rem;
	right: 0;
	bottom: 1.1rem;
	width: 1px;
	background: rgba(22, 66, 91, 0.12);
}

@media (max-width: 47.99em) {

	.class-single__quick-bar-cell:not(.class-single__quick-bar-cell--action)::after {
		display: none;
	}

	.class-single__quick-bar-cell:not(.class-single__quick-bar-cell--action) {
		border-bottom: 1px solid rgba(22, 66, 91, 0.1);
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-cell {
		border-bottom: none;
	}

	.class-single__quick-bar-cell--action {
		padding-top: clamp(1.25rem, 3vw, 1.65rem);
		padding-bottom: clamp(1.25rem, 3vw, 1.65rem);
	}

	.class-single__meta-strip-wrap--mobile-price-cta .class-single__quick-bar-cell--action {
		padding-top: 0.65rem;
		padding-bottom: 0.65rem;
	}
}

@media (min-width: 48em) {

	.class-single__quick-bar-cell--action {
		border-left: 1px solid rgba(22, 66, 91, 0.12);
	}
}

.class-single__quick-bar-label {
	margin: 0;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.35;
	text-transform: uppercase;
	color: rgb(56.22, 122.26, 132.76);
}

.class-single__quick-bar-value {
	display: block;
	margin: 0;
	max-width: 100%;
	font-family: "League Spartan", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(1.2rem, 2.4vw, 1.5rem);
	font-weight: 700;
	line-height: 1.3;
	color: #111;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
}

.class-single__quick-bar-cell--action {
	justify-content: center;
}

.class-single__quick-bar-book {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 1.5rem;
	border: none;
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: clamp(0.875rem, 1.6vw, 0.9375rem);
	font-weight: 700;
	line-height: 1.25;
	text-decoration: none;
	color: #fff;
	background: #16425b;
	box-shadow: 0 1px 10px rgba(0, 0, 0, 0.12);
	transition: background-color 0.2s ease;
}

.class-single__quick-bar-book:hover,
.class-single__quick-bar-book:focus {
	background: rgb(19.36, 58.08, 80.08);
	color: #fff;
	outline: none;
}

.class-single__quick-bar-book:visited {
	color: #fff;
}

.class-single__quick-bar-book:focus-visible {
	outline: 2px solid #751f31;
	outline-offset: 2px;
}

/* Mobile booking split: single date line under hero; full strip in desktop only */
@media (min-width: 48em) {

	.class-single__meta-strip-wrap--mobile-booking-split .class-single__quick-bar-date-mobile {
		display: none;
	}
}

@media (max-width: 47.99em) {

	.class-single__meta-strip-wrap--mobile-booking-split .class-single__quick-bar-inner--desktop {
		display: none;
	}
}

@media (max-width: 47.99em) {

	/* Teal date line overlaps bottom of hero (image sits behind) */
	.class-single--mobile-booking-layout .class-single__intro-band {
		position: relative;
		z-index: 1;
		margin-bottom: 0;
		border-bottom: none;
	}

	.class-single--hero-date-overlap .class-single__intro-inner--no-stats {
		padding-bottom: clamp(1.5rem, 5vw, 2.5rem);
	}

	/*
   * Full strip = teal (not transparent): base .class-single__meta-strip-wrap is #fff + 1px top
   * border, which left a white hairline between the cream intro and this block.
   */
	.class-single__meta-strip-wrap--mobile-booking-split {
		position: relative;
		top: auto;
		z-index: 5;
		margin-top: 0;
		background-color: rgb(76.14, 153.22, 153.22);
		border: 0;
		border-top: 0;
		border-bottom: 0;
		box-shadow: none;
	}

	.class-single--hero-date-overlap .class-single__meta-strip-wrap--mobile-booking-split {
		margin-top: calc(clamp(-4.5rem, -15vw, -3rem) - 1px);
	}

	.class-single__meta-strip-wrap--mobile-booking-split .class-single__quick-bar {
		max-width: none;
		margin: 0;
		padding: 0;
	}

	.class-single__meta-strip-wrap--mobile-booking-split .class-single__quick-bar-date-mobile {
		position: relative;
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		background: transparent;
		box-shadow: none;
	}

	/* Full-width bar text (white on teal, larger) */
	.class-single__date-line {
		margin: 0;
		padding: clamp(1.15rem, 3.5vw, 1.45rem) clamp(1.25rem, 4vw, 1.5rem);
		font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
		font-size: clamp(1.12rem, 4.2vw, 1.4rem);
		font-weight: 500;
		line-height: 1.35;
		text-align: center;
		color: #fff;
		border: none;
	}

	.class-single__date-line-date,
	.class-single__date-line-datetime,
	.class-single__date-line-time,
	.class-single__date-line-sep {
		font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
		color: #fff;
	}

	.class-single__date-line-date {
		font-weight: 700;
	}

	.class-single__date-line-time {
		font-weight: 500;
	}

	.class-single__date-line-sep {
		opacity: 0.95;
	}

	/* Default body band has 1px top border — reads as a white/gray line under the teal date strip */
	.class-single--mobile-booking-layout .class-single__body-band {
		border-top: 0;
		box-shadow: none;
	}
}

/* In-page book CTA (tickets) + optional two-up from WYSIWYG */
.class-single__book-inflow-wrap {
	margin: 1rem 0 0;
}

.class-single__book-inflow {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 0.85rem 1.25rem;
	border: none;
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	color: #fff;
	background: #16425b;
	box-shadow: 0 1px 12px rgba(0, 0, 0, 0.12);
}

.class-single__book-inflow:visited {
	color: #fff;
}

.class-single__book-inflow:hover,
.class-single__book-inflow:focus {
	background: rgb(19.36, 58.08, 80.08);
	color: #fff;
	outline: none;
}

.class-single__book-inflow:focus-visible {
	outline: 2px solid #751f31;
	outline-offset: 2px;
}

@media (max-width: 47.99em) {

	.class-single--mobile-booking-layout .class-single__pricing-card-body--option-grid:has(> p:nth-of-type(2)) {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
		align-items: stretch;
	}

	.class-single--mobile-booking-layout .class-single__pricing-card-body--option-grid:has(> p:nth-of-type(2)) > p {
		margin: 0;
		padding: 0.85rem 0.5rem;
		border: 1px solid rgba(22, 66, 91, 0.12);
		border-radius: 0.5rem;
		text-align: center;
		font-size: 0.9rem;
	}
}

/* Bottom dock (State 2: after in-flow CTA leaves view) */
.class-single__book-dock[hidden] {
	display: none;
}

.class-single__book-dock {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 130;
	margin: 0;
	padding: 0 0.85rem;
	padding-bottom: max(0.65rem, env(safe-area-inset-bottom, 0px));
}

.class-single__book-dock-panel--solo-cta {
	justify-content: center;
}

@media (min-width: 48em) {

	.class-single__book-dock {
		display: none !important;
	}
}

.class-single__book-dock-panel {
	display: flex;
	max-width: 36rem;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 auto;
	padding: 0.75rem 1rem 0.8rem;
	pointer-events: auto;
	background: #fff;
	border: 1px solid rgba(22, 66, 91, 0.14);
	border-radius: 0.55rem;
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.07);
}

.class-single__book-dock-from {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	gap: 0.1rem;
}

.class-single__book-dock-from-label {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	color: rgba(22, 66, 91, 0.5);
	text-transform: uppercase;
}

.class-single__book-dock-from-value {
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #111;
	line-height: 1.2;
}

.class-single__book-dock-cta {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.6rem 1.2rem;
	border: none;
	border-radius: 999px;
	font-family: "Open Sans", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	text-decoration: none;
	color: #fff;
	background: #16425b;
}

.class-single__book-dock-cta:hover,
.class-single__book-dock-cta:focus {
	background: rgb(19.36, 58.08, 80.08);
	color: #fff;
}

.class-single__book-dock-cta:visited {
	color: #fff;
}

.class-single__book-dock-cta:focus-visible {
	outline: 2px solid #751f31;
	outline-offset: 2px;
}

@media (max-width: 47.99em) {

	body.tse-book-dock-visible {
		padding-bottom: max(4.5rem, 3.5rem + env(safe-area-inset-bottom, 0px));
	}
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #16425b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}
