/*
Theme Name: TSP4
Theme URI: https://salvationpoem.com
Author: Photricity Web Design
Author URI: https://photricity.com
Version: 0.0.13
Description: Launched July 2025
Text Domain: tsp4
*/


/* Normalize
================================ */

html {
	-webkit-text-size-adjust: 100%;
	line-height: 1.15;
}

pre {
	font-family: monospace;
	font-size: 1em;
	overflow: auto;
}

figure {
	margin: 0;
}

abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

code,
kbd,
samp {
	font-family: monospace;
	font-size: 1em;
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

button,
input {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
	appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

fieldset {
	padding: 0.35em 0.75em 0.625em;
}

legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

progress {
	vertical-align: baseline;
}

textarea {
	overflow: auto;
}

[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

[type="search"] {
	-webkit-appearance: textfield;
	appearance: textfield;
	outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

[hidden],
.hidden,
.template,
.screen-reader-text {
	display: none;
}

article,
aside,
footer,
header,
nav,
section,
main,
details {
	display: block;
}

summary {
	display: list-item;
}

html,
body {
	overflow-x: hidden;
	overflow-y: auto;
}

footer {
	clear: both;
}


/* Variables
================================ */

body {
	/* Colors */
	--primary: #d74043;
	--primary-active: #f4585b;
	--fg-color: #241515;
	--bg-color: #fff;
	--white: #fff;
	--warm-grey: #eee6e2;
	--light-grey: #ccc;
	--med-grey: #bbb;
	--dark-grey: #333;
	--teal: #4999a2;
	--teal-light: #ff9c9b;
	--teal-dark: #184e60;
	--salmon: #ff9e8d;
	--gold: #FAAF5D;
	--blue: #457de5;
	--dark-blue: #1f2d4b;
	--primary-gradient: linear-gradient(135deg, var(--light-red), var(--dark-red));
	--teal-gradient: linear-gradient(135deg, var(--primary-active), var(--fg-color));
	--teal-gradient-active: linear-gradient(135deg, var(--primary-active), #6995a0);

	/* Other */
	--duration: 0.3s;
	--line-width: 0.15em;
	--main-padding: 5vw;
	--radius: 0.8rem;
	--radius-large: 1rem;
	--radius-small: 0.5rem;
	--hover-shadow: 0 0 1rem rgba(255, 255, 255, 0.5);
	--hover-shadow-red: 0 0 1rem rgba(255, 255, 255, 0.5);

	/* Font Weight */
	--normal: 400;
	--bold: 700;
}


/* Typography
================================ */

html {
	font-size: 14px;
}

body {
	margin: 0;
	color: var(--fg-color);
	background: var(--bg-color);
	font: var(--normal) 1.15em/1.8 'Lato', sans-serif;
	word-break: break-word;
	/* letter-spacing: 0.03em; */
}

#site-container {
	container-type: inline-size;
	margin: 0;
	width: 100%;
	height: 100%;
}

@media (max-width: 1000px) {
	body {
		font-size: 1.05em;
	}
}

@media (max-width: 750px) {
	body {
		font-size: 0.95em;
	}
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0.5em 0;
	font-weight: 300;
	line-height: 1.3;
	font-family: 'Merriweather', serif;
}

h1,
h2 {
	font-size: 2em;
}

h3 {
	font-size: 1.6em;
}

h4 {
	font-size: 1.4em;
}

h5 {
	font-size: 1.3em;
}

h6 {
	font-size: 1.2em;
}

b,
strong {
	font-weight: var(--bold);
}

dfn,
cite,
em,
i {
	font-style: italic;
}

p {
	margin: 0 0 1em;
	font-size: 1.1em;
}

small,
.small,
.has-small-font-size {
	font-size: 80%;
}

big,
.big,
.has-big-font-size {
	font-size: 120%;
}

.has-large-font-size,
.has-huge-font-size {
	font-size: 160%;
}

blockquote,
blockquote.wp-block-quote {
	margin: 0 0 1.5em;
	padding-left: 1.5rem;
	box-sizing: border-box;
	line-height: 2;
	border-left-width: 0;
	font-family: 'Merriweather', serif;
	font-weight: 300;
}

blockquote p:last-of-type {
	margin-bottom: 0;
}

blockquote.wp-block-quote::before {
	content: "\201C";
	font-size: 5em;
	color: var(--white);
	display: block;
	text-align: center;
	margin-bottom: -5rem;
	font-family: 'Merriweather', serif;
}

cite {
	font-family: 'Lato', sans-serif;
	opacity: 0.7;
	font-size: 1.1em !important;
	margin-top: 1em;
}

.quote-carousel {
	position: relative;
	overflow: hidden;
}

.quote-carousel .wp-block-group__inner-container {
	display: flex;
	flex-direction: row;
	transition: transform 0.5s ease;
}

.quote-carousel .wp-block-quote {
	flex: 0 0 100%;
	box-sizing: border-box;
}

.navigation {
	display: flex;
	justify-content: center;
	margin-top: 10px;
}

.indicator {
	width: 40px;
	height: 5px;
	background-color: #b6843c;
	margin: 0 5px;
	cursor: pointer;
}

.indicator.active {
	background-color: var(--bg-color);
}

.wp-block-pullquote {
    box-sizing: border-box;
    margin-bottom: 1.5em;
    color: var(--primary);
    padding: 1em;
    font-size: inherit;
    line-height: inherit;
    position: relative; /* Required for positioning pseudo-elements */
    border: none; /* Remove the original full-width borders */
	position: relative;
}

.wp-block-pullquote blockquote {
    border: none;
    padding: 0;
    margin: 0 auto;
    font-size: inherit;
    line-height: inherit;
}

.wp-block-pullquote p {
	margin: 0;
}

.wp-block-pullquote.is-style-solid-color {
	color: var(--bg-color);
	background-color: var(--primary);
	border-radius: var(--radius);
}

.text-center,
.has-text-align-center {
	text-align: center;
	margin-right: auto;
	margin-left: auto;
}

.text-left {
	text-align: left;
}

.text-right {
	text-align: right;
}

.upper {
	text-transform: uppercase;
}

::selection {
	color: var(--bg-color);
	background: var(--primary);
}

p.narrow,
.narrow .wp-block-cover__inner-container {
	max-width: 750px;
	margin-right: auto;
	margin-left: auto;
}

p.narrow-sm,
.narrow-sm .wp-block-cover__inner-container {
	max-width: 600px;
	margin-right: auto;
	margin-left: auto;
}

.serif {
	font-family: 'Merriweather', serif;
	font-weight: 300;
}

.line-height-large {
	line-height: 1.7;
}

.thin-font {
	font-weight: 300;
}


/* Lists
================================ */

ul,
ol,
li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry ul,
.widget ul,
.entry ol,
.widget ol {
	margin-bottom: 1.5em;
}

.entry li ul,
.widget li ul,
.entry li ol,
.widget li ol {
	margin: 0.5em 0 0;
}

.entry ol ul,
.widget ol ul {
	margin-left: 1.2em;
}

ul.bullet > li,
.entry ul:not(.list-group) > li,
.widget ul > li {
	margin: 0 0 0.5em 1.2em;
	position: relative;
	list-style: disc;
}

ol.numbered > li,
.entry ol > li,
.widget ol > li {
	margin: 0 0 0.5em;
	list-style: decimal inside;
}

ol li:before {
	content: '\00A0\00A0';
}

.entry ul.wp-block-latest-posts li {
	margin: 0;
}

ul.wp-block-latest-posts li:before,
.ninja-forms-form-wrap .list-checkbox-wrap li:before {
	display: none;
}


/* Links
================================ */

a {
	background-color: transparent;
	color: var(--primary);
	text-decoration: none;
	transition: color var(--duration) ease;
}

a:hover,
a:active,
a:focus {
	/* color: var(--primary-active); */
	text-decoration: none;
	outline: 0;
}

.skip-link {
	position: absolute !important;
	top: 10px;
	left: -999rem;
}

.skip-link:focus {
	left: var(--main-padding);
	z-index: 99;
}

.admin-bar .skip-link {
	top: 42px;
}

body.admin-bar {
	margin-top: -32px;
}

a img {
	transition: box-shadow var(--duration) ease;
}

a:hover img,
a:focus img {
	box-shadow: var(--hover-shadow);
}

.inactive {
	opacity: 0.5;
	filter: saturate(0.5);
	cursor: not-allowed;
}

#scroll-down {
	margin-bottom: 0;
}

#scroll-down a {
	background: none;
	box-shadow: none;
	margin-bottom: 1rem;
	position: relative; /* Add for positioning the pseudo-element */
	display: inline-block; /* Or 'block', needed for transform */
	padding-bottom: 30px; /* Add space for the arrow */
}

#scroll-down a::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 6px;
	width: 20px;
	height: 20px;
	border: 2px solid white;
	border-top: none;
	border-left: none;
	transform: translateX(-50%) rotate(45deg);
}


/* Navigation
================================ */

#nav {
	text-align: right;
}

@media (min-width: 1095px) {
	.menu-item,
	.page_item {
		display: inline-block;
		margin-right: 4em;
		padding: 0.4em 0.2em;
		padding-left: 0;
		text-transform: uppercase;
		/* font-size: 0.8em; */
	}

	.menu > .menu-item:last-of-type,
	.menu ul > .page_item:last-of-type {
		margin-right: 0;
	}

	.menu-item a,
	.page_item a {
		color: var(--bg-color);
	}

	.menu-item-has-children,
	.page_item_has_children {
		position: relative;
	}

	ul.sub-menu,
	ul.children {
		visibility: hidden;
		opacity: 0;
		/* More subtle scaling with slight upward movement */
		transform: scale(0.8) translateY(-10px);
		transform-origin: top-left;
		/* Keep the flash prevention but less aggressive */
		max-height: 0;
		overflow: hidden;
		padding: 0;
		/* padding: 0.5em 1.3em; */
		transition-property: opacity, visibility, transform, max-height, padding;
		transition-duration: 0.3s, 0s, 0.3s, 0.3s, 0s;
		transition-delay: 0s, 0.3s, 0s, 0s, 0.3s;
		/* Add smoother easing */
		transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
		position: absolute;
		top: 2.6em;
		width: 18em;
		background: #fff;
		z-index: 99;
		box-sizing: border-box;
		text-align: left;
		border-radius: var(--radius);
		box-shadow: var(--hover-shadow);
	}

	.menu-item-has-children:hover > .sub-menu,
	.menu-item-has-children:focus-within > .sub-menu,
	.page_item_has_children:hover > .children,
	.page_item_has_children:focus-within > .children {
		visibility: visible;
		opacity: 1;
		/* Gentle scale with smooth entry */
		transform: scale(1) translateY(0);
		max-height: 500px;
		padding: 0.5em 1.3em;
		transition-property: opacity, visibility, transform, max-height, padding;
		transition-duration: 0.25s, 0s, 0.25s, 0.25s, 0.25s;
		transition-delay: 0s, 0s, 0s, 0s, 0s;
		/* Smooth easing for entry */
		transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
	}

	.sub-menu .menu-item,
	.children .page_item {
		display: block;
		float: left;
		margin: 0;
		padding: 0;
		box-sizing: border-box;
		float: none;
		font-size: 0.8em;
		letter-spacing: 0;
	}

	.sub-menu .menu-item a,
	.children .page_item a {
		display: block;
		padding: 0.7rem 0;
		line-height: 1.5;
		width: 100%;
		color: var(--primary);
	}

	.open-menu,
	.close-menu {
		display: none;
	}
}

@media (max-width: 1094px) {
	#main-navigation-container {
		visibility: hidden;
		position: fixed;
		inset: 0;
		z-index: 10;
		background: transparent;
	}

	#main-navigation {
		position: fixed;
		top: 0;
		bottom: 0;
		right: -23em;
		z-index: 12;
		box-sizing: border-box;
		width: 80%;
		max-width: 20em;
		overflow-y: auto;
		padding: 1em var(--main-padding);
		background: var(--bg-color);
		box-shadow: 0.3rem 0 1rem rgba(0,0,0,0.2);
		transition: right var(--duration) ease-in-out;
		text-align: left;
	}

	#main-navigation-container.menu-open {
		visibility: visible;
		background: rgba(0, 0, 0, 0.5);
		transition-property: background, visibility;
		transition-delay: 0s, 0s;
		transition-duration: var(--duration), 0s;
	}

	#main-navigation-container.menu-closed {
		visibility: hidden;
		background: transparent;
		transition-property: background, visibility;
		transition-delay: 0s, var(--duration);
		transition-duration: var(--duration), 0s;
	}

	#main-navigation-container.menu-open #main-navigation {
		right: 0;
	}

	.admin-bar #main-navigation {
		top: 32px;
	}

	.open-menu,
	.close-menu {
		display: inline-block;
		width: 2.5rem;
		height: 2.5rem;
	}

	.open-menu {
		fill: var(--bg-color);
		transition: fill var(--duration) ease;
	}
	
	.page-template-page-cover .open-menu {
		fill: #fff;
	}

	.close-menu {
		fill: var(--primary);
		transition: fill var(--duration) ease;
		margin-bottom: 1em;
	}

	.open-menu:hover,
	.open-menu:focus,
	.close-menu:hover,
	.close-menu:focus {
		fill: var(--primary-active);
	}

	.nav-label {
		display: none;
	}

	.menu li a {
		display: block;
		margin-bottom: 0.6em;
		padding: 0.4em 0;
		line-height: 1.5;
		text-transform: uppercase;
		font-weight: var(--bold);
	}

	.menu-item-has-children > .sub-menu,
	.page_item_has_children > .children {
		padding-left: 1em;
		border: 0 solid var(--fg-color);
		border-left-width: var(--line-width);
	}

	.menu .button,
	.menu .menu-item-1592 a {
		display: table;
	}
}


/* Forms
================================ */

.button,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.wp-block-button__link,
.wp-block-file__button,
.more-link,
.page-numbers,
.post-edit-link,
.post-page-numbers,
.comment-reply-link,
.comment-navigation a,
#nav .menu > .menu-item:last-of-type > a,
#nav .menu > .page_item:last-of-type > a,
.wpdm-download-link {
	box-sizing: border-box;
	margin-bottom: 0.5em;
	transition:	filter var(--duration) ease;
	border: 0;
	border-radius: var(--radius);
	line-height: 1.2;
	outline: none;
	position: relative;
	/* font-weight: var(--bold); */
	color: var(--bg-color);
	background: var(--primary);
	transition: box-shadow var(--duration) ease;
	text-transform: uppercase;
	font-size: 0.8em;
}

#header .button,
#footer .button,
#footer button,
#nav .menu > .menu-item:last-of-type > a,
#nav .menu > .page_item:last-of-type > a,
input[type="submit"] {
	padding: 0.7em 1.7em;
	font-size: 1em;
}

#footer button,
.search-submit {
	background: var(--gold);
	color: var(--fg-color);
}

:root :where(.wp-block-button.is-style-outline--1 .wp-block-button__link),
:root :where(.wp-block-button.is-style-outline--2 .wp-block-button__link) {
	border-width: var(--line-width) !important;
}

.wp-block-button__link,
:root :where(.wp-block-button.is-style-outline--2 .wp-block-button__link) {
	padding-left: 3em !important;
	padding-right: 3em !important;
}

.wp-block-button.icon a::before {
	content: '';
	display: inline-block;
	width: 1.7em;
	height: 1.7em;
	margin-right: 0.4em;
	margin-bottom: -0.5em;
	margin-top: -0.2em;
}

.wp-block-button.icon.play a::before {
	background-image: url('images/icon-play.svg');
	background-size: contain;
}

.wp-block-button.icon.music a::before {
	background-image: url('images/icon-music.svg');
	background-size: contain;
}

.button:hover,
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.wp-block-file__button:hover,
.more-link:hover,
.page-numbers:hover,
.post-edit-link:hover,
.post-page-numbers:hover,
.comment-reply-link:hover,
.comment-navigation a:hover,
#nav .menu > .menu-item:last-of-type > a:hover,
#nav .menu > .page_item:last-of-type > a:hover,
.wpdm-download-link:hover,
.button:focus,
button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
.wp-block-button__link:focus,
.wp-block-file__button:focus,
.more-link:focus,
.page-numbers:focus,
.post-edit-link:focus,
.post-page-numbers:focus,
.comment-reply-link:focus,
.comment-navigation a:focus,
#nav .menu > .menu-item:last-of-type > a:focus,
#nav .menu > .page_item:last-of-type > a:focus,
.wpdm-download-link:focus {
	cursor: pointer;
	text-decoration: none;
	box-shadow: var(--hover-shadow);
}

.button.small,
.small .button,
input.small,
.small input,
.wp-block-button.small a,
.wp-block-file__button,
.comment-reply-link,
.post-edit-link,
.more-link {
	padding: 0.4em 1em;
	font-size: 0.8em;
}

.more-link {
	display: table;
	margin: 1em 0;
	clear: both;
}

.nav-links,
.post-nav-links {
	text-align: center;
	line-height: 2;
}

.page-numbers,
.post-page-numbers,
.page-numbers.current,
.post-page-numbers.current {
	margin: 0 0.3em;
	padding: 0.3em 0.7em !important;
	display: inline-block;
}

.page-numbers.dots,
.page-numbers.current,
.post-page-numbers.current {
	filter: saturate(0);
	cursor: default;
}

.wp-block-file {
	margin-bottom: 0.5em;
}

.wp-block-buttons {
	margin-bottom: 1em;
}

button[disabled],
input[type="submit"]:disabled {
	opacity: 0.7;
	filter: saturate(0);
	cursor: not-allowed;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea,
select {
	box-sizing: border-box;
	margin-bottom: 0.5em;
	padding: 0.5em 1.3em !important;
	border: var(--line-width) solid currentColor;
	border-radius: 50px !important;
	line-height: 1.2;
	outline: none;
	width: 100%;
	max-width: 620px;
	background: transparent !important;
	font-family: inherit;
	color: inherit !important;
	/* text-transform: uppercase; */
}

textarea {
	display: block;
	resize: vertical;
	line-height: 1.5;
	border-radius: var(--radius-large) !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus,
select:focus {
	outline: none;
	box-shadow: var(--hover-shadow);
}

select {
	height: 2.6em !important;
}

option {
	background: var(--extra-light-grey);
}

input[type="search"]::-webkit-search-decoration {
	display: none;
}

#searchform #s {
	max-width: 350px;
}

input[type="radio"],
input[type="checkbox"] {
	font-size: 2em;
}

input {
	accent-color: var(--primary);
}

::-webkit-input-placeholder,
:-ms-input-placeholder,
::-moz-placeholder,
:-moz-placeholder,
::placeholder {
	color: var(--fg-color);
	opacity: 0.5;
	text-transform: uppercase;
}

@media (min-width: 425px) {
	.input-lg,
	.input-md {
		box-sizing: border-box;
		float: left;
		clear: none !important;
		padding-right: 2%;
	}

	.input-lg {
		width: 50%;
	}

	.input-lg:nth-child(even) {
		padding-right: 0;
	}

	.input-md {
		width: 33.333%;
	}
}

@media (min-width: 425px) {
	.input-sm {
		width: 50%;
		box-sizing: border-box;
		float: left;
		clear: none !important;
		padding-right: 2%;
	}
}

@media (min-width: 770px) {
	.input-sm {
		width: 25%;
		box-sizing: border-box;
		float: left;
		clear: none !important;
		padding-right: 2%;
	}
}

/* Hide Give Now button from Roundtable page */
.page-id-2187 #menu-item-1592,
.page-id-2202 #menu-item-1592 {
	display: none;
}

.nf-form-cont {
	max-width: 620px;
	margin: 0 auto;
}

.submit-wrap {
	text-align: right;
}

/* Donation form */
#donation-form-container {
	max-width: 510px;
	margin: 0 auto;
	padding: 20px;
}

#donation-form h3 {
	margin-bottom: 30px;
	text-align: center;
}

#donation-form .section {
	margin-bottom: 20px;
	padding: 10px;
}

#donation-form .field {
	margin-bottom: 15px;
}

#donation-form .field label {
	display: block;
	margin-bottom: 5px;
	font-weight: bold;
}

#donation-form .field input,
#donation-form .field select,
#donation-form .field textarea {
	width: 100%;
	padding: 10px;
	box-sizing: border-box;
}

#donation-form input[type="radio"] {
	width: 0.8em;
}

#donation-form .field .label {
	margin-bottom: 10px;
	display: inline-block;
}

#donation-form .btn-group {
	text-align: center;
}

#donation-form .captcha {
	margin-top: 20px;
}

#donation-form .captcha #captcha22624256 {
	display: flex;
	justify-content: center;
}

#paypal-button-container {
	margin: 0 auto;
}

.section.captcha {
	display: flex;
	justify-content: center;
}

#stripe-cc-fields {
	text-align: center;
	flex-direction: column;
}

#stripe-cc-fields label {
	margin: 0 auto;
}

.sample-check {
	display: block;
	margin: 0 auto;
}

#donation-form .field.donation-amount {
	font-size: 1.5em;
}

.captcha iframe {
	border-radius: 0;
}

#donation-form .checkbox.recurring,
#donation-form .checkbox.true-impact {
	text-align: center;
}

#donation-form .recurring label,
#donation-form .true-impact label {
	max-width: 500px !important;
	font-size: 0.9em;
}

#donation-form input#recurring,
#donation-form input#true-impact {
	position: relative;
	top: 3px;
	width: 40px;
	height: 20px;
}

#donation-form .recurring span.label,
#donation-form .true-impact span.label {
	display: inline;
}

#donation-form .required-star {
	display: none;
}

@media (min-width: 600px) {
	#donation-form .field {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	#donation-form .field label {
		flex: 1;
		max-width: 180px;
	}

	#donation-form .field input,
	#donation-form .field select,
	#donation-form .field textarea {
		flex: 2;
	}
}

#donation-form .donation-amount label {
	max-width: 110px;
}


/* Layout
================================ */

.clear {
	clear: both;
}

.left {
	float: left;
}

.right {
	float: right;
}

.center {
	margin-left: auto;
	margin-right: auto;
}

.nomargin,
.no-margin {
	margin: 0 !important;
}

.nopadding,
.no-padding {
	padding: 0 !important;
}

.no-padding-bottom {
	padding-bottom: 0 !important;
}

.no-margin .wp-block-image {
	margin: 0 !important;
}

.flex-center {
	display: flex;
	align-items: center;
}

@media (max-width: 850px) {
	.stack-top {
		order: -1;
	}
}

.grid-lg:not(.wp-block-group),
.wp-block-group.grid-lg > div,
.grid-md:not(.wp-block-group),
.wp-block-group.grid-md > div,
.grid-sm:not(.wp-block-group),
.wp-block-group.grid-sm > div {
	display: grid;
	grid-gap: 2rem;
	margin-bottom: 2rem;
}

@media (min-width: 460px) {
	.grid-lg:not(.wp-block-group),
	.wp-block-group.grid-lg > div {
		grid-template-columns: repeat(auto-fit, minmax(410px, 1fr));
	}
}

@media (min-width: 350px) {
	.grid-md:not(.wp-block-group),
	.wp-block-group.grid-md > div {
		grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	}
}

@media (min-width: 250px) {
	.grid-sm:not(.wp-block-group),
	.wp-block-group.grid-sm > div {
		grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	}
}

.row-span-2 {
	grid-row: span 2;
}

.row-span-3 {
	grid-row: span 3;
}

.col-span-2 {
	grid-column: span 2;
}

.col-span-3 {
	grid-column: span 3;
}

.auto-columns {
	column-width: 18em;
	column-gap: 2rem;
}

.padded.wp-block-columns.is-layout-flex {
	gap: 4em;
	margin-bottom: 3em;
}

:where(.is-layout-flex) {
	gap: 1.8em;
}


/* Content
================================ */

hr,
hr.wp-block-separator {
	box-sizing: border-box;
	margin: 2em auto;
	width: 80%;
	max-width: 40rem !important;
	height: var(--line-width);
	background: var(--primary);
	border: 0;
}

.wp-block-table {
	margin-bottom: 1.5em;
}

/* Stripe style tables */
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background-color: var(--bg-color);
	color: var(--fg-color);
}

.wp-block-table.is-style-stripes tbody tr:nth-child(even) {
	background-color: var(--warm-grey);
	color: var(--fg-color);
}

.wp-block-table.is-style-stripes tbody tr td,
.wp-block-table.is-style-stripes tbody tr th {
	padding: 15px 4vw;
	border: none;
	min-width: 40px;
}

.wp-block-table.is-style-stripes {
	border-radius: var(--radius);
	overflow: hidden;
}

.wp-block-table.is-style-stripes {
	border-bottom: none;
}

.wrap,
.wp-block-cover__inner-container {
	max-width: 1200px;
	margin: 0 auto;
}

#header {
	height: 8.4rem;
	padding: 0 var(--main-padding);
	display: grid;
	grid-gap: 1rem;
	grid-template-columns: 16em 1fr; /* text only logo */
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	position: relative;
	z-index: 20;
}

@media (max-width: 390px) {
	#header {
		grid-template-columns: 6fr 1fr;
	}
}

.page-template-page-cover #header {
	background: none;
	position: relative;
	z-index: 99;
}

.first-cover {
	margin-top: -8.4rem !important;
	border-radius: 0 !important;
	left: calc(50% - 50.05vw) !important;
	width: 100.1vw !important;
	max-width: 100.1vw !important;
}

.first-cover .wp-block-cover__inner-container {
	padding-top: 6rem;
}

.default-header {
	z-index: -1 !important;
}

@media (min-width: 1195px) {
	.page-template-page-cover #nav a {
		color: #fff;
	}
}

/* Light page */
.page-template-default #main,
body.error404 #main,
body.archive #main {
	margin-top: calc(-1 * var(--radius-large));
	border-radius: var(--radius-large) var(--radius-large) 0 0;
	background: var(--bg-color);
	color: var(--fg-color);
}

/* Dark page */
body.single #main,
body.category #main {
	margin-top: calc(-1 * var(--radius-large));
	border-radius: var(--radius-large) var(--radius-large) 0 0;
	background: var(--fg-color);
	color: var(--bg-color);
}

#logo h1 {
	margin: 0;
	line-height: 0;
}

#logo a img {
	box-shadow: none !important;
}

#main {
	padding: 0 var(--main-padding);
}

.page-template-default #main,
body.single #main,
body.error404 #main,
body.archive #main {
	padding: 4em var(--main-padding) 4em;
}

.page-header {
	min-height: 300px;
}

#footer {
	padding: 6em var(--main-padding) 2em;
	background-color: var(--dark-grey);
	background-image: url(images/SPP-Brand-Pattern-Dark.svg);
	background-size: cover;
	background-position: center;
	color: var(--bg-color);
	font-size: 0.8em;
	z-index: 1;
}

#footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #3b3b3b;
	opacity: 0.7;
	z-index: -1;
}

#footer a {
	color: var(--bg-color);
}

#footer-container {
	max-width: 770px;
	margin: 0 auto;
	margin-bottom: 2rem;
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
	justify-content: center;
	margin-top: 4.5em;
}

#footer-container > div {
	text-align: center;
	width: 100%;
}

#footer-logo img {
	max-width: 300px;
}

@media (max-width: 995px) {
	#footer {
		text-align: center;
	}
}

#footer-menu {
	margin: 0 auto;
	max-width: 470px;
	column-width: 15em;
	column-gap: 2rem;
	position: relative;
	left: 5em;
}

#footer-menu li {
	margin: 0;
	display: block;
	text-align: left;
}

.social a {
	margin: 0 0.5rem;
}

.social a img,
.lang {
	border-radius: 50px;
}

.social a img {
	width: 36px;
}

.lang {
	vertical-align: middle;
	margin-top: -0.1em;
	margin-right: 0.25em;
}

.full-height {
	box-sizing: border-box;
	height: calc(100vh - 7em);
}

.no-shadow,
.no-shadow img {
	box-shadow: none !important;
	text-shadow: none !important;
}

.square img {
	border-radius: 0 !important;
}

.poem-container {
	background: var(--fg-color);
	padding: 1.5em 0 0.5em;
	border-radius: var(--radius);
}

.poem {
	font-size: 1.3em;
	font-family: 'Merriweather', serif;
	font-weight: 300;
}

@media (min-width: 856px) {
	.alpha-nav {
		display: none;
	}
}

.a2a_kit {
	margin-top: 2em;
	text-align: right;
}

.a2a_svg {
	border-radius: var(--radius) !important;
	padding: 5px !important;
}

.a2a_default_style:not(.a2a_flex_style) a {
	display: inline-block;
	float: none !important;
}

.a2a_svg {
	background-color: var(--fg-color) !important;
}

.wp-block-buttons.is-content-justification-center {
	text-align: center;
}


.formkit-powered-by-convertkit-container {
	display: none !important;
}

.formkit-submit > span {
	padding: 0 !important;
	background-color: transparent !important;
}

.formkit-submit,
.formkit-input {
	font-size: inherit !important;
	line-height: 1 !important;
	/* text-align: center; */
}

.formkit-submit,
.search-submit {
	border-radius: 50px !important;
	background: var(--gold) !important;
	color: var(--fg-color) !important;
}

.formkit-input {
	background: var(--bg-color) !important;
}

.formkit-form {
	margin: 0 auto;
}

.formkit-form[data-uid="1d6b4c53aa"][min-width~="700"] [data-style="clean"] {
	padding-top: 10px !important;
}

.formkit-fields {
	max-width: 520px;
	margin: 0 auto !important;
}

#qgiv-embed-76904 {
	height: 660px !important;
}

/* Download button */
h3 img,
h4 img {
	position: relative;
	top: 0.2em;
	left: 0.3em;
	width: 1.2em;
}

.padding-buster,
.padding-compensate {
	margin-bottom: -4em;
}

.no-border {
	border: none !important;
}

.no-border td,
.no-border  th {
	border: 0 !important;
}

.block-grid .wp-block-group__inner-container > div {
	border-radius: var(--radius);
	background: var(--warm-grey);
	color: var(--bg-color);
	page-break-inside: avoid;
	margin-bottom: 2rem;
	box-sizing: border-box;
	padding: 1rem;
	padding-left: 4rem;
	position: relative;
}

.block-grid .wp-block-group__inner-container > div p {
	margin-bottom: 0;
}

.block-grid a {
	color: var(--fg-color);
}

.block-grid p.has-large-font-size {
	display: block;
	background: var(--primary);
	width: 1.5em;
	height: 1.5em;
	font-size: 1.3em !important;
	text-align: center;
	border-radius: 2em;
	position: absolute;
	left: 1rem;
}

.block-grid p.has-large-font-size strong {
	position: relative;
	top: -0.15em;
}

@media (min-width: 782px) {
	.lotw-narrow {
		display: none !important;
	}
}

@media (max-width: 781px) {
	.lotw-wide {
		display: none !important;
	}

	.lotw-narrow figure {
		float: right !important;
	}
}

.homepage-slogan {
	max-width: 525px;
}

.breadcrumb {
	font-size: 0.8em;
	font-weight: var(--bold);
	opacity: 0.7;
}

.breadcrumb a {
	color: var(--bg-color);
}

body.category-24 .breadcrumb {
	display: none;
}

body.category-24 h2.title {
	text-align: center;
}

.list-boxes,
.download-boxes > .wp-block-group__inner-container {
	display: grid;
	grid-gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(288px, max-content));
	grid-auto-rows: 1fr;
	justify-content: start;
}

.list-box,
.download-box {
	background: #3f2b2b;
	border-radius: var(--radius);
	padding: 1rem;
	text-align: center;
	max-width: 400px;
}

.list-box,
.download-box h4 {
	margin: 0 0 0.3em;
}

.list-boxes > a,
.download-boxes > a {
	display: block;
	color: var(--bg-color);
	font-weight: bold;
	font-size: 1.2em;
	transition: background var(--duration) ease;
}

.list-boxes > a:hover,
.download-boxes > a:hover {
	background: #5e4444;
}

@media (max-width: 400px) {
	.list-boxes,
	.download-boxes > .wp-block-group__inner-container {
		display: block;
	}
	
	.list-box,
	.download-box {
		margin-bottom: 1rem;
	}
}

.download-terms-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	justify-content: center;
	align-items: center;
	z-index: 1000;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.download-terms {
	background: var(--bg-color);
	color: var(--fg-color);
	padding: 25px;
	border-radius: var(--radius);
	width: 100%;
	max-width: 800px;
	transform: scale(0.8);
	transition: transform 0.3s ease, opacity 0.3s ease;
	opacity: 0;
	margin: 0 var(--main-padding);
}

.download-terms h4 {
	margin-top: 0;
}

.download-terms p {
	margin-bottom: 10px;
}

.download-terms label {
	line-height: 2.5;
}

.terms-container {
	height: 375px;
	overflow-y: scroll;
}

.terms {
	font-size: 0.8em;
	line-height: 1.2;
}

.loading-throbber {
	display: none;
	border: 4px solid var(--warm-grey);
	border-radius: 50%;
	border-top: 4px solid var(--primary);
	width: 20px;
	height: 20px;
	animation: spin 2s linear infinite;
	margin-left: 10px;
	position: relative;
	top: 0.5em;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

.download-terms-overlay.show {
	display: flex;
	opacity: 1;
}

.download-terms.show {
	transform: scale(1);
	opacity: 1;
}

.wp-block-file a {
	font-weight: var(--bold);
	font-size: 0.8em;
}

.download-box p {
	font-weight: var(--bold);
	font-size: 0.8em;
	margin-bottom: 0.5em;
}

.file-size {
	font-weight: normal;
}

.wp-block-file__button {
	display: none;
}

.wp-block-column.has-background {
	border-radius: var(--radius);
	padding: 2rem 2rem 0;
}

.card-container > div {
	border-radius: var(--radius);
	padding: 3rem 1rem 1rem;
	background: #f5f2f0;
}


/* Posts
================================ */

.sticky .title:before {
	content: '\00bb';
	position: relative;
	top: -0.1em;
	margin-right: 0.3em;
	color: var(--primary);
}

.sticky .entry-date {
	display: none;
}

.posts-list article.entry {
	margin-bottom: 3rem;
	clear: both;
}

.posts-list article.entry:last-of-type {
	margin-bottom: 0;
}

.pagination {
	margin: 1em 0;
}

body.search .posts-list article.entry:before {
	display: none;
}

body.search .posts-list article.entry {
	overflow: hidden;
}

.entry-info {
	font-size: 80%;
	text-transform: uppercase;
}


/* Comments
================================ */

#comments,
#respond {
	margin-top: 5rem;
}

.comment {
	margin-top: 3rem;
}

.comment p:last-of-type {
	margin-bottom: 0;
}

.reply {
	clear: both;
}

.comment-respond {
	margin-top: 2rem;
}

.comment-metadata {
	font-size: 80%;
}

.bypostauthor .fn:before {
	content: '\00bb';
	position: relative;
	top: -0.1em;
	margin-right: 0.3em;
	color: var(--primary);
}

img.avatar {
	margin-right: 0.5em;
	vertical-align: middle;
}


/* Media
================================ */

embed,
iframe,
object {
	max-width: 100%;
}

audio,
video {
	display: inline-block;
}

img {
	position: relative;
	max-width: 100%;
	height: auto;
	border-style: none;
}

img:not(.wp-block-cover__image-background) {
	border-radius: var(--radius);
}

.wp-block-embed {
	max-width: 1000px;
	border-radius: var(--radius);
	overflow: hidden;
}

.yt-embed,
iframe,
.wp-block-video {
	border-radius: var(--radius);
	overflow: hidden;
	line-height: 0;
}

.not-rounded,
.not-rounded img {
	border-radius: 0 !important;
}

.wp-block-audio {
	max-width: 400px;
}

.wp-block-audio.alignwide {
	max-width: 100%;
	position: static;
	margin: 0;
}

.wp-block-audio audio {
	display: block;
	border: var(--line-width) solid var(--fg-color);
	border-radius: 2em;
	background: var(--fg-color);
}

.wp-block-cover {
	color: var(--bg-color);
	padding: 6em var(--main-padding) 6em;
	min-height: 350px;
	/* margin-bottom: 20px; */
}

.wp-block-cover.is-light {
	color: var(--fg-color);
}

.wp-block-image figure,
figure.wp-block-image {
	display: inline-block;
}

.alignleft,
.alignright,
.size-thumbnail,
.attachment-post-thumbnail {
	max-width: 48%;
}

.alignleft {
	float: left;
	margin-right: 1rem;
}

.alignright,
.attachment-post-thumbnail {
	float: right;
	margin-left: 1rem;
}

.aligncenter {
	clear: both;
	margin: 0 auto;
}

.alignnone {
	margin: 0;
}

.alignwide {
	box-sizing: border-box;
	position: relative;
	left: calc(50% - 50vw);
	width: calc(100vw - var(--main-padding) - var(--main-padding));
	max-width: calc(100vw - var(--main-padding));
	margin: 2rem var(--main-padding);
}

.alignfull {
	box-sizing: border-box;
	position: relative;
	left: calc(50% - 50vw);
	left: calc(50% - 50cqw);
	width: 100vw;
	width: 100cqw;
	max-width: 100vw;
	max-width: 100cqw;
}

.page-template-page-cover .entry-content > .alignfull {
	left: unset;
	width: 100%;
}

.wp-block-media-text {
	grid-gap: 2rem;
}

.wp-block-media-text .wp-block-media-text__content {
	padding: 0;
}

.wp-caption {
	max-width: 100%;
	margin-bottom: 1rem;
}

.wp-caption-text {
	padding: 0.5rem;
	font-size: 0.8em;
	line-height: 1.4;
	text-align: center;
}

figcaption {
	box-sizing: border-box;
}

.gallery-caption {
	display: block;
	margin: 0;
	padding: 0.5rem;
	font-size: 0.8em;
	line-height: 1.4;
}

ul.wp-block-gallery,
ul.blocks-gallery-grid {
	margin-top: 0;
	margin-bottom: 0;
	padding: 0;
}

li.blocks-gallery-item:before {
	content: '' !important;
}

.search .attachment-post-thumbnail {
	float: left;
	max-width: 20rem;
	margin: 0 1rem 0.5rem 0;
}

.is-style-rounded img {
	border-radius: 50% !important;
}

.feature-span {
	position: relative;
	top: 240px;
	margin-top: -240px;
}

@media (max-width: 750px) {
	.alignleft:not(.size-thumbnail),
	.alignright:not(.size-thumbnail),
	.attachment-post-thumbnail {
		float: none;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
}

@media (min-width: 601px) {
	.image-fade-r img {
				-webkit-mask-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.8)), color-stop(60%, rgba(0, 0, 0, 0.8)), to(rgba(0, 0, 0, 0)));
				-webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8) 60%, rgba(0, 0, 0, 0));
						mask-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.8)), color-stop(60%, rgba(0, 0, 0, 0.8)), to(rgba(0, 0, 0, 0)));
						mask-image: linear-gradient(to right, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8) 60%, rgba(0, 0, 0, 0));
	}
}

audio::-webkit-media-controls-panel {
	background-color: var(--bg-color);
}

h2 img,
h3 img,
h4 img {
	position: relative;
	top: 0.3em;
	margin-right: 0.5em;
}

/*
 * Styles for the YouTube Lightbox.
 */
 .yt-lightbox-overlay {
	/* Display */
	position: fixed;
	inset: 0; /* Modern shorthand for top: 0; right: 0; bottom: 0; left: 0; */
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;
	
	/* Appearance */
	background-color: rgba(0, 0, 0, 0.85);
	
	/* Animation */
	animation: fadeIn 0.3s ease;
}

.yt-lightbox-overlay iframe {
	/* Sizing & Aspect Ratio (16:9) */
	width: 90vw;
	height: 50.625vw; /* 90 * (9/16) */
	max-width: 1600px;
	max-height: 900px;
	
	/* Appearance */
	border: none;
	box-shadow: 0 0 40px rgba(0, 0, 0, 0.5);
}

.yt-lightbox-close {
	/* Positioning */
	position: absolute;
	top: 20px;
	right: 25px;
	z-index: 10000;
	
	/* Appearance */
	background: none;
	border: none;
	color: #fff;
	font-size: 2.5rem;
	font-weight: 300;
	line-height: 1;
	text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
	cursor: pointer;
	
	/* Transition */
	transition: transform 0.2s ease;
}

.yt-lightbox-close:hover {
	transform: scale(1.1);
}

/*
 * Styles for the Audio Lightbox.
 */
.audio-lightbox-overlay {
	/* Display */
	position: fixed;
	inset: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;
	
	/* Appearance */
	background-color: rgba(0, 0, 0, 0.85);
	
	/* Animation */
	animation: fadeIn 0.3s ease;
}

.audio-lightbox-overlay .audio-container {
	width: 80%;
	max-width: 500px;
	background: #fff;
	padding: 20px;
	border-radius: 8px;
	box-shadow: 0 0 40px rgba(0, 0, 0, 0.5);
	line-height: 0;
}

.audio-lightbox-overlay audio {
	width: 100%;
}

.audio-lightbox-close {
	/* Positioning */
	position: absolute;
	top: 20px;
	right: 25px;
	z-index: 10000;
	
	/* Appearance */
	background: none;
	border: none;
	color: #fff;
	font-size: 2.5rem;
	font-weight: 300;
	line-height: 1;
	text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
	cursor: pointer;
	
	/* Transition */
	transition: transform 0.2s ease;
}

.audio-lightbox-close:hover {
	transform: scale(1.1);
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}


/* Editor colors
================================ */

.has-red-color {
	color: var(--primary) !important;
}

.has-red-light-color {
	color: var(--primary-active) !important;
}

.has-warm-black-color {
	color: var(--fg-color) !important;
}

.has-warm-white-color {
	color: var(--bg-color) !important;
}

.has-extra-light-grey-color {
	color: #ece8e4 !important;
}

.has-light-grey-color {
	color: var(--light-grey) !important;
}

.has-med-grey-color {
	color: var(--med-grey) !important;
}

.has-dark-grey-color {
	color: var(--dark-grey) !important;
}

.has-teal-color {
	color: var(--teal) !important;
}

.has-teal-light-color {
	color: var(--teal-light) !important;
}

.has-teal-dark-color {
	color: var(--teal-dark) !important;
}

.has-salmon-color {
	color: var(--salmon) !important	;
}

.has-gold-color {
	color: var(--gold) !important;
}

.has-blue-color {
	color: var(--blue) !important;
}

.has-dark-blue-color {
	color: var(--dark-blue) !important;
}

.has-red-background-color {
	background-color: var(--primary);
}

.has-red-light-background-color {
	background-color: var(--primary-active);
}

.has-warm-black-background-color {
	background-color: var(--fg-color);
}

.has-warm-white-background-color {
	background-color: var(--bg-color);
}

.has-extra-light-grey-background-color {
	background-color: #ece8e4;
}

.has-light-grey-background-color {
	background-color: var(--light-grey);
}

.has-med-grey-background-color {
	background-color: var(--med-grey);
}

.has-dark-grey-background-color {
	background-color: var(--dark-grey);
}

.has-teal-background-color {
	background-color: var(--teal);
}

.has-teal-light-background-color {
	background-color: var(--teal-light);
}

.has-teal-dark-background-color {
	background-color: var(--teal-dark);
}

.has-salmon-background-color {
	background-color: var(--salmon);
}

.has-gold-background-color {
	background-color: var(--gold);
}

.has-blue-background-color {
	background-color: var(--blue);
}

.has-dark-blue-background-color {
	background-color: var(--dark-blue);
}


/* Print
================================ */

@media print {
	.menu,
	.open-menu,
	.close-menu,
	.nav-links,
	.post-nav-links,
	#respond,
	.post-edit-link,
	.search-form,
	.reply {
		display: none;
	}

	.wrap,
	#main,
	#footer,
	#header {
		margin: 0;
		padding: 0;
	}

	a,
	blockquote,
	img,
	.wp-block-cover,
	.wp-block-pullquote,
	iframe {
		page-break-inside: avoid;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		page-break-after: avoid;
		page-break-inside: avoid;
	}

	.wp-block-cover {
		min-height: 0;
	}
}