/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

:root {
  --color-primary: #1D3F69;
  --color-secondary: #D9751A;
  --color-light: #F8FCFF;
  --size-step-0: clamp(1rem, calc(0.96rem + 0.22vw), 1.13rem);
  --size-step-1: clamp(1.25rem, calc(1.16rem + 0.43vw), 1.5rem);
  --size-step-2: clamp(1.56rem, calc(1.41rem + 0.76vw), 2rem);
  --size-step-3: clamp(1.95rem, calc(1.71rem + 1.24vw), 2.66rem);
  --size-step-4: clamp(2.44rem, calc(2.05rem + 1.93vw), 3.55rem);
}

body {
  background: var(--color-light);
  color: var(--color-primary);
  font-family: "miller-banner", serif;
  font-size: var(--size-step-0);
  line-height: 1.7;
}

a {
  color: currentColor;
  -webkit-text-decoration-color: var(--color-primary);
		  text-decoration-color: var(--color-primary);
  text-decoration-thickness: 0.2ex;
  text-underline-offset: 0.2ex;
}

a:hover{
	color:var(--color-secondary);
	-webkit-text-decoration-color: var(--color-secondary);
		  text-decoration-color: var(--color-secondary);
}

h1,
h2,
h3 {
  font-family: "miller-banner", serif;
  font-weight: 800;
  line-height: 1.1;
  text-wrap: balance;
}

h1 {
  font-size: var(--size-step-4);
}

h2 {
  font-size: var(--size-step-3);
}

h3 {
  font-size: var(--size-step-2);
}

@media screen and (max-width:640px){
	h1 {
	  font-size: var(--size-step-3);
	}
	h2 {
	  font-size: var(--size-step-2);
	}
	h3 {
	  font-size: var(--size-step-1);
	}
}

@media screen and (max-width:480px){
	h1 {
	  font-size: var(--size-step-3);
	}
	h2 {
	  font-size: var(--size-step-2);
	}
	h3 {
	  font-size: var(--size-step-1);
	}
}

ul,
ol {
  -webkit-padding-start: 1em;
		  padding-inline-start: 1em;
}

blockquote {
  -webkit-padding-start: 1em;
		  padding-inline-start: 1em;
  -webkit-border-start: 0.3em solid;
		  border-inline-start: 0.3em solid;
  font-style: italic;
  font-size: var(--size-step-1);
}

strong{
	font-weight:700;
}

em{
	font-style: italic;
}

/* Utilities */
.flow > * + * ,
.wp-block-column-is-layout-flow > * + * {
  -webkit-margin-before: var(--flow-space, 1em);
  margin-block-start: var(--flow-space, 1em);
}

/* Flow and rythm */
:is(h1, h2, h3, blockquote) {
  --flow-space: 1.5em;
}

:is(h1, h2, h3) + * {
  --flow-space: 0.5em;
}

/* Line lengths */
article {

}

blockquote {
  max-width: 50ch;
}

h1 {
  max-width: 100%;
}

h2,
h3 {
  max-width: 100%;
}

/* Blocks */
.lede {
  font-size: var(--size-step-1);
  font-style: italic;
  max-width: 50ch;
  text-wrap: balance;
}

.lede + * {
  --flow-space: 2em;
}

h1 span{
	color:var(--color-secondary);
}

header{
	width:100%;
}

.site-branding{
	padding:4rem;
}

header img{
	max-width:1440px;
	margin:0 auto;
	display:block;
}

.data{
	background:var(--color-primary);
}

.data div{
	max-width:1440px;
	margin:0 auto;
	display:flex;
	justify-content: space-between;
	padding:0.3rem 2rem;
}

.data p{
	color:var(--color-light);
	font-size:80%;
}

.data p.icons{
	display:flex;
}

.data .material-symbols-outlined{
	margin-right:3px;
	font-size:20px;
	line-height:24px;
}

.data .material-symbols-outlined.margin-left{
	margin-left:12px;
}

.data .material-symbols-outlined.waves{
	margin-right:-3px;
}

@media screen and (max-width:768px){
	.data p:nth-child(2){
		display:none;
	}
}

@media screen and (max-width:640px){
	.site-branding{
		padding:2rem
	}
	.data .material-symbols-outlined.margin-left{
		margin-left:8px;
	}
}

@media screen and (max-width:480px){
	.site-branding{
		padding:1rem
	}
	.data div{
		padding:0.3rem 1rem;
	}
	.data span.tides{
		display: none;
	}
}

nav{
	max-width:1440px;
	margin:0 auto;
	display:flex;
	justify-content: space-between;
}

nav.primary-navigation{
	border-top:1px solid var(--color-primary);
	border-bottom:1px solid var(--color-primary);
	display:flex;
	justify-content: space-between;
	z-index:200;
	position: relative;
}

nav.primary-navigation ul li a{
	text-decoration: none;
}

.menu-menu-1-container{
	width:100%;
}

nav.secondary-navigation{
	margin-bottom:2rem;
	font-family:"Inter";
	font-size:80%;
	z-index:100;
	position: relative;
	width:100%;
}

.menu-menu-2-container{
	width:100%;
}

nav.secondary-navigation ul{
	width:100%;
	max-width:100%;
}

nav.secondary-navigation ul li:last-child{
	float:right;
}

nav.desktop{
	
}

nav.mobile{
	display:none;
}

nav button{
	
}

nav ul{
	width:100%;
	max-width:100%;
	padding:0;
}

nav ul li{
	display:inline-block;
	margin-right:0.5rem;
	position: relative;
	padding:1rem 0.5rem;
}

nav ul li ul{
	display:none;
}

nav ul li:hover ul{
	display:block;
	background:var(--color-primary);
	width:200px;
	top: 3.5rem;
	left:-1rem;
	position: absolute;
}

nav ul li:hover ul li a{
	color:var(--color-light);
}

nav ul li:hover ul li a:hover{
	color:var(--color-secondary);
}

nav ul li:hover ul li:last-child{
	float:none;
}

nav.primary-navigation ul li:last-child{
	float:right;
	margin-right:1rem;
}

nav.desktop button{
	display:none;
}

img.nav_icon{
	display:none;
}

@media screen and (max-width:1220px){
	nav.desktop ul,
	.menu-menu-1-container{
		display:none;
	}
	nav.desktop button{
		display:inline-block;
		width:140px;
		border-radius: 0;
	}
	nav.desktop button:hover{
		background:var(--color-secondary);
		color:#fff;
	}
	nav.primary-navigation{
		position: sticky;
		top:-1px;
		background:var(--color-light);
		display:grid;
		grid-template-columns: auto auto auto;
		grid-column-gap:0;
	}
	nav.mobile{
		display:none;
		position: fixed;
		top:0px;
		height:100vh;
		left:0px;
		z-index:2000;
		with:320px;
		overflow: auto;
		background:var(--color-primary);
	}
	nav.mobile.show{
		display:block;
	}
	nav.mobile ul{
		padding:0;
		width:100%;
		margin-top:2rem;
	}
	nav.mobile ul li{
		display:block;
		border-bottom:1px solid rgba(52, 88, 133, 1);
		padding:0;
		margin:0;
	}
	nav.mobile ul li a{
		padding:0.5rem;
		display:block;
	}
	nav.mobile ul li ul,
	nav.mobile ul li:hover ul{
		display:block;
		position: relative;
		margin:0;
		padding:0;
		top:0;
		left:0;
		width:100%;
	}
	nav.mobile ul li ul li a{
		padding-left:2rem;
		font-family:'Inter', sans-serif;
		font-size:80%;
	}
	nav.mobile ul li ul li:last-child{
		border:none;
	}
	nav.mobile ul li a{
		color:#fff;
	}
	nav.mobile form{
		margin-top:2rem;
		padding:0.5rem;
	}
	nav.mobile form input[type=submit]{
		border:1px solid #fff;
	}
	nav.mobile .menu-toggle{
		position: absolute;
		display:block;
		top:2.4rem;
		right:0.5rem;
		background:#fff;
		color:var(--color-primary);
		border-radius:50%;
		width:2rem;
		height:2rem;
		padding:0;
		text-align: center;
		font-weight:700;
	}
	nav.mobile .menu-toggle span{
		width:0px;
		height:0px;
		display:block;
		overflow:hidden;
	}
	img.nav_icon{
		display:block;
		border-radius:50%;
		margin:18px 1rem;
		height:24px;
		opacity:0;
		transition: opacity 500ms;
	}
	.primary-navigation.is-pinned img.nav_icon{
		opacity:1;
	}
}

@media screen and (max-width:540px){
	img.nav_icon{
		display:block;
		border-radius:50%;
		margin:12px 1rem;
		height:24px;
		opacity:0;
		transition: opacity 500ms;
	}
}

.site-info{
	text-align: center;
	font-size:var(--size-step-0);
	padding:2rem 0;
}

button,
a.button,
input[type=submit]{
	display:block;
	background:var(--color-primary);
	color:var(--color-light);
	padding:1rem 2rem;
	text-decoration: none;
	border:none;
	font-size:var(--size-step-0);
	font-family:'Inter';
	cursor: pointer;
	border-radius:3px;
}

button.secondary,
a.button.secondary,
input[type=submit].secondary{
	background:var(--color-secondary);
	color:#fff;
}

button:hover,
a.button:hover,
input[type=submit]:hover{
	background:var(--color-secondary);
}

button.secondary:hover,
a.button.secondary:hover,
input[type=submit].secondary:hover{
	background:var(--color-light);
	color:var(--color-primary);
}

.search-form{
	grid-column: 2;
	grid-row: 1;
	display:grid;
	grid-template-columns: auto auto;
	width:300px;
}

.search-form input[type=search]{
	height:100%;
	border:none;
	border-left:1px solid var(--color-primary);
	font-family:'Inter';
	padding:0 1rem;
	width:100%;
}

.search-form input[type=submit]{
	border-radius: 0;	
}

@media screen and (max-width:1220px){
	.search-form{
		grid-column: 3;
	}
}

@media screen and (max-width:540px){
	.search-form{
		width:auto;
	}
	.search-form input[type="search"]{
		width:140px;
	}
	nav button,
	nav input[type=submit]{
		padding: 0.7rem 1rem;
		width:auto;
	}
	nav.desktop button{
		width:100px;
	}
}

main{
	max-width:1440px;
	margin:0 auto;
	padding:0 2rem;
}

@media screen and (max-width:480px){
	main{
		padding:0 1rem;
	}
}

article{
	position: relative;
}

.post-thumbnail img,
img.wp-post-image{
	width:100%;
	aspect-ratio: 16 / 9;
	object-fit:cover;
	object-position: center;
	border-radius: 3px;
}

article.flow h2{
	margin-top:1rem;
}
/*
.articles article h2{
	font-size:var(--size-step-2);
} */

article .article-link{
	position: absolute;
	inset: 0;
}

article:has(.article-link:hover) h2,
article:has(.article-link:hover) h3,
article:has(.article-link:hover) span{
	color:var(--color-secondary);
}

article:has(.article-link:hover) span.advertorial{
	color:#fff;	
}

article .article-link span{
	display: block;
	width:0px;
	height:0px;
	overflow:hidden;
}

article .entry-meta{
	margin-bottom:1rem;
}

article figure{
	position: relative;
}

.category-heading{
	margin-bottom:2rem;
}

p,
ul,
ol{
	max-width:76ch;
	font-family:'Inter', sans-serif;
}

p.excerpt{
	margin-bottom:2rem;
}

ul{
	list-style-type: disc;
}

ol{
	list-style-type: decimal;
}

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

section.articles .card-grid{
	display:grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: auto auto;
	grid-column-gap:2rem;
	grid-row-gap: 4rem;
	margin-bottom:2rem;
}

section.articles header{
	grid-column: 1 / 4;
	margin:0;
}

section.articles header h2{
	margin:0;
}

section.articles.home header{
	display:none;
}

section.articles.home article:first-of-type{
	grid-column: 1 / 4;
	margin-bottom:4rem;
}

section.articles.home article:first-of-type h2{
	font-size:var(--size-step-4);	
}

.more.articles{
	margin-top:4rem;
	padding-top:2rem;
	border-top:1px solid var(--color-primary);
}

.more.articles header h2{
	font-size:var(--size-step-1);
}

@media screen and (max-width:480px){
	section.articles.home article h2 {
		font-size: var(--size-step-3);
	}
}

section.articles.has-events{
	display:grid;
	grid-column-gap:2rem;
	grid-template-columns: 2fr 1fr;
}

section.articles.has-events > section.articles{

}

section.events header{
	grid-column: 1 / 3;
}

p + section.events,
p + section.businesses{
	margin-top:1rem;
}

@media screen and (max-width:1000px){
	section.articles{
		grid-template-columns: 1fr 1fr;
	}
	section.articles header{
		grid-column: 1 / 3;
	}
	section.articles.home article:first-of-type,
	section.articles.features article:first-of-type{
		grid-column: 1 / 3;
	}
	section.articles.has-events{
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width:700px){
	section.articles{
		grid-template-columns: 1fr;
	}
	section.articles header{
		grid-column: 1;
	}
	section.articles.home article:first-of-type,
	section.articles.features article:first-of-type{
		grid-column: 1;
	}
	section.articles.has-events > section.articles{
		
	}
}

section.features{

}

article.post{
	margin: 0 auto;
}

article.post .entry-content{
	max-width:65ch;
	margin:0 auto;
}

article .post-thumbnail{
	margin:1rem 0;
}

section.articles header h2.section-heading{
	margin-top:4rem;
	margin-bottom:2rem;
}

footer.site-footer{
	background:var(--color-primary);
	margin-top:6rem;
	padding-top:2rem;
}

img.footer_icon{
	margin:0 auto;
	display:block;
	border-radius: 50%;
	width:48px;
	height:48px;
	margin-top:4rem;
}

img.the_anchor{
	width:320px;
	margin:2rem auto;
	display:block;
}

footer.site-footer p,
footer.site-footer ul,
footer.site-footer a,
footer.site-footer h2,
footer.site-footer h3{
	color:var(--color-light);
	max-width:100%;
	font-family:'Inter', sans-serif;
	font-weight:400;
	font-size:var(--size-step-0);
}

footer.site-footer h2,
footer.site-footer h3{
	font-weight:700;
	margin-bottom:1rem;	
}

footer .menus{
	max-width:1440px;
	margin:0 auto;
	padding-top:2rem;
	display:flex;
	justify-content:space-evenly;
}

footer .menus ul{
	padding:0;
	margin-bottom:2rem;
	list-style:none;
}

footer .site-info{
	max-width:1440px;
	margin:0 auto;
	padding:2rem;
	border-top:1px solid var(--color-light);
	margin-top:2rem;
}

footer a{
	text-decoration-color: #fff;
}

footer a:hover{
	text-decoration-color: var(--color-secondary); 
}

footer p.social{
	margin-bottom:2rem;
}

footer p.social a{
	margin-right:1rem;
}

footer p.social a:hover{
	color:var(--color-secondary);
}

@media screen and (max-width:1000px){
	footer .menus{
		display:block;
		padding:2rem;
		text-align: center;
	}
}

@media screen and (max-width:480px){
	footer.site-footer p,
	footer.site-footer a{
		font-size:0.8rem;
	}
}

button{
	border-radius:3px;
	cursor: pointer;
}

button:hover{
	background:var(--color-light);
	color:var(--color-primary);
}

footer a.button{
	background:var(--color-secondary);
	position:fixed;
	bottom:2rem;
	right:2rem;
	z-index:1000;
}

footer a.button:hover{
	background:var(--color-primary);
	color:var(--color-light);
}

.subscribe{
	margin-bottom:4rem;
}

.wp-block-column {
  
}

.subscribe .wp-block-column{
	border:1px solid var(--color-primary);
	padding:1rem;
	border-radius:9px;
	max-width:288px;
	display: flex;
	flex-direction: column;
}

.subscribe .wp-block-column p{
	font-size:80%;
	font-weight:700;
}

.subscribe .wp-block-column ul {
  list-style: none;
  margin-bottom:1rem;
  font-size:80%;
  padding:0;
}

.subscribe .wp-block-column ul li:before {
  content: '✓ ';
}

.subscribe button{
	width:288px;
	height:44px;
	line-height:44px;
	padding:0;
	border-radius:6px;
	font-size:16px;
	margin-top: auto;
}

@media screen and (max-width:680px){
	footer a.button{
		display: block;
		width:200px;
		right:auto;
		bottom:auto;
		position: relative;
		text-align: center;
		margin: 0 auto 2rem auto;	
	}
}

/* EVENTS & BUSINESSES */
main.events h1,
main.business-directory h1{
	grid-column: 1 / 3;
	margin-bottom:2rem;
}

main.events,
main.business-directory{
	display:grid;
	grid-template-columns: 2fr 1fr;
	grid-column-gap:2rem;
}

main.events .events{

}

main.events #events-list,
main.business-directory #businesses-list{
	display:grid;
	grid-template-columns: 1fr 1fr;
	grid-column-gap:2rem;
	grid-row-gap:1rem;
	margin-top:2rem;
}

.post-type-archive-announcement main.business-directory img.wp-post-image{

}

.post-type-archive-announcement main.business-directory .business-card__body,
.post-type-archive-business main.business-directory .business-card__body{
	margin-top:0;
}

.post-type-archive-announcement main.business-directory .business-card__body h2,
.post-type-archive-business main.business-directory .business-card__body h2{
	margin-top:0;
}

.post-type-archive-announcement .business:hover h2{
	color:var(--color-primary);
}

@media screen and (max-width:1000px){
	main.events h1,
	main.business-directory h1{
		grid-column: 1;
	}
	main.events,
	main.business-directory{
		grid-template-columns: 1fr;	
	}
	main.events .events,
	main.business-directory .businesses{
		margin-bottom:2rem;
	}
}

@media screen and (max-width:700px){
	main.events .events,
	main.business-directory .businesses{
		grid-template-columns: 1fr;	
	}
	main.events #events-list,
	main.business-directory #businesses-list{
		grid-template-columns: 1fr;	
	}
}

.event,
.business{
	display: grid;
	grid-template-rows: auto auto auto auto;
	grid-template-areas:
		"title"
		"excerpt"
		"tags"
		"meta";
	padding: 1.25rem;
	border: 1px solid;
	border-radius: 3px;
	margin-bottom:1.25rem;
}

.event h2,.business h2 { grid-area: title;   margin: 0; font-size:var(--size-step-2); margin-bottom:1rem; }
.event .event-date  { grid-area: date;    margin: 0; font-size:80%; }
.event .event-venue, .business .business-card__address{ grid-area: venue;   margin: 0; font-size:80%; }
.event .event-recurring { grid-area: venue;   margin: 0; font-size:80%; }
.event .event-excerpt { grid-area: excerpt; }
.event div,.business div{grid-row: 1 / 5;display:flex;flex-direction: column;justify-content:space-between;}
.event div div,.business div div {grid-area: meta; padding-top:1rem; }

/* Outer div and inner ul share the same area */
.event .event-tags  { grid-area: tags; }

.event .meta, .business .meta{border-top:1px solid var(--color-primary);margin-top:1rem;}

.event p,
.business p{
	display:flex;
	align-items: center;
}

.event p span,
.business p span{
	margin-right:0.3rem;
}

.event > p.event-date { grid-area: date; margin: 0; border-top:1px solid var(--color-primary); margin-top:1rem; padding-top:1rem; }

.event .event-link,
.business .business-card__more{
	position: absolute;
	inset: 0;
}

.event .event-link span,
.business .business-card__more span{
	display:block;
	width:0px;
	height:0px;
	overflow:hidden;
}

.event:hover h2,
.business:hover h2{
	color:var(--color-secondary);
}

.event.premium,
.business.premium{
	grid-column: 1 / 3;
	display:grid;
	grid-template-columns: 1fr 1fr;
	grid-column-gap:2rem;
}

.event.premium div.event-media__image,
.business.premium div.business-card__image{
	grid-column: 2;
	grid-row: 1 / 5;
	padding:0;
}

.event.premium div.event-media__image img,
.business.premium div.business-card__image img{
	object-fit:cover;
	aspect-ratio: 16 / 9;
	width:100%;
	height:auto;
}

.events.category-column .event.premium,
.businesses.category-column .business.premium{
	grid-template-columns: 1fr;
	grid-column: 1;
}
.events.category-column .event.premium div,
.businesses.category-column .business.premium div{
	grid-column: 1;
	grid-row:2;
}
.events.category-column .event.premium div.event-media__image,
.businesses.category-column .business.premium div.business-card__image{
	grid-column: 1;
	grid-row:1;
	margin-bottom:1rem;
}

@media screen and (max-width:700px){
	.event.premium,
	.business.premium{
		grid-template-columns: 1fr;
		grid-column: 1;
	}
	.event.premium div,
	.business.premium div{
		grid-column: 1;
		grid-row:2;
	}
	.event.premium div.event-media__image,
	.business.premium .business-card__image{
		grid-column: 1;
		grid-row:1;
		margin-bottom:1rem;
	}
	
}

@media screen and (max-width:640px){
	.event h2,
	.business h2{
	  font-size: var(--size-step-1);
	}
}

/* Tag list */
.event-tags ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

main.events .tags{
	grid-column: 2;
	position: relative;
}

main.events .tags .sticky{
	position: sticky;
	top:30px;
}

/* TAG CLOUD */
.event-tag-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.75rem;
	align-items: baseline;  /* keeps differently-sized tags on a shared baseline */
	margin-block-end: 2rem;
	margin-top:2rem;
}

.event-tag-cloud a {
	text-decoration: none;
	color: currentColor;
	line-height: 1;
	transition: opacity 0.15s;
}

.event-tag-cloud a:hover {
	color:var(--color-secondary);
}

.event-tag-cloud a.is-active {
	font-weight: bold;
	text-decoration: underline;
}

[data-tags][hidden] {
	display: none;
}

.npg-latest-gallery{
	position: relative;
}

.npg-latest-gallery a{
	position: absolute;
	inset: 0;
}

.npg-latest-gallery h2{
	margin-bottom:2rem;
}

.npg-latest-gallery:hover h2{
	color:var(--color-secondary);
}

.f-carousel__nav button{
	background:#fff;
}

.f-carousel__dots{
	display:none;
}

.f-carousel__dots li{
	opacity: 1;
}

.f-carousel__dot{
	color:var(--color-primary);
}

.f-carousel__dot:hover{
	color:var(--color-secondary);
}

.entry-meta{
	
}

.entry-meta img{
	width:1.4rem;
	height:1.4rem;
	border-radius: 50%;
	margin-bottom:-6px;
	margin-right:6px;
	display:inline-block;
}

.entry-meta .updated{
	display:none;
}

.entry-meta .author{
	text-transform: capitalize;
}

.npg-latest-gallery:hover img{
	opacity: 0.8;	
}

.npg-gallery__images{
	background:#fff;
	padding:2rem 0;
}

.npg-gallery__images figure{
	border:none;
}

article .npg-gallery__images img{
	aspect-ratio: auto;
	height: 70vh;
	object-fit: contain;
	margin:0 auto;
}

article .npg-gallery__images figcaption{
	display:none;
}

/* ---- Newspaper Adverts plugin ---- */
.npa-advert {
	position: relative;
	border: 1px solid #d8d8d8;
	border-radius: 3px;
	background: #f8f8f8;
	overflow: hidden;
	margin-bottom: 1.5em;
	font-size: 0.9em;
}
.npa-advert__link {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: opacity 0.15s;
}
.npa-advert__link:hover { opacity: 0.85; }
.npa-advert__image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit:cover;
	aspect-ratio: 16 / 9;
}
.npa-advert__text {
	padding: 10px 14px;
	line-height: 1.5;
	font-family: 'Inter', sans-serif;
}
.npa-advert__text{
	max-width:76ch;
}
.npa-advert__text p:last-child { margin-bottom: 0; }
.npa-advert__label {
	display: block;
	padding: 3px 8px;
	background: #ebebeb;
	border-top: 1px solid #d8d8d8;
	font-size: 0.75em;
	color: #888;
	text-align: right;
	letter-spacing: 0.03em;
	font-family: 'Inter', sans-serif;
}
.npa-adverts-injected,
.npa-adverts-shortcode {
	margin-bottom: 1.5em;
}

.ad-wide{
	margin-bottom:4rem;
}

.ad-wide .npa-advert__link{
	display:flex;
	align-items: center;
	
}

.ad-wide.grid{
	grid-column: 1 / 4;
}

.ad-wide .npa-advert__image img {
	width:320px;
}

#events-list .ad-wide,
#businesses-list .ad-wide{
	grid-column: 1 / 3;
	margin-bottom:0;
}

@media screen and (max-width:768px){
	.ad-wide .npa-advert__image img {
		width:100%;	
	}
	.ad-wide .npa-advert__link{
		display:block;
	}
}

@media screen and (max-width:700px){
	#events-list .ad-wide,
	#businesses-list .ad-wide{
		grid-column: 1;
	}
}

figure{
	
}

figure img{
	display:block;
}

.flow figcaption{
	font-size:80%;
	border-bottom:1px solid #eee;
	padding-bottom:1rem;
	margin-top:1rem;
}

.post-thumbnail figcaption{
	display:flex;
	justify-content:space-between;
	gap: 2rem;
}

.post-thumbnail figcaption a{
	border-left:1px solid var(--color-primary);
	padding: 0.5rem 0 0.5rem 1rem;
	padding-left:1rem;
}

figcaption span{
	padding: 0.5rem 0 0.5rem 0;
}

@media screen and (max-width:640px){
	figcaption {
	  font-size:80%;
	}
}

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

.mailing-list-wrapper{
	position: fixed;
	top:0px;
	left:0px;
	width:100%;
	height:100vh;
	background:rgba(29, 63, 105, 0.7);
	backdrop-filter: blur(10px);
	z-index:20000;
	display: flex;
	justify-content:center;
	align-items: center;
	box-sizing: border-box;
	display:none;
}

.mailing-list-wrapper button{
	position: absolute;
	top:2rem;
	right:2rem;
}
.mailing-list-wrapper iframe{
	margin:0 !important;
	border-radius:3px;
	overflow:hidden;
}
.mailing-list-wrapper iframe img{
	width:100% !important;
	height:auto !important;
}
.mailing-list-wrapper a.button{
	text-align: center;
	margin:0 auto;
	max-width:320px;
	margin-top:-20px;
	padding-left:0;
	padding-right:0;
}

/* Inputs, textareas and selects */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
	display: block;
	width: 100%;
	padding: 0.75rem 1rem;
	font-family: inherit;
	font-size: 1rem;
	color: #313131;
	background-color: #fff;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
	transition: border-color 0.2s ease;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: #313131;
}

.wpcf7 textarea {
	min-height: 160px;
	resize: vertical;
}

/* Labels */
.wpcf7 label {
	display: block;
	font-size: 0.9rem;
	font-weight: 600;
	margin-bottom: 0.4rem;
	color: #313131;
}

/* Spacing between fields */
.wpcf7 p {
	margin-bottom: 1.25rem;
}

/* Submit button */
.wpcf7 input[type="submit"] {
	display: inline-block;
	padding: 0.75rem 2rem;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 600;
	color: #fff;
	background-color: #313131;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.wpcf7 input[type="submit"]:hover {
	background-color: #555;
}

/* Validation messages */
.wpcf7 .wpcf7-not-valid-tip {
	display: block;
	font-size: 0.85rem;
	color: var(--color-secondary);
	margin-top: 0.35rem;
}

.wpcf7 form .wpcf7-response-output {
	margin: 1.5rem 0 1rem;
	padding: 0.75rem 1rem;
	font-size: var(--size-step-0);
	border-radius: 4px;
	border: 1px solid currentColor;
	max-width:76ch;
}

.wpcf7 .wpcf7-mail-sent-ok {
	color: var(--color-primary);
}

.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-validation-errors {
	color: var(--color-secondary);
}

.event-media {
	margin-bottom: 1.5rem;
}

.event-media--two-col {
	display: flex;
	gap: 1.5rem;
	align-items: stretch;
}

.event-media--two-col .event-media__image,
.event-media--two-col .event-media__map {
	flex: 1 1 50%;
	min-width: 0;
}

.event-media__image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
	aspect-ratio: auto;
}

#event-map {
	height: 350px;
	border-radius: 4px;
}

.event-media--two-col #event-map {
	height: 100%;
	min-height: 350px;
}

a.button.more-events{
	display: inline-block;
	width:auto;
}

@media ( max-width: 640px ) {
	.event-media--two-col {
		flex-direction: column;
	}

	.event-media--two-col #event-map {
		height: 350px;
	}
}

[hidden] {
	display: none !important;
}

.events header,
.events .search,
.businesses header,
.businesses .search{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 8px 16px;
	align-items: end;
	padding: 1rem;
	border: 1px solid var(--color-primary);
	border-radius: 6px;
	margin-bottom: 2rem;
	box-sizing: border-box;
}

.businesses.announcements header{
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.events .search,
.businesses .search{
	display:block;
}

.business .search{
	grid-column: 3 / 4;
}

.events header h2,
.events .search h2,
.businesses header h2,
.businesses .search h2 {
	grid-column: 1 / -1;
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
}

.events header label,
.events .search label,
.businesses header label,
.businesses .search label {
	display: block;
	font-size: 0.85rem;
	font-weight: 500;
	margin-bottom: 4px;
	color: #555;
}

.events .search input[type=text],
.businesses input[type=text]{
	width:100%;
	box-sizing: border-box;
	padding:7px;
	font-size:1rem;
	font-family:'Inter', sans-serif;
}

.events header select,
.businesses header select,
.events header input[type="date"] {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 1rem;
	box-sizing: border-box;
	background: #fff;
}

.events header select:focus,
.businesses header select:focus,
.events header input[type="date"]:focus {
	outline: 2px solid #0073aa;
	outline-offset: 1px;
	border-color: transparent;
}

.cards-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
	grid-column-gap: 1.5rem;
	margin-bottom:4rem;
}

.cards-grid article.flow {
	display: grid;
	grid-row: span 5;          /* figure, figcaption, h2, meta, excerpt */
	grid-template-rows: subgrid;
	align-content: start;
	margin-bottom:4rem;
}

@media screen and (max-width: 768px){
	.cards-grid {
		grid-template-columns: 1fr;	
	}
	.cards-grid article{
		margin-bottom:4rem;
	}
	.ad-wide.grid{
		grid-column: 1;
	}
}

.wp-block-gallery.has-nested-images figcaption{
	display:none;
}

.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before{
	backdrop-filter:none;
}

.wp-block-gallery.has-nested-images figure:hover figcaption{
	display:block;
	text-align: left;
}

#carousel img{
	height:auto;
	width:100%;
	aspect-ratio: 16 / 9;
	display:block;
	margin:0 auto;
	object-fit:contain;
}

.page-id-73 main,
.page-id-43 main,
.page-id-542 main,
.page-id-1747 main,
.page-id-1867 main,
main.narrow{
	max-width:768px;
}

.page-id-73 main figure,
.page-id-43 main figure{
	max-width:50%;
	height:auto;
}

#buzzsprout-player-small{
	margin-top:1rem;
}

.advertorial{
	position: absolute;
	top:1rem;
	right:1rem;
	background:var(--color-secondary);
	color:#fff;
	padding:0.5rem;
	text-transform: uppercase;
	font-size:80%;
}