/**
 * Campaign / flexible module design uplift (Figma Campaign Page).
 * Loaded after main.min.css — overrides incomplete main where needed.
 */

/* --- Fonts ---------------------------------------------------------------- */
@font-face {
	font-family: "SourceSerifPro-SemiBold";
	src: url("../fonts/SourceSerifPro-SemiBold.woff") format("woff"),
		url("../fonts/SourceSerifPro-SemiBold.ttf") format("truetype");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "SourceSerifPro-SemiBoldIt";
	src: url("../fonts/SourceSerifPro-SemiBoldIt.woff") format("woff"),
		url("../fonts/SourceSerifPro-SemiBoldIt.ttf") format("truetype");
	font-weight: 600;
	font-style: italic;
	font-display: swap;
}

/* --- Global display headings ----------------------------------------------
   Semi-bold Source Serif with -5% tracking. Tracking is set in `em` so the
   ratio holds at every heading size instead of drifting with a fixed px value.
   ------------------------------------------------------------------------- */
h1,
h2.large,
section.banner.small h1 {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif !important;
	font-weight: 600 !important;
	letter-spacing: -0.05em !important;
	line-height: 0.95 !important;
}

h2.small,
h2.alternative {
	font-family: "SourceSerifPro-SemiBoldIt", "SourceSerifPro-BoldIt", serif !important;
	letter-spacing: -0.05em;
}

/* Weight + tracking only, no line-height. Both these modules sit in a wrapper
   with `overflow:hidden` and no bottom padding, so tightening the line box
   clips descenders (the g/J in "Wedding DJs..."). Leave their line-height be. */
section.title-block h2 {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif !important;
	font-weight: 600 !important;
	letter-spacing: -0.05em !important;
}

/* #56 Packages
   Title (h2)  SourceSerifPro-SemiBold, blue #220090, upright
   Sub   (h3)  SourceSerifPro-BoldIt 30/1  #e81e75
   Price (h4)  SourceSerifPro-BoldIt 30/1  #000
   Mobile: 25 / 20 / 20. */
section.three-column-services .text-container h2,
section.three-column-services .column-container .column .text-container h2,
section.three-column-services .text-container > h2:first-child,
section.three-column-services .column-container .column .text-container > h2:first-of-type,
section.three-column-services h2 {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif !important;
	font-weight: 600 !important;
	font-style: normal !important;
	font-size: 40px !important;
	line-height: 1.1 !important;
	letter-spacing: -0.5px !important;
	color: #220090 !important;
	margin: 0 0 20px !important;
}
section.three-column-services .text-container h3,
section.three-column-services .text-block h3,
section.three-column-services .column-container .column .text-container h3 {
	font-family: "SourceSerifPro-BoldIt", "SourceSerifPro-SemiBoldIt", serif !important;
	font-weight: 400 !important;
	font-style: normal !important; /* face is italic */
	font-size: 25px !important;
	line-height: 1.15 !important;
	letter-spacing: 0 !important;
	color: #e81e75 !important;
	margin: 0 0 20px !important;
}
section.three-column-services .text-container h4,
section.three-column-services .text-block h4,
section.three-column-services .column-container .column .text-container h4 {
	font-family: "SourceSerifPro-BoldIt", "SourceSerifPro-SemiBoldIt", serif !important;
	font-weight: 700 !important;
	font-style: normal !important;
	font-size: 30px !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	color: #000 !important;
	margin: 0 0 20px !important;
}
@media (max-width: 767px) {
	/* Must mirror desktop selector list (incl. :first-child / :first-of-type)
	   or those higher-specificity rules keep 40px on mobile. */
	section.three-column-services .text-container h2,
	section.three-column-services .column-container .column .text-container h2,
	section.three-column-services .text-container > h2:first-child,
	section.three-column-services .column-container .column .text-container > h2:first-of-type,
	section.three-column-services h2 {
		font-size: 25px !important;
		line-height: 1.15 !important; /* ~29px */
	}
	section.three-column-services .text-container h3,
	section.three-column-services .text-block h3,
	section.three-column-services .column-container .column .text-container h3 {
		font-size: 20px !important;
		line-height: 1 !important;
	}
	section.three-column-services .text-container h4,
	section.three-column-services .text-block h4,
	section.three-column-services .column-container .column .text-container h4 {
		font-size: 20px !important;
		line-height: 1 !important;
	}
}

/* #56 Packages: equal-height columns, BOOK pinned bottom, airier text stack.
   CRITICAL: do not let .image-container stretch — its ::before is height:100%
   gradient offset. Flex + floated .image-size-container made the parent
   tall as the whole column → purple towers under every photo. */
section.three-column-services .column-container {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
	float: none !important;
	width: 100% !important;
	gap: 0 45px;
}
section.three-column-services .column-container .column {
	display: flex !important;
	flex-direction: column !important;
	float: none !important;
	/* 3 cols with 45px gutters: (100% - 90px) / 3 */
	width: calc((100% - 90px) / 3) !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
	box-sizing: border-box !important;
	min-height: 0 !important;
}
section.three-column-services .column-container .column .image-container {
	flex: 0 0 auto !important;
	flex-grow: 0 !important;
	flex-shrink: 0 !important;
	align-self: flex-start !important;
	float: none !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	/* BFC: height = square image, not stretched column */
	display: flow-root !important;
	position: relative !important;
	margin-bottom: 48px !important;
}
/* Un-float the aspect box so parent height is reliable */
section.three-column-services .column-container .column .image-container .image-size-container {
	float: none !important;
	display: block !important;
	width: 100% !important;
	height: 0 !important;
	padding-top: 100% !important; /* square */
	position: relative !important;
	overflow: hidden !important;
	box-sizing: content-box !important;
}
/* Gradient only behind the square photo, not the whole column */
section.three-column-services .column-container .column .image-container::before {
	/* main uses height:100% of .image-container — now that parent = square, OK.
	   Clamp anyway so it can never re-tower. */
	height: 100% !important;
	max-height: 100% !important;
	box-sizing: border-box !important;
	pointer-events: none !important;
	z-index: 0 !important;
}
section.three-column-services .column-container .column .image-container .image-size-container .bg-container,
section.three-column-services .column-container .column .image-container .image-size-container {
	z-index: 1;
}
section.three-column-services .column-container .column .text-container {
	display: block !important;
	float: none !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	flex: 0 0 auto !important;
	position: relative !important;
	z-index: 1 !important;
}
/* Vertical rhythm — live uses 20px under each heading tier */
section.three-column-services .text-container h2,
section.three-column-services .column-container .column .text-container h2,
section.three-column-services .text-container h3,
section.three-column-services .text-block h3,
section.three-column-services .text-container h4,
section.three-column-services .text-block h4 {
	margin: 0 0 20px !important;
}
section.three-column-services .text-container .text-block {
	display: block !important;
	float: none !important;
	width: 100% !important;
	flex: 0 0 auto !important;
	margin: 0 0 8px !important;
}
section.three-column-services .text-container .text-block p,
section.three-column-services .text-container .text-block ul,
section.three-column-services .text-container .text-block ol {
	margin: 0 0 16px !important;
}
section.three-column-services .text-container .text-block ul,
section.three-column-services .text-container .text-block ol {
	padding-left: 1.15em !important;
}
section.three-column-services .text-container .text-block li {
	margin: 0 0 10px !important;
	line-height: 1.45 !important;
}
section.three-column-services .text-container .text-block li:last-child {
	margin-bottom: 0 !important;
}
section.three-column-services .text-container .text-block p:last-child,
section.three-column-services .text-container .text-block ul:last-child,
section.three-column-services .text-container .text-block ol:last-child {
	margin-bottom: 0 !important;
}
/* BOOK sits under content (not pinned to column bottom) */
section.three-column-services .text-container .button-wrap {
	margin-top: 24px !important;
	padding-top: 0 !important;
	float: none !important;
	width: 100% !important;
	clear: both !important;
}
section.three-column-services .text-container .button-wrap .stdBtn {
	float: none !important;
	display: inline-block !important;
}
@media (max-width: 1023px) {
	section.three-column-services .column-container {
		gap: 40px 28px;
	}
	section.three-column-services .column-container .column {
		width: calc((100% - 28px) / 2) !important;
	}
}
@media (max-width: 767px) {
	section.three-column-services .column-container {
		flex-direction: column !important;
		gap: 48px 0;
	}
	section.three-column-services .column-container .column {
		width: 100% !important;
	}
	section.three-column-services .column-container .column .image-container {
		margin-bottom: 24px !important;
	}
	section.three-column-services .text-container .button-wrap {
		margin-top: 20px !important;
	}
}

/* Source Serif descends ~6px below the line box at 80px, and the section ends
   flush with that box (`no-padding-bottom`) while clipping overflow — so the
   tails of g/J/y were being sliced off. Nothing in this module is positioned
   outside its own bounds, so the clip buys nothing: dropping it shows the
   descenders without moving the section or anything after it. */
section.title-block {
	overflow: visible !important;
}

/* --- Brand bg utilities + contrast --------------------------------------- */
.bg-white,
.bg-none { background-color: #fff !important; }
.bg-purple { background-color: #bc34ba !important; }
.bg-dark-purple { background-color: #580f8b !important; }
.bg-blue { background-color: #220090 !important; }
.bg-fuschia { background-color: #e81e75 !important; }
.bg-light-pink { background-color: #ff8ddf !important; }
.bg-light-blue { background-color: #c4d4ed !important; }

/*
 * Contrast tokens:
 * - Dark / saturated BGs → white body + white headings (accents may stay pink/white)
 * - Light BGs → near-black body + brand-coloured headings where design expects it
 */
.bg-purple,
.bg-dark-purple,
.bg-blue,
.bg-fuschia {
	--oms-on-bg: #ffffff;
	--oms-on-bg-muted: rgba(255, 255, 255, 0.85);
	--oms-on-bg-accent: #ffffff;
	--oms-on-bg-rule: rgba(255, 255, 255, 0.85);
	color: #fff !important;
}
.bg-white,
.bg-none,
.bg-light-blue,
.bg-light-pink {
	--oms-on-bg: #000000;
	--oms-on-bg-muted: rgba(0, 0, 0, 0.85);
	--oms-on-bg-accent: #e81e75;
	--oms-on-bg-rule: #e81e75;
	color: #000;
}
.bg-light-blue {
	--oms-on-bg-accent: #220090;
}
.bg-light-pink {
	--oms-on-bg-accent: #580f8b;
}

/* Global text on dark BGs (covers all modules that hang class on <section>) */
.bg-purple h1, .bg-purple h2, .bg-purple h3, .bg-purple h4, .bg-purple h5, .bg-purple h6,
.bg-dark-purple h1, .bg-dark-purple h2, .bg-dark-purple h3, .bg-dark-purple h4, .bg-dark-purple h5, .bg-dark-purple h6,
.bg-blue h1, .bg-blue h2, .bg-blue h3, .bg-blue h4, .bg-blue h5, .bg-blue h6,
.bg-fuschia h1, .bg-fuschia h2, .bg-fuschia h3, .bg-fuschia h4, .bg-fuschia h5, .bg-fuschia h6 {
	color: #fff !important;
}
.bg-purple p, .bg-purple li, .bg-purple span, .bg-purple a,
.bg-dark-purple p, .bg-dark-purple li, .bg-dark-purple span, .bg-dark-purple a,
.bg-blue p, .bg-blue li, .bg-blue span, .bg-blue a,
.bg-fuschia p, .bg-fuschia li, .bg-fuschia span, .bg-fuschia a {
	color: #fff !important;
}
.bg-purple a:hover,
.bg-dark-purple a:hover,
.bg-blue a:hover,
.bg-fuschia a:hover {
	opacity: 0.85;
}

/* Light BGs — body stays dark even if main.css paints pink */
.bg-white p, .bg-white li,
.bg-none p, .bg-none li,
.bg-light-blue p, .bg-light-blue li,
.bg-light-pink p, .bg-light-pink li {
	color: #000 !important;
}

/* GF HTML field headings stay pink — light-bg p/li black !important was winning over
   li.gfield_html p { color:#E81E75 } in form-block / standard-form-block inline CSS */
.bg-white li.gfield_html p,
.bg-none li.gfield_html p,
.bg-light-blue li.gfield_html p,
.bg-light-pink li.gfield_html p,
section.form-block li.gfield_html p,
section.standard-form-block li.gfield_html p,
section.form-block .gform_wrapper .gfield_html p,
section.standard-form-block .gform_wrapper .gfield_html p {
	color: #e81e75 !important;
}

/* ---------- Module-level contrast (beats hard-coded pink/black) ---------- */

/* Two-column text */
body.template-flexible section.two-column-text-block.bg-purple .title-block h2.large,
body.template-flexible section.two-column-text-block.bg-purple h2.large,
body.template-flexible section.two-column-text-block.bg-dark-purple .title-block h2.large,
body.template-flexible section.two-column-text-block.bg-dark-purple h2.large,
body.template-flexible section.two-column-text-block.bg-blue .title-block h2.large,
body.template-flexible section.two-column-text-block.bg-blue h2.large,
body.template-flexible section.two-column-text-block.bg-fuschia .title-block h2.large,
body.template-flexible section.two-column-text-block.bg-fuschia h2.large {
	color: #fff !important;
}
body.template-flexible section.two-column-text-block.bg-purple .text-block-inner p,
body.template-flexible section.two-column-text-block.bg-purple .column p,
body.template-flexible section.two-column-text-block.bg-purple .text-block-inner p strong,
body.template-flexible section.two-column-text-block.bg-purple .text-block-inner p b,
body.template-flexible section.two-column-text-block.bg-dark-purple .text-block-inner p,
body.template-flexible section.two-column-text-block.bg-dark-purple .column p,
body.template-flexible section.two-column-text-block.bg-dark-purple .text-block-inner p strong,
body.template-flexible section.two-column-text-block.bg-dark-purple .text-block-inner p b,
body.template-flexible section.two-column-text-block.bg-blue .text-block-inner p,
body.template-flexible section.two-column-text-block.bg-blue .column p,
body.template-flexible section.two-column-text-block.bg-blue .text-block-inner p strong,
body.template-flexible section.two-column-text-block.bg-blue .text-block-inner p b,
body.template-flexible section.two-column-text-block.bg-fuschia .text-block-inner p,
body.template-flexible section.two-column-text-block.bg-fuschia .column p,
body.template-flexible section.two-column-text-block.bg-fuschia .text-block-inner p strong,
body.template-flexible section.two-column-text-block.bg-fuschia .text-block-inner p b {
	color: #fff !important;
}
body.template-flexible section.two-column-text-block.bg-light-blue .title-block h2.large,
body.template-flexible section.two-column-text-block.bg-light-blue h2.large {
	color: #220090 !important;
}
body.template-flexible section.two-column-text-block.bg-light-pink .title-block h2.large,
body.template-flexible section.two-column-text-block.bg-light-pink h2.large {
	color: #580f8b !important;
}

/* Logos */
section.logo-block.bg-purple,
section.logo-block.bg-dark-purple,
section.logo-block.bg-blue,
section.logo-block.bg-fuschia {
	background-color: inherit; /* class already sets bg */
}
section.logo-block.bg-purple .logo-block__inner,
section.logo-block.bg-dark-purple .logo-block__inner,
section.logo-block.bg-blue .logo-block__inner,
section.logo-block.bg-fuschia .logo-block__inner {
	border-top-color: #fff !important;
	border-bottom-color: #fff !important;
}
section.logo-block.bg-purple h2.alternative,
section.logo-block.bg-dark-purple h2.alternative,
section.logo-block.bg-blue h2.alternative,
section.logo-block.bg-fuschia h2.alternative {
	color: #fff !important;
}
section.logo-block.bg-purple .logo-wrapper .logo-img,
section.logo-block.bg-dark-purple .logo-wrapper .logo-img,
section.logo-block.bg-blue .logo-wrapper .logo-img,
section.logo-block.bg-fuschia .logo-wrapper .logo-img {
	/* dark-logo assets on dark purple: lighten without destroying colour logos when possible */
	filter: brightness(0) invert(1);
	opacity: 0.95;
}
section.logo-block.bg-light-blue h2.alternative,
section.logo-block.bg-light-pink h2.alternative {
	color: #e81e75 !important;
}
section.logo-block.bg-light-blue .logo-block__inner,
section.logo-block.bg-light-pink .logo-block__inner {
	border-top-color: #e81e75 !important;
	border-bottom-color: #e81e75 !important;
}

/* Heading block */
section.heading-block.bg-purple .heading-block__title,
section.heading-block.bg-dark-purple .heading-block__title,
section.heading-block.bg-blue .heading-block__title,
section.heading-block.bg-fuschia .heading-block__title {
	color: #fff !important;
}
section.heading-block.bg-light-blue .heading-block__title {
	color: #e81e75 !important;
}
section.heading-block.bg-light-blue.heading-style-blue .heading-block__title {
	color: #220090 !important;
}
section.heading-block.bg-light-pink .heading-block__title {
	color: #580f8b !important;
}
section.heading-block.bg-white .heading-block__title,
section.heading-block.bg-none .heading-block__title {
	color: #e81e75 !important;
}

/* Four-column list */
section.four-column-list-repeater-block.bg-purple,
section.four-column-list-repeater-block.bg-dark-purple,
section.four-column-list-repeater-block.bg-blue,
section.four-column-list-repeater-block.bg-fuschia {
	background-color: inherit !important;
}
section.four-column-list-repeater-block.bg-purple .list-title h3,
section.four-column-list-repeater-block.bg-dark-purple .list-title h3,
section.four-column-list-repeater-block.bg-blue .list-title h3,
section.four-column-list-repeater-block.bg-fuschia .list-title h3 {
	color: #fff !important;
}
section.four-column-list-repeater-block.bg-purple .text-block p,
section.four-column-list-repeater-block.bg-dark-purple .text-block p,
section.four-column-list-repeater-block.bg-blue .text-block p,
section.four-column-list-repeater-block.bg-fuschia .text-block p {
	color: #fff !important;
}
section.four-column-list-repeater-block.bg-purple .list-block.desktop .list,
section.four-column-list-repeater-block.bg-dark-purple .list-block.desktop .list,
section.four-column-list-repeater-block.bg-blue .list-block.desktop .list,
section.four-column-list-repeater-block.bg-fuschia .list-block.desktop .list {
	border-top-color: rgba(255, 255, 255, 0.85) !important;
}
section.four-column-list-repeater-block.bg-purple .list-block.desktop .list:last-child,
section.four-column-list-repeater-block.bg-dark-purple .list-block.desktop .list:last-child,
section.four-column-list-repeater-block.bg-blue .list-block.desktop .list:last-child,
section.four-column-list-repeater-block.bg-fuschia .list-block.desktop .list:last-child {
	border-bottom-color: rgba(255, 255, 255, 0.85) !important;
}
section.four-column-list-repeater-block.bg-light-blue .list-title h3,
section.four-column-list-repeater-block.bg-light-pink .list-title h3,
section.four-column-list-repeater-block.bg-white .list-title h3 {
	color: #e81e75 !important;
}
section.four-column-list-repeater-block.bg-light-blue .text-block p,
section.four-column-list-repeater-block.bg-light-pink .text-block p,
section.four-column-list-repeater-block.bg-white .text-block p {
	color: #000 !important;
}

/* Reviews embed */
section.reviews-embed-block.bg-purple .reviews-embed-block__title,
section.reviews-embed-block.bg-dark-purple .reviews-embed-block__title,
section.reviews-embed-block.bg-blue .reviews-embed-block__title,
section.reviews-embed-block.bg-fuschia .reviews-embed-block__title {
	color: #fff !important;
}
section.reviews-embed-block.bg-light-blue .reviews-embed-block__title {
	color: #220090 !important;
}
section.reviews-embed-block.bg-light-pink .reviews-embed-block__title {
	color: #580f8b !important;
}
section.reviews-embed-block.bg-white .reviews-embed-block__title,
section.reviews-embed-block.bg-none .reviews-embed-block__title {
	color: #220090 !important;
}

/* FAQ */
section.faq-block.bg-purple .faq-block__title,
section.faq-block.bg-dark-purple .faq-block__title,
section.faq-block.bg-blue .faq-block__title,
section.faq-block.bg-fuschia .faq-block__title,
section.faq-block.bg-purple .faq-item__question,
section.faq-block.bg-dark-purple .faq-item__question,
section.faq-block.bg-blue .faq-item__question,
section.faq-block.bg-fuschia .faq-item__question {
	color: #fff !important;
}
section.faq-block.bg-purple .faq-item__answer,
section.faq-block.bg-purple .faq-item__answer p,
section.faq-block.bg-dark-purple .faq-item__answer,
section.faq-block.bg-dark-purple .faq-item__answer p,
section.faq-block.bg-blue .faq-item__answer,
section.faq-block.bg-blue .faq-item__answer p,
section.faq-block.bg-fuschia .faq-item__answer,
section.faq-block.bg-fuschia .faq-item__answer p {
	color: #fff !important;
}
section.faq-block.bg-purple .faq-item,
section.faq-block.bg-dark-purple .faq-item,
section.faq-block.bg-blue .faq-item,
section.faq-block.bg-fuschia .faq-item {
	border-top-color: rgba(255, 255, 255, 0.85) !important;
}
section.faq-block.bg-purple .faq-item:last-child,
section.faq-block.bg-dark-purple .faq-item:last-child,
section.faq-block.bg-blue .faq-item:last-child,
section.faq-block.bg-fuschia .faq-item:last-child {
	border-bottom-color: rgba(255, 255, 255, 0.85) !important;
}
section.faq-block.bg-purple .faq-item__icon::before,
section.faq-block.bg-purple .faq-item__icon::after,
section.faq-block.bg-dark-purple .faq-item__icon::before,
section.faq-block.bg-dark-purple .faq-item__icon::after,
section.faq-block.bg-blue .faq-item__icon::before,
section.faq-block.bg-blue .faq-item__icon::after,
section.faq-block.bg-fuschia .faq-item__icon::before,
section.faq-block.bg-fuschia .faq-item__icon::after {
	background: #fff !important;
}
section.faq-block.bg-light-blue .faq-block__title,
section.faq-block.bg-light-blue .faq-item__question,
section.faq-block.bg-light-pink .faq-block__title,
section.faq-block.bg-light-pink .faq-item__question,
section.faq-block.bg-white .faq-block__title,
section.faq-block.bg-white .faq-item__question {
	color: #e81e75 !important;
}
section.faq-block.bg-light-blue .faq-item__answer,
section.faq-block.bg-light-blue .faq-item__answer p,
section.faq-block.bg-light-pink .faq-item__answer,
section.faq-block.bg-light-pink .faq-item__answer p,
section.faq-block.bg-white .faq-item__answer,
section.faq-block.bg-white .faq-item__answer p {
	color: #000 !important;
}

/* Image + text (booking) */
section.image-text-block.bg-purple h2,
section.image-text-block.bg-dark-purple h2,
section.image-text-block.bg-blue h2,
section.image-text-block.bg-fuschia h2,
section.image-text-block.bg-purple .text-block,
section.image-text-block.bg-purple .text-block p,
section.image-text-block.bg-purple .text-block li,
section.image-text-block.bg-dark-purple .text-block,
section.image-text-block.bg-dark-purple .text-block p,
section.image-text-block.bg-dark-purple .text-block li,
section.image-text-block.bg-blue .text-block,
section.image-text-block.bg-blue .text-block p,
section.image-text-block.bg-blue .text-block li,
section.image-text-block.bg-fuschia .text-block,
section.image-text-block.bg-fuschia .text-block p,
section.image-text-block.bg-fuschia .text-block li {
	color: #fff !important;
}
section.image-text-block.bg-light-blue h2 {
	color: #220090 !important;
}
section.image-text-block.bg-light-pink h2 {
	color: #580f8b !important;
}
section.image-text-block.bg-white h2,
section.image-text-block.bg-none h2 {
	color: #220090 !important;
}
section.image-text-block.bg-light-blue .text-block,
section.image-text-block.bg-light-blue .text-block p,
section.image-text-block.bg-light-blue .text-block li,
section.image-text-block.bg-light-pink .text-block,
section.image-text-block.bg-light-pink .text-block p,
section.image-text-block.bg-light-pink .text-block li,
section.image-text-block.bg-white .text-block,
section.image-text-block.bg-white .text-block p,
section.image-text-block.bg-white .text-block li {
	color: #000 !important;
}
section.image-text-block.bg-purple .stdBtn,
section.image-text-block.bg-dark-purple .stdBtn,
section.image-text-block.bg-blue .stdBtn,
section.image-text-block.bg-fuschia .stdBtn {
	background: #fff !important;
	color: var(--oms-on-bg-accent, #bc34ba) !important;
	border-color: #fff !important;
}

/* Ticker already inherits font_colour from ACF; ensure links inherit */
section.ticker-block.bg-purple a,
section.ticker-block.bg-dark-purple a,
section.ticker-block.bg-blue a,
section.ticker-block.bg-fuschia a {
	color: inherit !important;
}

/* Generic buttons on dark modules */
.bg-purple .stdBtn,
.bg-dark-purple .stdBtn,
.bg-blue .stdBtn,
.bg-fuschia .stdBtn {
	background: #fff !important;
	color: inherit !important;
	border: none !important;
}
.bg-purple .stdBtn { color: #bc34ba !important; }
.bg-dark-purple .stdBtn { color: #580f8b !important; }
.bg-blue .stdBtn { color: #220090 !important; }
.bg-fuschia .stdBtn { color: #e81e75 !important; }

/* ==========================================================================
   Header — nav top-aligned with the logo (Figma)
   main.min pushes .headerRight down 28px, which optically centres the nav
   against the full-size logo block. Desktop only: the ≤767 rule positions
   the burger.

   Not in the scrolled state: there the logo shrinks to 40px and main.min's
   7px padding-top is what vertically centres the 26px nav against it, so
   zeroing it there pushes the menu 7px high.
   ========================================================================== */
@media (min-width: 768px) {
	header.header:not(.scrolled) .headerRight {
		padding-top: 0 !important;
	}
}

/* ==========================================================================
   Banner / hero — centered title, bottom aligned 120px from image (Figma)
   Applies to every template so page banners match the campaign landing page.
   ========================================================================== */
section.banner.small {
	min-height: 550px;
	height: 550px;
}
section.banner.small .image-overlay {
	background: rgba(0, 0, 0, 0.4);
}
section.banner.small .column.banner-title,
section.banner.small .column.one-half {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	left: 0 !important;
	right: 0 !important;
	display: flex !important;
	align-items: flex-end;
	justify-content: center;
	height: 100%;
	padding: 0 0 120px !important;
	position: absolute !important;
	top: 0;
}
section.banner.small h1 {
	color: #fff !important;
	text-align: center !important;
	font-size: 80px !important;
	max-width: 720px;
	margin: 0 auto !important;
	position: relative !important;
	top: auto !important;
	bottom: auto !important;
	right: auto !important;
	left: auto !important;
	width: 100%;
	padding: 0 30px;
}
@media (max-width: 767px) {
	/* #46 Mobile header image — match live fixed height, not full-viewport bleed */
	section.banner.small {
		min-height: 400px !important;
		height: 400px !important;
		max-height: 400px !important;
	}
	section.banner.small .image-size-container {
		height: 100% !important;
		max-height: 400px !important;
	}
	section.banner.small .image-size-container .bg-container img {
		object-fit: cover !important;
		object-position: center center !important;
		width: 100% !important;
		height: 100% !important;
	}
	section.banner.small .column.banner-title,
	section.banner.small .column.one-half {
		align-items: flex-end !important;
		justify-content: flex-start !important;
		padding: 0 20px 40px !important;
		box-sizing: border-box;
	}
	section.banner.small h1 {
		font-size: 45px !important;
		line-height: 40px !important;
		letter-spacing: -2.25px !important;
		text-align: left !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		width: 100%;
	}
	/* Hide mic prop on mobile so it doesn't fight title */
	section.banner.small .overlay-shape {
		display: none !important;
	}
}

/* ==========================================================================
   Two column text — top-align title + body (intro + mixcloud)
   ========================================================================== */
body.template-flexible section.two-column-text-block {
	padding: 100px 0 80px;
}
body.template-flexible section.two-column-text-block > .container {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start; /* top align columns */
}
body.template-flexible section.two-column-text-block > .container::after,
body.template-flexible section.two-column-text-block > .container::before {
	display: none !important;
}
body.template-flexible section.two-column-text-block .column.one-half {
	float: none !important;
	width: 50% !important;
	padding-top: 0 !important;
	margin-top: 0 !important;
	vertical-align: top;
}
body.template-flexible section.two-column-text-block .title-block {
	display: block;
	margin: 0;
	padding: 0;
}
/* #40 Match live two-column titles (not campaign 70px blue h2.large).
   Live: BoldIt face, 40px / 1.13, #e81e75, right-aligned. */
body.template-flexible section.two-column-text-block .title-block h2.large,
body.template-flexible section.two-column-text-block h2.large,
body.template-flexible section.two-column-text-block .title-block h2,
body.template-flexible section.two-column-text-block h2,
body.template-about section.two-column-text-block .title-block h2.large,
body.template-about section.two-column-text-block h2.large,
body.template-about section.two-column-text-block .title-block h2,
body.template-about section.two-column-text-block h2 {
	text-align: right !important;
	font-size: 40px !important;
	line-height: 1.13 !important;
	letter-spacing: -1px !important;
	color: #e81e75 !important;
	margin: 0 !important;
	padding: 0 !important;
	padding-top: 0 !important;
	/* #63 Paul: pink left heading is semi-bold, not bold. */
	font-family: "SourceSerifPro-SemiBoldIt", "SourceSerifPro-BoldIt", sans-serif !important;
	font-weight: 400 !important;
	font-style: normal !important; /* SemiBoldIt face is already italic design */
}
body.template-flexible section.two-column-text-block.heading-align-left .title-block h2.large {
	text-align: left;
}
body.template-flexible section.two-column-text-block.heading-align-center .title-block h2.large {
	text-align: center;
}
body.template-flexible section.two-column-text-block .text-block-inner {
	margin: 0;
	padding: 0;
}
body.template-flexible section.two-column-text-block .text-block-inner > *:first-child {
	margin-top: 0 !important;
}
body.template-flexible section.two-column-text-block .text-block-inner p,
body.template-flexible section.two-column-text-block .column p {
	font-size: 18px !important;
	line-height: 30px !important;
	margin-bottom: 20px;
	color: #000 !important;
}
body.template-flexible section.two-column-text-block .text-block-inner p strong,
body.template-flexible section.two-column-text-block .text-block-inner p b,
body.template-flexible section.two-column-text-block .column p strong,
body.template-flexible section.two-column-text-block .column p b {
	font-weight: 700 !important;
	font-family: "Source Sans Pro", sans-serif !important;
	color: #000 !important; /* main CSS wrongly paints these pink italic */
}
/* Figma: body copy is Regular — the lead paragraph is not bold */
body.template-flexible section.two-column-text-block .text-block-inner p,
body.template-flexible section.two-column-text-block .column p {
	font-weight: 400 !important;
	font-family: "Source Sans Pro", sans-serif !important;
}
body.template-flexible section.two-column-text-block .column.one-half:first-child,
body.template-flexible section.two-column-text-block .title-block h2.large {
	padding-top: 0 !important;
}
body.template-flexible section.two-column-text-block iframe {
	width: 100%;
	max-width: 100%;
	margin-top: 20px;
}
@media (max-width: 767px) {
	/* Figma mobile: 35px / 35lh / tracking -1.75 */
	body.template-flexible section.two-column-text-block {
		padding: 54px 0 40px !important; /* 60 − 6 requested */
	}
	body.template-flexible section.two-column-text-block > .container {
		display: block;
	}
	body.template-flexible section.two-column-text-block .column.one-half {
		width: 100% !important;
	}
	/* Live mobile: 30px BoldIt pink, left */
	body.template-flexible section.two-column-text-block .title-block h2.large,
	body.template-flexible section.two-column-text-block h2.large,
	body.template-flexible section.two-column-text-block .title-block h2,
	body.template-flexible section.two-column-text-block h2,
	body.template-about section.two-column-text-block .title-block h2.large,
	body.template-about section.two-column-text-block h2.large,
	body.template-about section.two-column-text-block .title-block h2,
	body.template-about section.two-column-text-block h2 {
		text-align: left !important;
		font-size: 30px !important;
		line-height: 1.13 !important;
		letter-spacing: -1px !important;
		margin: 0 0 20px !important;
		color: #e81e75 !important;
		/* #63 mobile: same semi-bold italic face as desktop. */
		font-family: "SourceSerifPro-SemiBoldIt", "SourceSerifPro-BoldIt", sans-serif !important;
		font-weight: 400 !important;
		font-style: normal !important;
	}
	body.template-flexible section.two-column-text-block .text-block-inner p,
	body.template-flexible section.two-column-text-block .column p {
		font-size: 16px !important;
		line-height: 25px !important;
	}
}

/* Body copy sits level with the heading. main.min drops the second
   .column.one-half by 68px; kill it per-module rather than globally, since
   the CTA / testimonials blocks lean on that offset for their layout. */
section.two-column-text-block .column.one-half,
section.intro-block .column.one-half {
	padding-top: 0 !important;
}
body.template-about section.two-column-text-block h2.large {
	padding-top: 0 !important;
}

/* ==========================================================================
   Logos — pink rules inside container, visible logos
   ========================================================================== */
section.logo-block {
	padding: 0 !important;
	border: none !important;
	background: #fff;
}
section.logo-block .container {
	/* keep site shell padding */
}
section.logo-block .logo-block__inner {
	border-top: 1px solid #e81e75;
	border-bottom: 1px solid #e81e75;
	padding: 50px 0;
	text-align: center;
	/* Stack title + logos with real gap (h2 was float:left → title-block height 0) */
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 40px !important;
}
section.logo-block.hide-top-border .logo-block__inner {
	border-top: 0 !important;
}
section.logo-block .title-block {
	float: none !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
	text-align: center;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
}
section.logo-block h2.alternative {
	float: none !important; /* main CSS floats headings — was collapsing parent */
	display: block !important;
	width: 100% !important;
	font-family: "SourceSerifPro-SemiBoldIt", "SourceSerifPro-BoldIt", serif !important;
	font-size: 40px !important;
	line-height: 1.15 !important;
	color: #e81e75 !important;
	text-align: center !important;
	letter-spacing: -0.05em !important; /* -5% */
	margin: 0 !important;
	padding: 0 !important;
}
section.logo-block .logo-wrapper {
	float: none !important;
	clear: both !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 28px 48px;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}
section.logo-block .logo-wrapper .logo {
	position: relative !important;
	float: none !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	height: auto !important;
	min-height: 44px;
	margin: 0 !important;
}
section.logo-block .logo-wrapper .logo-img,
section.logo-block .logo-wrapper .image {
	position: static !important;
	display: block !important;
	width: auto !important;
	height: 40px !important;
	max-width: 160px;
	object-fit: contain;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}
/* if still using bg-image span */
section.logo-block .logo-wrapper span.image {
	width: 150px !important;
	height: 44px !important;
}
@media (max-width: 767px) {
	/*
	 * Mobile logos:
	 * main.min at ≤640px sets .logo { width:60%; clear:both; height:60px; margin:23px }
	 * which stacks logos + creates huge empty space. Kill that.
	 * Figma: title 25px italic, logos one tight row, ~24–32px under title.
	 */
	section.logo-block .logo-block__inner {
		padding: 32px 0 !important;
		gap: 24px !important; /* only source of title→logos space */
		align-items: stretch !important;
	}
	section.logo-block .title-block {
		margin: 0 !important; /* do not stack on flex gap */
		text-align: left !important;
		width: 100% !important;
	}
	section.logo-block h2.alternative {
		font-size: 25px !important;
		line-height: 25px !important;
		letter-spacing: -1.25px !important;
		text-align: left !important;
		float: none !important;
		width: 100% !important;
	}
	section.logo-block .logo-wrapper {
		/* Explicit 4-column grid on mobile */
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		grid-template-rows: auto !important;
		align-items: center !important;
		justify-items: center !important;
		column-gap: 8px !important;
		row-gap: 0 !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		float: none !important;
		flex-wrap: unset !important;
	}
	section.logo-block .logo-wrapper .logo,
	section.logo-block .logo-wrapper a.logo,
	section.logo-block .logo-wrapper span.logo {
		/* override main 640px: width 60% / clear both / height 60 / margin 23 */
		position: relative !important;
		float: none !important;
		clear: none !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		grid-column: auto !important;
		flex: none !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	section.logo-block .logo-wrapper .logo-img,
	section.logo-block .logo-wrapper .image {
		position: static !important;
		display: block !important;
		height: 22px !important;
		width: auto !important;
		max-width: 100% !important;
		object-fit: contain !important;
		margin: 0 auto !important;
	}
}

/* ==========================================================================
   Heading block + four column services band
   Figma: py 120 desktop, full light-blue band
   ========================================================================== */
section.heading-block {
	padding: 120px 0 40px !important;
	text-align: center;
}
section.heading-block.tight-bottom {
	padding-bottom: 40px !important;
}
section.heading-block .heading-block__title {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif;
	font-weight: 600;
	font-size: 70px;
	line-height: 0.95;
	letter-spacing: -3.5px;
	color: #e81e75;
	margin: 0;
	text-align: center;
}
section.heading-block.heading-style-blue .heading-block__title { color: #220090; }
section.heading-block.heading-style-white .heading-block__title { color: #fff; }

/* With a band bg, top pad matches bottom so titles aren’t flush on the colour. */
section.heading-block.bg-light-blue + section.four-column-list-repeater-block.bg-light-blue,
section.heading-block.bg-light-blue + section.four-column-list-repeater-block {
	padding-top: 120px !important;
}

section.four-column-list-repeater-block {
	background-color: #c4d4ed;
	padding: 120px 0 !important; /* top = bottom when module has a fill */
}
/* Explicit bg utilities (Friends etc.) — same even vertical inset */
section.four-column-list-repeater-block.bg-light-blue,
section.four-column-list-repeater-block.bg-light-pink,
section.four-column-list-repeater-block.bg-white,
section.four-column-list-repeater-block.bg-purple,
section.four-column-list-repeater-block.bg-dark-purple,
section.four-column-list-repeater-block.bg-blue,
section.four-column-list-repeater-block.bg-fuschia {
	padding-top: 120px !important;
	padding-bottom: 120px !important;
}
/* #51 Friends / four-col lists — wrap every 4 columns (live behaviour).
   nowrap was crushing all 10 categories into one unreadable row. */
section.four-column-list-repeater-block .list-block.desktop {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: 40px;
	row-gap: 48px;
	list-style: none;
	padding: 0;
	margin: 0;
	text-align: left;
	float: none !important;
	width: 100% !important;
}
section.four-column-list-repeater-block .list-block.desktop .list {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	flex: none !important;
	clear: none !important;
	display: block !important;
}
/* #51 Aleks: pink category headings bold (match live BoldIt, not mixed SemiBold) */
section.four-column-list-repeater-block .list-block.desktop .list-title h3 {
	font-family: "SourceSerifPro-BoldIt", "SourceSerifPro-SemiBoldIt", serif !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: 20px !important;
	line-height: 30px !important;
	color: #e81e75 !important;
	margin: 0 0 16px !important;
	letter-spacing: 0;
	text-align: left;
}
/* Body + links + bracket italics: one size so nested em/a don’t look bigger */
section.four-column-list-repeater-block .list-block.desktop .text-block,
section.four-column-list-repeater-block .list-block.desktop .text-block p,
section.four-column-list-repeater-block .list-block.desktop .text-block a,
section.four-column-list-repeater-block .list-block.desktop .text-block em,
section.four-column-list-repeater-block .list-block.desktop .text-block i,
section.four-column-list-repeater-block .list-block.desktop .text-block strong,
section.four-column-list-repeater-block .list-block.desktop .text-block span {
	font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
	font-size: 18px !important;
	line-height: 30px !important;
	font-weight: 400 !important;
	font-style: normal !important;
	color: #000 !important;
	margin: 0;
}
section.four-column-list-repeater-block .list-block.desktop .text-block a {
	color: #220090 !important;
	text-decoration: underline;
}
section.four-column-list-repeater-block .list-block.desktop .text-block em,
section.four-column-list-repeater-block .list-block.desktop .text-block i {
	font-style: italic !important;
}

@media (max-width: 1023px) {
	section.heading-block {
		padding: 80px 0 30px !important;
	}
	section.heading-block .heading-block__title {
		font-size: 48px;
	}
	section.four-column-list-repeater-block,
	section.four-column-list-repeater-block.bg-light-blue,
	section.four-column-list-repeater-block.bg-light-pink,
	section.four-column-list-repeater-block.bg-white,
	section.four-column-list-repeater-block.bg-purple,
	section.four-column-list-repeater-block.bg-dark-purple,
	section.four-column-list-repeater-block.bg-blue,
	section.four-column-list-repeater-block.bg-fuschia {
		padding: 80px 0 !important; /* top = bottom at tablet */
	}
	section.heading-block.bg-light-blue + section.four-column-list-repeater-block.bg-light-blue,
	section.heading-block.bg-light-blue + section.four-column-list-repeater-block {
		padding-top: 80px !important;
	}
	section.four-column-list-repeater-block .list-block.desktop {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 28px;
		row-gap: 40px;
	}
	section.four-column-list-repeater-block .list-block.desktop .list {
		width: auto !important;
	}
}

@media (max-width: 767px) {
	/* Figma mobile services band: py 60, gap 40, pink rules */
	section.heading-block {
		padding: 60px 0 0 !important;
	}
	section.heading-block.tight-bottom {
		padding-bottom: 0 !important;
	}
	section.heading-block .heading-block__title {
		font-size: 35px !important;
		line-height: 35px !important;
		letter-spacing: -1.75px !important;
		text-align: left !important;
		margin: 0 0 40px !important;
	}
	/* Friends / four-col mobile: equal vertical pad on bg band */
	section.heading-block.bg-light-blue + section.four-column-list-repeater-block.bg-light-blue,
	section.heading-block.bg-light-blue + section.four-column-list-repeater-block {
		padding-top: 60px !important;
	}
	section.four-column-list-repeater-block,
	section.four-column-list-repeater-block.bg-light-blue,
	section.four-column-list-repeater-block.bg-light-pink,
	section.four-column-list-repeater-block.bg-white,
	section.four-column-list-repeater-block.bg-purple,
	section.four-column-list-repeater-block.bg-dark-purple,
	section.four-column-list-repeater-block.bg-blue,
	section.four-column-list-repeater-block.bg-fuschia {
		padding: 60px 0 !important; /* top = bottom */
	}
	/* Mobile: hide grid list, show accordion (restores original Friends behaviour).
	   Campaign previously forced expanded list + hid faq-block — Paul: accordions gone. */
	section.four-column-list-repeater-block .list-block.desktop {
		display: none !important;
	}
	section.four-column-list-repeater-block ul.faq-block {
		display: block !important;
		float: none;
		width: 100%;
		list-style: none;
		padding: 0;
		margin: 0;
	}
	section.four-column-list-repeater-block ul.faq-block .faq-single {
		float: none;
		width: 100%;
		position: relative;
		margin: 0;
		padding: 0;
		border-top: 1px solid #e81e75;
	}
	/* #52 / Paul: no line above the first category */
	section.four-column-list-repeater-block ul.faq-block .faq-single:first-child {
		border-top: 0;
	}
	section.four-column-list-repeater-block ul.faq-block .faq-single:last-child {
		border-bottom: 1px solid #e81e75;
	}
	section.four-column-list-repeater-block ul.faq-block .question {
		float: none;
		width: 100%;
		position: relative;
		cursor: pointer;
		padding: 24px 36px 24px 0;
		box-sizing: border-box;
	}
	section.four-column-list-repeater-block ul.faq-block .question h3 {
		float: none;
		display: block;
		width: auto;
		max-width: calc(100% - 28px);
		font-family: "SourceSerifPro-BoldIt", "SourceSerifPro-SemiBoldIt", serif !important;
		font-style: italic !important;
		font-weight: 700 !important;
		font-size: 18px !important;
		line-height: 25px !important;
		letter-spacing: 0;
		color: #e81e75 !important;
		text-align: left;
		padding-right: 0;
		margin: 0 !important;
	}
	section.four-column-list-repeater-block ul.faq-block .question h3.active {
		margin-bottom: 0 !important;
	}
	section.four-column-list-repeater-block ul.faq-block .question img {
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
		width: 16px;
		height: auto;
		transition: transform 0.25s ease;
	}
	section.four-column-list-repeater-block ul.faq-block .question img.rotate {
		transform: translateY(-50%) rotate(180deg);
	}
	section.four-column-list-repeater-block ul.faq-block .answer {
		float: none;
		width: 100%;
		display: none;
		padding: 0 0 24px;
	}
	section.four-column-list-repeater-block ul.faq-block .answer.active {
		display: block;
	}
	section.four-column-list-repeater-block ul.faq-block .answer,
	section.four-column-list-repeater-block ul.faq-block .answer p,
	section.four-column-list-repeater-block ul.faq-block .answer li,
	section.four-column-list-repeater-block ul.faq-block .answer a,
	section.four-column-list-repeater-block ul.faq-block .answer em,
	section.four-column-list-repeater-block ul.faq-block .answer i,
	section.four-column-list-repeater-block ul.faq-block .answer span {
		font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
		font-size: 16px !important;
		line-height: 25px !important;
		font-weight: 400 !important;
		font-style: normal !important;
		color: #000 !important;
		text-align: left;
		margin: 0 0 8px;
	}
	section.four-column-list-repeater-block ul.faq-block .answer p:last-child,
	section.four-column-list-repeater-block ul.faq-block .answer li:last-child {
		margin-bottom: 0;
	}
	section.four-column-list-repeater-block ul.faq-block .answer a {
		color: #220090 !important;
		text-decoration: underline;
	}
	section.four-column-list-repeater-block ul.faq-block .answer em,
	section.four-column-list-repeater-block ul.faq-block .answer i {
		font-style: italic !important;
	}
}

/* ==========================================================================
   Reviews embed
   ========================================================================== */
section.reviews-embed-block {
	padding: 100px 0 80px;
	text-align: center;
}
section.reviews-embed-block .reviews-embed-block__title {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif;
	font-weight: 600;
	font-size: 70px;
	line-height: 0.95;
	letter-spacing: -3.5px;
	color: #220090;
	margin: 0 0 64px; /* 40 + 24 requested */
	text-align: center;
}
section.reviews-embed-block .reviews-embed-block__embed {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	overflow-x: auto;
}
@media (max-width: 767px) {
	section.reviews-embed-block { padding: 50px 0 40px; }
	section.reviews-embed-block .reviews-embed-block__title {
		font-size: 35px !important;
		line-height: 35px !important;
		letter-spacing: -1.75px !important;
		text-align: left;
		margin-bottom: 24px;
	}
}

/* ==========================================================================
   Ticker — was 700s, make it actually move
   ========================================================================== */
section.ticker-block {
	overflow: hidden;
	padding: 22px 0 !important;
}
/* Main CSS keyframes for move-text only define 0% (broken) + 700s duration.
   Replace with a working marquee. */
@keyframes move-text {
	0% { transform: translate3d(0, 0, 0); }
	100% { transform: translate3d(-50%, 0, 0); }
}
@-webkit-keyframes move-text {
	0% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
	100% { -webkit-transform: translate3d(-50%, 0, 0); transform: translate3d(-50%, 0, 0); }
}
/* The marquee translates -50%, so one half of the wrapper must be at least as
   wide as the viewport or the tail runs out and leaves a blank gap. The repeat
   count is fixed in PHP and the ticker text is CMS-driven, so the number of
   copies is topped up at runtime (see oms_ticker_fill in _head.php). Duration
   is a custom property so that script can keep the scroll speed constant
   without having to out-specify these !important declarations. */
section.ticker-block .moving-text-wrapper {
	display: flex !important;
	width: max-content !important;
	align-items: center;
	animation: move-text var(--oms-ticker-duration, 22s) linear infinite !important;
	-webkit-animation: move-text var(--oms-ticker-duration, 22s) linear infinite !important;
	will-change: transform;
}
/* Always Source Serif — beats main.min .moving-text.font-base (Sans Pro) */
section.ticker-block .moving-text,
section.ticker-block .moving-text.font-base,
section.ticker-block .moving-text.font-serif,
section.ticker-block .moving-text.font-bold-italic,
section.ticker-block .moving-text.font-black,
section.ticker-block a.ticker-link .moving-text {
	font-family: "SourceSerifPro-SemiBoldIt", "SourceSerifPro-BoldIt", "Source Serif Pro", Georgia, serif !important;
	font-style: italic !important;
	font-weight: 600 !important;
	letter-spacing: -0.05em !important; /* -5% at any size */
	text-transform: none !important;
	font-size: 40px !important;
	line-height: 1 !important;
}
@media (max-width: 767px) {
	/* Figma mobile ticker: 47px band = 11px padding + 25px line, tracking -5% */
	section.ticker-block {
		padding: 11px 0 !important;
	}
	/* Must mirror the desktop selector list above — .moving-text.font-serif et al
	   outrank a bare .moving-text even with !important. */
	section.ticker-block .moving-text,
	section.ticker-block .moving-text.font-base,
	section.ticker-block .moving-text.font-serif,
	section.ticker-block .moving-text.font-bold-italic,
	section.ticker-block .moving-text.font-black,
	section.ticker-block a.ticker-link .moving-text {
		font-size: 25px !important;
		line-height: 25px !important;
		margin: 0 12px !important;
	}
	section.ticker-block .moving-text-wrapper {
		--oms-ticker-duration: 14s;
	}
}
section.ticker-block .icon.is-empty,
section.ticker-block .icon:empty {
	display: none !important;
}
section.ticker-block a.ticker-link {
	color: inherit;
	text-decoration: none;
}

/* ==========================================================================
   FAQ — new accordion markup (.faq-item__header / __answer)
   ========================================================================== */
section.faq-block {
	padding: 100px 0 80px !important;
}
section.faq-block .faq-block__title {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif;
	font-weight: 600;
	font-size: 70px;
	line-height: 0.95;
	letter-spacing: -3.5px;
	color: #e81e75;
	text-align: center;
	margin: 0 0 74px; /* 60 + 14 requested */
}
section.faq-block .faq-items {
	float: left;
	width: 100%;
}
section.faq-block .faq-item {
	float: left;
	width: 100%;
	/* Single pink rule only — kill main.min light-blue border-bottom that stacked as a 2nd line */
	border: 0 !important;
	border-top: 1px solid #e81e75 !important;
	border-bottom: 0 !important;
	padding: 40px 0 !important;
	margin: 0;
}
/* #49 Hide first top line only when ACF "Hide first top line" is on */
section.faq-block.hide-first-line .faq-item:first-child {
	border-top: 0 !important;
}
section.faq-block .faq-item:last-child {
	border-bottom: 1px solid #e81e75 !important;
}
/* Old markup leftovers / main CSS */
section.faq-block .faq-item-wrapper .faq-item,
section.faq-block .faq-items .faq-item {
	border-bottom-color: transparent !important;
	box-shadow: none !important;
}
section.faq-block .faq-item__header {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	width: 100%;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	cursor: default;
	text-align: left;
	align-items: flex-start;
}
/* #51 Aleks: FAQ pink Qs bold italic — same decision as Friends categories */
section.faq-block .faq-item__question {
	display: block;
	font-family: "SourceSerifPro-BoldIt", "SourceSerifPro-SemiBoldIt", serif !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: 40px;
	/* #62 Paul: match the two-column heading spec — 40/45.2, tracking -1px. */
	line-height: 45.2px;
	letter-spacing: -1px;
	color: #e81e75;
	text-align: right;
}
section.faq-block .faq-item__icon {
	display: none;
}
section.faq-block .faq-item__answer {
	display: block;
	grid-column: 2;
	/* desktop: reflow answer under right column via negative grid on header */
}
/* Desktop two-col: header left Q, answer sits as second column visually */
section.faq-block:not(.is-mobile-accordion) .faq-item {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 93px;
	align-items: flex-start;
}
section.faq-block:not(.is-mobile-accordion) .faq-item__header {
	display: block;
	grid-column: 1;
}
section.faq-block:not(.is-mobile-accordion) .faq-item__answer {
	grid-column: 2;
	grid-row: 1;
}
section.faq-block .faq-item__answer,
section.faq-block .faq-item__answer p {
	font-size: 18px !important;
	line-height: 30px !important;
	color: #000 !important;
	margin: 0 !important;
}
section.faq-block .overlay-shape {
	display: none !important;
}

@media (max-width: 767px) {
	/* Figma mobile: FAQs 35px, Q 25px italic / -1.25 tracking, accordion */
	section.faq-block {
		padding: 50px 0 40px !important;
	}
	section.faq-block .faq-block__title {
		font-size: 35px !important;
		line-height: 35px !important;
		letter-spacing: -1.75px !important;
		text-align: left !important;
		margin: 0 0 40px !important;
	}
	section.faq-block .faq-item {
		display: block !important;
		padding: 20px 0 !important;
		border: 0 !important;
		border-top: 1px solid #e81e75 !important;
		border-bottom: 0 !important;
		box-shadow: none !important;
	}
	section.faq-block .faq-item:last-child {
		border-bottom: 1px solid #e81e75 !important;
	}
	section.faq-block .faq-item__header {
		display: flex !important;
		align-items: flex-start !important; /* icon top-aligned with heading */
		justify-content: space-between;
		gap: 16px;
		width: 100%;
		cursor: pointer;
		grid-template-columns: none;
	}
	section.faq-block .faq-item__question {
		flex: 1 1 auto;
		text-align: left !important;
		font-size: 25px !important;
		line-height: 25px !important;
		letter-spacing: -1.25px !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	section.faq-block .faq-item__icon {
		display: block !important;
		position: relative;
		flex: 0 0 25px;
		width: 25px;
		height: 25px;
		margin: 0; /* top aligned with question first line */
	}
	section.faq-block .faq-item__icon::before,
	section.faq-block .faq-item__icon::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		background: #e81e75;
		transform: translate(-50%, -50%);
	}
	section.faq-block .faq-item__icon::before {
		width: 16px;
		height: 2px;
	}
	section.faq-block .faq-item__icon::after {
		width: 2px;
		height: 16px;
		transition: opacity 0.15s ease;
	}
	section.faq-block .faq-item.is-open .faq-item__icon::after {
		opacity: 0; /* + becomes − */
	}
	section.faq-block .faq-item__answer {
		display: none !important;
		margin-top: 16px !important;
		padding: 0 !important;
	}
	section.faq-block .faq-item.is-open .faq-item__answer {
		display: block !important;
	}
	section.faq-block .faq-item__answer,
	section.faq-block .faq-item__answer p {
		font-size: 16px !important;
		line-height: 25px !important;
	}
	/* closed items: no answer space */
	section.faq-block .faq-item:not(.is-open) {
		padding: 20px 0 !important;
	}
	section.faq-block .faq-item.is-open {
		padding: 20px 0 24px !important;
	}
}

/* ==========================================================================
   Booking process (image + text) — light blue band, blue title, square image
   ========================================================================== */
/* Image + text — match live gradient frame (offset ::before + pink edge).
   Live: .bg-container overflow:visible, ::before full-size gradient offset
   -20/-20 when image is left, +20/+20 when image is right; 2px #ff8ddf border. */
section.image-text-block {
	padding: 120px 0 !important;
	/* live clips at section edges; keep room for 20px frame inside columns */
	overflow: hidden !important;
}
section.image-text-block.bg-light-blue {
	background-color: #c4d4ed !important;
}
section.image-text-block > .container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	overflow: visible !important;
}
section.image-text-block > .container::after,
section.image-text-block > .container::before {
	display: none !important;
}
section.image-text-block .column.image-block,
section.image-text-block .column.text-block {
	float: none !important;
	width: 50% !important;
	padding: 0 40px 0 0 !important;
	margin: 0 !important;
	overflow: visible !important;
}
/* image right of text (live homepage) — room for +20px frame bottom-right */
section.image-text-block .column.image-block.right,
section.image-text-block .column.image-block.image-right {
	order: 2;
	padding: 0 20px 20px 40px !important;
}
section.image-text-block .column.text-block.right,
section.image-text-block .column.text-block.image-right {
	order: 1;
	padding: 0 40px 0 0 !important;
}
/* image left of text — room for -20px frame top-left */
section.image-text-block .column.image-block.left,
section.image-text-block .column.image-block.image-left {
	padding: 20px 40px 0 20px !important;
}
section.image-text-block .column.text-block.left,
section.image-text-block .column.text-block.image-left {
	padding: 0 0 0 40px !important;
}
section.image-text-block .image-container {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	display: block !important;
	position: relative !important;
	overflow: visible !important;
}
section.image-text-block .image-container .image-size-container {
	float: none !important;
	clear: both !important;
	display: block !important;
	width: 100% !important;
	padding-top: 100% !important; /* square */
	position: relative !important;
	overflow: visible !important;
	border: 2px solid #ff8ddf !important;
	outline: none !important;
	box-shadow: none !important;
	background: transparent !important;
	z-index: 1;
}
section.image-text-block .column .image-container .image-size-container {
	border: 2px solid #ff8ddf !important;
	float: none !important;
	overflow: visible !important;
}
/* CRITICAL: live keeps overflow visible so the offset gradient can stick out */
section.image-text-block .image-container .bg-container,
section.image-text-block .column .image-container .image-size-container .bg-container {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	border: none !important;
	outline: none !important;
	overflow: visible !important;
	z-index: 0 !important;
	background: transparent !important;
}
/* Full-size gradient panel, shifted to create the “frame” behind the photo */
section.image-text-block .image-container .bg-container::before,
section.image-text-block .column .image-container .image-size-container .bg-container::before {
	content: "" !important;
	display: block !important;
	position: absolute !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 0 !important;
	pointer-events: none !important;
	background: #1d37a2 !important;
	background: linear-gradient(
		90deg,
		#1d37a2 0%,
		#bd2688 17%,
		#f476d2 52%,
		#551088 100%
	) !important;
}
/* Image on left → frame peeks top-left (live desktop -20/-20) */
section.image-text-block .column.image-block.left .image-container .bg-container::before,
section.image-text-block .column.image-block.image-left .image-container .bg-container::before,
section.image-text-block .column.image-left.image-block .image-container .bg-container::before {
	left: -20px !important;
	top: -20px !important;
	right: auto !important;
	bottom: auto !important;
}
/* Image on right → frame peeks bottom-right (live desktop +20/+20) */
section.image-text-block .column.image-block.right .image-container .bg-container::before,
section.image-text-block .column.image-block.image-right .image-container .bg-container::before,
section.image-text-block .column.image-right.image-block .image-container .bg-container::before {
	left: 20px !important;
	top: 20px !important;
	right: auto !important;
	bottom: auto !important;
}
/* Default if position class missing: same as left */
section.image-text-block .image-container .bg-container::before {
	left: -20px;
	top: -20px;
}
section.image-text-block .image-container img {
	object-fit: cover !important;
	object-position: center !important;
	width: 100% !important;
	height: 100% !important;
	display: block !important;
	position: relative !important;
	z-index: 2 !important; /* sit above gradient panel */
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
	background: #fff; /* no transparent holes showing gradient through image */
}
section.image-text-block .image-block,
section.image-text-block .image-container,
section.image-text-block .column.image-block {
	border: none !important;
	outline: none !important;
}
section.image-text-block h2 {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif !important;
	font-weight: 600 !important;
	font-style: normal !important;
	font-size: 70px !important;
	line-height: 0.95 !important;
	letter-spacing: -3.5px !important;
	color: #220090 !important;
	margin: 0 0 40px !important;
}
section.image-text-block .text-block,
section.image-text-block span.text-block {
	display: block;
}
section.image-text-block .text-block ol,
section.image-text-block span.text-block ol {
	padding-left: 1.25em;
	margin: 0;
	list-style: decimal;
}
section.image-text-block .text-block ol li,
section.image-text-block span.text-block ol li {
	font-size: 18px;
	line-height: 30px;
	color: #000;
	margin-bottom: 8px;
	font-family: "Source Sans Pro", sans-serif;
}
section.image-text-block .overlay-shape {
	display: none !important;
}

@media (max-width: 767px) {
	/* Figma mobile booking: stacked image → title → list, py 60, no border */
	section.image-text-block {
		padding: 60px 0 !important;
	}
	section.image-text-block > .container {
		display: block !important;
	}
	section.image-text-block .column.image-block,
	section.image-text-block .column.image-block.left,
	section.image-text-block .column.image-block.right,
	section.image-text-block .column.text-block,
	section.image-text-block .column.text-block.left,
	section.image-text-block .column.text-block.right {
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
		order: unset !important;
		clear: both !important;
	}
	/* Figma mobile Frame 54: image y60–420, title y460 → 40px gap.
	   Use padding (not margin) so it cannot collapse. */
	section.image-text-block .column.image-block,
	section.image-text-block .column.image-block.left,
	section.image-text-block .column.image-block.right {
		padding: 0 0 40px 0 !important;
		margin: 0 !important;
		height: auto !important;
		min-height: 0 !important;
	}
	section.image-text-block .column.text-block,
	section.image-text-block .column.text-block.left,
	section.image-text-block .column.text-block.right {
		padding: 0 !important;
		margin: 0 !important;
		height: auto !important;
	}
	section.image-text-block .image-container {
		width: 100% !important;
		float: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	section.image-text-block .column.image-block,
	section.image-text-block .column.image-block.left,
	section.image-text-block .column.image-block.right,
	section.image-text-block .column.image-block.image-left,
	section.image-text-block .column.image-block.image-right {
		/* room for ±10px mobile frame */
		padding: 10px 0 20px 0 !important;
	}
	section.image-text-block .image-container .image-size-container {
		float: none !important;
		width: 100% !important;
		padding-top: 100% !important;
		border: 2px solid #ff8ddf !important;
		outline: none !important;
		margin: 0 !important;
		overflow: visible !important;
	}
	/* Live mobile: -10/-10 for both left and right image positions */
	section.image-text-block .column.image-block.left .image-container .bg-container::before,
	section.image-text-block .column.image-block.image-left .image-container .bg-container::before,
	section.image-text-block .column.image-left.image-block .image-container .bg-container::before,
	section.image-text-block .column.image-block.right .image-container .bg-container::before,
	section.image-text-block .column.image-block.image-right .image-container .bg-container::before,
	section.image-text-block .column.image-right.image-block .image-container .bg-container::before,
	section.image-text-block .image-container .bg-container::before {
		left: -10px !important;
		top: -10px !important;
	}
	section.image-text-block h2 {
		font-size: 35px !important;
		line-height: 35px !important;
		letter-spacing: -1.75px !important;
		margin: 0 0 28px !important;
		padding: 0 !important;
		color: #220090 !important;
		height: auto !important;
		width: 100% !important;
	}
	section.image-text-block .text-block ol li,
	section.image-text-block span.text-block ol li {
		font-size: 16px !important;
		line-height: 25px !important;
		margin-bottom: 8px;
	}
}

/* ==========================================================================
   Form — brand-colour backgrounds (Figma campaign)
   White fields/borders/placeholders; white submit with brand-coloured text;
   large centered serif heading; 2-col grid desktop.
   ========================================================================== */
section.form-block.bg-fuschia,
section.form-block.bg-purple,
section.form-block.bg-dark-purple,
section.form-block.bg-blue {
	--oms-form-brand: #e81e75;
	padding: 100px 0 90px !important;
	color: #fff !important;
}
section.form-block.bg-fuschia {
	--oms-form-brand: #e81e75;
}
section.form-block.bg-purple {
	--oms-form-brand: #bc34ba;
}
section.form-block.bg-dark-purple {
	--oms-form-brand: #580f8b;
}
section.form-block.bg-blue {
	--oms-form-brand: #220090;
}

/* Heading ~70px desktop */
section.form-block.bg-fuschia .title-block,
section.form-block.bg-purple .title-block,
section.form-block.bg-dark-purple .title-block,
section.form-block.bg-blue .title-block {
	text-align: center !important;
	margin-bottom: 48px !important;
	padding: 0 !important;
	width: 100% !important;
	float: none !important;
}
section.form-block.bg-fuschia .title-block h2,
section.form-block.bg-fuschia .title-block h2.small,
section.form-block.bg-purple .title-block h2,
section.form-block.bg-purple .title-block h2.small,
section.form-block.bg-dark-purple .title-block h2,
section.form-block.bg-dark-purple .title-block h2.small,
section.form-block.bg-blue .title-block h2,
section.form-block.bg-blue .title-block h2.small {
	color: #fff !important;
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif !important;
	font-style: normal !important;
	font-weight: 600 !important;
	font-size: 70px !important;
	line-height: 0.95 !important;
	letter-spacing: -3.5px !important;
	text-align: center !important;
	max-width: 900px;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Shared form chrome on coloured BGs */
section.form-block.bg-fuschia .form-wrapper,
section.form-block.bg-purple .form-wrapper,
section.form-block.bg-dark-purple .form-wrapper,
section.form-block.bg-blue .form-wrapper {
	max-width: 820px;
	margin: 0 auto;
	float: none !important;
	width: 100% !important;
}

/*
 * Theme main.min hides ALL .gform_wrapper { display:none !important }
 * and only restores .form-wrapper .gform_wrapper. Be explicit for campaign
 * dual-form + brand form blocks so the form never stays invisible.
 */
section.form-block .form-wrapper .gform_wrapper,
section.form-block .gform_wrapper,
section.form-block.oms-dual-form-block .gform_wrapper,
section.form-block.bg-fuschia .gform_wrapper,
section.form-block.bg-purple .gform_wrapper,
section.form-block.bg-dark-purple .gform_wrapper,
section.form-block.bg-blue .gform_wrapper,
section.form-block .gform_confirmation_wrapper {
	display: block !important;
	visibility: visible !important;
}

section.form-block.bg-fuschia .gform_wrapper,
section.form-block.bg-purple .gform_wrapper,
section.form-block.bg-dark-purple .gform_wrapper,
section.form-block.bg-blue .gform_wrapper {
	color: #fff !important;
}

/* Hide field labels for text-like fields only (design uses placeholders).
   Keep labels visible for checkbox / radio / choice groups. */
section.form-block.bg-fuschia .gform_wrapper .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > .gfield_label,
section.form-block.bg-fuschia .gform_wrapper .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > legend.gfield_label,
section.form-block.bg-purple .gform_wrapper .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > .gfield_label,
section.form-block.bg-purple .gform_wrapper .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > legend.gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > .gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > legend.gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > .gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > legend.gfield_label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	border: 0 !important;
	color: #fff !important;
}

/* Choice field group titles (e.g. "What extras…") */
section.form-block.bg-fuschia .gform_wrapper .gfield--type-checkbox > .gfield_label,
section.form-block.bg-fuschia .gform_wrapper .gfield--type-radio > .gfield_label,
section.form-block.bg-fuschia .gform_wrapper .gfield--type-choice > .gfield_label,
section.form-block.bg-fuschia .gform_wrapper .gfield--type-checkbox > legend.gfield_label,
section.form-block.bg-fuschia .gform_wrapper .gfield--type-radio > legend.gfield_label,
section.form-block.bg-fuschia .gform_wrapper .gfield--type-choice > legend.gfield_label,
section.form-block.bg-purple .gform_wrapper .gfield--type-checkbox > .gfield_label,
section.form-block.bg-purple .gform_wrapper .gfield--type-radio > .gfield_label,
section.form-block.bg-purple .gform_wrapper .gfield--type-choice > .gfield_label,
section.form-block.bg-purple .gform_wrapper .gfield--type-checkbox > legend.gfield_label,
section.form-block.bg-purple .gform_wrapper .gfield--type-radio > legend.gfield_label,
section.form-block.bg-purple .gform_wrapper .gfield--type-choice > legend.gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield--type-checkbox > .gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield--type-radio > .gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield--type-choice > .gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield--type-checkbox > legend.gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield--type-radio > legend.gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield--type-choice > legend.gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield--type-checkbox > .gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield--type-radio > .gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield--type-choice > .gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield--type-checkbox > legend.gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield--type-radio > legend.gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield--type-choice > legend.gfield_label {
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	overflow: visible !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
}

section.form-block.bg-fuschia .gform_wrapper .gfield,
section.form-block.bg-purple .gform_wrapper .gfield,
section.form-block.bg-dark-purple .gform_wrapper .gfield,
section.form-block.bg-blue .gform_wrapper .gfield {
	position: relative;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
}

/* Legacy jQuery UI datepicker img — hide (GF 3 uses .gform-datepicker-toggle) */
section.form-block.bg-fuschia .ui-datepicker-trigger,
section.form-block.bg-purple .ui-datepicker-trigger,
section.form-block.bg-dark-purple .ui-datepicker-trigger,
section.form-block.bg-blue .ui-datepicker-trigger,
section.form-block img.ui-datepicker-trigger,
section.standard-form-block img.ui-datepicker-trigger {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Date field: full-width input + calendar toggle inline (right, over the field) */
section.form-block .gform_wrapper .ginput_container_date,
section.standard-form-block .gform_wrapper .ginput_container_date {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	box-sizing: border-box !important;
}
/* Shared text-input padding for light forms (matches .medium: 0 10px).
   Venue / date lack .medium so GF’s 5px 4px was winning — looked inset differently. */
section.form-block .gform_wrapper input[type="text"],
section.form-block .gform_wrapper input[type="email"],
section.form-block .gform_wrapper input[type="tel"],
section.form-block .gform_wrapper input[type="url"],
section.form-block .gform_wrapper input[type="number"],
section.form-block .gform_wrapper input[type="password"],
section.form-block .gform_wrapper input.datepicker,
section.form-block .form-wrapper input[type="text"],
section.form-block .form-wrapper input[type="email"],
section.form-block .form-wrapper input[type="tel"],
section.form-block .form-wrapper input.datepicker,
section.standard-form-block .gform_wrapper input[type="text"],
section.standard-form-block .gform_wrapper input[type="email"],
section.standard-form-block .gform_wrapper input[type="tel"],
section.standard-form-block .gform_wrapper input.datepicker,
section.standard-form-block .form-wrapper input[type="text"],
section.standard-form-block .form-wrapper input[type="email"],
section.standard-form-block .form-wrapper input.datepicker {
	padding: 0 10px !important;
	box-sizing: border-box !important;
}
section.form-block .gform_wrapper .ginput_container_date input,
section.form-block .gform_wrapper .gfield--type-date input,
section.form-block .gform_wrapper input.datepicker,
section.form-block .form-wrapper .gfield--type-date input,
section.standard-form-block .gform_wrapper .ginput_container_date input,
section.standard-form-block .gform_wrapper .gfield--type-date input,
section.standard-form-block .gform_wrapper input.datepicker {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	/* same vertical/left pad as siblings; extra right for calendar glyph */
	padding: 0 48px 0 10px !important;
	margin-right: 0 !important;
	display: block !important;
}
section.form-block .gform_wrapper .ginput_container_date .gform-datepicker-toggle,
section.form-block .gform_wrapper .gform-datepicker-toggle,
section.form-block .form-wrapper .gform-datepicker-toggle,
section.standard-form-block .gform_wrapper .ginput_container_date .gform-datepicker-toggle,
section.standard-form-block .gform_wrapper .gform-datepicker-toggle {
	position: absolute !important;
	right: 14px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	display: block !important;
	width: 22px !important;
	height: 22px !important;
	min-width: 22px !important;
	min-height: 22px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	/* GF legacy hides the dashicon span; dashicons font also isn’t enqueued on FE.
	   Paint a calendar glyph on the button so the control is actually visible. */
	background-color: transparent !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M13.0909 1.63636V1.23115C13.0909 0.551205 13.6357 0 14.3182 0C14.996 0 15.5455 0.546804 15.5455 1.23115V1.63636H16.3709C17.2706 1.63636 18 2.37126 18 3.2652V16.3712C18 17.2707 17.2721 18 16.3709 18H1.62913C0.729385 18 0 17.2651 0 16.3712V3.2652C0 2.36562 0.727915 1.63636 1.62913 1.63636H2.45455V1.23115C2.45455 0.551205 2.99929 0 3.68182 0C4.35962 0 4.90909 0.546804 4.90909 1.23115V1.63636H7.36364V1.23115C7.36364 0.551205 7.90838 0 8.59091 0C9.26871 0 9.81818 0.546804 9.81818 1.23115V1.63636H13.0909ZM1.63636 7.36364V16.3636H16.3636V7.36364H1.63636Z' fill='%230b080c'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: 18px 18px !important;
	box-shadow: none !important;
	cursor: pointer !important;
	z-index: 3 !important;
	line-height: 0 !important;
	font-size: 0 !important;
	color: transparent !important;
	float: none !important;
	overflow: hidden !important;
	text-indent: 0 !important;
}
/* Keep GF's hidden span out of the way; glyph is on the button background */
section.form-block .gform_wrapper .gform-datepicker-toggle .gform-calendar-icon,
section.form-block .gform_wrapper .gform-datepicker-toggle .dashicons,
section.form-block .gform_wrapper .gform-datepicker-toggle .gform-datepicker-toggle-icon,
section.standard-form-block .gform_wrapper .gform-datepicker-toggle .gform-calendar-icon,
section.standard-form-block .gform_wrapper .gform-datepicker-toggle .dashicons,
section.standard-form-block .gform_wrapper .gform-datepicker-toggle .gform-datepicker-toggle-icon {
	display: none !important;
}
/* Dark form BGs: white calendar glyph */
section.form-block.bg-fuschia .gform_wrapper .gform-datepicker-toggle,
section.form-block.bg-purple .gform_wrapper .gform-datepicker-toggle,
section.form-block.bg-dark-purple .gform_wrapper .gform-datepicker-toggle,
section.form-block.bg-blue .gform_wrapper .gform-datepicker-toggle {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M13.0909 1.63636V1.23115C13.0909 0.551205 13.6357 0 14.3182 0C14.996 0 15.5455 0.546804 15.5455 1.23115V1.63636H16.3709C17.2706 1.63636 18 2.37126 18 3.2652V16.3712C18 17.2707 17.2721 18 16.3709 18H1.62913C0.729385 18 0 17.2651 0 16.3712V3.2652C0 2.36562 0.727915 1.63636 1.62913 1.63636H2.45455V1.23115C2.45455 0.551205 2.99929 0 3.68182 0C4.35962 0 4.90909 0.546804 4.90909 1.23115V1.63636H7.36364V1.23115C7.36364 0.551205 7.90838 0 8.59091 0C9.26871 0 9.81818 0.546804 9.81818 1.23115V1.63636H13.0909ZM1.63636 7.36364V16.3636H16.3636V7.36364H1.63636Z' fill='%23ffffff'/%3E%3C/svg%3E") !important;
}

/* Text-like inputs only — NEVER checkboxes/radios (those look like fat empty boxes) */
section.form-block.bg-fuschia .gform_wrapper input[type="text"],
section.form-block.bg-fuschia .gform_wrapper input[type="email"],
section.form-block.bg-fuschia .gform_wrapper input[type="tel"],
section.form-block.bg-fuschia .gform_wrapper input[type="url"],
section.form-block.bg-fuschia .gform_wrapper input[type="number"],
section.form-block.bg-fuschia .gform_wrapper input[type="date"],
section.form-block.bg-fuschia .gform_wrapper input[type="password"],
section.form-block.bg-fuschia .gform_wrapper textarea,
section.form-block.bg-fuschia .gform_wrapper select,
section.form-block.bg-fuschia .gform_wrapper .ginput_container_text input,
section.form-block.bg-fuschia .gform_wrapper .ginput_container_email input,
section.form-block.bg-fuschia .gform_wrapper .ginput_container_phone input,
section.form-block.bg-fuschia .gform_wrapper .ginput_container_date input,
section.form-block.bg-fuschia .gform_wrapper .ginput_container_textarea textarea,
section.form-block.bg-fuschia .gform_wrapper .ginput_container_select select,
section.form-block.bg-purple .gform_wrapper input[type="text"],
section.form-block.bg-purple .gform_wrapper input[type="email"],
section.form-block.bg-purple .gform_wrapper input[type="tel"],
section.form-block.bg-purple .gform_wrapper input[type="url"],
section.form-block.bg-purple .gform_wrapper input[type="number"],
section.form-block.bg-purple .gform_wrapper input[type="date"],
section.form-block.bg-purple .gform_wrapper input[type="password"],
section.form-block.bg-purple .gform_wrapper textarea,
section.form-block.bg-purple .gform_wrapper select,
section.form-block.bg-purple .gform_wrapper .ginput_container_text input,
section.form-block.bg-purple .gform_wrapper .ginput_container_email input,
section.form-block.bg-purple .gform_wrapper .ginput_container_phone input,
section.form-block.bg-purple .gform_wrapper .ginput_container_date input,
section.form-block.bg-purple .gform_wrapper .ginput_container_textarea textarea,
section.form-block.bg-purple .gform_wrapper .ginput_container_select select,
section.form-block.bg-dark-purple .gform_wrapper input[type="text"],
section.form-block.bg-dark-purple .gform_wrapper input[type="email"],
section.form-block.bg-dark-purple .gform_wrapper input[type="tel"],
section.form-block.bg-dark-purple .gform_wrapper input[type="url"],
section.form-block.bg-dark-purple .gform_wrapper input[type="number"],
section.form-block.bg-dark-purple .gform_wrapper input[type="date"],
section.form-block.bg-dark-purple .gform_wrapper input[type="password"],
section.form-block.bg-dark-purple .gform_wrapper textarea,
section.form-block.bg-dark-purple .gform_wrapper select,
section.form-block.bg-dark-purple .gform_wrapper .ginput_container_text input,
section.form-block.bg-dark-purple .gform_wrapper .ginput_container_email input,
section.form-block.bg-dark-purple .gform_wrapper .ginput_container_phone input,
section.form-block.bg-dark-purple .gform_wrapper .ginput_container_date input,
section.form-block.bg-dark-purple .gform_wrapper .ginput_container_textarea textarea,
section.form-block.bg-dark-purple .gform_wrapper .ginput_container_select select,
section.form-block.bg-blue .gform_wrapper input[type="text"],
section.form-block.bg-blue .gform_wrapper input[type="email"],
section.form-block.bg-blue .gform_wrapper input[type="tel"],
section.form-block.bg-blue .gform_wrapper input[type="url"],
section.form-block.bg-blue .gform_wrapper input[type="number"],
section.form-block.bg-blue .gform_wrapper input[type="date"],
section.form-block.bg-blue .gform_wrapper input[type="password"],
section.form-block.bg-blue .gform_wrapper textarea,
section.form-block.bg-blue .gform_wrapper select,
section.form-block.bg-blue .gform_wrapper .ginput_container_text input,
section.form-block.bg-blue .gform_wrapper .ginput_container_email input,
section.form-block.bg-blue .gform_wrapper .ginput_container_phone input,
section.form-block.bg-blue .gform_wrapper .ginput_container_date input,
section.form-block.bg-blue .gform_wrapper .ginput_container_textarea textarea,
section.form-block.bg-blue .gform_wrapper .ginput_container_select select {
	background: transparent !important;
	background-color: transparent !important;
	border: 1px solid #fff !important;
	border-color: #fff !important;
	color: #fff !important;
	border-radius: 0 !important;
	min-height: 52px !important;
	height: auto !important;
	padding: 14px 18px !important;
	box-shadow: none !important;
	outline: none !important;
	width: 100% !important;
	max-width: 100% !important;
	font-size: 16px !important;
	line-height: 1.3 !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	caret-color: #fff !important;
}

/* ---------- Checkbox / radio (reset + custom control) ---------- */
section.form-block.bg-fuschia .gform_wrapper .gfield_checkbox,
section.form-block.bg-fuschia .gform_wrapper .gfield_radio,
section.form-block.bg-purple .gform_wrapper .gfield_checkbox,
section.form-block.bg-purple .gform_wrapper .gfield_radio,
section.form-block.bg-dark-purple .gform_wrapper .gfield_checkbox,
section.form-block.bg-dark-purple .gform_wrapper .gfield_radio,
section.form-block.bg-blue .gform_wrapper .gfield_checkbox,
section.form-block.bg-blue .gform_wrapper .gfield_radio {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
section.form-block.bg-fuschia .gform_wrapper .gchoice,
section.form-block.bg-purple .gform_wrapper .gchoice,
section.form-block.bg-dark-purple .gform_wrapper .gchoice,
section.form-block.bg-blue .gform_wrapper .gchoice {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	gap: 12px !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
}
/* Kill text-input bleed on choice inputs */
section.form-block.bg-fuschia .gform_wrapper input[type="checkbox"],
section.form-block.bg-fuschia .gform_wrapper input[type="radio"],
section.form-block.bg-fuschia .gform_wrapper .gfield-choice-input,
section.form-block.bg-purple .gform_wrapper input[type="checkbox"],
section.form-block.bg-purple .gform_wrapper input[type="radio"],
section.form-block.bg-purple .gform_wrapper .gfield-choice-input,
section.form-block.bg-dark-purple .gform_wrapper input[type="checkbox"],
section.form-block.bg-dark-purple .gform_wrapper input[type="radio"],
section.form-block.bg-dark-purple .gform_wrapper .gfield-choice-input,
section.form-block.bg-blue .gform_wrapper input[type="checkbox"],
section.form-block.bg-blue .gform_wrapper input[type="radio"],
section.form-block.bg-blue .gform_wrapper .gfield-choice-input {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	flex: 0 0 22px !important;
	width: 22px !important;
	min-width: 22px !important;
	max-width: 22px !important;
	height: 22px !important;
	min-height: 22px !important;
	margin: 2px 0 0 !important;
	padding: 0 !important;
	border: 1.5px solid #fff !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	cursor: pointer !important;
	position: relative !important;
	vertical-align: top !important;
	float: none !important;
	display: inline-block !important;
	color: transparent !important;
	line-height: 1 !important;
	font-size: 0 !important;
	caret-color: transparent !important;
}
/* Radio = circle */
section.form-block.bg-fuschia .gform_wrapper input[type="radio"],
section.form-block.bg-purple .gform_wrapper input[type="radio"],
section.form-block.bg-dark-purple .gform_wrapper input[type="radio"],
section.form-block.bg-blue .gform_wrapper input[type="radio"] {
	border-radius: 50% !important;
}
/* Checked — white fill + checkmark / dot */
section.form-block.bg-fuschia .gform_wrapper input[type="checkbox"]:checked,
section.form-block.bg-purple .gform_wrapper input[type="checkbox"]:checked,
section.form-block.bg-dark-purple .gform_wrapper input[type="checkbox"]:checked,
section.form-block.bg-blue .gform_wrapper input[type="checkbox"]:checked {
	background-color: #fff !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23e81e75' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 8.2l3.2 3.2L13 4'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 14px 14px !important;
	border-color: #fff !important;
}
section.form-block.bg-purple .gform_wrapper input[type="checkbox"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23bc34ba' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 8.2l3.2 3.2L13 4'/%3E%3C/svg%3E") !important;
}
section.form-block.bg-dark-purple .gform_wrapper input[type="checkbox"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23580f8b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 8.2l3.2 3.2L13 4'/%3E%3C/svg%3E") !important;
}
section.form-block.bg-blue .gform_wrapper input[type="checkbox"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23220090' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 8.2l3.2 3.2L13 4'/%3E%3C/svg%3E") !important;
}
section.form-block.bg-fuschia .gform_wrapper input[type="radio"]:checked,
section.form-block.bg-purple .gform_wrapper input[type="radio"]:checked,
section.form-block.bg-dark-purple .gform_wrapper input[type="radio"]:checked,
section.form-block.bg-blue .gform_wrapper input[type="radio"]:checked {
	background-color: #fff !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='%23e81e75'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 16px 16px !important;
	border-color: #fff !important;
}
section.form-block.bg-purple .gform_wrapper input[type="radio"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='%23bc34ba'/%3E%3C/svg%3E") !important;
}
section.form-block.bg-dark-purple .gform_wrapper input[type="radio"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='%23580f8b'/%3E%3C/svg%3E") !important;
}
section.form-block.bg-blue .gform_wrapper input[type="radio"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='%23220090'/%3E%3C/svg%3E") !important;
}
section.form-block.bg-fuschia .gform_wrapper input[type="checkbox"]:focus-visible,
section.form-block.bg-fuschia .gform_wrapper input[type="radio"]:focus-visible,
section.form-block.bg-purple .gform_wrapper input[type="checkbox"]:focus-visible,
section.form-block.bg-purple .gform_wrapper input[type="radio"]:focus-visible,
section.form-block.bg-dark-purple .gform_wrapper input[type="checkbox"]:focus-visible,
section.form-block.bg-dark-purple .gform_wrapper input[type="radio"]:focus-visible,
section.form-block.bg-blue .gform_wrapper input[type="checkbox"]:focus-visible,
section.form-block.bg-blue .gform_wrapper input[type="radio"]:focus-visible {
	outline: 2px solid #fff !important;
	outline-offset: 2px !important;
}

/* Choice option labels (next to the box) */
section.form-block.bg-fuschia .gform_wrapper .gchoice label,
section.form-block.bg-fuschia .gform_wrapper .gfield_checkbox label,
section.form-block.bg-fuschia .gform_wrapper .gfield_radio label,
section.form-block.bg-fuschia .gform_wrapper .gform-field-label--type-inline,
section.form-block.bg-purple .gform_wrapper .gchoice label,
section.form-block.bg-purple .gform_wrapper .gfield_checkbox label,
section.form-block.bg-purple .gform_wrapper .gfield_radio label,
section.form-block.bg-purple .gform_wrapper .gform-field-label--type-inline,
section.form-block.bg-dark-purple .gform_wrapper .gchoice label,
section.form-block.bg-dark-purple .gform_wrapper .gfield_checkbox label,
section.form-block.bg-dark-purple .gform_wrapper .gfield_radio label,
section.form-block.bg-dark-purple .gform_wrapper .gform-field-label--type-inline,
section.form-block.bg-blue .gform_wrapper .gchoice label,
section.form-block.bg-blue .gform_wrapper .gfield_checkbox label,
section.form-block.bg-blue .gform_wrapper .gfield_radio label,
section.form-block.bg-blue .gform_wrapper .gform-field-label--type-inline {
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	overflow: visible !important;
	float: none !important;
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	cursor: pointer !important;
}
section.form-block.bg-fuschia .gform_wrapper textarea,
section.form-block.bg-purple .gform_wrapper textarea,
section.form-block.bg-dark-purple .gform_wrapper textarea,
section.form-block.bg-blue .gform_wrapper textarea {
	min-height: 140px !important;
	resize: vertical;
}
section.form-block.bg-fuschia .gform_wrapper input::placeholder,
section.form-block.bg-fuschia .gform_wrapper textarea::placeholder,
section.form-block.bg-purple .gform_wrapper input::placeholder,
section.form-block.bg-purple .gform_wrapper textarea::placeholder,
section.form-block.bg-dark-purple .gform_wrapper input::placeholder,
section.form-block.bg-dark-purple .gform_wrapper textarea::placeholder,
section.form-block.bg-blue .gform_wrapper input::placeholder,
section.form-block.bg-blue .gform_wrapper textarea::placeholder {
	color: rgba(255, 255, 255, 0.75) !important;
	opacity: 1 !important;
}
/* Autofill stays readable on brand bg */
section.form-block.bg-fuschia .gform_wrapper input:-webkit-autofill,
section.form-block.bg-purple .gform_wrapper input:-webkit-autofill,
section.form-block.bg-dark-purple .gform_wrapper input:-webkit-autofill,
section.form-block.bg-blue .gform_wrapper input:-webkit-autofill {
	-webkit-text-fill-color: #fff !important;
	caret-color: #fff !important;
	transition: background-color 99999s ease-out 0s;
}

/* Footer / multi-page buttons — do NOT force display:!important (breaks GF hide). */
section.form-block.bg-fuschia .gform_wrapper .gform_footer,
section.form-block.bg-fuschia .gform_wrapper .gform_page_footer,
section.form-block.bg-purple .gform_wrapper .gform_footer,
section.form-block.bg-purple .gform_wrapper .gform_page_footer,
section.form-block.bg-dark-purple .gform_wrapper .gform_footer,
section.form-block.bg-dark-purple .gform_wrapper .gform_page_footer,
section.form-block.bg-blue .gform_wrapper .gform_footer,
section.form-block.bg-blue .gform_wrapper .gform_page_footer {
	text-align: center !important;
	border: none !important;
	padding: 28px 0 0 !important;
	margin: 0 !important;
	width: 100% !important;
	float: none !important;
	/* flex without !important so GF display:none on inactive pages still wins */
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}
section.form-block.bg-fuschia .gform_wrapper .gform_button,
section.form-block.bg-fuschia .gform_wrapper input[type="submit"],
section.form-block.bg-fuschia .gform_wrapper .gform_next_button,
section.form-block.bg-fuschia .gform_wrapper .gform_previous_button,
section.form-block.bg-fuschia .form-wrapper .gform_footer input,
section.form-block.bg-purple .gform_wrapper .gform_button,
section.form-block.bg-purple .gform_wrapper input[type="submit"],
section.form-block.bg-purple .gform_wrapper .gform_next_button,
section.form-block.bg-purple .gform_wrapper .gform_previous_button,
section.form-block.bg-purple .form-wrapper .gform_footer input,
section.form-block.bg-dark-purple .gform_wrapper .gform_button,
section.form-block.bg-dark-purple .gform_wrapper input[type="submit"],
section.form-block.bg-dark-purple .gform_wrapper .gform_next_button,
section.form-block.bg-dark-purple .gform_wrapper .gform_previous_button,
section.form-block.bg-dark-purple .form-wrapper .gform_footer input,
section.form-block.bg-blue .gform_wrapper .gform_button,
section.form-block.bg-blue .gform_wrapper input[type="submit"],
section.form-block.bg-blue .gform_wrapper .gform_next_button,
section.form-block.bg-blue .gform_wrapper .gform_previous_button,
section.form-block.bg-blue .form-wrapper .gform_footer input {
	background: #fff !important;
	background-color: #fff !important;
	border: none !important;
	color: var(--oms-form-brand) !important;
	min-width: 140px !important;
	width: auto !important;
	height: 56px !important;
	line-height: 56px !important;
	padding: 0 40px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	font-family: "Source Sans Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	float: none !important;
	/* no display:!important — lets GF hide inactive page buttons */
	margin: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
/* Previous (Back) — outline style so it reads as secondary to Submit */
section.form-block.bg-fuschia .gform_wrapper .gform_previous_button,
section.form-block.bg-purple .gform_wrapper .gform_previous_button,
section.form-block.bg-dark-purple .gform_wrapper .gform_previous_button,
section.form-block.bg-blue .gform_wrapper .gform_previous_button {
	background: transparent !important;
	background-color: transparent !important;
	border: 1px solid #fff !important;
	color: #fff !important;
}
section.form-block.bg-fuschia .gform_wrapper .gform_button:hover,
section.form-block.bg-fuschia .gform_wrapper input[type="submit"]:hover,
section.form-block.bg-purple .gform_wrapper .gform_button:hover,
section.form-block.bg-purple .gform_wrapper input[type="submit"]:hover,
section.form-block.bg-dark-purple .gform_wrapper .gform_button:hover,
section.form-block.bg-dark-purple .gform_wrapper input[type="submit"]:hover,
section.form-block.bg-blue .gform_wrapper .gform_button:hover,
section.form-block.bg-blue .gform_wrapper input[type="submit"]:hover {
	opacity: 0.92;
}

/* Hide multi-page progress chrome on campaign */
section.form-block.bg-fuschia .gform_wrapper .gf_progressbar_wrapper,
section.form-block.bg-fuschia .gf_progressbar_wrapper,
section.form-block.bg-fuschia .gf_progressbar_title,
section.form-block.bg-purple .gform_wrapper .gf_progressbar_wrapper,
section.form-block.bg-purple .gf_progressbar_wrapper,
section.form-block.bg-purple .gf_progressbar_title,
section.form-block.bg-dark-purple .gform_wrapper .gf_progressbar_wrapper,
section.form-block.bg-dark-purple .gf_progressbar_wrapper,
section.form-block.bg-dark-purple .gf_progressbar_title,
section.form-block.bg-blue .gform_wrapper .gf_progressbar_wrapper,
section.form-block.bg-blue .gf_progressbar_wrapper,
section.form-block.bg-blue .gf_progressbar_title {
	display: none !important;
}

/*
 * Layout: 12-col CSS grid that respects Gravity Forms field widths
 * (gfield--width-half / third / quarter / full + legacy gf_left_half etc).
 * Gap: 20px all around. Mobile: single column.
 */
section.form-block.bg-fuschia .gform_wrapper .gform_fields,
section.form-block.bg-purple .gform_wrapper .gform_fields,
section.form-block.bg-dark-purple .gform_wrapper .gform_fields,
section.form-block.bg-blue .gform_wrapper .gform_fields,
section.form-block.bg-fuschia .gform_wrapper.gravity-theme .gform_fields,
section.form-block.bg-purple .gform_wrapper.gravity-theme .gform_fields,
section.form-block.bg-dark-purple .gform_wrapper.gravity-theme .gform_fields,
section.form-block.bg-blue .gform_wrapper.gravity-theme .gform_fields {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	gap: 20px !important;
	row-gap: 20px !important;
	column-gap: 20px !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Default = full width (GF full column / no width class) */
section.form-block.bg-fuschia .gform_wrapper .gfield,
section.form-block.bg-purple .gform_wrapper .gfield,
section.form-block.bg-dark-purple .gform_wrapper .gfield,
section.form-block.bg-blue .gform_wrapper .gfield {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Half (50%) — GF 2.5+ and legacy */
section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-half,
section.form-block.bg-fuschia .gform_wrapper .gfield.gf_left_half,
section.form-block.bg-fuschia .gform_wrapper .gfield.gf_right_half,
section.form-block.bg-fuschia .form-wrapper .formLeft,
section.form-block.bg-fuschia .form-wrapper .formRight,
section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-half,
section.form-block.bg-purple .gform_wrapper .gfield.gf_left_half,
section.form-block.bg-purple .gform_wrapper .gfield.gf_right_half,
section.form-block.bg-purple .form-wrapper .formLeft,
section.form-block.bg-purple .form-wrapper .formRight,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-half,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gf_left_half,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gf_right_half,
section.form-block.bg-dark-purple .form-wrapper .formLeft,
section.form-block.bg-dark-purple .form-wrapper .formRight,
section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-half,
section.form-block.bg-blue .gform_wrapper .gfield.gf_left_half,
section.form-block.bg-blue .gform_wrapper .gfield.gf_right_half,
section.form-block.bg-blue .form-wrapper .formLeft,
section.form-block.bg-blue .form-wrapper .formRight {
	grid-column: span 6 !important;
}

/* Third (~33%) */
section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-third,
section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-third,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-third,
section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-third {
	grid-column: span 4 !important;
}

/* Quarter (25%) */
section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-quarter,
section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-quarter,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-quarter,
section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-quarter {
	grid-column: span 3 !important;
}

/* Fifth / sixth if used */
section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-fifth,
section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-fifth,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-fifth,
section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-fifth {
	grid-column: span 2 !important; /* ~16.6% closest in 12-col without fractions */
}
section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-sixth,
section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-sixth,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-sixth,
section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-sixth {
	grid-column: span 2 !important;
}

/* Explicit full */
section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-full,
section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-full,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-full,
section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-full {
	grid-column: 1 / -1 !important;
}

section.form-block.bg-fuschia .gform_confirmation_message,
section.form-block.bg-purple .gform_confirmation_message,
section.form-block.bg-dark-purple .gform_confirmation_message,
section.form-block.bg-blue .gform_confirmation_message {
	color: #fff !important;
	text-align: center;
	font-size: 22px;
	line-height: 1.4;
}

/*
 * Validation — GF uses white alert cards; brand-bg rules paint all spans white
 * which made "This field is required" invisible. Force dark text on light surfaces.
 */
section.form-block.bg-fuschia .gform_wrapper .gform_validation_errors,
section.form-block.bg-purple .gform_wrapper .gform_validation_errors,
section.form-block.bg-dark-purple .gform_wrapper .gform_validation_errors,
section.form-block.bg-blue .gform_wrapper .gform_validation_errors,
section.form-block.bg-fuschia .gform_wrapper .validation_error,
section.form-block.bg-purple .gform_wrapper .validation_error,
section.form-block.bg-dark-purple .gform_wrapper .validation_error,
section.form-block.bg-blue .gform_wrapper .validation_error,
section.form-block.bg-fuschia .gform_wrapper .gform_submission_error,
section.form-block.bg-purple .gform_wrapper .gform_submission_error,
section.form-block.bg-dark-purple .gform_wrapper .gform_submission_error,
section.form-block.bg-blue .gform_wrapper .gform_submission_error {
	background: #fff !important;
	background-color: #fff !important;
	border: 1px solid rgba(0, 0, 0, 0.12) !important;
	border-radius: 4px !important;
	color: #220090 !important;
	padding: 14px 18px !important;
	margin: 0 0 20px !important;
}
section.form-block.bg-fuschia .gform_wrapper .gform_validation_errors *,
section.form-block.bg-purple .gform_wrapper .gform_validation_errors *,
section.form-block.bg-dark-purple .gform_wrapper .gform_validation_errors *,
section.form-block.bg-blue .gform_wrapper .gform_validation_errors *,
section.form-block.bg-fuschia .gform_wrapper .validation_error *,
section.form-block.bg-purple .gform_wrapper .validation_error *,
section.form-block.bg-dark-purple .gform_wrapper .validation_error *,
section.form-block.bg-blue .gform_wrapper .validation_error *,
section.form-block.bg-fuschia .gform_wrapper .gform_submission_error *,
section.form-block.bg-purple .gform_wrapper .gform_submission_error *,
section.form-block.bg-dark-purple .gform_wrapper .gform_submission_error *,
section.form-block.bg-blue .gform_wrapper .gform_submission_error *,
section.form-block.bg-fuschia .gform_wrapper .gform_validation_errors h2,
section.form-block.bg-purple .gform_wrapper .gform_validation_errors h2,
section.form-block.bg-dark-purple .gform_wrapper .gform_validation_errors h2,
section.form-block.bg-blue .gform_wrapper .gform_validation_errors h2,
section.form-block.bg-fuschia .gform_wrapper .gform_validation_errors p,
section.form-block.bg-purple .gform_wrapper .gform_validation_errors p,
section.form-block.bg-dark-purple .gform_wrapper .gform_validation_errors p,
section.form-block.bg-blue .gform_wrapper .gform_validation_errors p,
section.form-block.bg-fuschia .gform_wrapper .gform_validation_errors span,
section.form-block.bg-purple .gform_wrapper .gform_validation_errors span,
section.form-block.bg-dark-purple .gform_wrapper .gform_validation_errors span,
section.form-block.bg-blue .gform_wrapper .gform_validation_errors span,
section.form-block.bg-fuschia .gform_wrapper .gform_validation_errors a,
section.form-block.bg-purple .gform_wrapper .gform_validation_errors a,
section.form-block.bg-dark-purple .gform_wrapper .gform_validation_errors a,
section.form-block.bg-blue .gform_wrapper .gform_validation_errors a {
	color: #220090 !important;
	background: transparent !important;
}

/* Per-field validation message (white chip under input) */
section.form-block.bg-fuschia .gform_wrapper .validation_message,
section.form-block.bg-purple .gform_wrapper .validation_message,
section.form-block.bg-dark-purple .gform_wrapper .validation_message,
section.form-block.bg-blue .gform_wrapper .validation_message,
section.form-block.bg-fuschia .gform_wrapper .gfield_validation_message,
section.form-block.bg-purple .gform_wrapper .gfield_validation_message,
section.form-block.bg-dark-purple .gform_wrapper .gfield_validation_message,
section.form-block.bg-blue .gform_wrapper .gfield_validation_message,
section.form-block.bg-fuschia .form-wrapper .validation_message,
section.form-block.bg-purple .form-wrapper .validation_message,
section.form-block.bg-dark-purple .form-wrapper .validation_message,
section.form-block.bg-blue .form-wrapper .validation_message {
	display: block !important;
	background: #fff !important;
	background-color: #fff !important;
	color: #220090 !important;
	border: 1px solid rgba(0, 0, 0, 0.08) !important;
	border-radius: 2px !important;
	padding: 10px 12px !important;
	margin: 8px 0 0 !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
}
section.form-block.bg-fuschia .gform_wrapper .validation_message *,
section.form-block.bg-purple .gform_wrapper .validation_message *,
section.form-block.bg-dark-purple .gform_wrapper .validation_message *,
section.form-block.bg-blue .gform_wrapper .validation_message *,
section.form-block.bg-fuschia .gform_wrapper .gfield_validation_message *,
section.form-block.bg-purple .gform_wrapper .gfield_validation_message *,
section.form-block.bg-dark-purple .gform_wrapper .gfield_validation_message *,
section.form-block.bg-blue .gform_wrapper .gfield_validation_message * {
	color: #220090 !important;
	background: transparent !important;
}

/* Error field chrome — keep white input border, no red GF default that fights design */
section.form-block.bg-fuschia .gform_wrapper .gfield_error,
section.form-block.bg-purple .gform_wrapper .gfield_error,
section.form-block.bg-dark-purple .gform_wrapper .gfield_error,
section.form-block.bg-blue .gform_wrapper .gfield_error {
	background: transparent !important;
	border: none !important;
	max-width: 100% !important;
}
section.form-block.bg-fuschia .gform_wrapper .gfield_error input,
section.form-block.bg-fuschia .gform_wrapper .gfield_error textarea,
section.form-block.bg-fuschia .gform_wrapper .gfield_error select,
section.form-block.bg-purple .gform_wrapper .gfield_error input,
section.form-block.bg-purple .gform_wrapper .gfield_error textarea,
section.form-block.bg-purple .gform_wrapper .gfield_error select,
section.form-block.bg-dark-purple .gform_wrapper .gfield_error input,
section.form-block.bg-dark-purple .gform_wrapper .gfield_error textarea,
section.form-block.bg-dark-purple .gform_wrapper .gfield_error select,
section.form-block.bg-blue .gform_wrapper .gfield_error input,
section.form-block.bg-blue .gform_wrapper .gfield_error textarea,
section.form-block.bg-blue .gform_wrapper .gfield_error select {
	border-color: #fff !important;
	background: transparent !important;
	color: #fff !important;
}

@media (max-width: 767px) {
	section.form-block.bg-fuschia,
	section.form-block.bg-purple,
	section.form-block.bg-dark-purple,
	section.form-block.bg-blue {
		padding: 50px 0 60px !important;
	}
	section.form-block.bg-fuschia .title-block h2,
	section.form-block.bg-fuschia .title-block h2.small,
	section.form-block.bg-purple .title-block h2,
	section.form-block.bg-purple .title-block h2.small,
	section.form-block.bg-dark-purple .title-block h2,
	section.form-block.bg-dark-purple .title-block h2.small,
	section.form-block.bg-blue .title-block h2,
	section.form-block.bg-blue .title-block h2.small {
		font-size: 35px !important;
		line-height: 1.05 !important;
		letter-spacing: -1.5px !important;
		text-align: left !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	section.form-block.bg-fuschia .title-block,
	section.form-block.bg-purple .title-block,
	section.form-block.bg-dark-purple .title-block,
	section.form-block.bg-blue .title-block {
		margin-bottom: 28px !important;
		text-align: left !important;
	}
	/* Force single column on mobile regardless of GF field width */
	section.form-block.bg-fuschia .gform_wrapper .gform_fields,
	section.form-block.bg-purple .gform_wrapper .gform_fields,
	section.form-block.bg-dark-purple .gform_wrapper .gform_fields,
	section.form-block.bg-blue .gform_wrapper .gform_fields,
	section.form-block.bg-fuschia .gform_wrapper.gravity-theme .gform_fields,
	section.form-block.bg-purple .gform_wrapper.gravity-theme .gform_fields,
	section.form-block.bg-dark-purple .gform_wrapper.gravity-theme .gform_fields,
	section.form-block.bg-blue .gform_wrapper.gravity-theme .gform_fields {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
	}
	section.form-block.bg-fuschia .gform_wrapper .gfield,
	section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-half,
	section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-third,
	section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-quarter,
	section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-full,
	section.form-block.bg-fuschia .gform_wrapper .gfield.gf_left_half,
	section.form-block.bg-fuschia .gform_wrapper .gfield.gf_right_half,
	section.form-block.bg-purple .gform_wrapper .gfield,
	section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-half,
	section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-third,
	section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-quarter,
	section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-full,
	section.form-block.bg-purple .gform_wrapper .gfield.gf_left_half,
	section.form-block.bg-purple .gform_wrapper .gfield.gf_right_half,
	section.form-block.bg-dark-purple .gform_wrapper .gfield,
	section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-half,
	section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-third,
	section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-quarter,
	section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-full,
	section.form-block.bg-dark-purple .gform_wrapper .gfield.gf_left_half,
	section.form-block.bg-dark-purple .gform_wrapper .gfield.gf_right_half,
	section.form-block.bg-blue .gform_wrapper .gfield,
	section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-half,
	section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-third,
	section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-quarter,
	section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-full,
	section.form-block.bg-blue .gform_wrapper .gfield.gf_left_half,
	section.form-block.bg-blue .gform_wrapper .gfield.gf_right_half {
		grid-column: 1 / -1 !important;
	}
}

/* ==========================================================================
   Call to action — center all content within the image frame
   ========================================================================== */
section.call-to-action-block.with-image .container {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 406px;
	padding: 40px 30px !important;
	box-sizing: border-box;
}
section.call-to-action-block.with-image .column.one-half {
	float: none !important;
	width: 100% !important;
	max-width: 760px;
	padding: 0 !important;
}
section.call-to-action-block.with-image h2.large {
	margin-bottom: 20px !important;
	text-align: center !important;
}
section.call-to-action-block.with-image h3 {
	max-width: 450px;
	margin: 0 auto 30px !important;
	text-align: center !important;
}
section.call-to-action-block.with-image .button-wrap {
	float: none !important;
	text-align: center !important;
}

@media (min-width: 768px) {
	body.services section.title-block .column.one-half:last-child {
		padding-top: 0 !important;
	}
}

/* Center the extras copy on the image while preserving its column width. */
section.dj-showcase-block.extras-block .title-block .column.one-half,
section.dj-showcase-block.extras-block .text-block .column.one-half {
	float: none !important;
	margin-right: auto !important;
	margin-left: auto !important;
}
section.dj-showcase-block.extras-block .title-block h2,
section.dj-showcase-block.extras-block .text-block h3 {
	text-align: center !important;
}
section.dj-showcase-block.extras-block {
	padding-bottom: 24px !important;
}
section.dj-showcase-block.extras-block + section.services-grid {
	padding-top: 24px !important;
}
@media (max-width: 767px) {
	section.dj-showcase-block.extras-block {
		padding-bottom: 9px !important;
	}
	section.dj-showcase-block.extras-block + section.services-grid {
		padding-top: 9px !important;
	}
}

/* ==========================================================================
   Mobile menu — simplified full-screen (Figma)
   Primary links only, centered, Source Serif, white on purple
   ========================================================================== */
@media (max-width: 767px) {
	.mobileMenu.mobileMenu--simple {
		position: fixed !important;
		top: 0 !important;
		/* keep existing right-slide open/close from main CSS */
		width: 100% !important;
		height: 100svh !important;
		max-height: 100svh !important;
		padding: 0 !important;
		margin: 0 !important;
		overflow: hidden !important;
		background-color: #bc34ba !important; /* brand purple */
		z-index: 90 !important;
	}
	.mobileMenu.mobileMenu--simple.active {
		right: 0 !important;
	}
	/* Header chrome stays above the panel */
	header .logo,
	header .buttonWrapper {
		z-index: 100 !important;
	}
	header.scrolled {
		/* keep purple bar when open looks seamless */
	}
	body.nav-active header,
	body.nav-active header.scrolled {
		background-color: transparent !important;
	}
	body.nav-active header .logo img {
		/* logo stays visible white on purple menu */
		filter: none;
	}

	.mobileMenu.mobileMenu--simple .mobileMenuContainer {
		float: none !important;
		width: 100% !important;
		height: 100% !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		padding: 100px 24px 40px !important;
		box-sizing: border-box !important;
	}
	.mobileMenu.mobileMenu--simple .mobileMenuItems {
		float: none !important;
		width: 100% !important;
		margin: 0 !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
	}
	.mobileMenu.mobileMenu--simple ul.mobile-menu,
	.mobileMenu.mobileMenu--simple .mobileMenuItems > ul {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
		text-align: center !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		/* scale spacing so 7–8 primaries still center cleanly on short phones */
		gap: clamp(14px, 2.8vh, 22px) !important;
	}
	.mobileMenu.mobileMenu--simple ul li {
		float: none !important;
		width: auto !important;
		display: block !important;
		margin: 0 !important;
		padding: 0 !important;
		text-align: center !important;
	}
	.mobileMenu.mobileMenu--simple ul li a {
		display: inline-block !important;
		color: #fff !important;
		font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif !important;
		font-weight: 600 !important;
		font-size: clamp(30px, 9.2vw, 36px) !important;
		line-height: 1.15 !important;
		letter-spacing: -1.5px !important;
		text-transform: none !important; /* title case from menu labels */
		margin: 0 !important;
		padding: 0 !important;
		text-align: center !important;
		text-decoration: none !important;
	}
	.mobileMenu.mobileMenu--simple ul li a:hover,
	.mobileMenu.mobileMenu--simple ul li a:focus {
		color: #fff !important;
		opacity: 0.85;
	}
	/* No submenus / extras in simplified menu */
	.mobileMenu.mobileMenu--simple .sub-menu,
	.mobileMenu.mobileMenu--simple .contacts,
	.mobileMenu.mobileMenu--simple .follow {
		display: none !important;
	}

	/* Hamburger stays white on purple; middle bar must stay transparent for a clean X */
	body.nav-active header .buttonWrapper a.nav .ham,
	body.nav-active header .buttonWrapper a.nav .ham::before,
	body.nav-active header .buttonWrapper a.nav .ham::after {
		background: #fff !important;
	}
	body.nav-active header .buttonWrapper a.nav .ham.active {
		background: transparent !important;
	}
	body.nav-active header .buttonWrapper a.nav .ham.active::before,
	body.nav-active header .buttonWrapper a.nav .ham.active::after {
		background: #fff !important;
	}
}

/* Desktop: panel stays hidden */
@media (min-width: 768px) {
	.mobileMenu.mobileMenu--simple {
		display: none !important;
	}
}

/* ==========================================================================
   Footer — single top-aligned row (desktop), 120px top padding
   ========================================================================== */
footer.footer {
	/* Vertical space lives on .footerTop. */
	padding: 0 0 120px !important;
	border-top: none !important;
	box-sizing: border-box;
	overflow: hidden;
}
footer.footer .footerTop {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important; /* flush with top of logo */
	justify-content: space-between !important;
	gap: 40px 48px !important;
	float: none !important;
	position: relative !important;
	/* Site shell: same max-width / gutters as .container */
	width: 100% !important;
	max-width: 1220px !important;
	min-width: 280px;
	margin: 0 auto !important;
	padding: 120px 30px 0 !important;
	border-top: none !important;
	background: transparent !important;
	box-sizing: border-box;
}
footer.footer .footerTop .column {
	float: none !important;
	position: relative !important;
	padding: 0 !important;
	margin: 0 !important;
	width: auto !important;
	max-width: none !important;
}
/* Kill old “push content down under logo” offsets */
footer.footer .footerTop .column:first-child,
footer.footer .footerTop .column:nth-child(2),
footer.footer .footerTop .column:nth-child(3),
footer.footer .footerTop .column:last-child,
footer.footer .footerTop .column--logo,
footer.footer .footerTop .column--contact,
footer.footer .footerTop .column--social,
footer.footer .footerTop .column--legal {
	padding-top: 0 !important;
	margin-right: 0 !important;
	width: auto !important;
}

/* Logo */
footer.footer .footerTop .column--logo {
	flex: 0 0 auto;
	min-width: 180px;
	max-width: 240px;
}
footer.footer .footerTop .column--logo span.logo,
footer.footer .footerTop .column--logo a.logoHeader {
	float: none !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
}
footer.footer .footerTop .column--logo a.logoHeader img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 220px;
}

/* Contact + social grow evenly */
footer.footer .footerTop .column--contact {
	flex: 1 1 240px;
	max-width: 320px;
}
footer.footer .footerTop .column--social {
	flex: 1 1 200px;
	max-width: 260px;
}
footer.footer .footerTop .column--legal {
	flex: 0 1 220px;
	max-width: 260px;
	text-align: left;
}

footer.footer .get-in-touch,
footer.footer .follow {
	float: none !important;
	width: 100% !important;
	display: block !important;
}
footer.footer .get-in-touch .title,
footer.footer .follow .title {
	float: none !important;
	display: block !important;
	width: 100% !important;
	margin: 0 0 24px !important;
	padding: 0 !important;
	color: #fff !important;
	font-family: "SourceSerifPro-SemiBoldIt", "SourceSerifPro-BoldIt", serif !important;
	font-size: 25px !important;
	line-height: 1.1 !important;
	letter-spacing: 0 !important;
}
footer.footer .contacts {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 12px !important;
	float: none !important;
	width: 100% !important;
}
footer.footer .get-in-touch a {
	float: none !important;
	clear: none !important;
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	width: auto !important;
	min-height: 40px !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}
/* Icon square */
footer.footer .get-in-touch a img {
	position: static !important;
	left: auto !important;
	top: auto !important;
	flex: 0 0 40px !important;
	width: 40px !important;
	height: 40px !important;
	padding: 10px !important;
	box-sizing: border-box !important;
	background-color: #ff8ddf !important;
	object-fit: contain !important;
}
footer.footer .get-in-touch a.phone img {
	padding: 9px 13.5px !important;
}
footer.footer .get-in-touch a.email img {
	padding: 12px 10px !important;
}
footer.footer .get-in-touch a:hover img {
	background-color: #580f8b !important;
}
footer.footer .get-in-touch a span {
	position: static !important;
	float: none !important;
	display: block !important;
	width: auto !important;
	max-width: none !important;
	left: auto !important;
	top: auto !important;
	color: #fff !important;
	font-size: 16px !important;
	line-height: 1.4 !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Social grid */
footer.footer .follow .socials {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	float: none !important;
	width: 100% !important;
	max-width: 160px; /* ~3 × 40px + gaps */
}
footer.footer .follow a.social {
	float: none !important;
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	margin: 0 !important;
	background-color: #ff8ddf !important;
	border: none !important;
	border-radius: 0 !important;
}
footer.footer .follow a.social:hover {
	background-color: #580f8b !important;
}
footer.footer .follow a.social img {
	position: static !important;
	width: 18px !important;
	height: auto !important;
	max-height: 20px !important;
	object-fit: contain !important;
}

/* Legal / copyright column — top aligned, no extra top margin */
footer.footer .copyright {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #fff !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
}
footer.footer .copyright.desktop {
	display: block !important;
}
footer.footer .copyright.mobile {
	display: none !important;
}
footer.footer .copyright a,
footer.footer .copyright a span {
	color: #fff !important;
	text-decoration: none !important;
}
footer.footer .copyright a:hover {
	text-decoration: underline !important;
}

/* Hide decks decoration on the new clean layout (optional keep on very wide) */
footer.footer .overlay-shape.footer-decks {
	display: none !important;
}

@media (max-width: 1023px) {
	footer.footer {
		padding: 0 0 80px !important;
	}
	footer.footer .footerTop {
		flex-wrap: wrap !important;
		gap: 40px 32px !important;
		padding: 80px 30px 0 !important;
	}
	footer.footer .footerTop::before {
		left: 30px !important;
		right: 30px !important;
	}
	footer.footer .footerTop .column--logo {
		flex: 0 0 160px;
		max-width: 180px;
	}
	footer.footer .footerTop .column--contact,
	footer.footer .footerTop .column--social {
		flex: 1 1 200px;
	}
	footer.footer .footerTop .column--legal {
		flex: 1 1 100%;
	}
}

@media (max-width: 767px) {
	footer.footer {
		padding: 0 0 60px !important;
	}
	footer.footer .footerTop {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 40px !important;
		padding: 60px 20px 0 !important;
	}
	footer.footer .footerTop::before {
		left: 20px !important;
		right: 20px !important;
	}
	footer.footer .footerTop .column--logo,
	footer.footer .footerTop .column--contact,
	footer.footer .footerTop .column--social,
	footer.footer .footerTop .column--legal {
		flex: 0 0 auto !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	footer.footer .footerTop .column--logo a.logoHeader,
	footer.footer .footerTop .column--logo a.logoHeader img {
		max-width: 140px !important;
	}
	footer.footer .get-in-touch .title,
	footer.footer .follow .title {
		font-size: 18px !important;
		margin-bottom: 16px !important;
	}
	footer.footer .copyright.desktop {
		display: none !important;
	}
	footer.footer .copyright.mobile {
		display: block !important;
		margin-top: 40px !important;
		font-size: 14px !important;
	}
}

/* Dual form: stage handoff — stage1 out, stage2 in (never stacked) */
section.oms-dual-form-block .oms-dual-form-heading h2 {
	transition: opacity 0.35s ease;
}

section.oms-dual-form-block .oms-dual-form-stage1 {
	transition: opacity 0.4s ease, transform 0.4s ease;
	opacity: 1;
	transform: translateY(0);
}

section.oms-dual-form-block .oms-dual-form-stage1.oms-dual-fade-out {
	opacity: 0 !important;
	transform: translateY(-8px);
	pointer-events: none !important;
}

/*
 * Instant kill of stage-1 fields when GF confirmation injects handoff.
 * Prevents the "stage2 under still-submitting stage1" flash (our display:block
 * !important on .gform_wrapper otherwise keeps the form visible over GF's hide).
 */
section.oms-dual-form-block:has(.oms-dual-form-handoff) .oms-dual-form-stage1 form,
section.oms-dual-form-block:has(.oms-dual-form-handoff) .oms-dual-form-stage1 .gform_body,
section.oms-dual-form-block:has(.oms-dual-form-handoff) .oms-dual-form-stage1 .gform_fields,
section.oms-dual-form-block:has(.oms-dual-form-handoff) .oms-dual-form-stage1 .gform_footer,
section.oms-dual-form-block:has(.oms-dual-form-handoff) .oms-dual-form-stage1 .gform_page_footer,
section.oms-dual-form-block:has(.oms-dual-form-handoff) .oms-dual-form-stage1 .gform_ajax_spinner,
section.oms-dual-form-block:has(.oms-dual-form-handoff) .oms-dual-form-stage1 img.gform_ajax_spinner {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* After stage-1 success: kill stage1 hard (beats main.min / campaign display:!important).
 * Do NOT hide all .gform_confirmation_wrapper here — that also killed stage-2 "Thanks". */
section.oms-dual-form-block[data-oms-dual-stage="2"] .oms-dual-form-stage1,
section.oms-dual-form-block.is-stage2 .oms-dual-form-stage1,
section.oms-dual-form-block[data-oms-dual-stage="2"] .oms-dual-form-stage1 .gform_wrapper,
section.oms-dual-form-block.is-stage2 .oms-dual-form-stage1 .gform_wrapper {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	max-height: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Only hide leftover stage-1 handoff confirmation chrome, never stage-2 thanks */
section.oms-dual-form-block.is-stage2 .gform_confirmation_wrapper:has(.oms-dual-form-handoff),
section.oms-dual-form-block.is-stage2 .gform_confirmation_message:has(.oms-dual-form-handoff) {
	display: none !important;
}

/* Stage2 parked until stage1 is gone — only the HOST, never nested children forever */
section.oms-dual-form-block .oms-dual-form-stage2.oms-dual-stage2-pending,
section.oms-dual-form-block .oms-dual-form-stage2.oms-dual-fade-ready:not(.oms-dual-fade-in) {
	opacity: 0;
	transform: translateY(12px);
	pointer-events: none;
}

section.oms-dual-form-block .oms-dual-form-stage2 {
	transition: opacity 0.45s ease, transform 0.45s ease;
	width: 100%;
}

section.oms-dual-form-block .oms-dual-form-stage2.oms-dual-fade-in {
	opacity: 1 !important;
	transform: translateY(0) !important;
	pointer-events: auto !important;
	visibility: visible !important;
}

/* Once section is stage 2: force everything visible (beats stuck opacity rules) */
section.oms-dual-form-block.is-stage2 .oms-dual-form-stage2,
section.oms-dual-form-block[data-oms-dual-stage="2"] .oms-dual-form-stage2 {
	opacity: 1 !important;
	transform: none !important;
	visibility: visible !important;
	display: block !important;
	pointer-events: auto !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
}

/* Stage2 form must still beat main.min hide once revealed */
section.oms-dual-form-block .oms-dual-form-stage2 .gform_wrapper,
section.oms-dual-form-block .oms-dual-form-stage2-inner .gform_wrapper,
section.oms-dual-form-block.is-stage2 .oms-dual-form-stage2 .gform_wrapper,
section.oms-dual-form-block.is-stage2 .form-wrapper .gform_wrapper {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
}

section.oms-dual-form-block .oms-dual-form-handoff {
	width: 100%;
}

/* Confirmation chrome goes away once we reparent stage2 */
section.oms-dual-form-block .gform_confirmation_wrapper:has(.oms-dual-form-handoff),
section.oms-dual-form-block .gform_confirmation_message:has(.oms-dual-form-handoff) {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	text-align: left !important;
}

section.oms-dual-form-block.is-submitting .oms-dual-form-stage1 {
	/* keep stage1 only while spinning — never reveal stage2 early */
	opacity: 1;
}

/* Stage-2 final confirmation (Thanks) must always be visible */
section.oms-dual-form-block.is-stage2 .gform_confirmation_wrapper:not(:has(.oms-dual-form-handoff)),
section.oms-dual-form-block.is-complete .gform_confirmation_wrapper,
section.oms-dual-form-block .oms-dual-form-stage2 .gform_confirmation_wrapper,
section.oms-dual-form-block .oms-dual-form-stage2 .gform_confirmation_message {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
	pointer-events: auto !important;
	margin: 0 auto !important;
	padding: 24px 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	text-align: center !important;
	color: #fff !important;
}

section.oms-dual-form-block.is-stage2 .gform_confirmation_message,
section.oms-dual-form-block.is-complete .gform_confirmation_message {
	color: #fff !important;
	font-size: 22px !important;
	line-height: 1.4 !important;
	text-align: center !important;
}

/* After stage-2 submit, hide the stage-2 form body if GF left it forced-visible */
section.oms-dual-form-block.is-complete .oms-dual-form-stage2 form,
section.oms-dual-form-block.is-complete .oms-dual-form-stage2 .gform_body,
section.oms-dual-form-block.is-complete .oms-dual-form-stage2 .gform_footer,
section.oms-dual-form-block.is-complete .oms-dual-form-stage2 .gform_page_footer {
	display: none !important;
}

/* ==========================================================================
   Retainer batch (30200) — #41 video, #44 mixcloud, #45 footer, #51 logos,
   #53 terms, #54/#55 contact form
   ========================================================================== */

/* --- #41 Video Block Embed: match site body size + line-height -----------
   Body often dumps as bare text (no <p>). Match intro/two-column rhythm:
   desktop 25/30, mobile 18/26 — not 25/1.5 or 16/25 (Paul: inconsistent LH). */
section.video-block .column p,
section.video-block .column li,
section.video-block .column.one-half:not(:has(.title-block)),
section.video-block .container > .column.one-half:nth-child(2) {
	font-size: 25px !important;
	line-height: 30px !important;
	font-family: "Source Sans Pro", sans-serif !important;
	font-weight: 400 !important;
	color: #000 !important;
}
section.video-block .column {
	margin-bottom: 0;
}
@media (max-width: 767px) {
	section.video-block .column p,
	section.video-block .column li,
	section.video-block .column.one-half:not(:has(.title-block)),
	section.video-block .container > .column.one-half:nth-child(2) {
		font-size: 18px !important;
		line-height: 26px !important;
	}
	/* Padding below body copy before embed (Paul comment) */
	section.video-block .container > .column.one-half:nth-child(2),
	section.video-block .column.one-half:not(:has(.title-block)) {
		padding-bottom: 28px !important;
		margin-bottom: 0 !important;
	}
	section.video-block .video-embed {
		margin-top: 8px !important;
	}
}

/* --- #60 Video Block Embed: centre a title with no body copy -------------
   main.min right-aligns every span.title-block h2. When the Text Block field
   is empty the heading spans the full container, so right-aligned reads as a
   layout bug. PHP adds .title-only in that case. Desktop only — mobile is
   already left-aligned and was not raised. */
@media (min-width: 768px) {
	section.video-block.title-only .title-block,
	section.video-block.title-only .title-block h2,
	section.video-block.title-only .title-block h2.large {
		text-align: center !important;
	}
}

/* --- #44 Mixcloud External (+ podcast twin): centre body, cards, CTA -----
   Centre module body copy, card titles/artists, and MORE MIXES button.
   Also applies to podcast module (same markup family).
   ------------------------------------------------------------------------- */

/* Module intro: title + sub-heading body (max 700px, centred on desktop) */
section.mixcloud-block.external .column.one-half,
section.mixcloud-block.external .title-block,
section.mixcloud-block.podcast-block .column.one-half,
section.mixcloud-block.podcast-block .title-block {
	float: none !important;
	width: 100% !important;
	max-width: 700px !important;
	text-align: center !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
section.mixcloud-block.external .title-block h2,
section.mixcloud-block.external .title-block h2.large,
section.mixcloud-block.podcast-block .title-block h2,
section.mixcloud-block.podcast-block .title-block h2.large {
	text-align: center !important;
	float: none !important;
	max-width: 700px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
section.mixcloud-block.external .sub-heading,
section.mixcloud-block.podcast-block .sub-heading {
	float: none !important;
	width: 100% !important;
	max-width: 700px !important;
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	/* Gap before the mix/podcast cards below */
	margin-bottom: 48px !important;
}
section.mixcloud-block.external .sub-heading p,
section.mixcloud-block.external .sub-heading h3,
section.mixcloud-block.external .sub-heading a,
section.mixcloud-block.podcast-block .sub-heading p,
section.mixcloud-block.podcast-block .sub-heading h3,
section.mixcloud-block.podcast-block .sub-heading a {
	text-align: center !important;
	float: none !important;
	max-width: 700px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
section.mixcloud-block.external .sub-heading p:last-child,
section.mixcloud-block.external .sub-heading h3:last-child,
section.mixcloud-block.podcast-block .sub-heading p:last-child,
section.mixcloud-block.podcast-block .sub-heading h3:last-child {
	margin-bottom: 0 !important;
}

/* Cards: centre title + artists inside the white text panel */
section.mixcloud-block.external .mixcloud-sets .mixcloud-set .text-container,
section.mixcloud-block.podcast-block .mixcloud-sets .mixcloud-set .text-container {
	text-align: center !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: center !important;
	box-sizing: border-box !important;
	/* keep beside image; width still from main (calc 100% - thumb) */
}
section.mixcloud-block.external .mixcloud-sets .mixcloud-set .text-container h3,
section.mixcloud-block.external .mixcloud-sets .mixcloud-set .text-container .mix-title,
section.mixcloud-block.external .mixcloud-sets .mixcloud-set .text-container p,
section.mixcloud-block.podcast-block .mixcloud-sets .mixcloud-set .text-container h3,
section.mixcloud-block.podcast-block .mixcloud-sets .mixcloud-set .text-container .mix-title,
section.mixcloud-block.podcast-block .mixcloud-sets .mixcloud-set .text-container p {
	text-align: center !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* MORE MIXES CTA — centre (main floats .button-wrap left) */
section.mixcloud-block.external .button-wrap,
section.mixcloud-block.external .button-wrap.mobile,
section.mixcloud-block.podcast-block .button-wrap,
section.mixcloud-block.podcast-block .button-wrap.mobile {
	float: none !important;
	width: 100% !important;
	display: block !important;
	text-align: center !important;
	margin-top: 30px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
section.mixcloud-block.external .button-wrap .stdBtn,
section.mixcloud-block.external .button-wrap a.stdBtn,
section.mixcloud-block.podcast-block .button-wrap .stdBtn,
section.mixcloud-block.podcast-block .button-wrap a.stdBtn {
	float: none !important;
	display: inline-block !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

@media (max-width: 767px) {
	/* Mobile: keep card + body copy left-aligned (desktop stays centred) */
	section.mixcloud-block.external .column.one-half,
	section.mixcloud-block.external .title-block,
	section.mixcloud-block.podcast-block .column.one-half,
	section.mixcloud-block.podcast-block .title-block {
		text-align: left !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	section.mixcloud-block.external .title-block h2,
	section.mixcloud-block.external .title-block h2.large,
	section.mixcloud-block.podcast-block .title-block h2,
	section.mixcloud-block.podcast-block .title-block h2.large {
		text-align: left !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	section.mixcloud-block.external .sub-heading,
	section.mixcloud-block.external .sub-heading p,
	section.mixcloud-block.external .sub-heading h3,
	section.mixcloud-block.external .sub-heading a,
	section.mixcloud-block.podcast-block .sub-heading,
	section.mixcloud-block.podcast-block .sub-heading p,
	section.mixcloud-block.podcast-block .sub-heading h3,
	section.mixcloud-block.podcast-block .sub-heading a {
		text-align: left !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	section.mixcloud-block.external .sub-heading,
	section.mixcloud-block.podcast-block .sub-heading {
		margin-bottom: 32px !important;
	}
	section.mixcloud-block.external .mixcloud-sets .mixcloud-set .text-container,
	section.mixcloud-block.podcast-block .mixcloud-sets .mixcloud-set .text-container {
		text-align: left !important;
		align-items: flex-start !important;
		justify-content: center !important;
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
	section.mixcloud-block.external .mixcloud-sets .mixcloud-set .text-container h3,
	section.mixcloud-block.external .mixcloud-sets .mixcloud-set .text-container .mix-title,
	section.mixcloud-block.external .mixcloud-sets .mixcloud-set .text-container p,
	section.mixcloud-block.podcast-block .mixcloud-sets .mixcloud-set .text-container h3,
	section.mixcloud-block.podcast-block .mixcloud-sets .mixcloud-set .text-container .mix-title,
	section.mixcloud-block.podcast-block .mixcloud-sets .mixcloud-set .text-container p {
		text-align: left !important;
	}
	section.mixcloud-block.external .button-wrap,
	section.mixcloud-block.podcast-block .button-wrap {
		text-align: left !important;
	}
	section.mixcloud-block.external .button-wrap .stdBtn,
	section.mixcloud-block.external .button-wrap a.stdBtn,
	section.mixcloud-block.podcast-block .button-wrap .stdBtn,
	section.mixcloud-block.podcast-block .button-wrap a.stdBtn {
		float: none !important;
		display: inline-block !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
}

/* --- #51 Friends / logos density -----------------------------------------
   Cap desktop density so a long friends list doesn't look "stuffed".
   Mobile grid already 4-col in campaign rules — reinforce vs main.min 60%.
   ------------------------------------------------------------------------- */
section.logo-block .logo-wrapper {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 28px 40px !important;
	max-width: 100%;
}
section.logo-block .logo-wrapper .logo,
section.logo-block .logo-wrapper a.logo,
section.logo-block .logo-wrapper span.logo {
	flex: 0 1 160px !important;
	max-width: 160px !important;
	width: auto !important;
	height: auto !important;
	min-height: 44px !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}
section.logo-block .logo-wrapper .logo-img,
section.logo-block .logo-wrapper .image {
	max-width: 140px !important;
	height: 40px !important;
	width: auto !important;
	object-fit: contain !important;
}
@media (max-width: 1023px) {
	section.logo-block .logo-wrapper .logo,
	section.logo-block .logo-wrapper a.logo,
	section.logo-block .logo-wrapper span.logo {
		flex: 0 1 22% !important;
		max-width: 22% !important;
	}
}
@media (max-width: 767px) {
	section.logo-block .logo-wrapper {
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 12px 8px !important;
	}
	section.logo-block .logo-wrapper .logo,
	section.logo-block .logo-wrapper a.logo,
	section.logo-block .logo-wrapper span.logo {
		flex: none !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		height: auto !important;
		clear: none !important;
		float: none !important;
	}
	section.logo-block .logo-wrapper .logo-img,
	section.logo-block .logo-wrapper .image {
		height: 22px !important;
		max-width: 100% !important;
	}
}

/* --- #45 Mobile footer — align bottom copyright with content gutters ---- */
@media (max-width: 767px) {
	footer.footer {
		padding: 0 0 40px !important;
	}
	footer.footer .footerTop {
		padding: 60px 20px 0 !important;
	}
	footer.footer .copyright.mobile {
		display: block !important;
		width: 100% !important;
		max-width: 1220px !important;
		margin: 32px auto 0 !important;
		padding: 0 20px !important;
		box-sizing: border-box !important;
		float: none !important;
		text-align: left !important;
		font-size: 14px !important;
		line-height: 1.4 !important;
	}
	footer.footer .footerTop .column--legal {
		display: none !important; /* desktop copyright only; mobile uses .copyright.mobile */
	}
}

/* --- #53 Terms / legal content (stored as form-block HTML, not GF) -------
   Staging markup is bare <span>/<i>/<h3> inside .form-wrapper — no <p> tags.
   Live used 18/24 body with normal paragraph rhythm. */
body.websitehiretermsandconditions section.form-block {
	padding: 40px 0 60px !important;
}
body.websitehiretermsandconditions section.form-block > .container {
	max-width: 800px !important;
}
body.websitehiretermsandconditions section.form-block .title-block {
	text-align: left !important;
	padding: 0 !important;
	margin: 0 0 20px !important;
}
body.websitehiretermsandconditions section.form-block .title-block h2,
body.websitehiretermsandconditions section.form-block .title-block h2.small {
	font-family: "Source Sans Pro", sans-serif !important;
	font-style: normal !important;
	font-weight: 700 !important;
	font-size: 18px !important;
	line-height: 1.4 !important;
	letter-spacing: 0 !important;
	color: #0b080c !important;
	text-align: left !important;
	margin: 0 !important;
	float: none !important;
}
body.websitehiretermsandconditions section.form-block .form-wrapper {
	float: none !important;
	width: 100% !important;
	text-align: left !important;
}
body.websitehiretermsandconditions section.form-block .form-wrapper > span,
body.websitehiretermsandconditions section.form-block .form-wrapper > i,
body.websitehiretermsandconditions section.form-block .form-wrapper > p {
	display: block !important;
	font-style: normal !important;
	font-weight: 400 !important;
	font-family: "Source Sans Pro", sans-serif !important;
	font-size: 18px !important;
	line-height: 24px !important;
	color: #0b080c !important;
	margin: 0 0 16px !important;
	float: none !important;
	width: 100% !important;
}
body.websitehiretermsandconditions section.form-block .form-wrapper > span span,
body.websitehiretermsandconditions section.form-block .form-wrapper > i span {
	font-weight: 400 !important;
	font-size: inherit !important;
	line-height: inherit !important;
}
body.websitehiretermsandconditions section.form-block .form-wrapper > h3,
body.websitehiretermsandconditions section.form-block .form-wrapper h3 {
	font-family: "SourceSerifPro-SemiBoldIt", "SourceSerifPro-BoldIt", serif !important;
	font-style: italic !important;
	font-weight: 600 !important;
	font-size: 24px !important;
	line-height: 1.2 !important;
	color: #e81e75 !important;
	margin: 28px 0 12px !important;
	float: none !important;
	width: 100% !important;
	text-align: left !important;
}
body.websitehiretermsandconditions section.form-block .form-wrapper h3 b,
body.websitehiretermsandconditions section.form-block .form-wrapper h3 strong {
	font-weight: inherit !important;
	font-family: inherit !important;
}
body.websitehiretermsandconditions section.form-block .form-wrapper a {
	color: #220090 !important;
	text-decoration: underline !important;
}
body.websitehiretermsandconditions section.form-block .overlay-shape {
	display: none !important;
}
@media (max-width: 767px) {
	body.websitehiretermsandconditions section.form-block {
		padding: 28px 0 40px !important;
	}
	body.websitehiretermsandconditions section.form-block .form-wrapper > span,
	body.websitehiretermsandconditions section.form-block .form-wrapper > i,
	body.websitehiretermsandconditions section.form-block .form-wrapper > p {
		font-size: 16px !important;
		line-height: 24px !important;
	}
	body.websitehiretermsandconditions section.form-block .form-wrapper h3 {
		font-size: 20px !important;
	}
}

/* --- #54 Contact / all form-block submit buttons (light + brand) -------- */
section.form-block .gform_wrapper .gform_footer,
section.form-block .gform_wrapper .gform_page_footer,
section.standard-form-block .gform_wrapper .gform_footer,
section.standard-form-block .gform_wrapper .gform_page_footer {
	text-align: left;
	padding-top: 16px;
	border: none !important;
	margin: 0;
}
section.form-block .gform_wrapper .gform_button,
section.form-block .gform_wrapper input[type="submit"],
section.form-block .gform_wrapper button[type="submit"],
section.form-block .gform_wrapper .gform_next_button,
section.form-block .form-wrapper .gform_footer input,
section.form-block .form-wrapper .gform_footer button,
section.standard-form-block .gform_wrapper .gform_button,
section.standard-form-block .gform_wrapper input[type="submit"],
section.standard-form-block .gform_wrapper button[type="submit"],
section.standard-form-block .form-wrapper .gform_footer input,
section.standard-form-block .form-wrapper .gform_footer button {
	background-color: #e81e75 !important;
	background: #e81e75 !important;
	border: none !important;
	border-radius: 0 !important;
	color: #fff !important;
	min-width: 140px !important;
	width: auto !important;
	height: 56px !important;
	line-height: 56px !important;
	padding: 0 40px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	font-family: "Source Sans Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	float: none !important;
	margin: 0 !important;
	box-shadow: none !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
section.form-block .gform_wrapper .gform_button:hover,
section.form-block .gform_wrapper input[type="submit"]:hover,
section.form-block .gform_wrapper button[type="submit"]:hover,
section.standard-form-block .gform_wrapper .gform_button:hover,
section.standard-form-block .gform_wrapper input[type="submit"]:hover,
section.standard-form-block .gform_wrapper button[type="submit"]:hover {
	background-color: #580f8b !important;
	background: #580f8b !important;
	color: #fff !important;
}
/* Brand dark BGs keep white button / brand text from earlier rules — re-assert */
section.form-block.bg-fuschia .gform_wrapper .gform_button,
section.form-block.bg-fuschia .gform_wrapper input[type="submit"],
section.form-block.bg-fuschia .gform_wrapper button[type="submit"],
section.form-block.bg-purple .gform_wrapper .gform_button,
section.form-block.bg-purple .gform_wrapper input[type="submit"],
section.form-block.bg-purple .gform_wrapper button[type="submit"],
section.form-block.bg-dark-purple .gform_wrapper .gform_button,
section.form-block.bg-dark-purple .gform_wrapper input[type="submit"],
section.form-block.bg-dark-purple .gform_wrapper button[type="submit"],
section.form-block.bg-blue .gform_wrapper .gform_button,
section.form-block.bg-blue .gform_wrapper input[type="submit"],
section.form-block.bg-blue .gform_wrapper button[type="submit"] {
	background: #fff !important;
	background-color: #fff !important;
	color: var(--oms-form-brand, #e81e75) !important;
}

/* --- #55 Contact / form mobile: consistent field + label rhythm ----------
   Stack measured on staging was uneven:
   - text fields: 12px between controls (labels hidden)
   - selects: ~2px label→control (inline-block labels + ginput margin-top:0)
   - HTML section heads: +28 top → 40px jump vs 12px field gaps
   One mobile system: field gap 16, label→control 8, section break 32. */
@media (max-width: 767px) {
	/* Base field stack */
	section.form-block .gform_wrapper ul.gform_fields,
	section.standard-form-block .gform_wrapper ul.gform_fields {
		margin: 0 !important;
		padding: 0 !important;
	}
	section.form-block .gform_wrapper .gfield,
	section.standard-form-block .gform_wrapper .gfield {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 0 !important;
		margin-bottom: 16px !important;
		padding: 0 !important;
		clear: both !important;
	}
	/* Half-width classes full-bleed on mobile — same stack gap, no double margin */
	section.form-block .form-wrapper .formLeft,
	section.form-block .form-wrapper .formRight,
	section.form-block .gform_wrapper .formLeft,
	section.form-block .gform_wrapper .formRight,
	section.standard-form-block .form-wrapper .formLeft,
	section.standard-form-block .form-wrapper .formRight,
	section.standard-form-block .gform_wrapper .formLeft,
	section.standard-form-block .gform_wrapper .formRight {
		width: 100% !important;
		float: none !important;
		clear: both !important;
		margin-top: 0 !important;
		margin-bottom: 16px !important;
		padding: 0 !important;
	}
	/* Visible labels — block + fixed gap above control (selects were ~2px) */
	section.form-block .gform_wrapper .gfield:not(.hidden_label) > .gfield_label,
	section.form-block .gform_wrapper .gfield:not(.hidden_label) > legend.gfield_label,
	section.form-block .gform_wrapper .gfield:not(.hidden_label) .gfield_label.gform-field-label,
	section.standard-form-block .gform_wrapper .gfield:not(.hidden_label) > .gfield_label,
	section.standard-form-block .gform_wrapper .gfield:not(.hidden_label) > legend.gfield_label,
	section.standard-form-block .gform_wrapper .gfield:not(.hidden_label) .gfield_label.gform-field-label {
		display: block !important;
		float: none !important;
		width: 100% !important;
		margin: 0 0 8px !important;
		padding: 0 !important;
		line-height: 1.3 !important;
		font-size: 16px !important;
		font-weight: 400 !important;
	}
	/* Hidden labels stay collapsed */
	section.form-block .gform_wrapper .gfield.hidden_label > .gfield_label,
	section.form-block .gform_wrapper .gfield.hidden_label > legend.gfield_label,
	section.standard-form-block .gform_wrapper .gfield.hidden_label > .gfield_label,
	section.standard-form-block .gform_wrapper .gfield.hidden_label > legend.gfield_label {
		margin: 0 !important;
		padding: 0 !important;
		/* keep GF screen-reader / clip behaviour; don't force height */
	}
	/* Input container — no extra top (label margin owns the gap) */
	section.form-block .gform_wrapper .top_label .ginput_container,
	section.form-block .gform_wrapper .ginput_container,
	section.standard-form-block .gform_wrapper .top_label .ginput_container,
	section.standard-form-block .gform_wrapper .ginput_container {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
	}
	/* Section / HTML headings */
	section.form-block .gform_wrapper .gfield--type-html,
	section.form-block .gform_wrapper .gfield--type-section,
	section.form-block .gform_wrapper .gsection,
	section.form-block .gform_wrapper li.gfield.gsection,
	section.form-block .gform_wrapper .gfield_html,
	section.standard-form-block .gform_wrapper .gfield--type-html,
	section.standard-form-block .gform_wrapper .gfield--type-section,
	section.standard-form-block .gform_wrapper .gsection,
	section.standard-form-block .gform_wrapper li.gfield.gsection,
	section.standard-form-block .gform_wrapper .gfield_html {
		margin-top: 18px !important;
		margin-bottom: 18px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		clear: both !important;
		width: 100% !important;
	}
	/* Date field full-bleed on mobile (icon overlay rules are global above) */
	section.form-block .gform_wrapper .gfield--type-date,
	section.form-block .gform_wrapper .gfield--input-type-date,
	section.standard-form-block .gform_wrapper .gfield--type-date,
	section.standard-form-block .gform_wrapper .gfield--input-type-date {
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
	}
	/* First field in the form: no phantom top space (honeypot may be first — also zero html first-of-type) */
	section.form-block .gform_wrapper ul.gform_fields > .gfield:first-child,
	section.form-block .gform_wrapper ul.gform_fields > .gfield.gform_validation_container + .gfield,
	section.form-block .gform_wrapper .gfield--type-html:first-child,
	section.form-block .gform_wrapper .gfield--type-section:first-child,
	section.form-block .gform_wrapper .gsection:first-child,
	section.standard-form-block .gform_wrapper ul.gform_fields > .gfield:first-child,
	section.standard-form-block .gform_wrapper ul.gform_fields > .gfield.gform_validation_container + .gfield,
	section.standard-form-block .gform_wrapper .gfield--type-html:first-child,
	section.standard-form-block .gform_wrapper .gfield--type-section:first-child {
		margin-top: 0 !important;
	}
	/* If an HTML heading is the first *visible* block after honeypot, kill its top margin */
	section.form-block .gform_wrapper .gform_validation_container + .gfield_html,
	section.form-block .gform_wrapper .gform_validation_container + .gfield--type-html,
	section.standard-form-block .gform_wrapper .gform_validation_container + .gfield_html,
	section.standard-form-block .gform_wrapper .gform_validation_container + .gfield--type-html {
		margin-top: 0 !important;
	}
	/* Heading copy inside HTML fields — no extra nested margins fighting the field mb */
	section.form-block .gform_wrapper .gfield_html p,
	section.form-block .gform_wrapper .gsection_title,
	section.form-block .gform_wrapper h2,
	section.form-block .gform_wrapper h3,
	section.standard-form-block .gform_wrapper .gfield_html p,
	section.standard-form-block .gform_wrapper .gsection_title {
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1.35 !important;
	}
	/* Select2 full width so label/control columns line up */
	section.form-block .gform_wrapper .select2-container,
	section.standard-form-block .gform_wrapper .select2-container {
		width: 100% !important;
	}
	/* Footer / submit — same 16 rhythm off last field */
	section.form-block .gform_wrapper .gform_footer,
	section.form-block .gform_wrapper .gform_page_footer,
	section.standard-form-block .gform_wrapper .gform_footer,
	section.standard-form-block .gform_wrapper .gform_page_footer {
		padding-top: 8px !important; /* + last field 16 ≈ 24 above button */
		margin-top: 0 !important;
		margin-bottom: 0 !important;
	}
}

/* ==========================================================================
   Page reveal — kill hide-until-window-load gate
   main/footer start opacity:0 + visibility:hidden until .loaded on window.load,
   then 1s ease. That makes about/etc feel "blank forever". Show immediately.
   ========================================================================== */
main,
main.main,
footer,
footer.footer {
	opacity: 1 !important;
	visibility: visible !important;
	/* keep layout transitions if any, but not a forced 1s fade-in from invisible */
	transition: none !important;
}

/* ==========================================================================
   Home purple full-screen loader

   Previously killed outright (display:none) because it could trap the page.
   It is now opt-in per request: PHP puts .oms-loader on <html> for the home
   template only, and oms_loader_script() adds .oms-loader-done on window load
   (min 800ms so it cannot flash, max 4000ms so it cannot trap). No JS, no
   loader — the <noscript> rule below hides it. The page-reveal override above
   still keeps main/footer visible independently, so this is a pure overlay.
   ========================================================================== */
span.loading,
.loading {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	z-index: -1 !important;
}

html.oms-loader span.loading {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	z-index: 9999 !important;
	transition: opacity 0.6s ease, visibility 0.6s ease !important;
}

html.oms-loader.oms-loader-done span.loading {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/*
 * The wordmark itself is the supplied semibold artwork (replaces the heavier
 * oms-loading.svg). main.min.css sizes .spinner to 40vw / 60vw and pulses it;
 * only the aspect differs (2.08:1 vs the old 2.55:1), so nothing to override.
 */

/* ==========================================================================
   Friends — restore live spacing

   The 120px "even vertical inset" above was introduced for the campaign page
   (celebrant-dj-mc), which is the only other page running this block. Friends
   inherited it and reads far airier than live: 120/120 vs 60/60 section pad,
   and a 48px grid row gap vs live's 16px (block height 1344 vs 1115).
   Scoped to body.friends so the campaign page keeps its inset.
   ========================================================================== */
body.friends section.four-column-list-repeater-block,
body.friends section.four-column-list-repeater-block.bg-light-blue {
	padding-top: 60px !important;
	padding-bottom: 60px !important;
}

body.friends section.two-column-text-block {
	padding-top: 60px !important;
	padding-bottom: 60px !important;
}

body.friends section.four-column-list-repeater-block .list-block.desktop {
	row-gap: 16px;
}

/*
 * Friends mobile — even blue band above the first row and below the last.
 *
 * At ≤767 the block renders as the accordion, whose .question carries 24px of
 * its own top padding. That stacked on the section's 60px, giving 84px of empty
 * blue above the first label while the last divider sat only 60px off the
 * bottom (the trailing 24px lives above that divider). 36 + 24 = 60 either end.
 */
@media only screen and (max-width: 767px) {
	body.friends section.four-column-list-repeater-block,
	body.friends section.four-column-list-repeater-block.bg-light-blue {
		padding-top: 36px !important;
		padding-bottom: 60px !important;
	}
}

/* ==========================================================================
   #64 Blog Post Headings — fix h3 (blue serif, 25px desktop) and h5 (body copy, bold)
   Scoped to section.article-container .content-wrapper to avoid post title/date.
   DELIBERATELY covers podcast episodes too: templates/single-podcasts.php reuses
   the same section.article-container + .content-wrapper markup, and client task
   #59 explicitly asked podcast font styles to match the blog page.
   Desktop: h3 SourceSerifPro-SemiBold 25px/28.75px, blue #220090, tracking -0.5px
          (one step below desktop h2 @ 30px, matching the Services package-tile h3).
   Mobile: h3 steps down to 22px/25.3px, restoring the theme's pre-existing hierarchy
          where h3 sits below mobile h2 (28px), matching Services tile sizing.
   h5: Source Sans Pro 18px/24px bold, body colour #0B080C, margin 16px (matches
       body copy metrics at all viewports, so "body copy but bold" throughout).
   ========================================================================== */
section.article-container .content-wrapper h3 {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif !important;
	font-weight: 600 !important;
	font-style: normal !important;
	font-size: 25px !important;
	line-height: 28.75px !important;
	letter-spacing: -0.5px !important;
	color: #220090 !important;
	margin-bottom: 20px !important;
}

section.article-container .content-wrapper h5 {
	font-family: "Source Sans Pro", sans-serif !important;
	font-size: 18px !important;
	line-height: 24px !important;
	font-weight: 700 !important;
	color: #0B080C !important;
	letter-spacing: normal !important;
	margin-bottom: 16px !important;
}

@media (max-width: 767px) {
	section.article-container .content-wrapper h3 {
		font-size: 22px !important;
		line-height: 25.3px !important;
	}
}

/* ==========================================================================
   #64 follow-up — inline bold inside blog headings must not swap the face.

   main.min.css carries a global `body strong{font-family:"Source Sans Pro";
   font-weight:400}`. Nothing scopes strong inside a heading, so when an editor
   bolds a heading in the WYSIWYG the markup becomes `<h2><strong>…</strong></h2>`
   and that global rule repaints the whole heading in sans-serif — the heading
   silently loses its serif face. Posts written without the stray <strong>
   were unaffected, which is why only some posts looked wrong.

   Headings already define their own face, weight and colour, so bold inside a
   heading should be a no-op. Covers podcast episodes too — single-podcasts.php
   reuses the same article-container/content-wrapper markup.
   ========================================================================== */
section.article-container .content-wrapper h1 strong,
section.article-container .content-wrapper h1 b,
section.article-container .content-wrapper h2 strong,
section.article-container .content-wrapper h2 b,
section.article-container .content-wrapper h3 strong,
section.article-container .content-wrapper h3 b,
section.article-container .content-wrapper h4 strong,
section.article-container .content-wrapper h4 b,
section.article-container .content-wrapper h5 strong,
section.article-container .content-wrapper h5 b,
section.article-container .content-wrapper h6 strong,
section.article-container .content-wrapper h6 b {
	font-family: inherit !important;
	font-weight: inherit !important;
	font-style: inherit !important;
	font-size: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
}

/* --- #64 follow-up (2): links inside blog headings ------------------------
   Same bug class as the strong/b fix above. `body,body a,html` in main.min.css
   sets font-family on the <a> element itself, so a link inside a heading is not
   covered by the heading's own !important font-family — inheritance only applies
   when nothing targets the child directly. Result: a link inside a serif heading
   rendered in sans-serif.

   Colour is deliberately NOT inherited here. A link inside a heading should stay
   visually distinguishable as a link; forcing it to the heading colour would
   remove the only affordance that it is clickable. Only the typeface metrics are
   normalised. text-decoration is already handled by main.min.css for h1-h5.
   ------------------------------------------------------------------------- */
section.article-container .content-wrapper h1 a,
section.article-container .content-wrapper h2 a,
section.article-container .content-wrapper h3 a,
section.article-container .content-wrapper h4 a,
section.article-container .content-wrapper h5 a,
section.article-container .content-wrapper h6 a {
	font-family: inherit !important;
	font-weight: inherit !important;
	font-style: inherit !important;
	font-size: inherit !important;
	letter-spacing: inherit !important;
}

/* ==========================================================================
   #65 Pink/magenta campaign form — datepicker calendar text unreadable.

   Bug: opening the "Event date" picker on the campaign form showed a blank
   white box — two pairs of prev/next arrows, no weekday row, no day numbers.

   Cause: the blanket brand-text rule at line 325 above,
     .bg-purple span, .bg-dark-purple span, .bg-blue span, .bg-fuschia span
       { color: #fff !important; }
   is completely unqualified — it hits any <span> anywhere under a brand
   section, at any depth. Gravity Forms 3's datepicker (replaced the old
   jQuery UI picker; see the dead #ui-datepicker-div/.ui-datepicker-* rules
   elsewhere in this theme) inserts its calendar with
   insertAfter(wrapper, dateInput) — i.e. as a sibling of the date <input>,
   inside .ginput_container_date, inside .gform_wrapper, inside
   section.form-block.bg-*. So it IS a descendant of the brand section, and
   every weekday letter and day number GF renders is wrapped in a <span>
   (e.g. `<th><span>S</span></th>`, `<td><span>14</span></td>`), so this
   rule paints them white against the calendar's own white background.
   The prev/next nav arrows survived because GF draws them as a ::before
   icon-font glyph on <td class="nav prev/next">, not a <span> — untouched
   by a selector that only matches the span element.

   Checked theme.min.css for every other span GF renders inside the
   calendar: the arrow-character span inside .nav.prev/.nav.next and the
   plain-text "current" month/year label span are both display:none by
   GF's own CSS (replaced visually by the month/year <select>), so they
   need no colour rule. The one extra state GF does colour is
   `.dayToday span:focus/:hover` (see below) — GF drops the today marker's
   dark background on hover/focus, so its text must revert too, or it
   would sit white-on-transparent against the panel.

   Fix: do NOT touch the line 325 rule — other modules legitimately depend
   on it. Instead, restore Gravity Forms' own calendar colours (copied
   verbatim from the plugin's theme.min.css) with higher-specificity
   !important rules scoped strictly to .gform-datepicker-calendar, so
   nothing else in the form is affected. The base rule below covers every
   span in the calendar (not just day/weekday cells) so nothing GF might
   render there in future is missed. GF's own state rules (today's
   hover/focus, disabled) are NOT !important, so a blanket override would
   flatten them — each state is re-declared explicitly, in increasing
   specificity, below the base rule.
   The month/year <select> inside the calendar is hit by a second, separate
   unqualified rule (".gform_wrapper select", further down this file) that
   forces the same white-on-white plus an oversized branded field box model;
   that select is restored to GF's own compact styling too.
   ========================================================================== */
section.form-block.bg-purple .gform-datepicker-calendar span,
section.form-block.bg-dark-purple .gform-datepicker-calendar span,
section.form-block.bg-blue .gform-datepicker-calendar span,
section.form-block.bg-fuschia .gform-datepicker-calendar span {
	color: #2f4054 !important;
}

section.form-block.bg-purple .gform-datepicker-calendar table.calendar .dayToday span,
section.form-block.bg-dark-purple .gform-datepicker-calendar table.calendar .dayToday span,
section.form-block.bg-blue .gform-datepicker-calendar table.calendar .dayToday span,
section.form-block.bg-fuschia .gform-datepicker-calendar table.calendar .dayToday span {
	color: #fff !important;
}

section.form-block.bg-purple .gform-datepicker-calendar table.calendar .dayToday span:focus,
section.form-block.bg-purple .gform-datepicker-calendar table.calendar .dayToday span:hover,
section.form-block.bg-dark-purple .gform-datepicker-calendar table.calendar .dayToday span:focus,
section.form-block.bg-dark-purple .gform-datepicker-calendar table.calendar .dayToday span:hover,
section.form-block.bg-blue .gform-datepicker-calendar table.calendar .dayToday span:focus,
section.form-block.bg-blue .gform-datepicker-calendar table.calendar .dayToday span:hover,
section.form-block.bg-fuschia .gform-datepicker-calendar table.calendar .dayToday span:focus,
section.form-block.bg-fuschia .gform-datepicker-calendar table.calendar .dayToday span:hover {
	color: #2f4054 !important;
}

section.form-block.bg-purple .gform-datepicker-calendar table.calendar .disabled span,
section.form-block.bg-dark-purple .gform-datepicker-calendar table.calendar .disabled span,
section.form-block.bg-blue .gform-datepicker-calendar table.calendar .disabled span,
section.form-block.bg-fuschia .gform-datepicker-calendar table.calendar .disabled span {
	color: #686e77 !important;
}

/* Month/year <select> inside the calendar is also caught by the
   ".gform_wrapper select" brand-input rule further down this file.
   Restore GF's own compact, transparent, centred select: colour,
   background (incl. its down-arrow chevron) and layout copied verbatim
   from theme.min.css's ".gform-datepicker-calendar select" rule. GF
   declares no border/padding/min-height/font-size for this selector, so
   those are cleared with `unset` rather than invented — `unset` resolves
   to each property's initial value (border: none, padding: 0,
   min-height: auto) or, for the inherited font-size, to the calendar
   panel's own .8125rem, matching GF's compact sizing. */
section.form-block.bg-purple .gform-datepicker-calendar select,
section.form-block.bg-dark-purple .gform-datepicker-calendar select,
section.form-block.bg-blue .gform-datepicker-calendar select,
section.form-block.bg-fuschia .gform-datepicker-calendar select {
	background-color: transparent !important;
	background-image: url("/wp-content/plugins/gravityforms/images/theme/down-arrow.svg") !important;
	background-position: 100% 50% !important;
	background-repeat: no-repeat !important;
	background-size: 24px 24px !important;
	color: #585e6a !important;
	display: inline-block !important;
	text-align: center !important;
	width: 100% !important;
	border: unset !important;
	padding: unset !important;
	min-height: unset !important;
	font-size: unset !important;
}

/* ==========================================================================
   404 — page not found.

   index.php routes is_404() to get_template_part('templates/template-404'),
   and that file did not exist. get_template_part() fails silently on a missing
   file, so <main class="page"> rendered empty: header, a tall white gap, then
   footer. The pre-rebuild production site has the identical gap, so this was
   never implemented rather than newly broken. templates/template-404.php now
   supplies the markup; this gives it spacing and type matching the rest of the
   site (h1 uses the same blue serif as blog h1; body copy matches 18/30).
   ========================================================================== */
section.error-404 {
	float: left;
	width: 100%;
	padding: 120px 0 100px;
	text-align: center;
}
section.error-404 h1 {
	font-family: "SourceSerifPro-SemiBold", "Source Serif Pro", serif !important;
	font-weight: 600 !important;
	font-size: 60px !important;
	line-height: 1.05 !important;
	letter-spacing: -2px !important;
	color: #220090 !important;
	margin: 0 0 20px !important;
}
section.error-404 p {
	font-family: "Source Sans Pro", sans-serif !important;
	font-size: 18px !important;
	line-height: 30px !important;
	color: #0B080C !important;
	margin: 0 auto 32px !important;
	max-width: 560px !important;
}
section.error-404 .button-wrap a.stdBtn {
	margin: 0 8px 12px;
}
@media (max-width: 767px) {
	section.error-404 {
		padding: 70px 0 60px;
	}
	section.error-404 h1 {
		font-size: 35px !important;
		letter-spacing: -1.5px !important;
	}
}

/* ==========================================================================
   #66 Campaign form on brand backgrounds — text and fields unreadable.

   Client: "text/fields hard to read" on the purple campaign form
   (/celebrant-dj-mc/, section.form-block.bg-purple, brand purple #bc34ba).
   Four separate contrast failures, all caused by rules written without a
   background qualifier reaching onto a brand background:

   1. Select2 closed control — 1.00:1, literally invisible. The theme runs
      jQuery('select').select2() on gform_post_render, so the visible control
      is NOT the <select> (which is correctly styled transparent/white) but a
      Select2 <span class="select2-selection__rendered"> over Select2's own
      white box. The blanket `.bg-* span{color:#fff!important}` therefore
      painted white text on white. Same failure mode as the #65 datepicker
      fix. Select2's open dropdown is appended to <body>, outside the brand
      section, so it is untouched and already reads correctly (19.9:1).
   2. Validation messages — 1.02:1. The template's own inline <style> forces
      #e80000, and .validation_message is a <div>, so the brand white-text
      rule never reached it: red on purple.
   3. GF HTML-field copy — 1.12:1. The rule at line ~348 forces #e81e75 on
      every section.form-block regardless of background; it was written for
      LIGHT backgrounds (.bg-white/.bg-none/.bg-light-*) but has no brand
      carve-out, so pink lands on purple.
   4. Placeholders — 3.34:1 at rgba(255,255,255,.75). These matter more than
      usual here because the design clips the <label>s, so the placeholder is
      the only visible field name.

   All four are fixed with scoped overrides below; nothing else in the form
   changes, and light-background forms keep their existing treatment.
   ========================================================================== */

/* 1. Select2 closed control — outlined to match the text inputs.
      The visible control is a Select2 widget, not the <select>, so the
      theme's transparent/white-border input styling never reaches it and it
      rendered as a solid white box (client asked for outlined, not filled).
      Box goes transparent with a white 1px border; the inner __rendered span
      carries a pink 1px !important border from main.min.css (offset 55481)
      that only showed once the fill was removed, so it is neutralised here.
      Text returns to white, matching typed input text. Select2's open
      dropdown list is appended to <body>, outside the brand section, so it
      keeps its own white-background / dark-text styling and stays readable.

      Two-pass lesson, recorded so it isn't repeated: the actual opaque fill
      is NOT on .select2-selection--single. Select2's real DOM is
      span.select2.select2-container.select2-container--default (one outer
      element, three classes) > span.selection > span.select2-selection
      .select2-selection--single > span.select2-selection__rendered. The
      first pass at this fix only cleared .select2-selection--single and
      .select2-selection__rendered — both correctly targeted, but they sit
      two DOM levels inside span.select2, which carries its own
      `background:#fff` (main.min.css offset 53962, plain
      `span.select2{position:relative;background:#fff;text-align:left!important;
      top:0!important;left:0;width:100%;cursor:pointer;-webkit-appearance:none;
      -moz-appearance:none;appearance:none;height:50px}` — no border/shadow/
      radius/padding on that rule, only background needs neutralising). With
      the inner box made transparent, that ancestor's white showed straight
      through behind now-white text: a solid white box with invisible text,
      worse than the original. .selection (the wrapper span between the two)
      sets no background anywhere in the codebase, so it needs no override. */
section.form-block.bg-purple .gform_wrapper span.select2,
section.form-block.bg-dark-purple .gform_wrapper span.select2,
section.form-block.bg-blue .gform_wrapper span.select2,
section.form-block.bg-fuschia .gform_wrapper span.select2 {
	background-color: transparent !important;
}
section.form-block.bg-purple .select2-container--default .select2-selection--single,
section.form-block.bg-dark-purple .select2-container--default .select2-selection--single,
section.form-block.bg-blue .select2-container--default .select2-selection--single,
section.form-block.bg-fuschia .select2-container--default .select2-selection--single {
	background-color: transparent !important;
	border: 1px solid #fff !important;
	border-radius: 0 !important;
}
section.form-block.bg-purple .select2-selection__rendered,
section.form-block.bg-dark-purple .select2-selection__rendered,
section.form-block.bg-blue .select2-selection__rendered,
section.form-block.bg-fuschia .select2-selection__rendered {
	color: #fff !important;
	border: 0 !important;
	background-color: transparent !important;
}
section.form-block.bg-purple .select2-selection__placeholder,
section.form-block.bg-dark-purple .select2-selection__placeholder,
section.form-block.bg-blue .select2-selection__placeholder,
section.form-block.bg-fuschia .select2-selection__placeholder {
	color: rgba(255, 255, 255, 0.92) !important;
}
section.form-block.bg-purple .select2-selection__arrow b,
section.form-block.bg-dark-purple .select2-selection__arrow b,
section.form-block.bg-blue .select2-selection__arrow b,
section.form-block.bg-fuschia .select2-selection__arrow b {
	border-color: #fff transparent transparent transparent !important;
}
section.form-block.bg-purple .select2-container--open .select2-selection__arrow b,
section.form-block.bg-dark-purple .select2-container--open .select2-selection__arrow b,
section.form-block.bg-blue .select2-container--open .select2-selection__arrow b,
section.form-block.bg-fuschia .select2-container--open .select2-selection__arrow b {
	border-color: transparent transparent #fff transparent !important;
}

/* 2. Validation messages — white + bold reads on every brand background.
      Field-level error borders still carry the error state visually. */
section.form-block.bg-purple .form-wrapper .validation_message,
section.form-block.bg-dark-purple .form-wrapper .validation_message,
section.form-block.bg-blue .form-wrapper .validation_message,
section.form-block.bg-fuschia .form-wrapper .validation_message {
	color: #fff !important;
	font-weight: 700 !important;
}

/* 3. GF HTML-field copy — brand-background carve-out from the pink rule.
      Both selector shapes are covered so either match beats (0,2,3). */
section.form-block.bg-purple li.gfield_html p,
section.form-block.bg-purple .gform_wrapper .gfield_html p,
section.form-block.bg-dark-purple li.gfield_html p,
section.form-block.bg-dark-purple .gform_wrapper .gfield_html p,
section.form-block.bg-blue li.gfield_html p,
section.form-block.bg-blue .gform_wrapper .gfield_html p,
section.form-block.bg-fuschia li.gfield_html p,
section.form-block.bg-fuschia .gform_wrapper .gfield_html p {
	color: #fff !important;
}

/* 4. Placeholders — .75 → .92 alpha (~4.7:1, clears AA) while staying
      slightly lighter than typed text so empty fields still read as empty. */
section.form-block.bg-purple .gform_wrapper input::placeholder,
section.form-block.bg-purple .gform_wrapper textarea::placeholder,
section.form-block.bg-dark-purple .gform_wrapper input::placeholder,
section.form-block.bg-dark-purple .gform_wrapper textarea::placeholder,
section.form-block.bg-blue .gform_wrapper input::placeholder,
section.form-block.bg-blue .gform_wrapper textarea::placeholder,
section.form-block.bg-fuschia .gform_wrapper input::placeholder,
section.form-block.bg-fuschia .gform_wrapper textarea::placeholder {
	color: rgba(255, 255, 255, 0.92) !important;
}

/* 5. Full-width fields — client asked every input/select in the brand-
      background form to render full width, uniform edge-to-edge, no
      half-width columns.

      Root cause: section.form-block .gform_wrapper .gform_fields is a
      12-col CSS grid (see the "Layout: 12-col CSS grid" rule earlier in
      this file). A field <li class="gfield"> spans all 12 columns by
      default; GF's own half-width classes narrow that track to
      grid-column: span 6 — both the modern class (gfield--width-half) and
      the legacy ones this markup can carry (gf_left_half / gf_right_half /
      the theme's own formLeft / formRight, which this page actually uses).
      The <input>/<select> inside were already forced to width:100% by the
      "Text-like inputs only" rule above (and Select2's span.select2 wrapper
      by main.min.css), so a control always filled whatever column it was
      given — the "half width" Photo booth select the client flagged was a
      full-width control inside a half-width grid track, not a narrow
      control in a full-width track. Setting the track itself to
      grid-column: 1 / -1 is what actually fixes it; width/float/clear/
      margin/padding on the <li> are reset too, in case a future field ever
      lands here without .gform_fields as its grid parent (float layout).
      The layout here is confirmed CSS grid in practice, not float — the
      "Default" rule two blocks above already sets float:none/clear:none on
      every .gfield, and the grid-template-columns rule above that is what
      actually places fields side by side.

      Deliberate consequence: this also flattens the intentional side-by-
      side pairs — First Name/Last Name and Email/Phone are laid out as
      two-up rows via formLeft/formRight, and now stack one per row like
      every other field. That is what "uniform full width" requires; it is
      not an oversight, and the next person touching this form should not
      "fix" it back into pairs without re-checking with the client.

      Excluded on purpose: the submit button and checkbox/radio fields are
      not affected by this half/full grid problem — they are button/choice
      widgets sized by their own rules elsewhere in this file, and forcing
      them onto the field grid's full-width track would visually break them
      (a stretched submit button, fat empty checkbox/radio hit-boxes).
      Nothing below touches .gform_button, input[type="submit"],
      input[type="checkbox"], input[type="radio"], or .gfield-choice-input. */
section.form-block.bg-purple .gform_wrapper .gfield.gfield--width-half,
section.form-block.bg-purple .gform_wrapper .gfield.gf_left_half,
section.form-block.bg-purple .gform_wrapper .gfield.gf_right_half,
section.form-block.bg-purple .form-wrapper .formLeft,
section.form-block.bg-purple .form-wrapper .formRight,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--width-half,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gf_left_half,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gf_right_half,
section.form-block.bg-dark-purple .form-wrapper .formLeft,
section.form-block.bg-dark-purple .form-wrapper .formRight,
section.form-block.bg-blue .gform_wrapper .gfield.gfield--width-half,
section.form-block.bg-blue .gform_wrapper .gfield.gf_left_half,
section.form-block.bg-blue .gform_wrapper .gfield.gf_right_half,
section.form-block.bg-blue .form-wrapper .formLeft,
section.form-block.bg-blue .form-wrapper .formRight,
section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--width-half,
section.form-block.bg-fuschia .gform_wrapper .gfield.gf_left_half,
section.form-block.bg-fuschia .gform_wrapper .gfield.gf_right_half,
section.form-block.bg-fuschia .form-wrapper .formLeft,
section.form-block.bg-fuschia .form-wrapper .formRight {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	clear: both !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Controls themselves — belt-and-suspenders on top of the track fix above,
   restated explicitly per field type so this group is self-contained.
   input[type="text"/"email"/"tel"/"date"], textarea and select already get
   width:100% from the "Text-like inputs only" rule earlier in this file;
   span.select2 (Select2's visible replacement for <select>) gets it from
   main.min.css but without !important, so it is restated here scoped to
   the brand form so nothing can win over it. */
section.form-block.bg-purple .gform_wrapper input[type="text"],
section.form-block.bg-purple .gform_wrapper input[type="email"],
section.form-block.bg-purple .gform_wrapper input[type="tel"],
section.form-block.bg-purple .gform_wrapper input[type="date"],
section.form-block.bg-purple .gform_wrapper textarea,
section.form-block.bg-purple .gform_wrapper select,
section.form-block.bg-purple .gform_wrapper span.select2,
section.form-block.bg-dark-purple .gform_wrapper input[type="text"],
section.form-block.bg-dark-purple .gform_wrapper input[type="email"],
section.form-block.bg-dark-purple .gform_wrapper input[type="tel"],
section.form-block.bg-dark-purple .gform_wrapper input[type="date"],
section.form-block.bg-dark-purple .gform_wrapper textarea,
section.form-block.bg-dark-purple .gform_wrapper select,
section.form-block.bg-dark-purple .gform_wrapper span.select2,
section.form-block.bg-blue .gform_wrapper input[type="text"],
section.form-block.bg-blue .gform_wrapper input[type="email"],
section.form-block.bg-blue .gform_wrapper input[type="tel"],
section.form-block.bg-blue .gform_wrapper input[type="date"],
section.form-block.bg-blue .gform_wrapper textarea,
section.form-block.bg-blue .gform_wrapper select,
section.form-block.bg-blue .gform_wrapper span.select2,
section.form-block.bg-fuschia .gform_wrapper input[type="text"],
section.form-block.bg-fuschia .gform_wrapper input[type="email"],
section.form-block.bg-fuschia .gform_wrapper input[type="tel"],
section.form-block.bg-fuschia .gform_wrapper input[type="date"],
section.form-block.bg-fuschia .gform_wrapper textarea,
section.form-block.bg-fuschia .gform_wrapper select,
section.form-block.bg-fuschia .gform_wrapper span.select2 {
	width: 100% !important;
	max-width: 100% !important;
}

/* 6. Select field labels — the "hide non-choice labels" rule above (~line
      1997) clips <label> for every field type it doesn't explicitly
      exclude, on the assumption text-like fields show their name via the
      placeholder attribute instead. Selects have no placeholder, so that
      rule leaves them anonymous: an outlined box reading "No" with nothing
      telling the client what it controls (Celebrant, DJ, MC, Photo booth,
      Party lights, Audio guest book, Sax, "How did you hear about us?").
      This reveals the label for select fields only, styled to match the
      HTML-field headings ("Which services are you interested in?" /
      "What extras would you like to add?", li.gfield_html p — bold, 16px,
      white; #66 group 3 above already turns that copy white on these
      backgrounds). Text input/textarea/checkbox/radio labels are
      untouched and stay clipped, per the placeholder design; the
      .gfield--type-select class is added on top of the original :not()
      exclusions (rather than replacing them) purely so this selector's
      specificity — 9 classes vs the hide rule's 8 — wins outright without
      relying on source order. */
section.form-block.bg-purple .gform_wrapper .gfield.gfield--type-select:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > .gfield_label,
section.form-block.bg-dark-purple .gform_wrapper .gfield.gfield--type-select:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > .gfield_label,
section.form-block.bg-blue .gform_wrapper .gfield.gfield--type-select:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > .gfield_label,
section.form-block.bg-fuschia .gform_wrapper .gfield.gfield--type-select:not(.gfield--type-checkbox):not(.gfield--type-radio):not(.gfield--type-choice) > .gfield_label {
	position: static !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 0 8px !important;
	overflow: visible !important;
	clip: auto !important;
	border: 0 !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}
