/*
Theme Name: Twenty Twenty-Five Child
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Description: Child theme for Twenty Twenty-Five
Author: Curtis Warcup
Author URI: hgea.org
Template: twentytwentyfive
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive-child
*/

:root {
	/* Colours */
	--hgea-color-dark-green: #00694c;
	--hgea-color-mid-green: #038369;
	--hgea-color-light-green: #c7e4de;
	--hgea-color-yellow: #ffde5a;
	--hgea-color-light-grey: #f8f8f8;
	--hgea-color-mid-grey: #f5f5f5;
	--hgea-color-new-yellow: #ffe993;
	--hgea-color-bg-tan: #f9f4ec;
	--hgea-color-bg-light-green: #f1f8f7;
	--hgea-color-black: #000000;

	/* Typography - Font Families */
	--hgea-font-montserrat: 'Montserrat', sans-serif;
	--hgea-font-league-spartan: 'League Spartan', sans-serif;

	/* Typography - Font Sizes */
	--hgea-font-size-small: 14px;
	--hgea-font-size-normal: 16px;
	--hgea-font-size-medium: 24px;
	--hgea-font-size-large: 30px;

	/* Typography - Weights */
	--hgea-font-weight-normal: 400;
	--hgea-font-weight-bold: 700;

	/* Layout widths */
	--hgea-max-width: 1440px;
	--hgea-content-width: 1220px;
	--hgea-nav-width: 1340px;

	/* Common Spacing */
	--hgea-space-padding-horizontal: 15px;
}

:root :where(.wp-block-group) {
	background-color: transparent;
}

* {
	box-sizing: border-box;
}

html,
body {
	overflow-x: hidden;
}

html {
	scroll-behavior: smooth;
}

/* Add scroll offset if you have a fixed header */
h2[id] {
	scroll-margin-top: 100px;
}

body.wp-child-theme-twentytwentyfive h1,
body.wp-child-theme-twentytwentyfive-child.page h1,
body.wp-child-theme-twentytwentyfive-child.archive h1,
body.wp-child-theme-twentytwentyfive h2,
body.wp-child-theme-twentytwentyfive-child.page h2,
body.wp-child-theme-twentytwentyfive-child.archive h2 {
	font-family: var(--hgea-font-league-spartan) !important;
	font-size: 50px !important;
	font-weight: 400 !important;
}


body.wp-child-theme-twentytwentyfive h3,
body.wp-child-theme-twentytwentyfive-child.page h3,
body.wp-child-theme-twentytwentyfive-child.archive h3 {
	font-family: var(--hgea-font-league-spartan) !important;
	font-size: 40px !important;
	font-weight: 400 !important;
}

body.wp-child-theme-twentytwentyfive h4,
body.wp-child-theme-twentytwentyfive-child.page h4,
body.wp-child-theme-twentytwentyfive-child.archive h4 {
	font-family: var(--hgea-font-league-spartan) !important;
}

:root :where(p) {
	font-family: var(--hgea-font-montserrat);
	font-size: 16px;
	font-weight: 400;
}

/* Flexbox layout to push footer to bottom */
.wp-site-blocks {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

/* Make main content area grow to fill available space */
.wp-site-blocks main {
	flex: 1;
	display: flex;
	flex-direction: column;
}

/* Ensure the main content container also grows */
.wp-site-blocks main .wp-block-post-content,
.wp-site-blocks main > div.wp-block-group {
	flex: 1;
	display: flex;
	flex-direction: column;
}

/* Make the content containers within main also grow if needed */
.wp-site-blocks main .wp-block-post-content>.wp-block-group,
.wp-site-blocks main > div.wp-block-group > div.wp-block-group {
	flex: 1;
}

/* Make sure paragraph links have the correct styling */
p a {
	color: var(--hgea-color-dark-green);
	font-family: 'Montserrat', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1;
	text-decoration: underline;
}

.full-width-container>* {
	max-width: 1220px;
	margin-left: auto !important;
	margin-right: auto !important;
	width: 100%;
}

.full-width-container.no-padding {
	padding: 0 !important;
}

/* Triangle and wave dividers */
.full-width-container.bg-repeater-image {
	position: relative;
}

/* Top triangular border */
.full-width-container.bg-repeater-image::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 30px;
	background-image: url('/wp-content/uploads/2025/06/triangle-divider.png');
	background-repeat: repeat-x;
	background-size: auto 46px;
	background-position: left bottom;
	z-index: 1;
	opacity: 0.1;
	overflow: hidden;
}

/* top triangle for backrounds that are lighter. The opacity is 1 so it is visible */
.full-width-container.bg-repeater-image.dark-bg::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 60px;
	background-image: url('/wp-content/uploads/2025/06/triangles-darker.png');
	background-repeat: repeat-x;
	background-size: auto 60px;
	background-position: left bottom;
	z-index: 1;
	opacity: 1;
	overflow: visible;
}

/* Bottom wave border */
.full-width-container.bg-repeater-image.wave-bg::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 20px;
	background-image: url('/wp-content/uploads/2025/06/wave-divider.png');
	background-repeat: repeat-x;
	background-size: auto 32px;
	background-position: left top;
	z-index: 1;
	opacity: 0.25;
	overflow: hidden;
}

/* Left side triangle pattern - using ::before pseudo-element */
.triangle-pattern-left {
	position: relative;
}

.triangle-pattern-left::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 46px;
	background-image: url('/wp-content/uploads/2025/06/triangles-darker-left.png');
	background-repeat: repeat-y;
	background-size: 46px auto;
	background-position: left top;
	transform-origin: left top;
	z-index: 1;
	opacity: 0.1;
}

/* Left side triangle pattern - using ::before pseudo-element */
.triangle-pattern-right {
	position: relative;
}

.triangle-pattern-right::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 46px;
	background-image: url('/wp-content/uploads/2025/06/triangles-darker-right.png');
	background-repeat: repeat-y;
	background-size: 46px auto;
	background-position: right top;
	transform-origin: right top;
	z-index: 1;
	opacity: 0.1;
}

/* End of triangle and wave dividers */

/* Flexbox Full Height Containers */
.flex-parent-full-height-container {
	min-height: 500px;
	/* or whatever height you want */
	display: flex;
	align-items: stretch;
	/* This ensures all child containers have equal height */
}

.flex-full-height-container {
	flex: 1;
	/* This makes each container grow equally to fill the available space */
	display: flex;
	flex-direction: column;
}

.flex-full-height-stack {
	flex: 1;
	/* This makes the stack grow to fill the remaining vertical space */
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	/* Centers content vertically within the stack */
}

/* Ensure images within flex containers don't grow unnecessarily */
.flex-full-height-container .wp-block-image {
	flex-shrink: 0;
	/* Prevents the image from shrinking */
}

/* buttons */
div.wp-block-button .fit-content-btn {
	width: fit-content !important;
}

.yellow-bordered-button {
	background-color: #ffffff;
	box-shadow: var(--wp--preset--shadow--natural);
	font-style: normal;
	font-weight: 600;
	font-size: var(--hgea-font-size-normal);
	line-height: 1;
	font-family: var(--hgea-font-montserrat);
	border: 1px solid var(--wp--preset--color--new-yellow);
	color: var(--hgea-color-dark-green) !important;
	display: inline-block;
	text-align: center;
	cursor: pointer;
	padding: 15px 30px;
	text-decoration: none;
}

a.yellow-bordered-button.hgea-login-button {
	padding-top: 15px;
	padding-bottom: 15px;
	color: var(--hgea-color-mid-green);
	text-decoration: none;
	
}


/* container children that have a parent of `.full-width-container-child.flex-gap`, the children have flex: 1 on each of them and a gap of 1.25rem */
.full-width-container-child.flex-gap>* {
	flex: 1;
}

.full-width-container-child.flex-gap {
	gap: 1.25rem !important;
}

/* Grid container for evenly spaced items with 1.25rem gap */
.even-spaced-flex-container {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem !important;
}

/* flex container to have the children always be 50% of the width of the parent
on mobile the children should be 100% of the width of the parent and be stacked on top of each other
*/
.flex-50 {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 0px;
}

.flex-50>* {
	flex: 1 1 50%;
}

.align-start {
	align-items: flex-start;
}

.icon-row-text-stack {
	margin-right: auto;
}

.full-width {
	width: 100%;
}

.full-width-image img,
.full-width-image,
.full-width-image .wp-block-uagb-image__figure {
	width: 100% !important;
	max-width: 100% !important;
}

.margin-r-auto {
	margin-right: auto !important;
}

.justify-between {
	justify-content: space-between;
}

.wp-block-button {
	min-width: 144px !important;
}



.max-w-830 {
	max-width: 830px !important;
}

.max-w-800 {
	max-width: 800px !important;
}

.apply-icon {
	min-width: 164px;
}

.newsletter-container {
	max-width: 500px
}

.width-auto {
	width: auto !important;
}

.has-child-max-width-no-margin > div {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100% !important;
}

.faq-anchors .uagb-faq-content a {
	color: var(--hgea-color-dark-green);
}

/* if the list item is the first one, remove the margin-top */
/* Only apply to first-level list items */
:root :where(main > .wp-block-list > li:first-child) {
	margin-top: 0;
}

.pp-podcast {
	width: 100%;
}

body :where(.wp-site-blocks *:focus) {
	outline-style: none;
}

.flex-start {
	align-items: flex-start;
}

/* single posts (news, eblasts) */
.single-post-prev-next-nav {
	align-items: flex-start;
}

.single-post-prev-next-nav a { 
	text-decoration: none;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
}

.single-post-prev-next-nav a:hover {
	text-decoration: underline;
}

nav.single-post-prev-next-nav {
	padding-left: 0px;
	padding-right: 0px;
}

nav.single-post-prev-next-nav > div.post-navigation-link-previous,
nav.single-post-prev-next-nav > div.post-navigation-link-next {
	max-width: 40%;
}

.single-post-prev-next-nav .is-arrow-chevron {
  font-weight: 600;
}

.object-fit-cover img {
	object-fit: cover;
}

.w-100 {
	width: 100%;
}

.wp-block-button a.wp-element-button {
	font-size: 16px;
	font-weight: 700 !important;
	min-width: 175px !important;
}

div.uagb-faq-layout-accordion .uagb-faq-content > p,
div.uagb-faq-layout-accordion .uagb-faq-content a,
div.uagb-faq-layout-accordion .uagb-faq-content strong {
	word-break: break-word;
	text-wrap: pretty;
}

p.call-to-action-p a {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
}

form.page-not-found button.wp-block-search__button {
	border-radius: 0 !important;
	border: 1px solid var(--wp--preset--color--new-yellow);
	background: white;
	background-color: white !important;
	padding: 10px 25px;
	text-transform: uppercase;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 16px !important;
	justify-content: center !important;
	align-items: center !important;
	box-shadow: var(--wp--preset--shadow--natural) !important;
	margin-left: 10px !important;
}

form.page-not-found .wp-block-search__inside-wrapper {
	padding-bottom: 25px;
}

form.page-not-found input.wp-block-search__input {
	border-radius: 0 !important;
	border-color: var(--wp--preset--color--new-yellow) !important;
	line-height: 1;
  font-family: var(--hgea-font-montserrat) !important;
  font-size: 17px !important;
}

/* on the three column image element, make the image grayscale
element is on the homepage, who we are, and other pages
*/
.three-col-image-element img {
	filter: grayscale(100%);
	width: 100%;
	max-height: 400px;
}

.news-filter-container {
	align-items: flex-start;
}

.news-filter-container .news-filter {
	max-width: 228px;
	height: auto;
}

.wp-block-list li:only-child {
	margin-top: 0;
}

.contracts-col-wrapper {
	display: flex;
	flex-direction: row;
	width: 100%;
	align-items: flex-start;
}

.contracts-col-wrapper .unit-document-item i,
.contracts-col-wrapper .unit-document-item a,
.contracts-col-wrapper .unit-documents-container {
	color: var(--hgea-color-dark-green) !important;
}

.contracts-col-wrapper h3 {
	margin-top: 0 !important;
}

/* the contracts-col-wrapper has two children,
.contracts-flex-row and .documents-filter
.contracts-flex-row should take up 78% of the width of the parent
.documents-filter should take up 22% of the width of the parent
*/
.contracts-flex-row {
	flex: 1 1 78% !important;
}

.documents-filter {
	flex: 1 1 22% !important;
}

/* timeline page */
.timeline-year .story-time p{
	font-family: var(--hgea-font-league-spartan) !important;
	font-size: 24px !important;
	font-weight: 400 !important;
	color: var(--hgea-color-dark-green) !important;
}

.cool-vertical-timeline-body {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 10px !important;
	padding-bottom: 10px !important;
}

.justify-space-between {
	justify-content: space-between;
}


/* Note: Header and navigation styles have been moved to assets/css/header-styles.css */
/* Note: Footer styles have been moved to assets/css/footer-styles.css */

/* tablet screen size starts at 992px and below */
@media (max-width: 992px) {

	/* Custom typography classes for tablet */
	.big-title {
		font-size: 26px;
		line-height: 1.2;
	}

	.title-text {
		font-size: 22px;
		line-height: 1.2;
	}

	/* Reduce padding on flex stacks for tablet */
	.flex-full-height-stack {
		padding: 20px 15px;
		/* Smaller padding for tablet */
	}

	/* Adjust parent container height for tablet */
	.flex-parent-full-height-container {
		min-height: 400px;
	}

	.mobile-flex-reverse {
		flex-direction: column-reverse;
	}

	.full-width-container.no-padding .full-width-container-child>* {
		padding: 0 !important;
	}

	.mobile-flex-reverse {
		flex-direction: column-reverse;
	}

	.mobile-no-padding-x {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.mobile-padding-bottom-10 {
		padding-bottom: 10px !important;
	}

	.mobile-padding-x-30 {
		padding-left: 30px !important;
		padding-right: 30px !important;
	}

	.full-width-container-child.flex-gap {
		flex-direction: column;
	}

	/* want the container to be column at a smaller breakpoint */
	.full-width-container-child.stack-on-mobile {
		flex-direction: row;
	}

	.apply-icon {
		min-width: 100px;
		width: 100px;
	}

	.wp-block-button {
		min-width: 146px !important;
	}

	.wp-block-button>a {
		padding: 10px 15px !important;
	}

	/* News filter container */
	.news-filter-container {
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: 10px;
	}

	.news-filter-container .news-filter {
		max-width: 100%;
		min-height: 0;
	}

	.news-filter-container p:has(button#apply-news-filter-button) {
		margin-bottom: 0;
	}

	.unit-docs-container .events-column-container {
		display: flex;
		flex-direction: column-reverse !important;
		align-items: flex-start !important;
		flex-wrap: nowrap !important;
	}

	/* .unit-docs-container .events-column-container has two children, the first one is the unit-document-categories and the second one is the unit-documents-search-form */
	.unit-docs-container .events-column-container > div,
	.unit-docs-container .events-column-container > div {
		flex: 1 1 100%;
		width: 100%;
	}

	.unit-docs-container .unit-document-categories {
		margin-top: 0 !important;
		height: unset !important;
	}

	.contracts-col-wrapper {
		flex-direction: column-reverse !important;
		align-items: flex-start !important;
	}
	
	/* the contracts-col-wrapper has two children,
	.contracts-flex-row and .documents-filter
	.contracts-flex-row should take up 78% of the width of the parent
	.documents-filter should take up 22% of the width of the parent
	*/
	.contracts-flex-row {
		flex: 1 1 100% !important;
	}
	
	.documents-filter {
		flex: 1 1 100% !important;
		width: 100% !important;
	}
}

/* Mobile styles for elements other than header/nav */
@media (max-width: 768px) {

	body.wp-child-theme-twentytwentyfive h1,
	body.wp-child-theme-twentytwentyfive-child.page h1,
	body.wp-child-theme-twentytwentyfive-child.archive h1,
	body.wp-child-theme-twentytwentyfive h2,
	body.wp-child-theme-twentytwentyfive-child.page h2,
	body.wp-child-theme-twentytwentyfive-child.archive h2 {
		font-family: var(--hgea-font-league-spartan) !important;
		font-size: 37px !important;
	}
	
	body.wp-child-theme-twentytwentyfive h3,
	body.wp-child-theme-twentytwentyfive-child.page h3,
	body.wp-child-theme-twentytwentyfive-child.archive h3 {
		font-family: var(--hgea-font-league-spartan) !important;
		font-size: 28px !important;
	}


	.flex-full-height-container .wp-block-image {
		width: 100%;
		max-height: 200px;
		overflow: hidden;
	}

	.flex-full-height-container .wp-block-image img {
		width: 100%;
		height: 250px;
		object-fit: cover;
		object-position: center;
	}

	/* Stack flex containers vertically on mobile */
	.flex-parent-full-height-container {
		flex-direction: column;
		min-height: auto;
	}

	.flex-full-height-container {
		flex: none;
		min-height: 300px;
	}

	.flex-full-height-stack {
		padding: 20px 10px;
	}

	.mobile-flex-gap-white-bg {
		background-color: #ffffff;
	}

	div.mobile-flex-column {
		flex-direction: column !important;
		gap: 10px !important;
		align-items: center !important;

	}

	.mobile-flex-column p,
	.mobile-flex-column h2,
	.mobile-flex-column h3 {
		text-align: center !important;
	}

	.even-spaced-flex-container {
		grid-template-columns: 1fr !important;
	}

	.flex-50>* {
		flex: 1 1 100%;
	}

	.icon-row-text-stack {
		margin-right: 0 !important;
		align-items: center !important;
	}

	.icon-row-text-stack.align-start,
	.icon-row-text-stack.align-start p,
	.icon-row-text-stack.align-start h3 {
		align-items: flex-start !important;
		text-align: left !important;
	}

	.icon-row-text-stack p,
	.icon-row-text-stack h3 {
		text-align: center !important;
		text-wrap: balance;
	}

	.newsletter-container {
		max-width: 100% !important;
	}

	.full-width-container-child.stack-on-mobile {
		flex-direction: column;
	}

	.full-width-container-child.column-reverse {
		flex-direction: column-reverse;
	}

	.full-width-container-child.column-reverse>* {
		flex: 1 1 100%;
	}

	.yellow-bordered-button {
		padding: 10px 15px !important;
	}

	.three-col-image-element img {
		max-height: 450px;
	}

	h2[id] {
		scroll-margin-top: 50px;
	}
}

/* PEOPLE Status Shortcode Styles */
.hgea-people-status-container .people-status-title {
	font-family: var(--hgea-font-league-spartan);
	margin: 0 0 15px 0;
	color: white;
	font-size: 27px;
	font-weight: 200;
}

.hgea-people-status-container .people-status-text {
	font-family: var(--hgea-font-montserrat);
	margin: 0;
	color: white;
	font-size: 16px;
	font-weight: 400;
}

.hgea-people-status-container .people-status-content {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 20px;
}

.hgea-people-status-container .people-status-content .people-status-text {
	flex: 1 1 auto;
}

.hgea-people-status-container .people-status-content .yellow-bordered-button {
	flex: 0 0 auto;
}

/* Contact HGEA Shortcode Styles */
.hgea-contact-hgea-container {
	background-color: var(--hgea-color-light-green);
	padding: 30px;
	border-radius: 8px;
	height: auto;
	box-sizing: border-box;
	align-self: stretch;
}

.hgea-contact-hgea-container .contact-hgea-title {
	font-family: var(--hgea-font-league-spartan);
	color: var(--hgea-color-dark-green);
	margin: 0 0 15px 0;
	font-size: 28px;
	font-weight: 400;
}

.hgea-contact-hgea-container .contact-office-name {
	font-family: var(--hgea-font-league-spartan);
	color: var(--hgea-color-dark-green);
	margin: 0 0 20px 0;
	font-size: 24px;
	font-weight: 400;
}

.hgea-contact-hgea-container .contact-phone,
.hgea-contact-hgea-container .contact-email {
	font-family: var(--hgea-font-montserrat);
	color: var(--hgea-color-dark-green);
	margin: 0 0 10px 0;
	font-size: 18px;
	font-weight: 400;
	display: flex;
	align-items: center;
}

.hgea-contact-hgea-container .contact-phone i,
.hgea-contact-hgea-container .contact-email i {
	margin-right: 10px;
	font-size: 18px;
	color: var(--hgea-color-dark-green);
	width: 20px;
}

.hgea-contact-hgea-container .contact-phone a,
.hgea-contact-hgea-container .contact-email a {
	color: var(--hgea-color-dark-green);
	text-decoration: none;
	font-family: var(--hgea-font-montserrat);
	font-size: 18px;
	font-weight: 400;
}

.hgea-contact-hgea-container .contact-phone a:hover,
.hgea-contact-hgea-container .contact-email a:hover {
	text-decoration: underline;
}

/* Worksite Stewards Shortcode Styles */
.hgea-worksite-stewards-container {
	background-color: var(--hgea-color-light-green);
	padding: 30px;
	border-radius: 8px;
	height: 100%;
	box-sizing: border-box;
	align-self: stretch;
}

.hgea-worksite-stewards-container .stewards-title {
	font-family: var(--hgea-font-league-spartan);
	color: var(--hgea-color-dark-green);
	margin: 0 0 20px 0;
	font-size: 28px;
	font-weight: 400;
}

.hgea-worksite-stewards-container .stewards-list {
	margin: 0 0 20px 0;
}

.hgea-worksite-stewards-container .steward-name {
	font-family: var(--hgea-font-league-spartan);
	color: var(--hgea-color-dark-green);
	margin: 0 0 10px 0;
	font-size: 24px;
	font-weight: 400;
}

.hgea-worksite-stewards-container .stewards-description,
.hgea-worksite-stewards-container .no-steward-description {
	font-family: var(--hgea-font-montserrat);
	color: var(--hgea-color-dark-green);
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
}

.hgea-worksite-stewards-container .steward-action {
	margin-top: 25px;
}

.hgea-worksite-stewards-container .login-required {
	font-family: var(--hgea-font-montserrat);
	color: var(--hgea-color-dark-green);
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	text-align: center;
}

/* mobile device styles */

@media (max-width: 768px) {
	.hgea-people-status-container .people-status-content {
		flex-direction: column;
		align-items: flex-start;
	}
}


/* Extra small mobile devices - 480px and below */
@media (max-width: 480px) {
	figure.wp-block-table td,
	figure.wp-block-table th {
		font-size: 12px !important;
	}
}