/*
Theme Name: GeneratePress Child
Template: generatepress
Author: WPSiteHelper
Author URI: https://www.wpsitehelper.com
Description: This is a child theme of the GeneratePress framework, customized for [client organization name] by WPSiteHelper.
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.3.0.1698087701
Updated: 2025-06-28 09:58:41

*/

/*
 BEM: (ex. ".footer__cta-button--outline")
 > block = stand-alone entity (ie section / footer)
 > element = inside block (ie headline / button)
 > modifier = changes style or behavior.
*/

/* Guidelines:
 * Limit nesting to 2 levels.
 * Separate content patterns from display patterns (structure from skin, or container from content).
 * Avoid location dependent styles (e.g. ".blog-post h2"); use classes instead, e.g. "h2.blog-post".
 * Grids control width, content controls height.
 * Separate spacing system from components. Components' spacing and margins can be modified with utility classes.
 * If block margins must be set, use margin-bottom (single-direction margin) only. :not(:last-child) can modify last children.
 * Color notations, use modern syntax (rgb(31 41 59 / 0.26)), not legacy syntax with commas, and do not use rgba() - allows optional alpha channel without changing syntax.
 * Write media queries in order from smallest to largest display.
*/

/*
1. ROOT SELECTORS
	vars: spacing, typography, colors, responsive/fluid scaling
2. THEME
	Typography (headings, lists)
	Colors
	Header
	Navigation
	Sidebar
	Footer
	Buttons (states & default structure)
	Overrides
3. CUSTOM CLASSES
	Pages
	Layouts (grids, block headers/footers)
	Components (button--styles)
4. UTILITIES
*/



/* 
|| 1. ROOT SELECTORS
======================================================
*/
:root {

	/* SPACING */
	--spacing-scale: 1.5;
	--space-m: clamp(1rem, 3.333vw + 0.333rem, 3rem); /* orig clamp(1rem, 4vw, 64px) */
	--grid-gap: 1.5rem;
	
	/* COMPONENTS */
	--btn-border-radius: 10px;
	--btn-border-width: 1px;
	--btn-padding-block: 0.75em;
	--btn-padding-inline: 1.5em;
	
	/* TYPOGRAPHY */
	--font-size: 16px;
	font-size: var(--font-size);
	
	/* preferred/slope calculations */
	--min-viewport-width: 320;
	--min-preferred-value: 1rem;
	--max-viewport-width: 1280;
	--max-preferred-value: 4rem;
	--calc-slope: calc( (var(--max-preferred-value) - var(--min-preferred-value)) / (var(--max-viewport-width) - var(--min-viewport-width)) );
	--calc-y-intercept: calc( var(--min-preferred-value) - (var(--calc-slope) * var(--min-viewport-width)) );
	--text-preferred-value: calc( var(--calc-y-intercept) + (var(--calc-slope) * 100) * 1vw );
	
	--text-scale: 1.414;
	--text-m: clamp(1rem, 1rem + 0.1vw, 4rem); */ /* suggested H1: 1.8rem, 7vw+1rem, 5rem */
	/*--text-m: clamp( var(--min-preferred-value), var(--text-preferred-value), var(--max-preferred-value) );*/
	--text-line-height: 1.5;
	--heading-line-height: 1.2;
	--heading-font-weight: 400;
	
	/* COLOR SYSTEM */
	
	
	/* SPACING scale custom properties */
	--space-xxs: calc(var(--space-xs) / var(--spacing-scale));
	--space-xs: calc(var(--space-s) / var(--spacing-scale));
	--space-s: calc(var(--space-m) / var(--spacing-scale));
	--space-l: calc(var(--space-m) * var(--spacing-scale));
	--space-xl: calc(var(--space-l) * var(--spacing-scale));
	--space-xxl: calc(var(--space-xl) * var(--spacing-scale));
	--space-3xl: calc(var(--space-xxl) * var(--spacing-scale));
	
	/* TYPOGRAPHY scale custom properties */
	--text-xxs: calc(var(--text-xs) / var(--text-scale));
	--text-xs: calc(var(--text-s) / var(--text-scale));
	--text-s: calc(var(--text-m) / var(--text-scale));
	--text-l: calc(var(--text-m) * var(--text-scale));
	--text-xl: calc(var(--text-l) * var(--text-scale));
	--text-xxl: calc(var(--text-xl) * var(--text-scale));
	--text-3xl: calc(var(--text-xxl) * var(--text-scale));
	
	--h6: clamp( 12px, var(--text-xs), 4rem );
	--h5: clamp( 12px, var(--text-s), 4rem );
	/* limit how small h5, h6 can get */
	--h4: var(--text-m);
	--h3: var(--text-l);
	--h2: var(--text-xl);
	--h1: var(--text-xxl);
}

@media (max-width: 1440px) {
	:root {
		--spacing-scale: 1.333;
		--text-scale: 1.250;
	}
}





/*
|| 2. THEME
=========================================
*/

/* Typography selectors and classes */
.text--xxs { font-size: var(--text-xxs); }
.text--xs { font-size: var(--text-xs); }
.text--s { font-size: var(--text-s); }
.text--m { font-size: var(--text-m); } /* body text */
.text--l { font-size: var(--text-l); }
.text--xl { font-size: var(--text-xl); }
.text--xxl { font-size: var(--text-xxl); }
.text--3xl { font-size: var(--text-3xl); }
h6, .h6 { font-size: var(--h6); }
h5, .h5 { font-size: var(--h5); }
h4, .h4 { font-size: var(--h4); }
h3, .h3 { font-size: var(--h3); }
h2, .h2 { font-size: var(--h2); }
h1, .h1 { font-size: var(--h1); }
:is(h1, h2, h3, h4, h5, h6) {
	line-height: var(--heading-line-height);
}
@media (min-width:100ch) {
	:is(h1, h2, h3, h4, h5, h6), .balance {
		text-wrap-style: balance;
	}
}
p, blockquote, li {
	text-wrap-style: pretty;
}
p:last-child:last-of-type {
	-webkit-margin-after: 0;
	margin-block-end: 0;
}

body, button, input, select, textarea {
	font-size: var(--text-m, inherit);
	line-height: var(--text-line-height);
	min-height: 0vw; /* safari fix */
}
/* short-page fix */
/*
body {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}
.site.grid-container {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	-webkit-box-flex: 1;
	-ms-flex-positive: 1;
	flex-grow: 1;
}
*/



/*
 * SIDEBARS
 * ----- ----- ----- -----
 */



/* 
 * FOOTER
 * 
 * *******************************/
/*.site-info .inside-site-info {
    flex-direction: column;
    display: flex;
    align-items: center;
    row-gap: 1em;
}
footer .copyright-bar {
    margin-inline: auto;
}
.footer-bar .widget_nav_menu>div>ul {
    justify-content: center;
}*/



/* 
 * GENERATEPRESS THEME OVERRIDES
 * Sets values that cannot be 
 * configured in Customizer.
 * (using variables instead of 
 * static values, for example)
 * **************************************************/
/* GP Overrides */
.site-header {
	padding-inline: var(--space-s);
}

/*.one-container .site-content {
    padding: var(--space-s);
}*/
/* GB Pattern Global Classes */
/*
	.gbp-button--primary
	.gbp-button--secondary

	.gbp-section
	.gbp-section__inner
	.gbp-section__tagline
	.gbp-section__headline
	.gbp-section__text

	.gbp-card
	.gbp-card__title
	.gbp-card__text
	.gbp-card__meta-text
	.gbp-card--border
*/



/*
|| 3. CUSTOM CLASSES
|| Pages, Layouts, Components
==============================================
*/


/* __ Grid Layouts __ */
.grid-layout {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
}


/* __Forms__ */

/* Avoid form input padding impeding text */
select.ff-el-form-control:not([size]):not([multiple]) {
	height: auto;
}
/* Success/Warning Messages */
.fluentform .ff-message-success {
	border-left: .5em solid var(--success-hex, green);
}
.fluentform .ff-message-warning {
	border-left: .5em solid var(--warning-hex, red);
}


/* __Buttons__ */
/* note: do NOT set a color in Global Colors for Content > Link
 * or it will overwrite button text color */
/*
[class*='button--'], .gb-button[class*='button--'] {
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -o-border-radius: 4px;
    border-radius: 4px;
    padding: 1em 1.5em;
}
*/

button, 
a.button, 
input[type=button], input[type=reset], input[type=submit], 
.fluentform .frm-fluent-form .ff-btn, 
[class*="btn--"], 
[class*='button--'], .gb-button[class*='button--'], 
[class*="gbp-button--"], 
[class*="gb-button--"] {
	width: fit-content;
	padding-block: var(--btn-padding-block);
	padding-inline: var(--btn-padding-inline);
}







/*
|| 4. UTILITY CLASSES
==============================================
*/

.transition {
	transition: all .25s ease-in-out;
}
.alignfull {
	/* ref: https://generatepress.com/forums/topic/styling-for-gutenberg-alignfull-and-alignwide/#post-535830 */
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	text-align: center;
}
.alignfull img {
	width: 100%;
}
.text-balance {
	text-wrap-style: balance;
}
.text-balance-none {
	text-wrap-style: unset;
}
.place-content-center {
	place-content: center;
}

/* content visibility, AKA HTML lazy loading.
 * See: https://kinsta.com/blog/css-tips-wordpress/#5-improve-performance-on-long-pages-with-contentvisibility */
.article-card {
  content-visibility: auto;
  contain-intrinsic-size: 400px;
}

.hide-me, .hidden {
	width: 1px;
    border: 0;
    overflow: hidden;
    position: absolute;
    height: 1px;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(0 0 99.9% 99.9%);
    clip-path: inset(0 0 99.9% 99.9%);
    padding: 0;
}

/* __Aspect Ratios__ */
[class^="aspect-ratio-"], 
[class*=" aspect-ratio-"] {
	object-fit: cover;
}
.aspect-ratio-16-9 { aspect-ratio: 16 / 9; }
.aspect-ratio-9-16 { aspect-ratio: 9 / 16; }
.aspect-ratio-4-3 { aspect-ratio: 4 / 3; }
.aspect-ratio-1-1 { aspect-ratio: 1 / 1; }


/* Next 2 classes make cards clickable, 
 * YET ACCESSIBLE FOR SCREEN-READERS,  
 * when applied to the link and its parent */
.position-relative:has(.make-parent-clickable) {
	position: relative;
}
a.make-parent-clickable::before, 
.make-parent-clickable a::before {
	content: '';
    position: absolute;
    inset: 0;
    z-index: 100;
}

/* __ Troubleshooting and Testing __ */
/* debugger for missing alt tags */
/* img:not([alt]) { border: 1rem solid red; } */






/* __ Accessibility __ */
:where(.wp-site-blocks *:focus) {
    outline-width: 2px;
    outline-style: solid;
}






/* IMPORTED FROM CUSTOMIZER 
 * --------------------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
		}
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
		}
	}

/* Full height fix */
html {
	height: 100%;
	min-height: 100%;
}
body {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	block-size: 100%;
}
.site.grid-container {
	-webkit-box-flex: 1;
	-ms-flex-positive: 1;
	flex-grow: 1;
}



.no-underline, 
.no-underline a {
	text-decoration: none;
}

p:last-child:last-of-type {
	margin-bottom: 0;
}



/* ================
 * BUTTONS
 * ================ */

/* Button default style */
button, 
a.button, 
input[type=button], 
input[type=reset], 
input[type=submit], 
.fluentform .frm-fluent-form .ff-btn, 
[class*='button--'], 
.gb-button[class*='button--'] {
	-moz-border-radius: var(--button-border-radius);
	-webkit-border-radius: var(--button-border-radius);
	border-radius: var(--button-border-radius);
	font-weight: 700;
	line-height: var(--heading-line-height);
}

/* Button on-hover style */
button:hover,
a.button:hover, 
input[type=button]:hover, 
input[type=reset]:hover, 
input[type=submit]:hover, 
.fluentform .frm-fluent-form .ff-btn:hover {
    transition: all 0.3s ease-out;
    color: var(--base-3);
}

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



/* -----------------------
 * Override GP/GB defaults
 * ----------------------- */
.one-container .site-content {
	padding: var(--space-m);
}
.alignfull {
	padding-inline: var(--space-m, 1.5rem);
}


/* home news stories buttons */
:where(.home, .archive) .read-more-container a.read-more.button {
    border: var(--btn-border-size) solid var(--primary);
    color: var(--btn-text-color);
    border-radius: var(--btn-radius);
    background-color: white;
}
.home .read-more-container a.read-more.button:hover {}

/* archives pagination */
.nav-links {
    text-align: center;
	flex-wrap: wrap;
}
.nav-links .page-numbers {
    padding: 1rem;
	min-inline-size: 0;
	border: 0;
}
.nav-links .page-numbers:where(.current, .gb-block-is-current) {
    background-color: var(--action);
    color: white;
}
.nav-links .page-numbers:hover:not(.current, .gb-block-is-current) {
    background-color: var(--secondary);
}

.footer-widgets {
	padding-inline: var(--space-m, 1.5rem);
}




/* ********************
 * Links
 * ********************/

/* external */
a[target="_blank"]::after {
    content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVR42qXKwQkAIAxDUUdxtO6/RBQkQZvSi8I/pL4BoGw/XPkh4XigPmsUgh0626AjRsgxHTkUThsG2T/sIlzdTsp52kSS1wAAAABJRU5ErkJggg==);
    margin: 0px 3px 0px 5px;
}


/* --------------------
 * Utility Classes
 * -------------------- */

.hide-me {
    width: 1px;
    border: 0;
    overflow: hidden;
    position: absolute;
    height: 1px;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(0 0 99.9% 99.9%);
    clip-path: inset(0 0 99.9% 99.9%);
    padding: 0;
}

.visually-hidden:not(:focus):not(:active) {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
	width: 1px;
}









/*
 || DEV Customization Page
*/
.palette-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	display: grid;
	padding: var(--space-m);
	row-gap: var(--grid-gap);
}
.palette-grid > div {
	aspect-ratio: 1/1;
	width: 100%;
}
.palette-grid > div:nth-of-type(odd) {
	margin-inline: 16% -16%;
}
.palette-grid > div:nth-of-type(even) {
	margin-inline: -16% 16%;
	margin-block: calc(33% + var(--grid-gap)) calc(0% - (33% + var(--grid-gap)));
}


