/*!
Theme Name: Tecumseh
Theme URI: https://tecumsehcoop.net
Author: Sean Pearce
Author URI: https://tecumsehcoop.net
Description: Custom theme for Tecumseh Co-operative Homes
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: tecumseh

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Tecumseh is based on Underscores https://underscores.me/, (C) 2012-2020
Automattic, Inc. Underscores is distributed under the terms of the GNU GPL v2 or
later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/


TABLE OF CONTENTS: -------------------------------------------------------------

# Normalization
# Base
  ## Variables
  ## Typography
  ## Elements
  ## Links
  ## Forms
# Layouts
# Components
  ## Navigation
  ## Buttons
  ## Footer
  ## Posts and pages
  ## Comments
  ## Widgets
  ## Media
  ## Captions
  ## Galleries
# Home page
# Interior pages
  ## Primary content
  ## Sidebar
  ## Member Resources page
  ## Contact page
  ## WS Form
# Blog
  # Index
  # Posts
  # Sidebar
# Plugins
  ## Jetpack infinite scroll
# Utilities
  ## Accessibility
  ## Alignments


/* -----------------------------------------------------------------------------
 # Normalization ------------------------------------------------------------ */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css     */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
 html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}


/* -----------------------------------------------------------------------------
 # Base --------------------------------------------------------------------- */

/* ## Variables ------------------------------------------------------------- */

:root {
	--colour-text: #000;
	--colour-primary: #a40a4b;
	--colour-primary-dim: hsl(335, 89%, 27%);
	--colour-primary-highlight: hsl(335, 40%, 55%);
	--colour-primary-shadow: hsla(335, 89%, 34%, 0.2);
	--colour-outer-bg: #d9d9d9;
	--colour-lt-grey: #f2f2f2;
	--colour-header-stripe: var(--colour-primary);
	--colour-footer-bg-upper: #333;
	--colour-footer-bg-lower: #000;
}

/* ## Typography ------------------------------------------------------------ */

body,
button,
input,
select,
optgroup,
textarea {
	color: var(--colour-text);
	font-family: 'Open Sans', sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
	font-style: normal;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

.centered {
	text-align: center;
}

.nowrap {
	white-space: nowrap;
}

/* ## Elements -------------------------------------------------------------- */

body {
	background: var(--colour-outer-bg);
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 0;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0;
	width: 100%;
}

/* ## Links ----------------------------------------------------------------- */

a {
	color: var(--colour-primary);
	transition: color 0.1s;
	outline: none;
	text-decoration: none;
}

.site-content a {
	border-bottom: 1px solid var(--colour-primary);
	text-decoration: none;
	transition: color 0.1s;
}

.site-content a:hover {
	color: var(--colour-primary-dim);
	border-bottom-color: var(--colour-primary-dim);
	border-bottom-width: 1.5px;
}

.site-content a:focus,
.site-content a:focus-visible {
	border-bottom: none;
	border-radius: 0.5px;
	outline: 2px solid var(--colour-primary);
}

.site-content a:focus:not(:focus-visible) {
	outline: none !important;
	border-bottom: 1.5px solid var(--colour-primary);
}

a.white {
	color: #fff;
	border-bottom: 1px solid #fff;
	transition: color 0.1s;
}

a.white:hover {
	color: #fff;
	border-bottom: 1.5px solid #fff;
}

a.white:focus,
a.white:focus-visible {
	border-bottom: none;
	border-radius: 0.5px;
	outline: 2px solid #fff;
	outline-offset: 1px;
}

a.white:focus:not(:focus-visible) {
	outline: none !important;
	border-bottom: 1.5px solid #fff;
}

a.external-link {
	padding-right: 1.25em;
	border-bottom: none !important;
}

a.external-link::after {
	position: absolute;
	content: '';
	display: inline-block;
	width: 1em;
	height: 1em;
	margin-left: 0.25em;
	background-size: 100%;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath fill='%23a40a4b' d='M384 64C366.3 64 352 78.3 352 96C352 113.7 366.3 128 384 128L466.7 128L265.3 329.4C252.8 341.9 252.8 362.2 265.3 374.7C277.8 387.2 298.1 387.2 310.6 374.7L512 173.3L512 256C512 273.7 526.3 288 544 288C561.7 288 576 273.7 576 256L576 96C576 78.3 561.7 64 544 64L384 64zM144 160C99.8 160 64 195.8 64 240L64 496C64 540.2 99.8 576 144 576L400 576C444.2 576 480 540.2 480 496L480 416C480 398.3 465.7 384 448 384C430.3 384 416 398.3 416 416L416 496C416 504.8 408.8 512 400 512L144 512C135.2 512 128 504.8 128 496L128 240C128 231.2 135.2 224 144 224L224 224C241.7 224 256 209.7 256 192C256 174.3 241.7 160 224 160L144 160z'/%3E%3C/svg%3E");
	transform: translateY(0.1875em);
}

a.external-link .link-text {
	border-bottom: 1px solid var(--colour-primary);
}

a.external-link:hover .link-text {
	color: var(--colour-primary-dim);
	border-bottom-color: var(--colour-primary-dim);
	border-bottom-width: 1.5px;
}

a.external-link:focus .link-text,
a.external-link:focus-visible .link-text {
	border-bottom: none;
}

a.external-link:focus:not(:focus-visible) .link-text {
	border-bottom: 1.5px solid var(--colour-primary);
}

/* ## Forms ----------------------------------------------------------------- */

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	padding: 0.5rem 1rem;
	font-size: 1em;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: #fff;
	background: var(--colour-primary);
	border: none;
	border-radius: 1px;
	transition: background 0.1s, box-shadow 0.1s;
}

button:hover:not(:disabled),
input[type="button"]:hover:not(:disabled),
input[type="reset"]:hover:not(:disabled),
input[type="submit"]:hover:not(:disabled) {
	background: var(--colour-primary-dim);
}

button:active:not(:disabled),
button:focus:not(:disabled),
input[type="button"]:active:not(:disabled),
input[type="button"]:focus:not(:disabled),
input[type="reset"]:active:not(:disabled),
input[type="reset"]:focus:not(:disabled),
input[type="submit"]:active:not(:disabled),
input[type="submit"]:focus:not(:disabled) {
	box-shadow: 0 0 0 3px var(--colour-primary-shadow);
	outline: none;
}

button:disabled,
input[type="button"]:disabled,
input[type="reset"]:disabled,
input[type="submit"]:disabled {
	opacity: 0.5;
}

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 {
	padding: 0.25rem 0.75rem;
	color: #333;
	border: 1px solid #b3b3b3;
	border-radius: 0;
	outline: none;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #000;
	border-color: #000;
	box-shadow: 0 0 0 3px #d9d9d9;
}

input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="url"]::placeholder,
input[type="password"]::placeholder,
input[type="search"]::placeholder,
input[type="number"]::placeholder,
input[type="tel"]::placeholder,
input[type="range"]::placeholder,
input[type="date"]::placeholder,
input[type="month"]::placeholder,
input[type="week"]::placeholder,
input[type="time"]::placeholder,
input[type="datetime"]::placeholder,
input[type="datetime-local"]::placeholder,
input[type="color"]::placeholder,
textarea::placeholder {
	font-style: italic;
	color: #999;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}


/* -----------------------------------------------------------------------------
 # Layouts ------------------------------------------------------------------ */

.limited-page {
	max-width: 1200px;
	margin: 0 auto;
	box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.1);
}

.limiter {
	width: 100%;
	max-width: 1152px;
	margin: 0 auto;
	padding: 0 1.5em;
}

.page-body {
	background: #fff;
}

/* Fix horizontal margin issue on home page on mobile */
@media screen and (max-width: 82em) {
	.limited-page {
		box-shadow: none;
		overflow: hidden;
	}
}


/* -----------------------------------------------------------------------------
 # Components --------------------------------------------------------------- */

/* ## Navigation ------------------------------------------------------------ */

:root {
	--nav-colour-primary: var(--colour-primary);
	--nav-height-above: 0.75em;
	--nav-height-primary: 6.25em;
	--nav-height-primary-mobile: 5.25em;
	--nav-height: calc(var(--nav-height-above) + var(--nav-height-primary));
	--nav-page-margin: 1.5em;
	--nav-width-inner: 1152px;
	--nav-width-outer: 1200px;
	/* logo */
	--nav-logo-height-percent: 20%;
	--nav-logo-margin-adjustment: -0.25em 0 0 -0.125em;
	--nav-logo-max-width: 20em;
	--nav-logo-max-width-mobile: 18em;
	/* desktop parent menu */
	--nav-d-p-bg-hover-colour: transparent;
	--nav-d-p-font-size: 1.15625em;
	--nav-d-p-font-weight: 500;
	--nav-d-p-padding-x: 0.875rem;
	--nav-d-p-text-colour: #000;
	--nav-d-p-text-transform: none;
	--nav-d-p-underline-thickness: 1.5px;
	/* desktop child menu */
	--nav-d-c-bg-colour: var(--colour-primary);
	--nav-d-c-bg-hover-colour: hsl(335, 89%, 24%);
	--nav-d-c-focus-outline-colour: #fff;
	--nav-d-c-item-width: auto;
	--nav-d-c-padding: 0.625rem 0.875rem;
	--nav-d-c-white-space: nowrap;
	/* mobile */
	--nav-m-left-border-thickness: 0.375rem;
}

.jump-anchor::before {
	content: '';
	display: block;
	height: var(--nav-height-primary);
	margin-top: calc(-1 * var(--nav-height-primary));
	visibility: hidden;
}

.site-content {
	padding-top: var(--nav-height);
}

.site-header {
	position: fixed;
	width: 100%;
	left: 0;
	top: 0;
	z-index: 100;
	/* prevent flicker in Chrome: */
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
}

.site-header .nav-limiter {
	margin: 0 auto;
	max-width: var(--nav-width-inner);
}

.site-header a {
	text-decoration: none;
}

.nav-wrapper {
	max-width: var(--nav-width-outer);
	margin: 0 auto;
	background: #fff;
}

.above-nav {
	height: var(--nav-height-above);
	background: var(--colour-header-stripe);
}

.primary-nav {
	width: 100%;
	height: var(--nav-height-primary);
	box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2);
	position: relative;
	z-index: 20;
}

.primary-nav.sticky {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 100;
	/* prevent flicker in Chrome: */
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
}

.primary-nav .nav-limiter {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
}

.primary-nav a:focus,
.primary-nav a:focus-visible {
	border-radius: 0.25px;
	outline: 2px solid var(--nav-colour-primary);
}

.primary-nav a:focus:not(:focus-visible) {
	outline: none !important;
}

/* Nav logo ----------------------------------------------------------------- */

.primary-nav .logo-container {
	flex: 1;
	max-width: var(--nav-logo-max-width);
	margin-left: var(--nav-page-margin);
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.primary-nav .logo {
	display: block;
	width: 100%;
	height: 0;
	padding-bottom: var(--nav-logo-height-percent);
	margin: var(--nav-logo-margin-adjustment);
	background-image: url('./img/logo-tecumseh.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	border-radius: 0.5px;
	text-decoration: none;
	outline: none;
	transition: opacity 0.1s;
}

.primary-nav .logo:hover {
	opacity: 0.9;
}

.primary-nav .logo:focus,
.primary-nav .logo:focus-visible {
	outline: 2px solid var(--nav-colour-primary);
	outline-offset: 3px;
}

.primary-nav .logo:focus:not(:focus-visible) {
	outline: none;
}

/* Nav menu ----------------------------------------------------------------- */

.primary-nav .menu-container {
	position: relative;
	flex: initial;
	height: var(--nav-height-primary);
}

/* Parent menu */

.primary-nav .nav-menu {
	display: flex;
	align-items: center;
	margin: 0;
	margin-left: calc(var(--nav-page-margin) - var(--nav-d-p-padding-x));
	margin-right: calc(var(--nav-page-margin) - var(--nav-d-p-padding-x));
	padding: 0;
	list-style-type: none;
	text-align: right;
}

.primary-nav .nav-menu > .menu-item {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	height: var(--nav-height-primary);
	padding: 0 var(--nav-d-p-padding-x);
	line-height: 1.125;
	text-align: center;
}

.primary-nav .nav-menu > .menu-item:hover {
	background: var(--nav-d-p-bg-hover-colour);
}

.primary-nav .nav-menu > .menu-item.current-menu-item,
.primary-nav .nav-menu > .menu-item.current-menu-ancestor {
	color: var(--nav-colour-primary);
}

.primary-nav .nav-link-parent {
	display: block;
	margin-top: 0.0625rem;
	padding-top: 0.1875rem;
	padding-bottom: 0.125rem;
	color: var(--nav-d-p-text-colour);
	font-size: var(--nav-d-p-font-size);
	font-weight: var(--nav-d-p-font-weight);
	text-transform: var(--nav-d-p-text-transform);
	border-bottom: var(--nav-d-p-underline-thickness) solid transparent;
}

.primary-nav .menu-item .nav-link-parent:focus,
.primary-nav .menu-item .nav-link-parent:hover,
.primary-nav .menu-item-has-children:hover .nav-link-parent {
	color: var(--nav-colour-primary);
}

.primary-nav .menu-item .nav-link-parent:focus,
.primary-nav .menu-item .nav-link-parent:focus-visible {
	outline-color: var(--nav-colour-primary);
	outline-offset: 2px;
}

.primary-nav .menu-item .nav-link-parent:focus:not(:focus:visible) {
	outline: none;
}

.primary-nav .menu-item.current-menu-item .nav-link-parent,
.primary-nav .menu-item.current-menu-parent .nav-link-parent {
	border-bottom-color: var(--nav-colour-primary);
}

.primary-nav .menu-item-has-children .nav-link-parent {
	cursor: default;
}

/* Child menu */

.primary-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	margin: 0;
	padding: 0;
	z-index: 999;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
	list-style-type: none;
	text-align: right;
}

.primary-nav .sub-menu .menu-item {
	padding: 0;
	width: var(--nav-d-c-item-width);
	position: relative;
}

.primary-nav .sub-menu .menu-item:not(:first-child)::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 0.5px;
	background: rgba(255, 255, 255, 0.35);
}

.primary-nav .menu-item.expanded .sub-menu {
	display: block;
}

.primary-nav .nav-link-child {
	display: block;
	padding: var(--nav-d-c-padding);
	background: var(--nav-d-c-bg-colour);
	font-size: 0.875rem;
	line-height: 1.3;
	color: #fff;
	white-space: var(--nav-d-c-white-space);
}

.primary-nav .current-menu-item > .nav-link-child,
.primary-nav .nav-link-child:focus,
.primary-nav .nav-link-child:hover {
	background: var(--nav-d-c-bg-hover-colour);
}

.primary-nav .nav-link-child:focus,
.primary-nav .nav-link-child:focus-visible {
	outline: 2px solid var(--nav-d-c-focus-outline-colour);
	outline-offset: -4px;
}

.primary-nav .nav-link-child:focus:not(:focus-visible) {
	outline: none;
}

/* Nav menu toggle ---------------------------------------------------------- */

.nav-menu-toggle {
	display: none;
	flex: initial;
	width: 2.5em;
	height: 2.5em;
	margin: 0 var(--nav-page-margin);
	background-color: #fff;
	color: var(--nav-colour-primary);
	outline: none;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	border-radius: 2px;
	border: none;
	font-size: 1em;
	padding: 0;
}

.nav-menu-toggle i {
	font-size: 1.375em;
}

.nav-menu-toggle:hover:not(:disabled) {
	background: transparent;
	color: var(--colour-primary-dim);
}

.nav-menu-toggle[aria-expanded="true"]:not(:disabled) {
	background: var(--nav-colour-primary);
	color: #fff;
}

.nav-menu-toggle:focus:not(:disabled),
.nav-menu-toggle:focus-visible:not(:disabled) {
	outline: 2px solid var(--nav-colour-primary);
	outline-offset: 2px;
	box-shadow: none;
}

.nav-menu-toggle:focus:not(:focus-visible) {
	outline: none !important;
}

/* Mobile styling ----------------------------------------------------------- */

@media screen and (max-width: 62em) {
	.primary-nav .nav-menu > .menu-item {
		padding: 2.25em 0.5em;
		padding: 0 calc(var(--nav-d-p-padding-x) * 0.75);
	}
}

@media screen and (min-width: 54.01em) {
	.primary-nav .menu-container {
		display: block !important;
	}
}

@media screen and (max-width: 54em) {
	.site-content {
		padding-top: calc(var(--nav-height-above) + var(--nav-height-primary-mobile));
	}

	.primary-nav {
		height: var(--nav-height-primary-mobile);
	}

	.primary-nav .nav-limiter {
		position: relative;
		height: var(--nav-height-primary-mobile);
	}

	/* Nav logo ------------------------------------------------------------- */

	.primary-nav .logo-container {
		flex: 1;
		max-width: var(--nav-logo-max-width-mobile);
	}

	/* Nav menu ------------------------------------------------------------- */

	.primary-nav .menu-container {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		height: auto;
		top: 100%;
		background: #f2f2f2;
		border-top: 1px solid #ccc;
		padding: 0.5em 0;
	}

	.primary-nav .menu-container::after {
		content: '';
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		height: 0.5px;
		background: rgba(0, 0, 0, 0.5);
	}

	.primary-nav .menu-container.expanded {
		display: block;
	}

	/* Parent menu */

	.primary-nav .nav-menu {
		display: block;
		margin: 0;
		text-align: left;
	}

	.primary-nav .nav-menu > .menu-item {
		display: block;
		width: auto;
		height: auto;
		padding: 0;
		text-align: left;
		border: none;
	}

	.primary-nav .nav-link-parent {
		margin-top: 0;
		padding: 0.625rem 1rem 0.625rem calc(var(--nav-page-margin) - var(--nav-m-left-border-thickness));
		line-height: 1.3;
		border-bottom: none;
		border-top: none;
		border-left: var(--nav-m-left-border-thickness) solid transparent;
	}

	.primary-nav .menu-item.current-menu-item .nav-link-parent {
		background: var(--nav-colour-primary);
		color: #fff;
	}

	.primary-nav .menu-item.current-menu-ancestor:not(.expanded) .nav-link-parent {
		border-left-color: var(--nav-colour-primary);
	}

	.primary-nav .menu-item .nav-link-parent:focus,
	.primary-nav .menu-item .nav-link-parent:focus-visible {
		outline: 2px solid var(--colour-primary);
		outline-offset: -4px;
	}

	.primary-nav .menu-item.current-menu-item .nav-link-parent:focus,
	.primary-nav .menu-item.current-menu-item .nav-link-parent:focus-visible {
		outline-color: #fff;
	}

	.primary-nav .menu-item .nav-link-parent:focus:not(:focus-visible) {
		outline: none !important;
	}

	.primary-nav .menu-item-has-children .nav-link-parent::after {
		content: '';
		display: block;
		position: absolute;
		width: 1rem;
		height: 1rem;
		top: 1.125rem;
		right: 0.75rem;
		border-style: solid;
		border-width: 0.5rem;
		border-color: transparent;
		border-top-color: #bfbfbf;
		transition: 150ms all ease;
		transform-origin: 50% 25%;
		transform: rotate(-90deg);
	}

	.primary-nav .menu-item-has-children.expanded .nav-link-parent::after {
		transform: rotate(0deg);
		border-top-color: var(--nav-colour-primary);
	}

	.primary-nav .menu-item-has-children .nav-link-parent {
		cursor: pointer;
	}

	/* Child menu */

	.primary-nav .sub-menu {
		position: static;
		top: auto;
		left: auto;
		border-top: none;
		box-shadow: none;
		text-align: left;
	}

	.primary-nav .sub-menu .menu-item {
		width: auto;
	}

	.primary-nav .sub-menu .menu-item:not(:first-child)::before {
		display: none;
	}

	.primary-nav .nav-link-child {
		padding: 0.625rem 1rem 0.625rem calc(1rem + var(--nav-page-margin) - var(--nav-m-left-border-thickness));
		background: inherit;
		font-size: 0.9375rem;
		color: #333;
		border-left: var(--nav-m-left-border-thickness) solid transparent;
		white-space: normal;
	}

	.primary-nav .nav-link-child:hover {
		background: transparent;
		color: var(--colour-primary);
	}

	.primary-nav .nav-link-child:focus,
	.primary-nav .nav-link-child:focus-visible {
		background: transparent;
		outline-color: var(--nav-colour-primary);
		outline-offset: -4px;
		color: var(--colour-primary);
	}

	.primary-nav .nav-link-child:focus:not(:focus-visible) {
		outline: none !important;
	}

	.primary-nav .current-menu-item > .nav-link-child {
		background: var(--nav-colour-primary);
		color: #fff;
	}

	.primary-nav .current-menu-item > .nav-link-child:focus,
	.primary-nav .current-menu-item > .nav-link-child:focus-visible {
		outline-color: #fff;
	}

	/* Nav menu toggle ------------------------------------------------------ */
	
	.nav-menu-toggle {
		display: flex;
	}
}

/* ## Buttons --------------------------------------------------------------- */

.btn {
	display: inline-block;
	padding: 0.375rem 1rem;
	font-size: 1em;
	font-weight: 600;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: #fff;
	background: var(--colour-primary);
	border: none;
	border-radius: 1px;
	text-decoration: none;
}

.btn:hover {
	background: var(--colour-primary-dim);
}

/* ## Footer ---------------------------------------------------------------- */

.site-footer .upper {
	padding: 2.25em 0 2em 0;
	background: var(--colour-footer-bg-upper);
	color: #fff;
	font-weight: 300;
	letter-spacing: 0.02em;
}

.site-footer .upper h2 {
	margin: 0 0 2.25rem 0;
	font-size: 1.75em;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.01em;
	text-align: center;
}

.site-footer .upper h3 {
	margin: 2rem 0 0.875rem 0;
	font-size: 1.3125em;
	font-weight: 600;
	line-height: 1.25;
}

.site-footer .upper h3:first-child {
	margin-top: 0;
}

.site-footer .columns {
	display: grid;
	grid-gap: 3em;
	grid-template-columns: repeat(3, 1fr);
}

.site-footer .upper .text {
	margin: 0.75rem 0;
	font-size: 0.9375em;
	line-height: 1.6;
}

.site-footer .upper a {
	border-bottom: none;
}

.site-footer .upper a:hover {
	border-bottom: 1px solid #fff;
}

.site-footer .upper a:focus,
.site-footer .upper a:focus-visible {
	border-bottom: none;
}

.site-footer .column.contact h3 {
	max-width: 14em;
}

.site-footer .upper .email,
.site-footer .upper .phone {
	font-weight: 500;
}

.site-footer .upper .logo {
	display: block;
	width: 14em;
	margin-top: 1.5em;
	margin-bottom: 0.5em;
}

.site-footer .column.hours .hours-list {
	margin: 0 0 1.5em 0;
	padding: 0;
	list-style-type: none;
}

.site-footer .column.hours .hours-list li {
	margin: 0.25rem 0;
	font-size: 0.9375em;
}

.site-footer .column.hours .hours-list .label {
	padding-right: 0.5em;
}

.site-footer .column.hours .hours-label {
	margin: 0 0 0.125rem 0;
	font-weight: 500;
}

.site-footer .column.feed p {
	margin: 0 0 1em 0;
}

.site-footer .column.feed a {
	font-weight: 600;
}

.site-footer .upper .google-map {
	margin: 0;
}

.site-footer .upper .map-link {
	display: block;
	width: 100%;
	height: 0;
	padding-bottom: 75%;
	background-image: url('./img/map.gif');
	background-repeat: no-repeat;
	background-position: 50% 25%;
	background-size: cover;
	text-decoration: none;
	border-radius: 0.25px;
	border: none !important;
	outline: none;
}

.site-footer .upper .map-link:hover {
	outline: 3px solid rgba(255, 255, 255, 0.3);
	outline-offset: 1px;
}

.site-footer .upper .map-link:focus,
.site-footer .upper .map-link:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.site-footer .upper .map-link:focus:not(:focus-visible) {
	outline: 3px solid rgba(255, 255, 255, 0.3);
	outline-offset: 1px;
}

.site-footer .lower {
	padding: 1em 0;
	background: var(--colour-footer-bg-lower);
	color: #999;
}

.site-footer .lower .limiter {
	display: flex;
	align-items: center;
}

.site-footer .lower .copyright {
	flex: 1;
	font-size: 0.875em;
}

.site-footer .lower .top-button-wrapper {
	flex: initial;
}

.site-footer .lower .top-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.125em;
	height: 2.125em;
	padding: 0.45em 0.5em 0.55em 0.5em;
	color: rgba(255, 255, 255, 0.5);
	border: none;
	border-radius: 0.5px;
}

.site-footer .lower .top-button:hover {
	color: #fff;
	border: none;
}

.site-footer .lower .top-button:focus,
.site-footer .lower .top-button:focus-visible {
	color: #fff;
	outline: 2px solid #fff;
}

.site-footer .lower .top-button:focus:not(:focus-visible) {
	outline: none;
}

@media (max-width: 56em) {
	.site-footer .columns {
		grid-gap: 1.5em;
		grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));
	}

	.site-footer .upper .logo {
		width: 12em;
		max-width: 100%;
	}
}

@media (max-width: 48.875em) {
	.site-footer .column.feed {
		display: none;
	}
}

@media (max-width: 35em) {
	.site-footer .columns {
		display: block;
		text-align: center;
	}

	.site-footer .column.contact h3 {
		max-width: 100%;
	}

	.site-footer .column.hours {
		margin-top: 2.5em;
	}

	.site-footer .upper .logo {
		margin-right: auto;
		margin-left: auto;
		width: 12em;
		max-width: 100%;
		margin-top: 2em;
		margin-bottom: 0;
	}
}

/* ## Posts and pages ------------------------------------------------------- */

.sticky {
	display: block;
}

.post,
.page {
	margin: 0;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* ## Comments -------------------------------------------------------------- */

.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* ## Widgets --------------------------------------------------------------- */

.widget {
	margin: 0 0 1.25em;
}

.widget select {
	max-width: 100%;
}

/* ## Media ----------------------------------------------------------------- */

.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* ## Captions -------------------------------------------------------------- */

.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* ## Galleries ------------------------------------------------------------- */

.wp-block-gallery {
	--wp--style--gallery-gap-default: 1.5em;
}

.wp-block-gallery a {
	border: none !important;
}

.wp-block-gallery.has-nested-images figure.wp-block-image {
	flex-grow: 0;
}

.wp-block-gallery.has-nested-images figure.wp-block-image img {
	aspect-ratio: 3/2;
}

.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before {
	display: none;
}

figure.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	margin-top: 0.5rem;
	padding: 0;
	font-size: 0.875rem;
	background: none;
	position: relative;
	color: #000;
	line-height: 1.4;
	text-shadow: none;
}


/* -----------------------------------------------------------------------------
 # Home page ---------------------------------------------------------------- */

.page-home {
	background: #fff;
}

.page-home .section {
	padding: 3em 0;
}

.page-home .section h2 {
	margin: 0 0 1.5rem 0;
	color: var(--colour-primary);
	font-size: 1.75em;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.page-home .section h3 {
	margin: 0 0 0.5rem;
	font-size: 1.3125em;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.page-home .section p {
	margin: 0 0 1.5rem 0;
	line-height: 1.6;
}

.page-home .columns {
	display: flex;
	align-items: stretch;
	gap: 3em;
}

.page-home .columns .column {
	flex: 1;
}

.page-home .text-link {
	font-weight: 600;
}

/* Banner section */

.page-home .section.banner {
	height: 27em;
	padding: 0;
	position: relative;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: 0% 50%;
	background-image: url('./img/home-banner.jpg');
}

.page-home .section.banner .text-overlay {
	color: #fff;
	line-height: 1.2;
}

.page-home .section.banner h1 {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 600;
	text-shadow: 1px 1px 9px rgba(0, 0, 0, 1);
}

.page-home .section.banner .subhead {
	margin: 0.5rem 0 1.75rem 0;
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.2;
	text-shadow: 1px 1px 6px rgba(0, 0, 0, 1);
}

.page-home .section.banner .overlay-text {
	width: 100%;
	max-width: 20em;
	opacity: 0.9;
}

.page-home .section.banner .limiter {
	display: flex;
	align-items: flex-end;
	height: 100%;
	padding-left: 1.5em;
}

/* About section */

.page-home .section.about h2 {
	color: var(--colour-text);
}

.page-home .section.about .columns {
	align-items: center;
}

.page-home .section.about .column.left p:last-child {
	margin-bottom: 0.5em;
}

.page-home .section.about .wp-block-embed {
	margin: 0.5em 0 0 0;
}

/* Co-ops section */

.page-home .section.coops {
	height: 36em;
	padding: 0;
	position: relative;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: 42.5% 55%;
	background-image: url('./img/home-people.jpg');
}

.page-home .section.coops .limiter {
	display: flex;
	align-items: flex-end;
	height: 100%;
}

.page-home .section.coops .content {
	padding-bottom: 0.75em;
	color: #fff;
}

.page-home .section.coops .content .primary {
	margin: 0 0 1rem 0;
	max-width: 18em;
	font-size: 1.75em;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

/* News section */

.page-home .section.news .centered {
	margin: 0;
}

/* Resources section */

.page-home .section.resources {
	background: #f2f2f2;
}

.resource-icons {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: center;
	margin: 3em auto 1em auto;
	width: 100%;
	max-width: 48em;
	gap: 2em 0;
}

.resource-icons .item {
	width: 33.333%;
	display: flex;
	align-items: flex-start;
	justify-content: center;
}

.resource-icons .resource-link {
	display: block;
	width: 10em;
	text-align: center;
	text-decoration: none;
	border: none !important;
}

.resource-icons .resource-link .icon {
	display: block;
	width: 100%;
	max-width: 5em;
	margin: 0 auto 0.75em auto;
}

.resource-icons .resource-link .label {
	font-weight: 600;
	border-bottom: 1px solid var(--colour-primary);
}

.resource-icons .resource-link:hover .label {
	color: var(--colour-primary-dim);
	border-bottom: 1.5px solid var(--colour-primary-dim);
}

.resource-icons .resource-link:focus-visible .label {
	border: none;
}

@media (max-width: 48em) {
	.page-home .section.banner {
		height: 24em;
	}

	.page-home .section.banner .limiter {
		padding-top: 1em;
	}

	.page-home .section.banner .overlay-text {
		max-width: 18em;
	}

	.page-home .columns {
		display: block;
	}

	.page-home .columns .column.left {
		padding-bottom: 2.5em;
	}

	.resource-icons {
		grid-template-columns: repeat(auto-fill, minmax(8em, 1fr));
	}

	.resource-icons .resource-link .icon {
		max-width: 5em;
	}
}

@media (max-width: 32em) {
	.resource-icons .item {
		width: 50%;
	}

	.resource-icons .resource-link .icon {
		max-width: 4.5em;
	}
}

@media (max-width: 22em) {
	.resource-icons .item {
		width: 100%;
	}
}

/* Events section */

.page-home .section.events .centered {
	margin: 0;
}

.page-home .section.events .no-events {
	margin: 1.5rem 0 0.75rem 0;
}

.event-table {
	max-width: 50em;
	margin: 2em auto;
}

.event-table td {
	padding: 0.625em 0;
	line-height: 1.5;
	text-align: left;
}

.event-table .date {
	min-width: 7em;
	font-weight: 700;
	text-align: center;
	color: var(--colour-primary);
}

.event-table .times {
	min-width: 10em;
	text-align: center;
}

.event-table .category {
	min-width: 8em;
}

.event-table .title {
	width: auto;
}

.event-table .title a {
	font-weight: 600;
}

@media (max-width: 48em) {
	.event-table .category {
		display: none;
	}
}

@media (max-width: 34em) {
	.event-table,
	.event-table tbody,
	.event-table tr,
	.event-table td {
		display: block;
	}

	.event-table td {
		min-width: unset;
		text-align: center;
	}

	.event-table .date {
		padding-bottom: 0;
		font-weight: 600;
		text-align: center;
		color: inherit;
	}

	.event-table .times {
		padding-top: 0.25rem;
		padding-bottom: 0;
		font-size: 0.9375em;
	}

	.event-table .title {
		padding-top: 0.375rem;
	}
}


/* -----------------------------------------------------------------------------
 # Interior pages ----------------------------------------------------------- */

.primary-colour {
	color: var(--colour-primary);
}

.page-default.site-content {
	background: #fff;
}

.page-default .page-banner {
	display: flex;
	align-items: flex-end;
	position: relative;
	height: 10em;
}

.page-default .page-banner .banner-image {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #ccc;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: 0% 50%;
	/* opacity: 0.25; */
}

.page-default .page-banner .section-title {
	position: relative;
	width: 1152px;
	margin: 0 auto;
	padding: 0 1.5rem 1.25rem 1.5rem;
}

.page-default .page-banner .banner-grandparent,
.page-default .page-banner .banner-parent,
.page-default .page-banner .banner-title {
	display: inline;
	margin: 0;
	padding: 0 0.8175rem 0 0;
	font-size: 1.375em;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.1;
	color: #fff;
	text-shadow: 0px 0px 3px rgba(255, 255, 255, 0.25);
}

.page-default .page-banner .banner-title a {
	color: #fff;
	border-color: #fff;
}

.page-default .page-banner .banner-grandparent a:not(:hover),
.page-default .page-banner .banner-parent a:not(:hover),
.page-default .page-banner .banner-title a:not(:hover) {
	border: none;
}

.page-default .page-banner .banner-divider {
	position: relative;
	top: -0.0625em;
	padding-right: 0.75rem;
	font-size: 1.125em;
	line-height: 1.1;
	color: #fff;
	opacity: 0.8;
}

.page-default .content-area {
	display: flex;
	align-items: flex-start;
	gap: 7.5%;
}

.content-area p a {
	font-weight: 500;
}

.page-default .hentry {
	flex: 2;
	padding: 3.25em 0 2.5em 0;
}

.page-template-template-wide .page-default .entry-content {
	max-width: 100%;
}

.page-default .wp-block-quote {
	font-size: 1.125em;
	color: var(--colour-primary);
}

.page-default .wp-block-image img {
	display: block;
}

.page-home .btn-standard i,
.page-default .btn-standard i {
	margin-right: 0.5rem;
}

.page-default .return-link {
	margin: 2.5em 0 1em 0;
}

.page-default .return-link a:not(:hover) {
	border: none;
}

.mc4wp-form-fields .form-field {
	margin-bottom: 0.5em;
}

.site-footer .mc4wp-form-fields .form-field input[type="text"],
.site-footer .mc4wp-form-fields .form-field input[type="email"] {
	padding: 0.25em 1em;
	width: 18em;
}

.site-footer .mc4wp-form-fields .form-field {
	margin-bottom: 0.375em;
}

.site-footer .mc4wp-form-fields .form-field.button {
	margin-top: 0.625em;
}

.page-sidebar .mc4wp-form-fields .form-field input[type="text"],
.page-sidebar .mc4wp-form-fields .form-field input[type="email"] {
	width: 100%;
	max-width: 18rem;
}

.asterisk {
	color: #bb0000;
	font-style: normal;
	font-weight: bolder;
}

.mc4wp-form-fields .form-field.checkboxes label {
	display: block;
	font-size: 0.9375em;
}

.mc4wp-form-fields .form-field.checkboxes .select-heading {
	margin-bottom: 0.25rem;
	font-size: 0.875em;
	font-weight: 600;
}

.mc4wp-form-fields .form-field.checkboxes {
	margin: 0.75em 0;
}

@media screen and (max-width: 54em) {
	.page-default .content-area {
		display: block;
	}

	.page-default .hentry {
		padding: 2.5em 0 1.5em 0;
	}

	.page-default .entry-content {
		max-width: 100%;
	}
}

/* ## Primary content ------------------------------------------------------- */

.page-default .hentry .entry-title {
	margin: 0 0 1.5rem 0;
	font-size: 1.75em;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

.page-default .hentry h2 {
	margin: 2.5rem 0 1.25rem 0;
	font-size: 1.375em;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

.page-default .hentry h2:first-child {
	margin-top: 0;
}

.page-default .hentry h3 {
	margin: 2.5rem 0 1.25rem 0;
	font-size: 1.125em;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

.page-default .hentry p {
	margin-bottom: 1.25em;
}

.page-default .hentry p {
	margin-bottom: 1.25em;
}

.page-default .hentry ul {
	padding-left: 1.5em;
}

.page-default .hentry li {
	margin-bottom: 0.375em;
}

.page-default .hentry .wp-block-embed,
.page-default .hentry .wp-block-image {
	margin: 2.75rem 0 1.25rem 0;
}

.page-default .wp-block-embed figcaption,
.page-default .wp-block-image figcaption {
	font-size: 0.9375em;
	font-style: italic;
}

/* ## Sidebar --------------------------------------------------------------- */

.page-default .page-sidebar {
	flex: 1;
	padding: 3.5em 0 2.5em 0;
}

.page-default .page-sidebar h2 {
	margin: 2.5rem 0 1.25rem 0;
	font-size: 1.125em;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	text-transform: uppercase;
}

.page-default .page-sidebar h2:first-child {
	margin-top: 0;
}

.page-default .page-sidebar h3 {
	margin: 1.5rem 0 1.25rem 0;
	font-size: 1.125em;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
}

.page-default .page-sidebar ul {
	padding-left: 1.5em;
}

.page-default .page-sidebar strong {
	font-weight: 600;
}

.page-default .page-sidebar .wp-block-embed,
.page-default .page-sidebar .wp-block-image {
	margin: 1.25rem 0;
}

.page-default .page-sidebar .cover-image {
	margin-top: 2em;
	max-width: 16em;
	box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.25);
	border-radius: 1px;
}

.page-default .page-sidebar .sidebar-return-link i {
	margin-right: 0.375em;
	color: var(--colour-primary);
}

@media screen and (max-width: 54em) {
	.page-default .page-sidebar {
		border-top: 0.0625em solid #ccc;
		padding: 2.5em 0;
	}

	.page-default .page-sidebar aside {
		max-width: 100%;
	}
}

/* ## Events page ----------------------------------------------------------- */

.em-event-list .event-item {
	display: flex;
	align-items: center;
	width: 100%;
	margin: 1.25em 0;
}

.em-event-list .event-cal {
	flex: initial;
	width: 3.75em;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	padding: 1px;
	border-radius: 4px;
	border: 1.5px solid var(--colour-primary);
	text-align: center;
}

.em-event-list .event-cal .month {
	padding: 2px 0;
	background: var(--colour-primary);
	border-radius: 3px 3px 0 0;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: #fff;
}

.em-event-list .event-cal .date {
	padding: 2px 0 0 0;
	font-size: 2rem;
	font-weight: 500;
	color: #000;
	line-height: 2.125rem;
	letter-spacing: -0.02em;
}

.em-event-list .event-cal .day {
	margin: -1px 0 0 0;
	padding: 0 0 1px 0;
	border-radius: 0 0 3px 3px;
	font-size: 0.75rem;
	font-weight: 600;
	color: #000;
}

.em-event-list .event-details {
	flex: 1;
	margin: 0 0 0 1em;
}

.em-event-list .event-title {
	margin-bottom: 0.125rem;
	font-size: 1.0625em;
	font-weight: 600;
}

.em-event-list .event-title a:not(:hover) {
	border: none;
}

.em-event-list .event-status-red {
	display: inline-block;
	margin-right: 0.25em;
	padding: 1px 5px;
	font-size: 0.875em;
	/* font-weight: 600; */
	background: #bd272c;
	color: #fff;
	border-radius: 3px;
}

.em-event-list .event-date,
.em-event-list .event-time {
	font-size: 0.9375em;
}

.single-em_event .site-content .entry-title {
	margin: 0 0 0.5rem 0;
}

.single-em_event .event-details {
	margin: 0 0 1.5rem 0;
}

.single-em_event .event-details .event-type {
	display: inline-block;
	margin: 0.625em 0 0 0;
	padding: 0.125rem 0.5rem;
	margin-right: 0.5rem;
	background: var(--colour-primary);
	color: #fff;
	font-size: 0.875rem;
	font-weight: 500;
	border-radius: 3px;
}

/* ## Contact page ---------------------------------------------------------- */

.page-contact .wp-block-image.google-map {
	margin: 2em 0 1em 0;
	border: 1px solid #595959;
}

.page-contact .wp-block-image.google-map iframe {
	display: block;
	width: 100%;
}

/* ## WS Form --------------------------------------------------------------- */

.wsf-form {
	--wsf-field-button-border-radius: 0;
	--wsf-field-button-font-weight: 600;
	--wsf-field-button-padding: 0.375rem 1rem;
	--wsf-field-button-text-transform: uppercase;
	--wsf-field-button-width: auto;
	--wsf-field-checkbox-checked-color-background: var(--colour-primary);
	--wsf-field-label-font-weight: 600;
	--wsf-field-radio-checked-color: var(--colour-primary);
	--wsf-form-color-primary: var(--colour-primary);
}

.wsf-form button.wsf-button {
	border-radius: 1px;
	box-shadow: none !important;
}

.wsf-form button.wsf-button.wsf-button-primary:focus,
.wsf-form button.wsf-button.wsf-button-primary:focus-visible {
	border-radius: 1px;
	outline: 3px solid var(--colour-primary);
	outline-offset: 1.5px !important;
}

.wsf-form button.wsf-button.wsf-button-primary:focus:not(:focus-visible) {
	outline: none !important;
}

.wsf-form input[type=checkbox].wsf-field + label.wsf-label {
	--wsf-field-label-font-weight: 400;
}

.wsf-form .wsf-inline {
	margin-top: 0.5rem;
	margin-inline-end: 2rem !important;
}

.wsf-form .field-wrapper-pets {
	margin-bottom: 0 !important;
}

.wsf-form .text-editor-no-p p {
	margin: 0;
}

.wsf-alert.wsf-alert-success p {
	margin: 0.5em 0;
}


/* -----------------------------------------------------------------------------
# Blog ---------------------------------------------------------------------- */

.blog-content {
	display: flex;
	align-items: flex-start;
}

.blog-primary {
	flex: 2;
	padding: 3.25em 0 2.5em 0;
}

.blog-primary h2 {
	margin-top: 0;
}

.page-blog .page-title {
	margin: 0;
}

.page-blog .entry-meta,
.page-blog .page-meta {
	margin: 0;
	min-height: 1.5rem;
	font-size: 1em;
}

.blog-primary .nav-links {
	margin-top: 2.5em;
	/* overflow: hidden; */
}

.blog-primary .nav-links .nav-previous {
	float: left;
	width: 50%;
}

.blog-primary .nav-links .nav-next {
	float: right;
	width: 50%;
	text-align: right;
}

/* ## Index ----------------------------------------------------------------- */

.blog-content .index-title,
.blog-content .archive-title,
.blog-content .search-title {
	margin: 0 0 2rem 0;
}

.blog-content .search-title .search-keyword {
	font-style: italic;
}

.post-list .post-list-item {
	margin: 0 0 1.5em 0;
}

.post-list .post-list-title {
	margin-bottom: 0.5rem;
	font-size: 1.0625em;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

.post-list .post-list-date {
	font-size: 0.9375em;
	line-height: 1.25;
}

.post-grid {
	display: flex;
	flex-wrap: wrap;
	margin: -0.75em;
	gap: 0;
}

.page-home .post-grid {
	margin: 2.5em auto 2em auto;
	gap: 3em;
	justify-content: center;
}

.post-grid .post-tile {
	display: block;
	margin: 0;
	width: 33.333%;
	padding: 0.75em;
}

.page-home .post-tile {
	width: 100%;
	max-width: 18em;
	padding: 0;
}

.post-grid .post-link {
	display: block;
	height: 100%;
	text-align: left;
	border: 1px solid #ccc;
	border-radius: 1px;
	overflow: hidden;
}

.post-grid .post-link:hover {
	border: 1px solid #999;
}

.post-grid .post-link:focus,
.post-grid .post-link:focus-visible {
	border: 1px solid #ccc;
	outline-offset: 2px;
}

.post-grid .post-link:focus:not(:focus-visible) {
	border: 1px solid #999;
	outline: none;
}

.post-grid .post-tile .excerpt-image-wrapper {
	width: 100%;
	position: relative;
	height: 0;
	padding-bottom: 66.666%;
	padding-bottom: calc(100% / 3 * 2);
}

.post-grid .post-tile-thumbnail {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: none;
}

.post-grid .post-tile-thumbnail.placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	
	background: #e5e5e5;
}

.post-grid .post-tile .excerpt-image-wrapper img:not(.logo) {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-grid .post-tile .excerpt-image-wrapper img.logo {
	display: block;
	width: 100%;
	max-width: 6em;
}

.post-grid .post-tile .excerpt-body {
	padding: 0.75em 1em;
}

.post-grid h3.entry-title {
	margin: 0 0 0.25rem 0;
	font-size: 1em;
	font-weight: 600;
	line-height: 1.25;
	color: var(--colour-primary);
}

.page-home .post-grid h3.entry-title {
	color: #000;
	font-size: 1.125em;
}

.blog-content .post-grid .post-link:focus h3.entry-title span,
.blog-content .post-grid .post-link:hover h3.entry-title span {
	border-bottom: 0.5px solid var(--colour-primary);
}

.page-home .post-grid .post-link:focus h3.entry-title,
.page-home .post-grid .post-link:hover h3.entry-title {
	color: #000;
}

.post-grid .entry-meta {
	font-size: 0.875em;
	color: initial;
	opacity: 0.75;
}

.page-home .post-grid .entry-meta {
	font-size: 0.9375em;
}

.post-grid .entry-title a,
.post-grid .entry-meta a {
	color: inherit;
	text-decoration: none;
	outline: none;
}

.post-grid .entry-title a:focus,
.post-grid .entry-title a:hover,
.post-grid .entry-meta a:focus,
.post-grid .entry-meta a:hover {
	border-bottom: 1px solid var(--colour-primary);
}

.post-grid .tile-content p {
	font-size: 1em;
	margin: 1em 0;
	line-height: 1.5;
}

.post-grid .tile-content .moretag,
.post-grid .tile-content .moretag:visited {
	font-weight: 500;
	text-decoration: none;
	outline: none;
	border-radius: 0.0625rem;
	border-bottom: 1px solid var(--colour-primary);
}

.post-grid .read-more {
	margin-top: 0.5rem;
	font-size: 0.875em;
}

.blog-content .post-grid .read-more {
	display: none;
}

.post-grid .read-more .label {
	display: inline-block;
	line-height: 1.1;
	border-bottom: 1px solid var(--colour-primary);
}

.post-grid .post-link:hover .read-more .label {
	color: var(--colour-primary-dim);
	border-bottom: 1.5px solid var(--colour-primary-dim);
}

@media (max-width: 67.5em) {
	.page-home .post-grid {
		gap: 1.5em;
	}

	.page-home .post-grid .post-tile {
		max-width: 14em;
	}
}

@media (max-width: 60em) {
	.blog-content .post-grid .post-tile {
		width: 50%;
	}
}

@media (max-width: 54em) {
	.blog-content .post-grid .post-tile {
		width: 33.333%;
	}
}

@media (max-width: 50em) {
	.page-home .post-grid .post-tile:nth-child(3) {
		display: none;
	}
}

@media (max-width: 40em) {
	.blog-content .post-grid .post-tile {
		width: 50%;
	}
}

@media (max-width: 28em) {
	.blog-content .post-grid .post-tile {
		width: 100%;
	}
}

/* ## Posts ----------------------------------------------------------------- */

.blog-post .hentry {
	padding: 0;
}

.blog-post .hentry .entry-title {
	margin: 0 0 0.5rem 0;
}

.blog-post .entry-header {
	margin-bottom: 2.5em;
}

/* ## Sidebar --------------------------------------------------------------- */

.section-news .page-sidebar {
	padding-top: 3.25em;
}

.blog-content .widget-area {
	margin: 0;
}

.blog-content .widget-area h2 {
	margin: 1rem 0;
	font-size: 1.25em;
}

.blog-content .widget-area ul {
	padding-inline-start: 0;
	list-style-type: none;
}

.blog-content .widget-area li {
	margin: 0.625rem 0;
}

/* Search */

.blog-content .widget-area .widget_search {
	margin-bottom: 2.5em;
}

.blog-content .widget-area .wp-block-search__input {
	padding: 0.25rem 0.75rem;
	border: 1px solid #b3b3b3;
	border-radius: 0;
	outline: none;
}

.blog-content .widget-area .wp-block-search__input:focus {
	border-color: #000;
	box-shadow: 0 0 0 3px #d9d9d9;
}

.blog-content .widget-area .wp-block-search__input::placeholder {
	font-style: italic;
	color: #999;
}

.blog-content .widget-area .wp-block-search__button {
	margin: 0;
	background: #b3b3b3;
	border: 1px solid #b3b3b3;
	border-left: 0;
	border-radius: 0;
	outline: none;
}

.blog-content .widget-area .wp-block-search__button:focus,
.blog-content .widget-area .wp-block-search__button:hover {
	background: var(--colour-primary);
	border-color: var(--colour-primary);
	color: #fff;
}

.blog-content .widget-area .wp-block-search__button:focus:not(:focus-visible) {
	box-shadow: none;
}

/* Recent posts */

.wp-block-latest-posts__post-date {
	margin-top: 0.125rem;
	font-size: 0.875rem;
}

/* Categories */

.blog-content .widget-area .widget_categories {
	margin-bottom: 2.5em;
}

/* Archives */

.blog-content .widget-area select {
	border: 1px solid #b3b3b3;
	padding: 0.375rem 0.75rem;
	outline: none;
}

.blog-content .widget-area select:focus {
	border-color: #000;
	box-shadow: 0 0 0 3px #d9d9d9;
}

@media (max-width: 720px) {
	.blog-primary .nav-links {
		overflow: auto;
	}

	.blog-primary .nav-links .nav-previous {
		margin: 0 0 0.5em 0;
		float: none;
		width: 100%;
	}

	.blog-primary .nav-links .nav-next {
		float: none;
		width: 100%;
		text-align: left;
	}
}

/* ## Member Resources page ------------------------------------------------- */

.page-member-resources h2:target::before {
	content: '';
	display: block;
	height: 8rem;
	margin: -8rem 0 0 0;
}

.page-member-resources .no-resources {
	margin-left: 1rem;
	font-style: italic;
	color: #767676;
}

.page-member-resources .wp-block-table table {
	border: none;
}

.page-member-resources .wp-block-table thead {
	border: none;
}

.page-member-resources .wp-block-table thead tr {
	background: #f2f2f2;
}

.page-member-resources .wp-block-table thead th {
	font-weight: 600;
	text-align: left;
}

.page-member-resources .wp-block-table tbody:nth-child(1) tr:nth-child(odd) {
	background: #f2f2f2;
}

.page-member-resources .wp-block-table tbody:nth-child(2) tr:nth-child(even) {
	background: #f2f2f2;
}

.page-member-resources .wp-block-table td,
.page-member-resources .wp-block-table th {
	padding: 0.5rem 0.5rem;
	border: none;
	font-size: 0.9375em;
	line-height: 1.4;
}

.page-member-resources .wp-block-table td {
	height: 2.75rem;
}

.page-member-resources .wp-block-table td:nth-child(1),
.page-member-resources .wp-block-table th:nth-child(1) {
	width: auto;
	padding-left: 1em;
}

.page-member-resources .wp-block-table td:nth-child(2),
.page-member-resources .wp-block-table th:nth-child(2) {
	width: 9em;
}

.page-member-resources .wp-block-table td:nth-child(3),
.page-member-resources .wp-block-table th:nth-child(3) {
	width: 6.5em;
}

.page-member-resources .wp-block-table td:nth-child(4),
.page-member-resources .wp-block-table th:nth-child(4) {
	width: 9.5em;
}

.page-member-resources .wp-block-table td:nth-child(3) a,
.page-member-resources .wp-block-table td:nth-child(4) a {
	border: none;
}

.page-member-resources .wp-block-table a {
	outline-offset: 1.5px;
}

.page-member-resources .wp-block-table a .fas {
	margin-right: 0.5em;
}

.page-member-resources .wp-block-table .btn-download {
	display: inline-block;
	padding: 0.25rem 0.625rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: #fff;
	border-radius: 6px;
}

.page-member-resources .wp-block-table .btn-download .fas {
	font-size: 0.75rem;
}

@media (max-width: 40em) {
	.page-member-resources .wp-block-table table,
	.page-member-resources .wp-block-table tbody,
	.page-member-resources .wp-block-table tr,
	.page-member-resources .wp-block-table th,
	.page-member-resources .wp-block-table td {
		display: block;
	}

	.page-member-resources .wp-block-table thead {
		display: none;
	}

	.page-member-resources .wp-block-table tbody:nth-child(2) tr:nth-child(odd) {
		background: #f2f2f2;
	}

	.page-member-resources .wp-block-table tbody:nth-child(2) tr:nth-child(even) {
		background: transparent;
	}

	.page-member-resources .wp-block-table td {
		height: auto;
	}

	.page-member-resources .wp-block-table td:nth-child(1) {
		width: 100%;
		padding: 0.75em 1em 0.5em 1em;
		font-weight: 600;
	}

	.page-member-resources .wp-block-table td:nth-child(2) {
		width: 100%;
		padding: 0 1rem;
		font-size: 0.875rem;
	}

	.page-member-resources .wp-block-table td:nth-child(3),
	.page-member-resources .wp-block-table td:nth-child(4) {
		display: inline-block;
		padding: 0.5rem 1rem 0.75rem 1rem;
		font-size: 0.875rem;
	}

	.page-member-resources .wp-block-table td:nth-child(3) {
		width: 8em;
	}

	.page-member-resources .wp-block-table td:nth-child(4) {
		width: 12em;
	}
}


/* -----------------------------------------------------------------------------
 # Plugins ------------------------------------------------------------------ */

/* ## Jetpack infinite scroll ----------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}


/* -----------------------------------------------------------------------------
 # Utilities ---------------------------------------------------------------- */

/* ## Accessibility --------------------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #fff;
	border-radius: 4.5px;
	border: 2px solid var(--colour-primary);
	box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.25);
	clip: auto !important;
	clip-path: none;
	color: var(--colour-primary);
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 6px;
	line-height: normal;
	padding: 0.875rem 1.375rem;
	text-decoration: none;
	top: 6px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* ## Alignments ------------------------------------------------------------ */

.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}
