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  */
  .wp-block-navigation-item__content{line-height:1.1em;}
  .wp-block-navigation__submenu-container{padding:0.5em 0;}

/* 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;}
  
  .z10{position:relative;z-index:10;}
  .z20{position:relative;z-index:20;}
  .z30{position:relative;z-index:30;}
  
  .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)));}


