p:empty{display:none;}

p + p{margin-block-start: 1em !important;}

/* Bare Necessities */
	.wp-element-caption{font-size:var(--wp--preset--font-size--small);font-style:italic;padding:0.25em 1em;opacity:0.85;}

/* WP likes 8% padding on media/text. this fixes it */
	.wp-block-media-text{gap: var(--wp--preset--spacing--05) !important;} /* natural space */
	.wp-block-media-text.has-background{overflow:hidden;} /* so border radius clips image */
	.wp-block-media-text .wp-block-media-text__media[style]{overflow:hidden;} /* so border radius clips image */
	.wp-block-media-text.alignfull{gap:var(--wp--style--root--padding-right) !important;} /* wider space */
	.wp-block-media-text .wp-block-media-text__content{padding: 0 0;}

/* WP uses margin-block-start value for items directly inside body - but that omits content in media/text */
/* This is inconsistent and strange.... */
/* TODO consider reducing this margin for paragraphs followed by paragraphs... */
	.wp-block-media-text__content > *{margin-block-start: var(--wp--preset--spacing--05);margin-block-end: 0;}

/* media-text block content should have normal margins on mobile... */
	@media (max-width: 600px){
		.wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content{padding-right:var(--wp--style--root--padding-right);padding-left:var(--wp--style--root--padding-left);}
	}

.wp-block-columns:only-child{margin-bottom: 0 !important;} /*if alone within a container, no margin is needed*/

/* needed to zero out natural gap that WP adds before blocks. this isn't a block so the gap can only be fixed this way */
.wp-block-template-part{margin-block-start:0;}

/* WP Group */
  /* border radius should clip contents when applied */
  .wp-block-group[style*="border-radius"]{overflow:hidden;}
  .wp-block-group[style*="border-radius"]:has(nav){overflow:visible;}

/* WP Image */
	.wp-block-image:only-child{margin-bottom: 0 !important;} /*if alone within a container, no margin is needed*/
	.wp-block-image{max-width:100%;}
	.wp-block-image img{border-radius:var(--wp--custom--border-radius);}

/* Pagination - when page breaks are added to a page - and more. */
	.post-nav-links{font-size:var(--wp--preset--font-size--small);text-align:center;margin:var(--wp--preset--spacing--05) auto;}
	.post-page-numbers:first-child{margin-left:0.5em;}
	.post-page-numbers{padding:0.5em;}
	
	.wp-block-query-pagination{font-size:var(--wp--preset--font-size--small);justify-content:center;}
	.wp-block-query-pagination-numbers,
	.wp-block-query-pagination-previous,
	.wp-block-query-pagination-next{margin:0 !important;}
	.page-numbers{padding:0.5em;}

/* Query related items */
	.wp-block-post-terms a{text-decoration:none;} /*only way to remove underline here*/

/* Navigation  */
/* unsure about this.... if items wrap, ensure they are tighter and center the text so it looks less weird..*/
	.wp-block-navigation-item__content{line-height:1em;text-align:center;} 

/* Swiper styles */
  /* Required for some reason... swiper.js puts height:100% but this has the opposite effect */
  .swiper{--swiper-theme-color: var(--wp--preset--color--primary);--swiper-navigation-size:var(--wp--preset--font-size--medium);--swiper-pagination-progressbar-bg-color:rgba(0,0,0,0.1);}
  .swiper-wrapper{align-items:center;}
  .swiper-slide{height:auto !important;}
  
  .swiper-pagination{}
  .swiper-pagination-bullet{background-color:var(--wp--preset--color--contrast) !important;opacity:0.1 !important;}
  .swiper-pagination-bullet-active{opacity:0.4 !important;}
  
  /* if slide is JUST an image, let's center it and remove default margin */
  .swiper-slide.wp-block-image{text-align:center;margin-bottom:0;}

/* missing styles */
	.is-layout-flow{flex-wrap:wrap;}
	.is-vertical{flex-direction:column;}
	.is-horizontal{flex-direction:row;}
	.is-nowrap{flex-wrap:nowrap;}
	.is-content-justification-left{justify-content:flex-start;}
	.is-content-justification-center{justify-content:center;}
	.is-content-justification-right{justify-content:flex-end;}
	.is-content-justification-space-between{justify-content:space-between;}
	
	/* not missing per-se but needed*/
	.is-valign-top{align-items:flex-start;}
	.is-valign-center{align-items:center;}
	.is-valign-bottom{align-items:flex-end;}
	.is-valign-stretch{align-items:stretch;}
	
	.wp-block:not(.is-layout-grid):has(> .is-content-justification-left),
	.wp-block:not(.is-layout-grid):has(> .is-content-justification-center),
	.wp-block:not(.is-layout-grid):has(> .is-content-justification-right),
	.wp-block:not(.is-layout-grid):has(> .is-content-justification-space-between){display:block !important;}

/* for elements that dont have inherent width - when aligncenter they should shrink to content */
/* this breaks things... squeezes content forcing wrapping of elements that should be inline */
/* not sure why i did this... things seem to work better wihtout it */
/*.is-layout-constrained > .aligncenter{max-width: max-content;}
.editor-styles-wrapper .block-editor-block-list__layout.is-root-container > .aligncenter{max-width: min-content !important;}
*/

/* Global CSS Helpers */
	.opacity75{opacity:0.75;}
	.opacity50{opacity:0.5;}
	.opacity25{opacity:0.25;}
	
	.height100{height:100%;}
	
	.overflowhidden{overflow:hidden;}
	
	@media (max-width:600px){
	  .mobile-flex-wrap{flex-wrap:wrap !important;}
	  .mobile-justify-center,
	  .mobile-justify-center *{justify-content:center !important;}
	  
	  .mobile-alignnone{float:none !important;margin-inline-start:auto !important;margin-inline-end:auto !important;}
	}

/* Custom Styles */
	.wp-block-heading.is-style-gradient-mask{ -webkit-background-clip: text !important;color: transparent !important;}
	.wp-block-heading.is-style-gradient-mask.has-background{padding:0px;}
	.wp-block-heading.is-style-tighten{margin-bottom:1rem; margin-top:1rem;}
	
	.is-style-br-default img{border-radius:var(--wp--custom--border-radius);}
	.is-style-br-arched img{border-radius:0;border-top-left-radius:1024px;border-top-right-radius:1024px;}
	.is-style-rounded img,
	.is-style-br-rounded img{border-radius:1024px;}
	.is-style-br-leaf img{border-radius:0;border-top-left-radius:50%;border-bottom-right-radius:50%;}
	
	/* When using custom styles to make a page link appear like a button*/
		*[class*="is-style-btn-"] a.wp-block-navigation-item__content{padding: calc(0.667em + 2px) calc(1.333em + 2px) !important;border-radius: var(--wp--custom--border-radius);}
	
	/* Media/Text Content margin styles*/
		.wp-block-media-text.alignfull.is-style-normal-text-margin:not(.has-media-on-the-right) .wp-block-media-text__content{padding-right:calc(50vw - 0.5 * var(--wp--style--global--content-size) - var(--wp--style--root--padding-right));margin-right:var(--wp--style--root--padding-right);}
		.wp-block-media-text.alignfull.is-style-normal-text-margin.has-media-on-the-right .wp-block-media-text__content{padding-left:calc(50vw - 0.5 * var(--wp--style--global--content-size) - var(--wp--style--root--padding-left));margin-left:var(--wp--style--root--padding-left);}
  	
		.wp-block-media-text.alignfull.is-style-wide-text-margin:not(.has-media-on-the-right) .wp-block-media-text__content{padding-right:calc(50vw - 0.5 * var(--wp--style--global--wide-size) - var(--wp--style--root--padding-right));margin-right:var(--wp--style--root--padding-right);}
		.wp-block-media-text.alignfull.is-style-wide-text-margin.has-media-on-the-right .wp-block-media-text__content{padding-left:calc(50vw - 0.5 * var(--wp--style--global--wide-size) - var(--wp--style--root--padding-left));margin-left:var(--wp--style--root--padding-left);}
  	
		.wp-block-media-text.alignwide.is-style-normal-text-margin:not(.has-media-on-the-right) .wp-block-media-text__content{padding-right:calc(min(0.5 * var(--wp--style--global--wide-size) - 0.5 * var(--wp--style--global--content-size),  50vw - 0.5 * var(--wp--style--global--content-size) - var(--wp--style--root--padding-right)));}
		.wp-block-media-text.alignwide.is-style-normal-text-margin.has-media-on-the-right .wp-block-media-text__content{padding-left:calc(min(0.5 * var(--wp--style--global--wide-size) - 0.5 * var(--wp--style--global--content-size),  50vw - 0.5 * var(--wp--style--global--content-size) - var(--wp--style--root--padding-left)));}


