  .c-hero {
  height: auto !important;
  text-align: center;
}

.c-hero__container {
  margin:20px;
  grid-column: 1/-1;
  grid-row: 1/-1;
  border: 2px solid #fff;
  position:relative;
  display: flex;
  flex-direction: column;
  align-items:center;
  
}

.c-blueprint {
  display: grid;
  grid-template-columns:1fr 1061px 1fr;
  grid-template-columns:1fr 600px 1fr;
  grid-template-columns:250px 1fr;
  grid-template-rows:1fr 50px;  
  height:100%;
  grid-column:1/-1;  
  position:relative;
  z-index:2;
}


.c-blueprint--media {
  margin: auto;  
  grid-column: 1/-1;
  padding: 2rem;
  z-index:2;
  text-align: center;
}

.c-blueprint--media img {
  max-width:550px;
}

.c-blueprint--headtext {
  align-self: center;
  margin-top:18px;
}

.c-blueprint--headtext h1 {
  font-size: 6rem;
  font-weight: 800;
  color: #fff;
  text-align: left;
  margin-bottom: 0;
  line-height:1;
}

.c-blueprint--headtext h1 span {
  color: rgba(0,36,61,.75);
  letter-spacing: 3px;
  position: relative;
  left: 3px;
  display: block;
  line-height:initial;
  font-size: 37.5%;
}

.c-hero.t-blueprint {
  max-width: 1280px;
  min-height: 750px;
}
/*
.t-blueprint:after {
      content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: radial-gradient(ellipse at center, rgba(34,72,108,0) 0%,rgba(34,72,108,.3) 70%,rgba(34,72,108,.3) 100%);    
    position: absolute;
    top: 0; left: 0;
  z-index: 0;
}
*/

.t-blueprint__blue {
background-color: rgb(38,73,108);
  background-size: 20px 20px;
  background-image: linear-gradient(to right, rgba(36,169,223,.3) 1px, transparent 1px), linear-gradient(to bottom, rgba(36,169,223,.3) 1px, transparent 1px);
  mix-blend-mode: multiply;
}

.t-blueprint__blue:after {  
	background-size: 120px 120px;
	background-image:
		linear-gradient(to right, rgba(36,169,223,.3) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(36,169,223,.3) 1px, transparent 1px);
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

.t-blueprint__blue::before {
  background-image: radial-gradient(circle,rgb(16, 121, 191) 30%, rgba(16, 121, 191, 0) 100%),linear-gradient(to right, rgba(68, 165, 204, 0.3) 1px, transparent 1px), linear-gradient(to bottom, rgba(94, 165, 193, 0.3) 1px, transparent 1px);
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  background-position-y: 60%;
}

.t-blueprint__blue__cta a.button {
	background: transparent !important;
  border: 2px solid #fff !important;
  margin-right: 1rem !important;
	font-size: 15px !important;
	color: #fff !important;
	font-weight:600;
}

.t-blueprint__blue__cta a.button:hover {
	background: rgba(0,36,61,.3) !important;
  border: 2px solid rgba(var(--white),1) !important;
}

.t-blueprint__blue__cta a.button--feature.button {
	background: rgb(var(--alabaster)) !important;
  margin-right: 0rem !important;
	border: 2px solid rgba(var(--white),.55) !important;
	color:rgb(var(--cobalt)) !important;
	font-weight:600;
}

.t-blueprint__blue__cta a.button--feature.button:hover {
	background: rgb(var(--paletrue)) !important;
  border-color: rgb(var(--paletrue)) !important;
}



/*#fullpagecontent::after*/
.t-blueprint__section-white:after{
 content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(to right, rgba(190, 190, 190, 0.3) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(190, 190, 190, 0.3) 1px, transparent 1px);
  background-size: 20px 20px;
	max-width: 1280px;
  margin: 0 auto;
}

/*#fullpagecontent::before {
	background-size: 120px 120px;
  background-image: linear-gradient(to right, rgba(36,169,223,.3) 1px, transparent 1px), linear-gradient(to bottom, rgba(36,169,223,.3) 1px, transparent 1px);
	content:"";
	width:100%;
	height:100%;
	position:absolute;
	top:0;
	left:0;
	z-index:0;
	max-width: 1280px;
  margin: 0 auto;
	inset:0;
}*/

.t-blueprint__section-white:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;

background-image:
  linear-gradient(to bottom, rgba(255,255,255,0) 0rem, rgba(255,255,255,1) 4rem, rgba(255,255,255,1) calc(100% - 4rem), rgba(255,255,255,0) 100%),
  radial-gradient(circle at 25% 10%, rgba(255,255,255,0.3) 0%, transparent 80%),
  radial-gradient(circle at 80% 95%, rgba(255,255,255,0.3) 0%, transparent 80%);
background-blend-mode: lighten;
}

.t-blueprint__section-white .grid-container {
	z-index:2;
	position:relative;
}

.c-blueprint--ur {  
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  font-family: "Saira Extra Condensed", sans-serif;
  font-size: 27px;
  position: absolute;
  right:0;
  color:#fff;  
  z-index:2;
  display:flex;
}

.c-blueprint--paw {
  border-left:2px solid #fff;
  padding: .5rem;
  display: flex;
  align-items: center;
}

.c-blueprint--teaser {  
  padding: .5rem;
}

.c-blueprint--bl {
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  font-family: "Saira Extra Condensed", sans-serif;
  font-size: 20px;
  position: absolute;
  left:0;
  bottom:0;
  color:#fff;  
  display:flex;
  z-index:2;  
}

.c-blueprint--bl>div {
    padding: 0 .5rem;
}

.c-blueprint--binumber {
  border-left:2px solid #fff;
  display: flex;
  align-items:center;
  font-size:30px;
  font-weight:600;
  letter-spacing:1px;
}

.c-blueprint--bilogo {
  display: flex;
  align-items:center;

}

.c-blueprint--bilogo img {
  width: 88px;
  height: auto;
}

.c-blueprint--slogan {
  display: flex;
  flex-direction: column;
  text-align:left;
  border-left: 2px solid #fff;
  padding: 0 !important;
  line-height:1.2;
}

.c-blueprint--slogan>div {
  padding: 0 .5rem;
}

.c-blueprint--slogan-top {
  border-bottom: 2px solid #fff;
}

@media only screen and (max-width: 63.99875em) {
  .c-blueprint {
    grid-template-columns:1fr;
    grid-template-rows:auto auto 100px;
    row-gap: 1rem;
   
  }
  .c-blueprint--media {
    grid-row: 1/-3;
    grid-column: 1/-1;
    padding: 0;
    margin-top: 3.5rem;
    text-align: center;
  }
  .c-blueprint--media img {
    margin: 0 auto;
    width:100%;
    max-width:54vw;
  }
   .c-blueprint--headtext {
     grid-row: 2/-2;
     grid-column: 1/-1;
     margin-top: 0;
  }
  
  .c-blueprint--headtext h1 {
    text-align: center;
    font-size: 13vw;
  }
  .c-blueprint--headtext h1 span {
    font-size: 28.87%;
  }
  
    .c-blueprint--bl {
    left: 0;
    right: 0;
    width: 100%;
    border-right: none; /* remove the right border */
    justify-content: space-between; /* optional: space out contents */
  }
  .c-blueprint--bilogo img {
    width: 60px;
  }
  .c-blueprint--binumber {
    font-size: 22px;
  }

  .c-blueprint--slogan {
    flex: 1;
    font-size:16px;
  }

  .c-blueprint--slogan>div {
    padding: 0 .5rem; /* remove internal horizontal padding */
  }

  .c-blueprint--slogan-top {
    border-bottom: 2px solid #fff;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
  
  .c-blueprint--slogan-top {
    padding: 0 .5rem;
  }
	
	.c-hero.t-blueprint {
  min-height:revert;
}
  section.slabs h2 {
    font-size:45px;
  }
  #give::after {
    left:0 !important;
  }
	.center-small {
  text-align: center;
}

}

.t-bluepaper {
  background: rgb(38,73,108);
  mix-blend-mode: multiply;
  padding: 8rem 2rem;
	display: flex;
	height: 100%;
}

.t-bluepaper::after {
  background-image: radial-gradient(circle,rgb(16, 121, 191) 30%, rgba(16, 121, 191, 0) 100%);
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  z-index: 0;
  padding: 0 2rem;
  top: 0;
  left: 0;
}

.t-bluepaper__text {
  z-index: 1;
}

.t-bluepaper h2 {
  color: #fff;
}

.t-bluepaper p {
  color: rgb(var(--alabaster));
}
:root {
  --accent: #0b79bf;
}

/* Paragraph baseline */
.num-bullet {
  line-height: 1.5;
  font-size: 1.5rem !important;
  color: #222;
}

.num-bullet a {
  border-bottom-color: transparent;
}
.num-bullet a:hover {
  border-bottom-color: rgb(var(--trueblue));
}

/* Float the drop cap cluster (number + dash) */
.dropcap {
  float: left;
  position: relative;
  /* spacing around the big number */
  margin: 0.1rem 2.3rem 0 0; 
  /* make its height defined by the big number inside */
  display: inline-block;
}

/* The big number */
.dropnum {
  display: inline-block;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700;
  font-size: 7.5rem;
  line-height: 0.85;         /* keeps glyph tight vertically */
  color: #fff;
  /* Stroke (WebKit/Blink). Firefox will just show filled white. */
  -webkit-text-stroke: 5px var(--accent);
  paint-order: stroke fill;
  position: relative;
  text-align: center;
}

/* Vertical dashed guide matching the number's height */
.dash {
  position: absolute;
  top: 8px;
  bottom: 7px;                 /* stretch to the dropnum's box height */
  left: 100%;
  margin-left: 0.8rem;       /* gap between number and line */
  width: 0;                  /* we’ll use border-right for the dash */
  border-right: 2px dashed #818285;
}

/* Perpendicular caps (T-ends) */
.dash::before,
.dash::after {
  content: "";
  position: absolute;
  left: -5px;                /* centers across the dashed line */
  width: 12px;               /* cap length */
  height: 2px;               /* cap thickness */
  background: #818285;
}
.dash::before { top: 0; }
.dash::after  { bottom: 0; }

/* First word styling; stays on the baseline */
.lead-word {
  color: var(--accent);
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 600;
  font-size: 110%;
  line-height: inherit;      /* ensures it matches the paragraph’s line-height */
}

/* Instead of <br>, start the rest on a new line without extra vertical gaps */
.rest {
  display: block;
  margin-top: 0;             /* keep the break tight */
}

/* Clear float if this paragraph is followed by other blocks */
.num-bullet::after {
  content: "";
  display: table;
  clear: both;
}

/* Optional: a lightweight stroke fallback for Firefox via text-shadow (approximate) */
@supports not (-webkit-text-stroke: 1px black) {
  .dropnum {
    /* crude outline approximation; adjust as desired */
    text-shadow:
      1px 0   0 var(--accent), -1px 0   0 var(--accent),
      0   1px 0 var(--accent),  0  -1px 0 var(--accent),
      1px 1px 0 var(--accent),  1px -1px 0 var(--accent),
     -1px 1px 0 var(--accent), -1px -1px 0 var(--accent);
  }
}


/* ===== Dimension Line ===== */
.c-dim {
  /* Tweakables */
  --dim-color: #818285;  
  --line-thickness: 2px;      /* horizontal line & cap thickness */
  --cap-height: 100%;         /* full-height caps; set to e.g. 70% for ticks */
  --arrow-length: 12px;       /* arrow depth along the line */
  --arrow-height: 7px;        /* half-height of arrow (total = 2x) */
  --dim-height: 40px;         /* overall component height */

  position: relative;
  inline-size: 100%;
  block-size: var(--dim-height);
  color: #1e1e1e;

  /* Horizontal line + left/right caps */
  background:
    /* horizontal line */
    linear-gradient(var(--dim-color), var(--dim-color)) center / 100% var(--line-thickness) no-repeat,
    /* left cap */
    linear-gradient(var(--dim-color), var(--dim-color)) left  center / var(--line-thickness) var(--cap-height) no-repeat,
    /* right cap */
    linear-gradient(var(--dim-color), var(--dim-color)) right center / var(--line-thickness) var(--cap-height) no-repeat;
}

/* Outward-pointing arrowheads that TOUCH the caps */
.c-dim::before,
.c-dim::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  transform: translateY(-50%);
  inline-size: 0;
  block-size: 0;
  border-style: solid;
}

/* Left arrow -> points LEFT; tip sits at inner edge of left cap */
.c-dim::before {
  inset-inline-start: var(--line-thickness);
  border-width: var(--arrow-height) var(--arrow-length) var(--arrow-height) 0;
  border-color: transparent var(--dim-color) transparent transparent;
}

/* Right arrow -> points RIGHT; tip sits at inner edge of right cap */
.c-dim::after {
  inset-inline-end: var(--line-thickness);
  border-width: var(--arrow-height) 0 var(--arrow-height) var(--arrow-length);
  border-color: transparent transparent transparent var(--dim-color);
}

/* Centered label */
.c-dim__label {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
	font-size:1.25rem;
	font-family: "montserrat", sans-serif;
  
  white-space: nowrap;
  pointer-events: none;
  background: rgb(var(--alabaster)); 
  padding: 0 .25rem;
  color: #818285;
	font-weight:500;
  
}

/* Optional theme tweaks (example)
.c-dim { color: #133e7c; }           /* blueprinty blue */
/*.c-dim { --line-thickness: 3px; }   /* thicker line/caps */
/*.c-dim { --arrow-length: 14px; --arrow-height: 8px; } /* larger arrows */



/*animations*/
.a-fadeup {
	opacity: 0;
    transform: translateY(50px);
	
    transition: transform 0.8s ease-out, opacity 0.8s ease-out;
    transition-delay: 0.4s;
}

.scroll-animation {
    opacity: 1;
    transform: translateY(0);
}

.a-fadeup--slow {
  transition-delay: 1.2s; 
}






.slabs .cell{
  position:relative;
}

.pullquote {
  text-align: center;
  color: rgb(var(--midgrey));
  text-transform: uppercase;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  /*! font-style: italic; */
}
.pullquote span {
  font-size: 8rem;
  font-family: Serif;
  color: rgb(var(--trueblue));
}

.pullquote p {
  font-family: "montserrat";
  font-size: 1.25rem !important;
}

.pull-by {
	font-style:italic;
	text-transform:none;
}

.opps li {
	margin-bottom: 2rem;
	font-size:18px;
}

.opps h4 {
color: rgb(var(--deepcobalt));
  margin-bottom: 0;
  line-height: 1.2;
  font-size: 1.5rem;
	font-size:1.3rem;
}



#page-h1, #breadcrumbs-container-lg, #top-banner-sm, #bc-container-sm {
				display:none;
			}

.cell-centered {
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
}

.cell-end {
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: end;
}

/*.cell-end p:last-child {
  margin-bottom:0;
}*/


#fullpagecontent .slabs .cell p {
  font-size: 1.25rem;
}


.c-imggrid {
  /* Pull your existing grid vars if you have them, or set here */
  --grid-size: 20px;
  --grid-line: 1px;
  --grid-color: rgba(255,255,255,.25);
  --band: 4rem;   /* solid band height at top/bottom */
  --fade: 2rem;   /* fade depth after the band */

  position: relative;
  
}

/* The image defines the paint area */
.c-imggrid > img {
  display: block;
  width: 100%;
  height: auto;           /* or set a fixed height + object-fit if needed */
  object-fit: cover;      /* optional */
  border-radius: 0;       /* keep if you round corners; the overlay follows */
}

/* The grid overlay lives ONLY over the image box */
.c-imggrid::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit; /* match rounded corners if the image has them */

  /* Grid pattern (same dimensions as your site grid) */
  background:
    linear-gradient(90deg, var(--grid-color) var(--grid-line), transparent 0) 0 0 / var(--grid-size) var(--grid-size),
    linear-gradient( 0deg, var(--grid-color) var(--grid-line), transparent 0) 0 0 / var(--grid-size) var(--grid-size);

  /* If you tint via other layers, you can drop this blend mode */
  mix-blend-mode: overlay;
  opacity: .9;

  /* ----- Mask: show only irregular top/bottom bands ----- */

  /* Standards (Firefox/Chromium) */
  mask:
    /* base bands + soft fades */
    linear-gradient(to bottom,
      black 0,
      black var(--band),
      transparent calc(var(--band) + var(--fade)),
      transparent calc(100% - var(--band) - var(--fade)),
      black calc(100% - var(--band)),
      black 100%),
    /* subtract “bites” to roughen the edges */
    radial-gradient(140px 80px at 12% 7%,   black 60%, transparent 61%),
    radial-gradient(180px 90px at 30% 10%,  black 55%, transparent 56%),
    radial-gradient(150px 80px at 68% 92%,  black 55%, transparent 56%),
    radial-gradient(200px 100px at 86% 95%, black 60%, transparent 61%);
  mask-composite: add, subtract, subtract, subtract, subtract;

  /* WebKit (Chrome/Safari) */
  -webkit-mask-image:
    linear-gradient(to bottom,
      #000 0,
      #000 var(--band),
      transparent calc(var(--band) + var(--fade)),
      transparent calc(100% - var(--band) - var(--fade)),
      #000 calc(100% - var(--band)),
      #000 100%),
    radial-gradient(140px 80px at 12% 7%,   #000 60%, transparent 61%),
    radial-gradient(180px 90px at 30% 10%,  #000 55%, transparent 56%),
    radial-gradient(150px 80px at 68% 92%,  #000 55%, transparent 56%),
    radial-gradient(200px 100px at 86% 95%, #000 60%, transparent 61%);
  -webkit-mask-composite: source-over, destination-out, destination-out, destination-out, destination-out;
}

/*modal*/

/* Visually hidden (screen-reader only) */
.u-sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; border: 0; padding: 0;
  clip: rect(0 0 0 0); overflow: hidden;
  white-space: nowrap;
}

/* Modal base (hidden by default) */
.c-modal[aria-hidden="true"] { display: none; }

.c-modal {
  position: fixed; inset: 0; z-index: 1000;
  display: grid;
  grid-template-columns: 1fr;
}

.c-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.6);
}

.c-modal__dialog {
  position: relative;
  margin: auto;
  width: 100%; 
  padding: 0;                 /* header handles its own padding */
  outline: none;
  z-index: 1;                 /* above backdrop */
}

.c-modal__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  border-bottom: 2px solid #ffffff;
}

.c-modal__title { 
	margin: 0; 
	color: #fff;
  font-size: 24px;
  font-family: "Saira Extra Condensed", sans-serif;
  padding-left:1rem;
}

.c-modal__closebtn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%; 
	height: 100%;
  margin:0;
  border-left: 2px solid #fff;
  background: transparent;
  cursor: pointer;
  font-size: 1.5rem; line-height: 1;
}

.c-modal__closebtn:hover {
	background: #ffffff;
	color:rgb(var(--cobalt));
}

.c-modal__closebtn:focus-visible { outline: 2px solid #005fcc; outline-offset: 2px; }

.c-modal__body { padding: .75rem 1rem 1.25rem; }

.c-modal__video {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  background: #000;
  overflow: hidden;
  margin-top: .25rem;
  z-index: 0;                 /* keep the iframe below the header/close */
}
.c-modal__video iframe {
  position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
  display: block;
  /* If you have any site-wide transforms, ensure pointer events remain correct */
  pointer-events: auto;
}


.c-modal__controls {
  display: flex; gap: .5rem;
  margin-top: .75rem;
}

/* Optional: prevent background scroll when modal is open */
body.is-modal-open {
  overflow: hidden;
}


.fundbar {
  --ink: #1c2a39;
  --bg: #e9eef5;
  --pad: 10px;

  color: var(--ink);
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}

.fundbar__track {
  position: relative;
  height:60px;
  background: var(--bg);
  overflow: hidden;
}

.fundbar__fill {
  position: absolute; inset: 0 auto 0 0;
  width: 0%;
  background: rgb(var(--spiritblue));
  transform-origin: left center;
}

.fundbar__amount {
  position: absolute;
  right: var(--pad);
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  font-weight: 800;
  white-space: nowrap;
	font-size:2rem;
}

.fundbar__goal {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  margin-top: .5rem;
  font-weight: 600;
}

.fundbar__goalrule {
  display: inline-block;
  width: 28px;
  height: 2px;
  background: currentColor;
  opacity: .7;
  border-radius: 2px;
}

.fundbar__goaltext {
	color: #fff;
}




/*Site style overrides*/
#fullpagecontent {
	/*background-image: linear-gradient(0deg,rgba(249, 249, 249,.4) 0%, rgba(249, 249, 249, 0.4) 100%),url('/blueprint/images/plain-white-paper.webp');*/
}


h2 {
	font-size: 45.2px;
	font-weight: 700;
	color:#000;
	line-height:1.2;
}

h4 {
	color:rgb(var(--deepcobalt));
}

button {
	display: inline-block;
	  vertical-align: middle;
	  border: 1px solid transparent;
	  border-radius: 0;
	  transition: background-color 0.25s ease-out,color 0.25s ease-out;
	  font-weight: normal;
	  -webkit-appearance: none;
	  line-height: 1;
	  text-align: center;
	  cursor: pointer;
	  background-color: #0078CC;
	  color: #fff;
	  font-family: 'Montserrat',sans-serif;
	  letter-spacing: 1px;
	  padding: 8px 10px;
	  margin: 1rem 0 .15rem;
	  outline: 0;
	  font-size: 15px;
}

button:hover {
	border-bottom-color: transparent;
  background: #004D96;
	text-decoration: none;
}

@media only screen and (max-width: 63.99875em) {
	.cell.small-12:not(:first-of-type) {
	  margin-top: 2rem;
	}
}
.site-wrapper {overflow:visible;display: flow-root;}
		#openVideo{color:rgb(var(--alabaster));font-size:1.15rem;