  :root {
    --light-blue: #298FC2;

    --dark-blue: #002F6C;
    
    --grey: #54555A; 

    --white: #FFFFFF;
	
	--light-grey: #c8c8c8;
}
.asap {
    font-family: 'Asap', sans-serif;
}

.fira {
    font-family: 'Fira Sans', sans-serif;
}

.light-blue {
    color: var(--light-blue);
}

.dark-blue {
    color: var(--dark-blue);
}

.grey {
    color: var(--grey);
}

.white {
    color: var(--white);
}

.dark-blue-link {
	color: var(--dark-blue);
	text-decoration: none;
}

.dark-blue-link:hover {
	color: var(--light-blue);
	text-decoration: underline;
}

.light-blue-link {
	color: var(--light-blue);
	text-decoration: none;
}

.light-blue-link:hover {
	color: var(--dark-blue);
	text-decoration: underline;
}

.left-accent-blue {
    border-left: 1px solid var(--light-blue);
}

.left-accent-dark-blue {
    border-left: 1px solid var(--dark-blue);
}

.light-blue-border {
    border: 5px solid var(--light-blue);
}

.dark-blue-border {
    border: 5px solid var(--dark-blue);
}

.custom-rounded-card {
    border-radius: 25px;
    border-top-left-radius: 64px;
    border-bottom-right-radius: 64px;
}
.cost-card{
	border-radius: 25px;
	margin-top: -7rem;
}
.cost-dark-blue-border {
	border-left: 5px solid var(--dark-blue);
}
.cost-light-blue-border {
	border-left: 5px solid var(--light-blue);
}
.bg-program-blue {
    background-color: var(--light-blue)
}

.bg-program-dark-blue {
    background-color: var(--dark-blue);
}

.bg-program-dark-blue a,
.bg-program-dark-blue a:hover,
.bg-program-dark-blue a:visited {
    color: var(--white);
}

.bg-program-white {
    background-color: var(--white);
}

.bg-grey {
	background-color: var(--light-grey);
}

.btn-outline-darkblue {
	color: var(--dark-blue);
	border-color: var(--dark-blue);
	background-color: transparent;
	font-weight: 400;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	padding: 0.375rem 0.75rem;
	font-size: 1rem;
	line-height: 1.5;
	border-radius: 0.375rem;
	transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.btn-outline-darkblue:hover {
	color: #fff;
	background-color: var(--dark-blue);
	border-color: var(--dark-blue);
}

.btn-white {
    color: var(--dark-blue);
    border-color: var(--dark-blue);
    border-width: 2px;
    border-style: solid;
    background-color: transparent;
    font-weight: 400;
    text-align: center;
    vertical-align: middle;
	text-decoration: none;
    padding: 0.375rem 0.75rem;
    line-height: 1.5;
    border-radius: 0.375rem;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    text-decoration: none;
    box-shadow: none;
	margin-bottom: 1rem;
}
.btn-white:hover {
    color: #fff;
    background-color: var(--dark-blue);
    border-color: var(--dark-blue);
    text-decoration: none;
    box-shadow: none;
}
.btn-white:focus,
.btn-white:active {
    box-shadow: none;
    text-decoration: none;
}

.btn-dark-blue {
    background-color: var(--dark-blue);
    color: var(--white);
    border: 2px solid var(--dark-blue);
    border-radius: 0.375rem;
    font-weight: 400;
    text-align: center;
    vertical-align: middle;
	text-decoration: none;
    padding: 0.375rem 0.75rem;
    line-height: 1.5;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    text-decoration: none;
    box-shadow: none;
	margin-bottom: 1rem;
}
.btn-dark-blue:hover {
    background-color: var(--white);
    color: var(--dark-blue);
    text-decoration: none;
    box-shadow: none;
}
.btn-dark-blue:focus,
.btn-dark-blue:active {
    box-shadow: none;
    text-decoration: none;
}
.nunito {
  font-family: 'Nunito Sans', sans-serif;
}
.program-card {
    height: 200px;
	transition: outline 0.1s;
	border-radius: 10px;
    overflow: hidden;
}
.program-card img {
    object-fit: cover;
}
.program-card .caption {
    background-color: color-mix(in srgb, var(--dark-blue) 85%, transparent);
}
.program-card h4 {
	font-size: 1rem;
}
.program-card p {
	font-size: 1rem;
	line-height: 1.2;
}
.program-card:hover {
    outline: 3px solid var(--light-blue);
}

.gallery-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 1rem;
	height: 420px;
}
.g-item {
	border-radius: 12px;
	overflow: hidden;
}
.g-tall {
	grid-row: span 2;
}

.logo-track {
	width: max-content;
	animation: scroll 30s linear infinite;
	position: relative;
	z-index: 1;
}
@keyframes scroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.logo-track {
		animation: none;
		flex-wrap: wrap;
		justify-content: center;
		width: auto;
	}
}

.partner-logo {
	width: 80px;
	height: 80px;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: 0.85;
}

@media (max-width: 767.98px) {
	.partner-logo {
		width: 60px;
		height: 60px;
	}
}

@media (min-width: 1080px) {
    .program-goals {
        margin-top: -8.6rem;
    }
}

/* Responsive accent styling */
@media (max-width: 767.98px) {
    .left-accent-blue {
        border-left: none;
        border-top: 1px solid var(--light-blue);
        padding-left: 0;
        padding-top: 1rem;
        margin-top: 1rem;
    }
    .left-accent-dark-blue {
        border-left: none;
        border-top: 1px solid var(--dark-blue);
        padding-left: 0;
        padding-top: 1rem;
        margin-top: 1rem;
    }
	.left-accent-blue-small {
                border-left: none;
                border-top: 1px solid var(--light-blue);
                padding-left: 0;
                padding-top: 1rem;
                margin-top: 1rem;
	}
	.cost-card{
		border-radius: 25px;
		margin-top: -1rem;
	}
	.cost-dark-blue-border {
		border-top: 5px solid var(--dark-blue);
		border-left: 0;
	}
	.cost-light-blue-border {
		border-top: 5px solid var(--light-blue);
		border-left: 0;
	}
	.gallery-grid {
		height: auto;
	}
	.g-tall {
		grid-row: span 1;
		min-height: 180px;
	}
	.g-item {
		min-height: 140px;
	}
}