/*
 Theme Name:   Foundry Fundraising
 Theme URI:    https://www.upsweptcreative.com/
 Description:  Theme for Upswept Creative, built as GeneratePress child theme
 Author:       Chynna Lew for Upswept Creative
 Author URI:   https://www.upsweptcreative.com
 Template:     generatepress
 Version:      1.0
*/

/* TABLE OF CONTENTS
* 0. FONTS AND COLORS
* 1. TYPOGRAPHY
* 2. ELEMENTS
-- 2.1 BUTTONS
-- 2.2 FULL WIDTH BUTTON
-- 2.3 BORDER BUTTON
-- 2.4 BORDER COLUMNS
-- 2.5 BORDER COLUMNS w/ BACKGROUND
-- 2.6 HALF WIDTH BUTTONS
-- 2.7 ICONS
* 3. NAVIGATION
* 4. HOMEPAGE
-- 4.1 HOME HERO
* 5. SINGLE POSTS AND PAGES
-- 5.1 INTERIOR PAGE HERO
-- 5.2 BLOG ARCHIVE
-- 5.3 SINGLE BLOG POST
* 6. FOOTER
*/

/* ---------------
0. FONTS AND COLORS
----------------- */
@import url('https://fonts.googleapis.com/css2?family=Albert+Sans:ital,wght@0,100..900;1,100..900&family=Jost:ital,wght@0,100..900;1,100..900&display=swap');

.jost-<uniquifier> {
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

.albert-sans-<uniquifier> {
  font-family: "Albert Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

:root {
    --white: #ffffff;
    --red: #CC2D2D;
    --lt-gray: #ECECEC;
    --dk-gray: #7E7E7E;
    --indigo: #467A86;
    --black: #000;
	--lt-black: #1E1E1E;
}

body {
    background-color: var(--white);
    color: var(--black);
    font-family: "Albert Sans", Arial, sans-serif;
	overflow-x: hidden;
}

.inside-article {
    background-color: transparent;
}

@media(max-width: 600px){
	h1{
		font-size: 2rem;
	}
	h2{
		font-size: 1.8rem;
	}
	h3{
		font-size: 1.6rem;
	}
	h4{
		font-size: 1.4rem;
	}
	h5, h6{
		font-size: 1.2rem;
	}
	p, li{
		font-size: 1rem;
	}
}
/* ---------------
1. TYPOGRAPHY
----------------- */
h1, h2, h3, h4, h5, h6, .main-navigation a{
	font-weight: 600;
	font-family: "Jost", sans-serif;
}

.subtext-title{
	color: var(--indigo);
  font-family: "Albert Sans", sans-serif;
	font-weight: 800;
}
/* ---------------
2. ELEMENTS
----------------- */
main#main.site-main{
	margin: 0px;
}
main#main.site-main > article > .inside-article{
	padding-bottom: 0px;
	padding-top: 0px;
}
.wp-block-group.alignfull{
	border-bottom: 2px var(--lt-black) solid;
}
.entry-content:not(:first-child), .entry-summary:not(:first-child), .page-content:not(:first-child){
	margin-top: 0px;
} 
.customize-partial-edit-shortcut button:after{
	content: '';
}
@media (max-width: 782px){
	.hide-stacked{
		display: none;
	}
}
/* ---------------
-- 2.1 BUTTONS
----------------- */
button, html input[type="button"], input[type="reset"], input[type="submit"], a.button, a.wp-block-button__link:not(.has-background), .form-submit input{
	background-color: transparent;
	color: var(--red);
	font-family: "Jost", sans-serif;
	font-weight: 600;
	font-size: 1.8rem;
	transition: color .5s;
}
.has-indigo-background-color button,  html .has-indigo-background-color input[type="button"], .has-indigo-background-color input[type="reset"], .has-indigo-background-color input[type="submit"], .has-indigo-background-color a.button, .has-indigo-background-color a.wp-block-button__link:not(.has-background){
	color: var(--white);
	}

.has-indigo-background-color  button:hover, html  .has-indigo-background-color  input[type="button"]:hover, .has-indigo-background-color  input[type="reset"]:hover, .has-indigo-background-color  input[type="submit"]:hover, .has-indigo-background-color  a.button:hover, .has-indigo-background-color  button:focus, html .has-indigo-background-color  input[type="button"]:focus, .has-indigo-background-color  input[type="reset"]:focus, .has-indigo-background-color  input[type="submit"]:focus, .has-indigo-background-color  a.button:focus,.has-indigo-background-color  a.wp-block-button__link:not(.has-background):active, .has-indigo-background-color a.wp-block-button__link:not(.has-background):focus, .has-indigo-background-color a.wp-block-button__link:not(.has-background):hover, .has-indigo-background-color .wc-block-components-button:hover{
	color: var(--white);
}
button::after, html input[type="button"]::after, input[type="reset"]::after, input[type="submit"]::after, a.button::after, a.wp-block-button__link::after, .form-submit input:after{
	content: " →";
	font-size: 2rem;
}
.block-editor button::after{
	content:"";
}
@media (max-width: 600px){
	button, html input[type="button"], input[type="reset"], input[type="submit"], a.button, a.wp-block-button__link:not(.has-background), button:after, html input[type="button"]:after, input[type="reset"]:after, input[type="submit"]:after, a.button:after, a.wp-block-button__link:not(.has-background):after, .form-submit input:after{
		font-size: 1.4rem
	}
}
/* ---------------
-- 2.2 FULL WIDTH BUTTON
----------------- */
.full-width-button .wp-block-group__inner-container{
	padding:20px
}

.full-width-button.has-indigo-background-color{
	background-image: linear-gradient(90deg, var(--red) 50%, var(--indigo) 50%);
	background-position: 100% 0%;
	background-size: 250% 100%;
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
}
.full-width-button.has-indigo-background-color:hover,
.full-width-button.has-white-background-color:hover {
	background-position: 0% 0%;
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
	
}
.full-width-button.has-white-background-color{
	background-image: linear-gradient(90deg, var(--red) 50%, var(--white) 50%);
	background-position: 100% 0%;
	background-size: 250% 100%;
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
}

.full-width-button.has-white-background-color:hover a.wp-block-button__link {
	color: var(--white) !important;
}
/* ---------------
-- 2.3 BORDER BUTTON
----------------- */
.border-button a.wp-block-button__link, .gform_button.button, .form-submit input{
	background-image: linear-gradient(90deg, var(--indigo) 50%, var(--red) 50%);
	background-position: 99% 0%;
	background-size: 251% 100%;
	border: 2px var(--lt-black) solid;
	border-radius: 0;
	color: var(--white);
	font-family: "Jost", sans-serif;
	font-weight: 600;
	font-size: 1.6rem;
	padding:0px 40px;
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
}
.border-button a.wp-block-button__link:hover, .gform_button.button:hover, .form-submit input:hover{
	background-position: 0% 0%;
	color: var(--white);
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
}

/* ---------------
-- 2.4 BORDER COLUMNS
----------------- */
.border-columns >.wp-block-group__inner-container{
	padding-bottom: 0px;
	padding-top: 0px;
}
.border-columns .wp-block-columns{
	margin-bottom: 0px;
}
.border-columns .wp-block-column:nth-child(1):has(img), .border-columns .wp-block-column:nth-child(2):has(img){
	border-left: 2px var(--lt-black) solid
}
.border-columns .wp-block-column:nth-child(2):has(p){
		border-left: 0px;
}
.border-columns .wp-block-column:nth-child(2):has(img), .border-columns .wp-block-column:nth-child(1):has(img){
	border-right: 2px var(--lt-black) solid
}
.border-columns .wp-block-column:nth-child(2):has(img) figure{
	height: 100%;
}
.border-columns .wp-block-column:nth-child(2):has(img) img{
	height: 100%;
	min-height: 500px;
	object-fit: cover;
}

@media (max-width: 781px){
	.wp-block-column:nth-child(2):has(img){
		border-top: 2px solid var(--lt-black);
	}
		.border-columns.no-gap-stacked .wp-block-columns{
			gap: 0px;
	}
	.border-columns .wp-block-column:has(.wp-block-button) + .wp-block-column:has(.wp-block-button){
		border-top: solid 2px var(--lt-black);
	}
}
/* ---------------
-- 2.5 BORDER COLUMNS w/ BACKGROUND
----------------- */
.border-columns-w-background .wp-block-column{
	border: solid 2px var(--lt-black);
	padding: 20px;
}
.border-columns-w-background .wp-block-column h3{
	margin-bottom: 10px;
}
/* ---------------
-- 2.6 HALF WIDTH BUTTONS
----------------- */
.half-width-buttons {
	background-color: var(--red);
	overflow: hidden;
	position: relative;
}

.half-width-buttons .wp-block-group__inner-container {
	position: relative;
	z-index: 1;
}

.half-width-buttons .wp-block-button a {
	padding: 30px 20px;
}


.half-width-buttons .wp-block-buttons:hover > .wp-block-button > .wp-block-button__link {
	color: var(--white);
}


.half-width-buttons.has-indigo-background-color::before,
.half-width-buttons.has-indigo-background-color::after {
	background-color: var(--indigo);
}

.half-width-buttons.has-white-background-color::before,
.half-width-buttons.has-white-background-color::after {
	background-color: var(--white);
}
.half-width-buttons:has(.column-one:hover)::before {
	background-color: var(--red);
	transform: scaleX(1);
}

.half-width-buttons:has(.column-two:hover)::after {
	background-color: var(--red);
	transform: scaleX(1);
}
@media (min-width: 782px){
.half-width-buttons::before {
	bottom: 0;
	content: '';
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	transform: scaleX(0);
	transform-origin: left;
	-webkit-transition: -webkit-transform 0.5s linear;
	-moz-transition: -moz-transform 0.5s linear;
	-o-transition: -o-transform 0.5s linear;
	transition: transform 0.5s linear;
	width: 50%;
	z-index: 0;
}

.half-width-buttons::after {
	bottom: 0;
	content: '';
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transform: scaleX(0);
	transform-origin: left;
	-webkit-transition: -webkit-transform 0.5s linear;
	-moz-transition: -moz-transform 0.5s linear;
	-o-transition: -o-transform 0.5s linear;
	transition: transform 0.5s linear;
	width: 50%;
	z-index: 0;
}

	.border-columns.half-width-buttons .wp-block-column:has(.wp-block-button) + .wp-block-column:has(.wp-block-button){
		border-left: 2px solid var(--lt-black);
	}
	
	.border-columns.half-width-buttons .wp-block-column:has(.wp-block-button) + .wp-block-column:has(.wp-block-button) > .wp-block-buttons {
		padding-left: 30px;
	}
	
	.border-columns.half-width-buttons .wp-block-columns{
		gap: 0px !important;
	}
}

@media (max-width: 781px){
.half-width-buttons::before {
	content: '';
	height: 50%;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	transform: scaleX(0);
	transform-origin: left;
	-webkit-transition: -webkit-transform 0.5s linear;
	-moz-transition: -moz-transform 0.5s linear;
	-o-transition: -o-transform 0.5s linear;
	transition: transform 0.5s linear;
	width: 100%;
	z-index: 0;
}

.half-width-buttons::after {
	content: '';
	height: 50%;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 50%;
	transform: scaleX(0);
	transform-origin: left;
	-webkit-transition: -webkit-transform 0.5s linear;
	-moz-transition: -moz-transform 0.5s linear;
	-o-transition: -o-transform 0.5s linear;
	transition: transform 0.5s linear;
	width: 100%;
	z-index: 0;
}

}
/* ---------------
 * 2.6 ICONS 
 * --------------- */
.wp-block-column:has(svg),
.wp-block-column:has(svg) svg {
	fill: #7e7e7e;
	max-height: 350px;
	display: block;
	margin: 0 auto;
}

/* ---------------
3. NAVIGATION
----------------- */
nav button::after, html  nav input[type="button"]::after, nav input[type="reset"]::after, nav input[type="submit"]::after, nav a.button::after, nav a.wp-block-button__link::after{
	content: '';
}
.mobile-menu-control-wrapper .menu-toggle, .mobile-menu-control-wrapper .menu-toggle:hover, .mobile-menu-control-wrapper .menu-toggle:focus, .has-inline-mobile-toggle #site-navigation.toggled {
	background-color: var(--white);
}
.site-header{
	background-color: var(--white);
	border-bottom: 2px var(--lt-black) solid;
	z-index: 10;
}

/* ---------------
4. HOMEPAGE
----------------- */

/* ---------------
-- 4.1 HOME HERO
----------------- */
/* .home-hero {
	background: url('https://foundry.upsweptcreative.com/wp-content/uploads/2026/09/bg-factory-interior-scaled-e1789058834265.jpg') top right no-repeat;
	background-size: contain;
}
.home-hero .wp-block-columns:has(img){
	min-height: 200px;
	position: relative;
}
.home-hero .wp-block-column:has(img) img{
	min-height: 100%;
	max-height: 520px;
	object-fit: contain;
	position: absolute;
	right: -35%;
	top: -50px;
}  */

.home-hero h1 {
	font-size: 3em;
}

@media (max-width: 782px){
	/* .home-hero {
		background-size: cover;
	}
	.home-hero .wp-block-columns,
	.home-hero .wp-block-paragraph {
		margin-bottom: 0;
	}
	.home-hero .wp-block-column.text{
		margin-top: 250px;
	}
	.home-hero .wp-block-column:has(img){
		border-color: transparent;
		height: 320px;
		position: absolute;
		top: -30px;
	}
	.home-hero .wp-block-column:has(img) img{
		height: 400px;
		left: 0px;
		min-height: 400px;
		width: fit-content;
	} */
	.home-hero .wp-block-spacer{
		height: 20px !important;
	}
}
/* ----------------------
5. SINGLE PAGES AND POSTS
----------------------- */

/* ----------------------
-- 5.1 INTERIOR PAGE HERO
----------------------- */
.entry-header{
	background-color: var(--indigo);
		border-bottom: 2px solid var(--lt-black);
	margin-left: calc(-100vw / 2 + 100% / 2);
    margin-right: calc(-100vw / 2 + 100% / 2);
    max-width: 100vw;
    width: auto;
}
.entry-header h1 {
		color: var(--white);

    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
		padding: 20px 0px 20px 40px;

}

/* ----------------------
-- 5.2 BLOG ARCHIVE
----------------------- */
.blog-grid > ul >li > .wp-block-group > .wp-block-group__inner-container{
	padding: 40px 0px;
}
.blog-grid > ul{
	gap: 0px 80px;
}
.blog article .entry-header h2, .archive article .entry-header h2{
	color: white;
	margin: auto;
	margin-bottom: 0px;
	max-width: 1200px;
	padding: 20px 40px;
}
.blog article .entry-meta, .archive article .entry-meta{
	display: none;
}
.blog article .entry-summary, .archive article .entry-summary{
	padding-top: 20px;
}
.blog .entry-header h2 a:hover, 
.archive .entry-header h2 a:hover{
	color: var(--white);
}

.blog .site-header, .archive .site-header{
	border-bottom: transparent !important;
}
.blog .entry-header, .archive .entry-header{
	background-image: linear-gradient(90deg, var(--red) 50%, var(--indigo) 50%);
	background-position: 99% 0%;
	background-size: 251% 100%;
	border-top: 2px solid var(--lt-black);
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
}

.blog .entry-header:hover,
.full-width-button.has-white-background-color:hover , 
.archive .entry-header:hover,
.full-width-button.has-white-background-color:hover {
	background-position: 0% 0%;
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
	
}

.wp-block-query li.wp-block-post .wp-block-group__inner-container {
	padding: 40px 20px;
}

.wp-block-query li.wp-block-post .wp-block-post-title {
	border-bottom: 2px solid #000;
	margin-bottom: 5px;
	padding-bottom: 5px;
}

.wp-block-query li.wp-block-post .wp-block-post-date {
	font-weight: bold;
	margin-bottom: 15px;
}

.wp-block-post-excerpt__more-link {
	font-family: "Jost", sans-serif;
	font-size: 1.1em;
	font-weight: bold;
	text-decoration: none;
	transition: all 0.5s ease;
}
.wp-block-post-excerpt__more-link::after {
	content: " →";
	font-size: 1.5em;
	transition: all 0.5s ease;
	vertical-align: middle;
}

.wp-block-post-excerpt__more-link:hover,
.wp-block-post-excerpt__more-link::after:hover {
	color: var(--indigo)
		transition: all 0.3s ease;
}

.wp-block-query-pagination {
	justify-content: center;
	margin-bottom: 20px;
	font-family: "Jost", sans-serif;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	border: 2px solid black;
	font-size: 1em;
	font-weight: bold;
	padding: 3px 10px;
	text-decoration: none !important;	
}
.wp-block-query-pagination a {
	background-image: linear-gradient(90deg, var(--indigo) 50%, var(--red) 50%);
	background-position: 100% 0%;
	background-size: 250% 100%;
	color: white;
	-webkit-transition: all 0.3s linear;
	-moz-transition: all 0.3s linear;
	-o-transition: all 0.3s linear;  
	transition: all 0.3s linear;
}

.wp-block-query-pagination a:hover {
	background-position: 0% 0%;
	color: white;
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
}


@media (max-width: 768px){
	.blog article .entry-header h2, .archive article .entry-header h2{
		padding: 20px 30px;
	}
}
@media (max-width: 600px){
	.blog article .entry-header h2, .archive article .entry-header h2{
		font-size: 1.5rem;
	}
}
/* ----------------------
-- 5.3 SINGLE BLOG POST
----------------------- */
.single-post .entry-header .entry-meta{
	display: none;
}
.single-post .entry-content{
	padding-top: 40px;
}
.single-post .inside-article{
	margin-bottom: 40px;
}
@media (max-width: 768px){
	.single-post .entry-header h1{
		padding: 20px 30px;
	}
}
@media (max-width: 600px){
	.single-post .entry-header h1{
		font-size: 1.8rem;
	}
}

.post-navigation {
	display: flex;
	font-family: "Jost", sans-serif;
	justify-content: space-between;
	line-height: 2.5em;
	padding: 10px 0;
}

.nav-previous,
.nav-next{	
	background-image: linear-gradient(90deg, var(--indigo) 50%, var(--red) 50%);
	background-position: 99% 0%;
	background-size: 251% 100%;
	border: 2px solid black;
	font-size: 1em;
	font-weight: bold;
	padding: 0px 20px;
	-webkit-transition: all 0.3s linear;
	-moz-transition: all 0.3s linear;
	-o-transition: all 0.3s linear;  
	transition: all 0.3s linear;
}

.nav-previous:hover,
.nav-next:hover {
	background-position: 0% 0%;
	color: white;
	-webkit-transition: all 0.5s linear;
	-moz-transition: all 0.5s linear;
	-o-transition: all 0.5s linear;  
	transition: all 0.5s linear;
}

.post-navigation a,
.post-navigation a:hover,
.post-navigation .gp-icon {
	color: white;
	fill: white;
	text-decoration: none !important;	
}

/* ---------------
6. FOOTER
----------------- */
.site-footer{
	background-color: var(--indigo);
	color: white;
}
.site-footer a{
	color: var(--white);
	transition: all .5s;
}
.site-footer a:hover{
	color: var(--red);
}