/*
Theme Name: Frost Child - Project Blue
Description: Child theme for Frost, protecting custom nav code, patterns, and theme.json overrides from being wiped out by Frost core updates.
Template: frost
Version: 1.0.0
Text Domain: pbupdate
*/

/*
IMPORTANT: The "Template:" line above must exactly match Frost's own
theme folder name on disk (case-sensitive), not the theme's display
name. Check wp-content/themes/ — if Frost is installed under a folder
named something other than "frost" (e.g. "frostwp"), update the
Template line to match exactly, or WordPress won't recognize this as
a valid child theme.
*/
/**
 * pbupdate — classic primary nav styling
 * Uses theme.json CSS custom properties so it stays in sync with the
 * rest of the site's colors/spacing if those presets are edited later.
 *
 * Breakpoint used throughout: 782px (matches WP admin's own mobile
 * breakpoint, so it's a familiar/consistent number to reuse).
 */


@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-Black.woff2') format('woff2'),
        url('assets/fonts/Outfit-Black.woff') format('woff'),
        url('assets/fonts/Outfit-Black.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-Bold.woff2') format('woff2'),
        url('assets/fonts/Outfit-Bold.woff') format('woff'),
        url('assets/fonts/Outfit-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-ExtraBold.woff2') format('woff2'),
        url('assets/fonts/Outfit-ExtraBold.woff') format('woff'),
        url('assets/fonts/Outfit-ExtraBold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-ExtraLight.woff2') format('woff2'),
        url('assets/fonts/Outfit-ExtraLight.woff') format('woff'),
        url('assets/fonts/Outfit-ExtraLight.ttf') format('truetype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-Light.woff2') format('woff2'),
        url('assets/fonts/Outfit-Light.woff') format('woff'),
        url('assets/fonts/Outfit-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-Medium.woff2') format('woff2'),
        url('assets/fonts/Outfit-Medium.woff') format('woff'),
        url('assets/fonts/Outfit-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-Regular.woff2') format('woff2'),
        url('assets/fonts/Outfit-Regular.woff') format('woff'),
        url('assets/fonts/Outfit-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-SemiBold.woff2') format('woff2'),
        url('assets/fonts/Outfit-SemiBold.woff') format('woff'),
        url('assets/fonts/Outfit-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('assets/fonts/Outfit-Thin.woff2') format('woff2'),
        url('assets/fonts/Outfit-Thin.woff') format('woff'),
        url('assets/fonts/Outfit-Thin.ttf') format('truetype');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}




/* ---------- Shared base list reset ---------- */
.pbupdate-primary-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pbupdate-primary-nav-list li {
	margin: 0;
}

.pbupdate-primary-nav-list a {
	color: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.pbupdate-primary-nav-list a:hover,
.pbupdate-primary-nav-list a:focus {
	color: var(--wp--preset--color--contrast);
}

/* ---------- Header (desktop) variant ---------- */
.pbupdate-primary-nav--header {
	display: flex;
}

.pbupdate-primary-nav-list--header {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--primary);
}

/* Hide desktop nav + social icons on small screens; show hamburger instead */
.pbupdate-nav-desktop {
	display: flex;
}

.pbupdate-nav-toggle {
	display: none;
}

@media (max-width: 900px) {
	.pbupdate-nav-desktop {
		display: none !important;
	}

	.pbupdate-nav-toggle {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 32px;
		height: 32px;
		padding: 0;
		border: none;
		background: none;
		cursor: pointer;
	}

	.pbupdate-nav-toggle-bar {
		display: block;
		width: 100%;
		height: 2px;
		background-color: var(--wp--preset--color--primary);
		border-radius: 1px;
	}
}

/* ---------- Off-canvas (mobile) variant ---------- */
.pbupdate-offcanvas-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease;
	z-index: 1000;
}

.pbupdate-offcanvas-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.pbupdate-offcanvas {
	position: fixed;
	top: 0;
	right: 0;
	height: 100vh;
	width: min(320px, 85vw);
	background-color: var(--wp--preset--color--base);
	box-shadow: -4px 0 16px rgba(0, 0, 0, 0.2);
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	transform: translateX(100%);
	transition: transform 0.3s ease;
	z-index: 1001;
	overflow-y: auto;
}

.pbupdate-offcanvas.is-open {
	transform: translateX(0);
}

.pbupdate-offcanvas-close {
	position: absolute;
	top: var(--wp--preset--spacing--20);
	right: var(--wp--preset--spacing--20);
	width: 32px;
	height: 32px;
	border: none;
	background: none;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}

.pbupdate-primary-nav-list--offcanvas {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--contrast);
}

body.pbupdate-offcanvas-open {
	overflow: hidden;
}

/* ---------- Footer variant ---------- */
.pbupdate-primary-nav-list--footer {
	columns: 2;
	column-gap: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--base);
	font-size: 0.875rem;
}

.pbupdate-primary-nav-list--footer li {
	break-inside: avoid;
	margin-bottom: var(--wp--preset--spacing--10);
}


/* ==========================================================================
   Project Blue — Navigation updates (v3)

   The header and footer both render from the same wp_nav_menu() call and
   share the base .pbupdate-primary-nav-list class, differentiated only by
   a modifier class (--header on the desktop nav, confirmed from markup).
   Layout/dropdown rules below are scoped to --header specifically so they
   don't disturb the footer's own (separate) grid layout. Link colors are
   left unscoped since both header and footer use the same active/default
   color treatment.

   Add this to: Appearance → Editor → Styles → Additional CSS
   (or enqueue as a stylesheet in your child theme's functions.php)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Link colors (applies everywhere this menu renders — header + footer)
   -------------------------------------------------------------------------- */
.pbupdate-primary-nav-list li.menu-item > a {
	color: #1e3fe0;
}

.pbupdate-primary-nav-list--footer li.menu-item > a {
	color:#ffffff;
}

.pbupdate-primary-nav-list li.current-menu-item > a,
.pbupdate-primary-nav-list li.current_page_item > a,
.pbupdate-primary-nav-list li.current-menu-ancestor > a,
.pbupdate-primary-nav-list li.current_page_ancestor > a,
.pbupdate-primary-nav-list li.current_page_parent > a {
	color: #ed7d4f !important;
}

/* --------------------------------------------------------------------------
   2. Hide submenus everywhere by default.
   This is what makes the footer "ignore dropdowns" — Staff (or any other
   child item) simply never renders, in the footer or anywhere else this
   menu is output, unless explicitly re-enabled below.
   -------------------------------------------------------------------------- */
footer.site-footer .pbupdate-primary-nav-list .sub-menu, .pbupdate-primary-nav-list--header.pbupdate-primary-nav-list .sub-menu {
	display: none !important;
}

/* ==========================================================================
   Everything below this point is scoped to the desktop HEADER nav only
   (.pbupdate-primary-nav-list--header) and does not affect the footer.
   ========================================================================== */

/* --------------------------------------------------------------------------
   3. Vertical separators + spacing reset between top-level header links

   Uses !important resets on li/a spacing so this isn't fighting whatever
   padding/margin the theme's own base nav CSS applies to individual items.
   -------------------------------------------------------------------------- */
.pbupdate-primary-nav-list--header {
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
}

.pbupdate-primary-nav-list--header > li.menu-item {
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.pbupdate-primary-nav-list--header > li.menu-item > a {
	display: inline-block;
	margin: 0 !important;
	padding: 0 var(--wp--preset--spacing--10, 1rem) !important;
	line-height: 1;
}

.pbupdate-primary-nav-list--header > li.menu-item:first-child > a {
	padding-left: 0 !important;
}

.pbupdate-primary-nav-list--header > li.menu-item:not(:last-child) {
	border-right: 1px solid rgba(30, 63, 224, 0.25);
}

/* --------------------------------------------------------------------------
   4. Dropdown submenu (header only)
   -------------------------------------------------------------------------- */
.pbupdate-primary-nav-list--header li.menu-item-has-children > a {
	/* optional: room for a caret icon if you add one */
	padding-right: 0.25rem;
}

.pbupdate-primary-nav-list--header .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 260px;
	margin: 0;
	padding: var(--wp--preset--spacing--30, 1.5rem);
	list-style: none;
	background-color: #D0E6EA;
	z-index: 100;
}

/* Reveal on hover, and on keyboard focus for accessibility.
   Also gives the parent trigger <li> the same background on hover. */
.pbupdate-primary-nav-list--header li.menu-item-has-children:hover,
.pbupdate-primary-nav-list--header li.menu-item-has-children:focus-within {
	background-color: #D0E6EA;
}

.pbupdate-primary-nav-list--header li.menu-item-has-children:hover > .sub-menu,
.pbupdate-primary-nav-list--header li.menu-item-has-children:focus-within > .sub-menu {
	display: block !important;
}

.pbupdate-primary-nav-list--header .sub-menu li {
	margin: 0 0 var(--wp--preset--spacing--20, 1rem) 0;
	border-right: none;
}

.pbupdate-primary-nav-list--header .sub-menu li:last-child {
	margin-bottom: 0;
}

.pbupdate-primary-nav-list--header .sub-menu li > a {
	display: block;
	color: #1e3fe0;
	font-weight: 700;
	text-transform: uppercase;
	font-size: var(--wp--preset--font-size--small, 0.9rem);
	line-height: 1.3;
	padding: 0;
	margin: 0;
}

.pbupdate-primary-nav-list--header .sub-menu li.current-menu-item > a,
.pbupdate-primary-nav-list--header .sub-menu li.current_page_item > a {
	color: #ed7d4f !important;
}



/* --------------------------------------------------------------------------
   5. Off-canvas menu
   If the off-canvas nav re-renders with class pbupdate-primary-nav-list--header
   too (same list, different wrapper), rules above already apply. If it uses
   a distinct modifier (e.g. --offcanvas), paste that markup and I'll add a
   matching scoped block.
   -------------------------------------------------------------------------- */


/* ---------- CUSTOM ---------- */

.listCheck {
list-style: none;
padding-left: 0px;
}

.listCheck li {
background: url('assets/images/check.png');
background-size: 30px;
background-repeat: no-repeat;
background-position: 0px center;
padding-left: 45px;
margin-bottom: 20px;
}

.subBox span.subHead {
    color: #ffffff;
    text-align: center;
    display: block;
    margin-top: 80px;
    font-family: 'TWK Lausanne 800';
    font-size: 1.2rem;
}

.subBox input[type=email] {
    max-width: 500px;
    margin: 20px auto;
    border-radius: 10px;
    background: #27aadf;
    border: 0px;
    display: inline-block;
}

.subBox div.cell:has(input[type=email]) {
text-align: right;
}

/* Standard syntax */
.subBox ::placeholder {
  color: #000000; /* Replace with your color */
  opacity: 1; /* Fix for Firefox default opacity */
}

/* Edge 12-18 */
.subBox ::-ms-input-placeholder {
  color: #000000;
}


#mc-embedded-subscribe {
border: solid 2px #ffffff;
}

#mc_embed_signup div.mce_inline_error {
    padding: 0px !important;
    color: #b20c0c !important;
    background: transparent !important;
    position: absolute;
    font-size: 1rem;
}

.mce_inline_error {
    border-radius: 10px;
}

.wp-block-group:has(> figure.wp-block-video) {
  min-height: 175px !important;
}


/* PROGRAM TABLE FIXES*/
/* Remove all default borders from the table and its cells */
.top-border-only, 
.top-border-only table, 
.top-border-only th, 
.top-border-only td {
    border: none !important;
    border-collapse: collapse;
}

/* Add a 1px solid black border to the top of row cells */
.top-border-only tr th,
.top-border-only tr td {
    border-top: 1px solid #000000 !important;
}


/*WORD BALLOON*/
/* Container positioning & overflow unlock */
.wp-block-group.wordBalloon {
  position: relative !important;
  overflow: visible !important; /* Allows the tail to sit outside the box */
}

/* CSS Triangle Tail (Bottom-Left Corner) */
.wp-block-group.wordBalloonR::after {
  content: "";
  position: absolute;
  bottom: -20px; /* Pulls triangle below the bottom border */
  left: 24px;   /* Positions triangle near the bottom-left */
  
  /* Creates a white downward triangle */
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 20px 0 0; /* Adjust size/shape here */
  border-color: #ffffff transparent transparent transparent; /* Match your Group background color */
}


/* CSS Triangle Tail (Bottom-Right Corner) */
.wp-block-group.wordBalloonL::after {
  content: "";
  position: absolute;
  bottom: -20px; /* Pulls triangle below the bottom border */
  right: 28px;   /* Positions triangle near the bottom-right */
  transform: scaleX(-1);
  
  /* Creates a white downward triangle */
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 20px 0 0; /* Adjust size/shape here */
  border-color: #ffffff transparent transparent transparent; /* Match your Group background color */
}


.copDrill {
    position: absolute;
    top: -50px;
    right: 0px;
    max-width: 200px;
}

.thrpReachCol {
position: relative;
}

.thrpReachIcon {
position: absolute;
top: -85px;
width: 100px;
left: 50%;
transform: translateX(-50%);
z-index: -1;
}



.square-hover-tile a {
  text-decoration: none;
  color: #ffffff;
}

.wp-block-group-is-layout-grid {
justify-items: center;
}


/* 1. Parent Columns Grid Reset */
.wp-block-columns:has(.square-hover-tile) {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 24px !important;
}

/* 2. Overwrite WordPress Column & Cover Heights */
.wp-block-column:has(.square-hover-tile),
.square-hover-tile.wp-block-cover {
  width: 200px !important;
  height: 200px !important;
  min-height: 200px !important; /* Overrides WP default 430px min-height */
  max-height: 200px !important;
  max-width: 200px !important;
  aspect-ratio: 1 / 1 !important;
  position: relative !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  flex: 0 0 200px !important;
}

/* 3. Contain Images & Prevent Cropping */
.square-hover-tile img.wp-block-cover__image-background {
  width: 80% !important; /* Leaves breathing room around logos */
  height: 80% !important;
  top: 10% !important;
  left: 10% !important;
  object-fit: contain !important; /* Prevents logo edges from cutting off */
  position: absolute !important;
  transition: transform 0.3s ease-in-out;
}

/* 4. Overlay & Centered Text Container */
.square-hover-tile .wp-block-cover__inner-container {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  height: 100% !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  text-align: center;
  z-index: 2;
}

/* 5. Solid Color Overlay Sizing */
.square-hover-tile .wp-block-cover__background {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  background-color: #0000FF !important;
  z-index: 1;
}

/* 6. Smooth Fade In/Out */
.square-hover-tile .wp-block-cover__background,
.square-hover-tile .wp-block-cover__inner-container {
  opacity: 0 !important;
  transition: opacity 0.3s ease-in-out !important;
}

.square-hover-tile:hover .wp-block-cover__background,
.square-hover-tile:hover .wp-block-cover__inner-container {
  opacity: 1 !important;
}

.square-hover-tile:hover img.wp-block-cover__image-background {
  transform: scale(1.05);
}


.widget-clipper {
    height: 445px;
    overflow: hidden;
    position: relative;
    margin-bottom: 50px;
    margin-top: 50px;
}


#boxzilla-564 {
background: url(/wp-content/themes/frost-child/assets/images/blue-grad.jpg) no-repeat 0 0;
border-radius: 32px;
padding-left: 20px;
padding-right: 20px;
}

#boxzilla-564 h3 {
color: #ffffff !important;	
font-family: Outfit, sans-serif !important;
text-align: center;	
}

#boxzilla-564 .boxzilla-close-icon {
color: #ffffff;
margin-right: 10px;
margin-top: 10px;
}

#boxzilla-401 .boxzilla-close-icon {
color: #ffffff;
margin-right: 10px;
margin-top: 10px;
background:#1e3fe0;
border-radius: 20px;
padding: 5px 8px;
opacity: 1;
}

.donateBox a img {
display: block;
margin: 30px auto 50px auto;
max-width: 250px;
}

#boxzilla-401 {
border-radius: 32px;
padding-left: 20px;
padding-right: 20px;
}

#boxzilla-401 h3 {
color: #1e3fe0;
}

.contactFooter a {
color: #ffffff;
}


/*Overlapped Icons*/

/*About Us*/
.boltIcon {
position: absolute;
top: 26px;
left: 10px;
}

.wallIcon {
position: absolute;
top: 26px;
left: 35px;
}

.evoBox {
position: relative;
}

.evoIcon {
position: absolute;
top: -15px;
left: -15px;
background: #ffffff;	
border-radius: 6px;
}

.evoIcon img {
padding: 5px;	
}
/**/

/*Impact*/
.workshopBox {
position: relative;
}

.workshopIcon {
position: absolute;
top: 20px;
left: 25px;
border-radius: 6px;
}

/**/


.quoteBox h5 img {
transform: skew(-16deg);
vertical-align: middle;
    padding-right: 5px;
}


.pbupdate-primary-nav ul li a {
cursor: pointer;
}

.pbupdate-primary-nav-list--header .sub-menu {
padding: 1rem;
}

.pbupdate-primary-nav-list--header li a:hover {
color: #ed7d4f;	
}

.pbupdate-primary-nav--offcanvas ul.sub-menu li {
list-style: none;
padding-bottom: 15px;
}

.pbupdate-primary-nav--offcanvas ul.sub-menu li:last-of-type {
padding-bottom: 0px;
}

.pbupdate-primary-nav--offcanvas ul.sub-menu li a {
font-size: 1rem;
color:#000000;
}
 
.pbupdate-primary-nav--offcanvas ul.sub-menu {
padding-left: 20px;
}
 

/*Blueprint Pop*/
#boxzilla-701 {
padding: 0px;
}

#mc_embed_signup_scroll .mc-field-group:first-of-type {
    padding-right: 20px;
}



#boxzilla-564 h3 {
padding: 0px 15px;
}

div.entry-content ul.wp-block-list li {
margin-bottom: 10px;
}

h3 mark {
background: transparent;
}


/*BLOG*/

.circlePosts a.wp-block-latest-posts__post-title {
font-family: "Outfit", sans-serif;
font-weight: 700;
}

/**/



/* ---------- MOBILE ---------- */

@media only screen and (max-width: 900px) {
	
.pbupdate-primary-nav-list--offcanvas li a {
	font-size: 1.125rem;
}
	
.pbupdate-primary-nav-list--offcanvas {
	gap: var(--wp--preset--spacing--20);
}	

.wp-block-group.wordBalloonL::after, .wp-block-group.wordBalloonR::after {
display: none;
}

.copDrillCol {
height: 0px
}

#mc-embedded-subscribe-form .mc-field-group {
text-align: center;
}

.footerContactBox p {
text-align: left !important;
}

.footerContactBox ul.wp-block-social-links {
justify-content: flex-start;
}

.copyrightBlurb p {
text-align: center !important;
}

	
}

@media only screen and (max-width: 781px) {
	
.internCols p {
	font-size: 1.125rem !important;
	text-align: center;
}

.impactData .wp-block-column:first-of-type {
    padding-right: 40% !important;
}

#mc_embed_signup_scroll .mc-field-group:first-of-type {
    padding-right: 0px;
}

#mc_embed_signup_scroll input[type=submit] {
    max-width: 40%;
}

#mc_embed_signup_scroll .wp-block-column:nth-of-type(2) {
text-align: center;
}

	
}


@media only screen and (max-width: 640px) {
	
.thrpLogo {
max-width: 150px;
}

}