@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

/* Match original BioMaP-Consortium site typography (Montserrat) */
body, p, a, li, span, div, input, textarea, button, select { font-family: 'Montserrat', sans-serif; }
h1, h2, h3, h4, h5, h6, .numbers-title, .section-super-header, .focus-areas-header, .section-title { font-family: 'Montserrat', sans-serif; font-weight: 700; }
h1, h2, h3, h4, .section-super-header, .focus-areas-header { color: #042545; }

/* Custom Styles for BioMaP Theme Updates */

/* Slide media (image/video on slider) */
.slide-media {
    margin-top: 1.5rem;
    border-radius: 8px;
    overflow: hidden;
}
.slide-media img {
    width: 100%;
    height: auto;
    border-radius: 8px;
}
.slide-media video {
    width: 100%;
    height: auto;
    border-radius: 8px;
}

/* Dynamic Numbers Section */
.dynamic-numbers-section {
    background: transparent;
    padding: 60px 0;
}
.dynamic-numbers-section .numbers-container {
    text-align: center;
}
.dynamic-numbers-section .numbers-title {
    font-size: 2rem;
    margin-bottom: 2.5rem;
    color: #1a2b4a;
}
.dynamic-numbers-section .numbers-list {
    display: flex;
    justify-content: center;
    gap: 3rem;
    flex-wrap: wrap;
}
.dynamic-numbers-section .single-number-item {
    text-align: center;
    min-width: 120px;
}
.dynamic-numbers-section .number {
    font-size: 3.5rem;
    font-weight: 700;
    color: #0d6efd;
    line-height: 1;
}
.dynamic-numbers-section .number-label {
    font-size: 1rem;
    color: #495057;
    margin-top: 0.5rem;
    font-weight: 500;
}
.dynamic-numbers-section .number-description {
    font-size: 0.875rem;
    color: #6c757d;
    margin-top: 0.25rem;
}

/* Section super headers */
.section-super-header-wrapper {
    text-align: center;
    padding: 0 0 1.5rem 0;
    width: 100%;
}
.section-super-header {
    font-size: 2.25rem;
    font-weight: 700;
    color: #1a2b4a;
    margin-bottom: 0.5rem;
}
.focus-areas-header {
    background: #fff;
    padding: 3rem 0 0;
}
.focus-areas-header .gl-content-holder {
    display: block;
}
.focus-areas-header .section-super-header {
    text-align: center;
}

/* Why Sponsors Section */
.why-sponsors-section {
    background: linear-gradient(135deg, #1a2b4a 0%, #0d3b6e 100%);
    padding: 80px 0;
    color: #fff;
}
.why-sponsors-section .section-title {
    font-size: 2rem;
    font-weight: 700;
    color: #fff;
    text-align: center;
    margin-bottom: 2.5rem;
}
.why-sponsors-section .sponsors-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
    max-width: 900px;
    margin: 0 auto;
}
.why-sponsors-section .sponsor-item {
    background: rgba(255,255,255,0.1);
    border-radius: 8px;
    padding: 1.5rem 2rem;
    border-left: 4px solid #4da6ff;
    display: flex;
    align-items: center;
}
.why-sponsors-section .sponsor-text {
    color: #fff;
    font-size: 1rem;
    line-height: 1.5;
}

/* Footer sponsor text - DARK text for light footer background */
.sponsor-footer-text {
    text-align: center;
    padding: 1rem 0 0.5rem;
    border-top: 1px solid rgba(0,0,0,0.1);
    margin-top: 1rem;
    width: 100%;
}
.sponsor-footer-text p {
    font-size: 0.75rem;
    color: #555;
    margin: 0;
}
.sponsor-footer-text a {
    color: #1a2b4a;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s;
}
.sponsor-footer-text a:hover {
    color: #0d6efd;
    text-decoration: underline;
}

/* Footer funder logos (Funded by / Managed and Operated by) */
.sponsor-footer-text .funded-by-section,
.sponsor-footer-text .managed-by-section {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin: 0.75rem 0;
}
.sponsor-footer-text .funder-label {
	font-size: 0.9rem;
	font-weight: 700;
	color: #042545;
	letter-spacing: 0.5px;
}
.sponsor-footer-text .funder-logo {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}
.sponsor-footer-text .funder-logo img {
	height: 55px;
	width: auto;
	display: block;
	transition: opacity 0.2s ease;
}
.sponsor-footer-text .funder-logo:hover img { opacity: 0.8; }
.sponsor-footer-text .funder-hhs img,
.sponsor-footer-text .funder-barda img { height: 70px; }
.sponsor-footer-text .funder-ati img { height: 48px; }
.sponsor-footer-text .managed-by-section { margin-top: 0.25rem; }
@media (max-width: 600px) {
	.sponsor-footer-text .funder-logo img { height: 42px; }
	.sponsor-footer-text .funder-hhs img,
	.sponsor-footer-text .funder-barda img { height: 52px; }
	.sponsor-footer-text .funder-ati img { height: 38px; }
	.sponsor-footer-text .funded-by-section,
	.sponsor-footer-text .managed-by-section { gap: 16px; }
}

/* ===== By the Numbers - match RRPV styling ===== */
.dynamic-numbers-section {
	background-color: #E9EEF2;
	padding: 3.25rem 0;
}
.dynamic-numbers-section .numbers-container {
	max-width: 1140px;
	margin: 0 auto;
}
.dynamic-numbers-section .numbers-intro {
	max-width: 1000px;
	margin: 0 auto 2.5rem;
	text-align: center;
}
.dynamic-numbers-section .numbers-intro p {
	color: #042545;
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.5;
	margin: 0;
}
.dynamic-numbers-section .numbers-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 0;
}
.dynamic-numbers-section .single-number-item {
	position: relative;
	text-align: center;
	padding: 0 2.75rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.dynamic-numbers-section .single-number-item:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 8%;
	height: 84%;
	width: 1px;
	background-color: #042545;
}
.dynamic-numbers-section .number,
.dynamic-numbers-section .number-label {
	color: #042545 !important;
	font-size: 4.75rem;
	font-weight: 100;
	line-height: 1;
	display: inline-block;
}
.dynamic-numbers-section .single-number-item {
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
}
.dynamic-numbers-section .number-description {
	color: #042545 !important;
	font-size: 1.15rem;
	font-weight: 600;
	text-transform: capitalize;
	margin-top: 0.5rem;
	flex-basis: 100%;
}
@media (max-width: 768px) {
	.dynamic-numbers-section .number,
	.dynamic-numbers-section .number-label { font-size: 3.25rem; }
	.dynamic-numbers-section .single-number-item { padding: 1rem 1.5rem; }
	.dynamic-numbers-section .single-number-item:not(:last-child)::after { display: none; }
	.dynamic-numbers-section .numbers-intro p { font-size: 1.2rem; }
}

/* By the Numbers - single row refinement */
.dynamic-numbers-section .numbers-list {
	flex-wrap: nowrap;
	align-items: stretch;
}
.dynamic-numbers-section .single-number-item {
	flex: 1 1 0;
	padding: 0 1.5rem;
	min-width: 0;
}
.dynamic-numbers-section .single-number-item:last-child::after { display: none; }

/* Partnership Opportunities - full-width title */
.text-with-icons .section-title-full {
	flex: 0 0 100%;
	width: 100%;
	margin-bottom: 2rem;
}
.text-with-icons .section-title-full h2 {
	font-size: 3.25rem;
	font-weight: 700;
	color: #042545;
	margin: 0;
	line-height: 1.15;
}
@media (max-width: 768px) {
	.text-with-icons .section-title-full h2 { font-size: 2.25rem; }
}

/* ===== Focus Areas - enlarge heading, remove mini labels, tighten spacing ===== */
.focus-areas-header .section-super-header {
	font-size: 3.25rem;
	font-weight: 700;
	color: #042545;
	line-height: 1.15;
}
.focus-areas-header {
	padding-top: 3rem;
	padding-bottom: 0;
}
/* Reduce spacing between Focus Areas heading and the content below */
.about-us {
	margin-top: 2.5rem !important;
}
/* Remove the mini "Focus Area" pretitle labels */
.about-us .pretitle {
	display: none !important;
}
@media (max-width: 768px) {
	.focus-areas-header .section-super-header { font-size: 2.25rem; }
	.about-us { margin-top: 1.5rem !important; }
}

/* ===== Why Sponsors - match reference: 4 outlined icon cards, navy bg ===== */
.why-sponsors-section .section-title {
    text-align: center;
    max-width: 780px;
    margin: 0 auto 3rem;
    line-height: 1.2;
}
.why-sponsors-section .sponsors-list {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
    max-width: 1120px;
    margin: 0 auto;
}
.why-sponsors-section .sponsor-item {
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    padding: 32px 20px 28px !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-height: 0;
}
.why-sponsors-section .sponsor-item::before {
    content: "";
    display: block;
    width: 46px;
    height: 46px;
    margin-bottom: 20px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.why-sponsors-section .sponsor-item:nth-child(1)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='7' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.2'/%3E%3Cpath d='M3 20v-1a5 5 0 0 1 5-5h2a5 5 0 0 1 5 5v1'/%3E%3Cpath d='M16 14a4 4 0 0 1 4 4v1'/%3E%3C/svg%3E");
}
.why-sponsors-section .sponsor-item:nth-child(2)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Ccircle cx='11' cy='9' r='2.2'/%3E%3Cpath d='M7.5 15a3.6 3.6 0 0 1 7 0'/%3E%3Cline x1='16.5' y1='16.5' x2='21' y2='21'/%3E%3C/svg%3E");
}
.why-sponsors-section .sponsor-item:nth-child(3)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l2.1 1.6 2.6-.3 1 2.4 2.3 1.2-.4 2.6L21 12l-1.7 2.3.4 2.6-2.3 1.2-1 2.4-2.6-.3L12 22l-2.1-1.6-2.6.3-1-2.4L4 16.9l.4-2.6L3 12l1.7-2.3L4.3 7l2.3-1.2 1-2.4 2.6.3z'/%3E%3Cpolyline points='9 12 11 14 15 10'/%3E%3C/svg%3E");
}
.why-sponsors-section .sponsor-item:nth-child(4)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1.4'/%3E%3C/svg%3E");
}
.why-sponsors-section .sponsor-text {
    text-transform: uppercase;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.45;
    color: #cdd6e4;
}
@media (max-width: 992px) {
    .why-sponsors-section .sponsors-list { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
    .why-sponsors-section .sponsors-list { grid-template-columns: 1fr !important; }
}

/* ===== Slider - per-panel optional image with configurable position ===== */
.hero-section .swiper-content {
    position: relative;
}
.hero-section .slide-media {
    position: absolute;
    max-width: 160px;
    z-index: 2;
    pointer-events: none;
}
.hero-section .slide-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
}
.hero-section .slide-media.pos-upper-right { top: 0; right: 0; }
.hero-section .slide-media.pos-upper-left { top: 0; left: 0; }
.hero-section .slide-media.pos-lower-right { bottom: 0; right: 0; }
.hero-section .slide-media.pos-lower-left { bottom: 0; left: 0; }
.hero-section .slide-media.pos-center {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
@media (max-width: 768px) {
    .hero-section .slide-media {
        position: static;
        max-width: 120px;
        margin: 1rem 0 0;
        transform: none;
    }
}

/* ===== Client revisions round 2 ===== */

/* By the Numbers: remove whitespace above, full-width intro, bold values, align suffix with number */
.dynamic-numbers-section {
    padding-top: 0 !important;
}
.dynamic-numbers-section .numbers-intro {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.dynamic-numbers-section .single-number-item {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
}
.dynamic-numbers-section .number,
.dynamic-numbers-section .number-label {
    display: inline-block;
    font-weight: 700 !important;
    line-height: 1;
    vertical-align: baseline;
}
.dynamic-numbers-section .number-description {
    flex: 0 0 100%;
    text-align: center;
    font-weight: 700 !important;
}

/* Partnership Opportunities: center title + spacing above the section */
.text-with-icons .section-title-full,
.text-with-icons .section-title-full h2 {
    text-align: center !important;
}
.text-with-icons {
    margin-top: 4rem;
}

/* Focus Areas: add spacing above the section */
.focus-areas-header {
    margin-top: 4rem;
}

/* ===== Slider image size options (ACF: Image Size) ===== */
.hero-section .swiper-content .slide-media.pos-upper-right.size-small {
    width: 180px;
        height: 130px;
            max-width: none;
            }
            .hero-section .swiper-content .slide-media.pos-upper-right.size-medium {
                width: 220px;
                    height: 160px;
                        max-width: none;
                        }
                        .hero-section .swiper-content .slide-media.pos-upper-right.size-large {
                            width: 260px;
                                height: 190px;
                                    max-width: none;
                                    }
                                    .swiper-content:has(.slide-media.pos-upper-right.size-medium) h1 {
                                        padding-right: 260px;
                                        }
                                        .swiper-content:has(.slide-media.pos-upper-right.size-large) h1 {
                                            padding-right: 300px;
                                            }
                                            @media (max-width: 991px) {
                                                .hero-section .swiper-content .slide-media.pos-upper-right.size-medium,
                                                    .hero-section .swiper-content .slide-media.pos-upper-right.size-large {
                                                            width: 150px;
                                                                    height: 110px;
                                                                        }
                                                                            .swiper-content:has(.slide-media.pos-upper-right.size-medium) h1,
                                                                                .swiper-content:has(.slide-media.pos-upper-right.size-large) h1 {
                                                                                        padding-right: 0;
                                                                                            }
                                                                                            }
/* Why Sponsors: title 52px to match other section titles, single line */
.why-sponsors-section .section-title {
    font-size: 52px !important;
    line-height: 1.15;
    white-space: nowrap;
    max-width: none;
}
@media (max-width: 1100px) {
    .why-sponsors-section .section-title { white-space: normal; }
}

/* Remove white curve/space between hero and numbers section */
.hero-section::after { height: 0 !important; }
/* Pull numbers section flush against hero (remove white gap) */
.dynamic-numbers-section { margin-top: 0 !important; }
/* Add breathing room below slider boxes so they don't touch the numbers section */
.hero-section { padding-bottom: 40px !important; }
/* Center numbers vertically in the gray bar (match top padding to bottom) */
.dynamic-numbers-section { padding-top: 52px !important; }

/* ===== Footer: move sponsor logos above the black line + normalize logo sizes ===== */
#site-footer .gl-content-holder {
    display: flex;
    flex-direction: column;
}
#site-footer .top-footer { order: 1; }
#site-footer .sponsor-footer-text { order: 2; }
#site-footer .bottom-footer { order: 3; }

/* Normalize all funder logo sizes to a consistent height */
#site-footer .sponsor-footer-text .funder-logo img {
    height: 60px !important;
    width: auto !important;
    max-width: 200px;
    object-fit: contain;
}
#site-footer .sponsor-footer-text .funded-by-section,
#site-footer .sponsor-footer-text .managed-by-section {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}

/* ===== Funding Awarded: $ prefix aligned with the number ===== */
.single-number-item { position: relative; }
.single-number-item .number-prefix {
    font-weight: 700;
        color: inherit;
            line-height: 1;
                vertical-align: top;
                }
                .single-number-item .number-wrap,
                .single-number-item { }

                /* ===== Slide media: override hero max-width cap so sizing/insets apply ===== */
                .hero-section .swiper-content .slide-media.pos-upper-right { max-width: none; width: 180px; height: 130px; }
                @media (max-width: 991px) { .hero-section .swiper-content .slide-media.pos-upper-right { max-width: none; width: 140px; height: 100px; } }
                @media (max-width: 600px) { .hero-section .swiper-content .slide-media.pos-upper-right { max-width: none; width: 120px; height: 90px; } }
                

                /* ===== Slide media: inset spacing from box edges + responsive ===== */
                .swiper-content .slide-media.pos-upper-right { top: 24px; right: 24px; width: 180px; height: 130px; }
                .swiper-content .slide-media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
                @media (max-width: 991px) { .swiper-content .slide-media.pos-upper-right { top: 16px; right: 16px; width: 140px; height: 100px; } .swiper-content:has(.slide-media.pos-upper-right) h1 { padding-right: 165px; } }
                @media (max-width: 600px) { .swiper-content .slide-media.pos-upper-right { position: static; top: auto; right: auto; width: 120px; height: 90px; margin: 0 0 16px auto; display: block; } .swiper-content:has(.slide-media.pos-upper-right) h1 { padding-right: 0; } }

                .single-number-item .number-prefix + .number { display: inline-block; }
                .single-number-item .number-prefix { display: inline-block; }

                .single-number-item .number-prefix {
                    color: #0a2540;
                        font-size: 4.75rem;
                            vertical-align: baseline;
                                margin-right: 2px;
                                }
@media (max-width: 1600px) { .why-sponsors-section .section-title { font-size: clamp(2rem, 2.7vw, 52px) !important; } }                                


                                /* ===== Slide media: keep headshot from overlapping title/description ===== */
                                .swiper-content .slide-media.pos-upper-right { width: 200px; height: auto; }
                                .swiper-content:has(.slide-media.pos-upper-right) h1 { padding-right: 230px; }
                                .swiper-content:has(.slide-media.pos-upper-right) p { padding-right: 0; }

/* ===== Round 3 feedback fixes ===== */
.sponsor-footer-text { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 56px; }
.sponsor-footer-text .funded-by-section, .sponsor-footer-text .managed-by-section { margin: 0; }
@media (max-width: 1300px) { .section-title { font-size: clamp(1.8rem, 3.6vw, 3.25rem); } }

@media (max-width: 1600px) { .section-title { font-size: clamp(2rem, 3vw, 3rem); } }
.why-sponsors-section .section-title { white-space: nowrap; }
@media (max-width: 1600px) { .why-sponsors-section .section-title { font-size: clamp(2rem, 3.1vw, 52px); } }
@media (max-width: 767px) { .why-sponsors-section .section-title { white-space: normal; } }