/* ==========================================
   BRIDGE BUILDERS FOUNDATION (BBF)
   MAIN STYLESHEET
========================================== */

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


/* ==========================================
   CSS VARIABLES
========================================== */

:root{

--primary:#0B3D91;
--secondary:#008753;
--accent:#D4AF37;
--white:#ffffff;
--light:#f5f7fa;
--dark:#1a1a1a;
--gray:#666666;
--shadow:0 10px 35px rgba(0,0,0,.12);
--transition:.35s ease;

}


/* ==========================================
   RESET
========================================== */

*{

margin:0;
padding:0;
box-sizing:border-box;

}

html{

scroll-behavior:smooth;

}

body{

font-family:'Poppins',sans-serif;
background:var(--white);
color:var(--dark);
overflow-x:hidden;
line-height:1.7;

}

img{

max-width:100%;
display:block;

}

a{

text-decoration:none;

}

ul{

list-style:none;

}

.container{

width:min(1200px,90%);
margin:auto;

}


/* ==========================================
   LOADER
========================================== */

#loader{

position:fixed;
top:0;
left:0;
width:100%;
height:100vh;

background:linear-gradient(
135deg,
var(--primary),
var(--secondary));

display:flex;
flex-direction:column;
justify-content:center;
align-items:center;

z-index:99999;

transition:.8s;

}

#loader img{

width:140px;
margin-bottom:20px;

animation:floatLogo 2s infinite ease-in-out;

}

#loader h2{

color:#fff;
font-size:32px;
font-weight:700;

margin-bottom:10px;

}

#loader p{

color:#fff;
font-size:17px;

opacity:.9;

}

.loader-hidden{

opacity:0;
visibility:hidden;

}


/* ==========================================
   HEADER
========================================== */

header{

position:fixed;
top:0;
left:0;
width:100%;

z-index:999;

transition:var(--transition);

}


/* ==========================================
   NAVBAR
========================================== */

.navbar{

display:flex;
justify-content:space-between;
align-items:center;

padding:18px 5%;

background:rgba(255,255,255,.12);

backdrop-filter:blur(14px);

-webkit-backdrop-filter:blur(14px);

transition:var(--transition);

}

.navbar.scrolled{

background:#ffffff;

box-shadow:var(--shadow);

}

.logo img{

height:65px;

transition:var(--transition);

}

.logo img:hover{

transform:scale(1.05);

}


/* Navigation */

.nav-links{

display:flex;
gap:35px;

}

.nav-links a{

color:#fff;

font-size:16px;
font-weight:600;

transition:var(--transition);

position:relative;

}

.navbar.scrolled .nav-links a{

color:var(--dark);

}

.nav-links a::after{

content:"";

position:absolute;

left:0;
bottom:-8px;

width:0;
height:3px;

background:var(--accent);

transition:.3s;

border-radius:30px;

}

.nav-links a:hover::after,
.nav-links a.active::after{

width:100%;

}

.nav-links a:hover{

color:var(--accent);

}


/* ==========================================
   MOBILE MENU
========================================== */

.menu-toggle{

display:none;

cursor:pointer;

}

.menu-toggle span{

display:block;

width:28px;
height:3px;

background:#fff;

margin:6px 0;

border-radius:30px;

transition:var(--transition);

}

.navbar.scrolled .menu-toggle span{

background:var(--dark);

}

.menu-toggle.active span:nth-child(1){

transform:rotate(45deg) translate(6px,6px);

}

.menu-toggle.active span:nth-child(2){

opacity:0;

}

.menu-toggle.active span:nth-child(3){

transform:rotate(-45deg) translate(7px,-7px);

}

/* ==========================================
   BUTTONS
========================================== */

.btn-primary,
.btn-secondary{

display:inline-block;

padding:15px 35px;

border-radius:50px;

font-size:16px;
font-weight:600;

transition:var(--transition);

}

.btn-primary{

background:var(--secondary);

color:#fff;

box-shadow:var(--shadow);

}

.btn-primary:hover{

background:#006c43;

transform:translateY(-4px);

}

.btn-secondary{

border:2px solid #fff;

color:#fff;

margin-left:15px;

}

.btn-secondary:hover{

background:#fff;

color:var(--primary);

}


/* ==========================================
   FLOAT ANIMATION
========================================== */

@keyframes floatLogo{

0%,100%{

transform:translateY(0);

}

50%{

transform:translateY(-12px);

}

}

/* ==========================================
   HERO SECTION
========================================== */

.hero{

position:relative;
width:100%;
height:100vh;

display:flex;
justify-content:center;
align-items:center;

overflow:hidden;

}


/* ===========================
   HERO SLIDESHOW
=========================== */

.hero-slideshow{

position:absolute;
top:0;
left:0;

width:100%;
height:100%;

overflow:hidden;

}

.slide{

position:absolute;

width:100%;
height:100%;

object-fit:cover;

opacity:0;

transform:scale(1);

transition:
opacity 1.5s ease,
transform 8s ease;

}

.slide.active{

opacity:1;

transform:scale(1.12);

}


/* ===========================
   DARK OVERLAY
=========================== */

.hero-overlay{

position:absolute;

top:0;
left:0;

width:100%;
height:100%;

background:

linear-gradient(

rgba(5,20,50,.75),

rgba(5,20,50,.60),

rgba(0,0,0,.55)

);

z-index:1;

}


/* ===========================
   HERO CONTENT
=========================== */

.hero-content{

position:relative;

z-index:5;

text-align:center;

color:#fff;

width:90%;
max-width:900px;

animation:heroFade 1.5s ease;

}


/* ===========================
   HERO LOGO
=========================== */

.hero-logo{

width:170px;

margin:0 auto 30px;

animation:

floatLogo 4s ease-in-out infinite,

glowLogo 3s ease-in-out infinite;

}


/* ===========================
   HEADINGS
=========================== */

.hero-content h1{

font-size:64px;

font-weight:800;

line-height:1.1;

margin-bottom:18px;

text-shadow:

0 4px 15px rgba(0,0,0,.35);

}

.hero-content h2{

font-size:30px;

font-weight:500;

color:var(--accent);

margin-bottom:25px;

font-style:italic;

}

.hero-content p{

font-size:20px;

line-height:1.9;

max-width:760px;

margin:auto auto 45px;

opacity:.96;

}


/* ===========================
   HERO BUTTONS
=========================== */

.hero-buttons{

display:flex;

justify-content:center;

align-items:center;

gap:20px;

flex-wrap:wrap;

}


/* ===========================
   SCROLL INDICATOR
=========================== */

.scroll-indicator{

position:absolute;

bottom:35px;

left:50%;

transform:translateX(-50%);

z-index:10;

}

.scroll-indicator span{

display:block;

width:34px;
height:58px;

border:2px solid #fff;

border-radius:40px;

position:relative;

}

.scroll-indicator span::before{

content:"";

position:absolute;

top:10px;
left:50%;

transform:translateX(-50%);

width:7px;
height:7px;

background:#fff;

border-radius:50%;

animation:scrollDown 2s infinite;

}


/* ===========================
   HERO ANIMATIONS
=========================== */

@keyframes heroFade{

from{

opacity:0;

transform:translateY(60px);

}

to{

opacity:1;

transform:translateY(0);

}

}

@keyframes glowLogo{

0%,100%{

filter:drop-shadow(0 0 10px rgba(255,255,255,.25));

}

50%{

filter:drop-shadow(0 0 25px rgba(212,175,55,.7));

}

}

@keyframes scrollDown{

0%{

opacity:0;

transform:
translate(-50%,0);

}

50%{

opacity:1;

}

100%{

opacity:0;

transform:
translate(-50%,22px);

}

}

/* ==========================================
   WELCOME SECTION
========================================== */

.welcome{

padding:120px 0;

background:#ffffff;

}

.welcome .container{

display:grid;

grid-template-columns:1fr 1fr;

gap:60px;

align-items:center;

}

.welcome-text h2{

font-size:42px;

color:var(--primary);

margin-bottom:25px;

position:relative;

}

.welcome-text h2::after{

content:"";

display:block;

width:90px;
height:5px;

background:var(--accent);

margin-top:12px;

border-radius:50px;

}

.welcome-text p{

font-size:17px;

color:var(--gray);

margin-bottom:20px;

line-height:1.9;

}

.welcome-image img{

width:100%;

border-radius:25px;

box-shadow:var(--shadow);

transition:.5s;

}

.welcome-image img:hover{

transform:scale(1.03);

}



/* ==========================================
   SECTION TITLES
========================================== */

.section-title{

text-align:center;

margin-bottom:70px;

}

.section-title h2{

font-size:42px;

color:var(--primary);

margin-bottom:15px;

}

.section-title p{

max-width:750px;

margin:auto;

font-size:18px;

color:var(--gray);

line-height:1.8;

}



/* ==========================================
   VISION
========================================== */

.vision{

padding:120px 0;

background:linear-gradient(
135deg,
#f7fbff,
#eef7f3);

}

.vision-card{

max-width:850px;

margin:auto;

padding:50px;

border-radius:25px;

background:rgba(255,255,255,.75);

backdrop-filter:blur(15px);

-webkit-backdrop-filter:blur(15px);

box-shadow:var(--shadow);

text-align:center;

transition:.4s;

}

.vision-card:hover{

transform:translateY(-12px);

}

.vision-icon{

font-size:70px;

margin-bottom:25px;

}

.vision-card h3{

font-size:30px;

color:var(--primary);

margin-bottom:20px;

}

.vision-card p{

font-size:17px;

color:var(--gray);

line-height:1.9;

}



/* ==========================================
   MISSION
========================================== */

.mission{

padding:120px 0;

background:#ffffff;

}

.mission-grid{

display:grid;

grid-template-columns:

repeat(auto-fit,minmax(280px,1fr));

gap:35px;

}

.mission-card{

padding:45px 30px;

background:#ffffff;

border-radius:20px;

box-shadow:0 12px 35px rgba(0,0,0,.08);

text-align:center;

transition:.4s;

position:relative;

overflow:hidden;

}

.mission-card::before{

content:"";

position:absolute;

left:0;
top:0;

width:100%;
height:6px;

background:linear-gradient(
90deg,
var(--primary),
var(--secondary),
var(--accent));

}

.mission-card:hover{

transform:translateY(-15px);

}

.mission-icon{

font-size:55px;

margin-bottom:20px;

}

.mission-card h3{

font-size:26px;

margin-bottom:18px;

color:var(--primary);

}

.mission-card p{

color:var(--gray);

line-height:1.8;

font-size:16px;

}

/* ==========================================
   NEWS SECTION
========================================== */

.news{

padding:120px 0;

background:#f8fafc;

}

.news-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

gap:35px;

margin-top:50px;

}

.news-card{

background:#fff;

border-radius:20px;

overflow:hidden;

box-shadow:var(--shadow);

transition:.4s;

}

.news-card:hover{

transform:translateY(-12px);

}

.news-card img{

width:100%;
height:230px;

object-fit:cover;

transition:.5s;

}

.news-card:hover img{

transform:scale(1.08);

}

.news-content{

padding:25px;

}

.news-date{

font-size:14px;

color:var(--secondary);

font-weight:600;

margin-bottom:12px;

}

.news-content h3{

color:var(--primary);

margin-bottom:15px;

font-size:24px;

}

.news-content p{

color:var(--gray);

line-height:1.8;

}

.section-button{

text-align:center;

margin-top:60px;

}


/* ==========================================
   EVENTS SECTION
========================================== */

.events{

padding:120px 0;

background:#fff;

}

.events-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

gap:35px;

margin-top:50px;

}

.event-card{

background:#fff;

border-radius:20px;

overflow:hidden;

box-shadow:var(--shadow);

transition:.4s;

position:relative;

}

.event-card:hover{

transform:translateY(-12px);

}

.event-card img{

width:100%;

height:230px;

object-fit:cover;

}

.event-date{

position:absolute;

top:20px;

left:20px;

background:var(--accent);

color:#fff;

padding:10px 16px;

border-radius:12px;

font-weight:700;

}

.event-content{

padding:25px;

}

.event-content h3{

color:var(--primary);

margin-bottom:15px;

}

.event-content p{

color:var(--gray);

line-height:1.8;

}


/* ==========================================
   NIGERIA MAP
========================================== */

.nigeria-map{

padding:120px 0;

background:linear-gradient(135deg,#eef6ff,#f8fffb);

text-align:center;

}

.map-wrapper{

margin-top:50px;

}

#nigeriaMap{

width:100%;

max-width:700px;

transition:.5s;

cursor:pointer;

}

#nigeriaMap:hover{

transform:scale(1.03);

}


/* ==========================================
   CONTACT
========================================== */

.contact{

padding:120px 0;

background:#fff;

}

.contact-info{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

gap:35px;

margin-top:50px;

}

.contact-card{

background:#fff;

padding:40px;

border-radius:20px;

box-shadow:var(--shadow);

transition:.4s;

text-align:center;

}

.contact-card:hover{

transform:translateY(-10px);

}

.contact-card h3{

color:var(--primary);

margin-bottom:15px;

font-size:24px;

}

.contact-card p{

color:var(--gray);

line-height:1.8;

}


/* ==========================================
   FOOTER
========================================== */

footer{

background:#082b67;

color:#fff;

padding-top:80px;

}

.footer-container{

width:min(1200px,90%);

margin:auto;

display:grid;

grid-template-columns:2fr 1fr 1fr;

gap:60px;

padding-bottom:60px;

}

.footer-logo img{

width:120px;

margin-bottom:20px;

}

.footer-logo h2{

margin-bottom:15px;

}

.footer-logo p{

color:#ddd;

line-height:1.8;

}

.footer-links h3,

.footer-social h3{

margin-bottom:20px;

}

.footer-links ul li{

margin-bottom:15px;

}

.footer-links a,

.footer-social a{

color:#ddd;

transition:.3s;

}

.footer-links a:hover,

.footer-social a:hover{

color:var(--accent);

padding-left:6px;

}

.social-icons{

display:flex;

flex-direction:column;

gap:15px;

}

.footer-bottom{

border-top:1px solid rgba(255,255,255,.15);

text-align:center;

padding:25px;

font-size:15px;

color:#ccc;

}


/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:992px){

.hero-content h1{

font-size:48px;

}

.hero-content h2{

font-size:24px;

}

.welcome .container{

grid-template-columns:1fr;

}

.footer-container{

grid-template-columns:1fr;

text-align:center;

}

}

@media(max-width:768px){

.navbar{
position:relative;
}

/* Mobile Navigation */

.nav-links{

display:none;
position:absolute;
top:100%;
left:0;
width:100%;
background:#ffffff;
flex-direction:column;
padding:20px 0;
box-shadow:0 10px 25px rgba(0,0,0,.15);
z-index:999;

}

.nav-links.show{

display:flex;

}

.nav-links li{

text-align:center;
margin:15px 0;

}

.nav-links a{

color:var(--dark);
font-size:18px;

}

.menu-toggle{

display:block;

}

.hero-content h1{

font-size:36px;

}

.hero-content h2{

font-size:20px;

}

.hero-content p{

font-size:17px;

}

.section-title h2{

font-size:34px;

}

.btn-primary,
.btn-secondary{

display:block;
margin:15px auto;
width:220px;
text-align:center;

}

}

/*=========================================
SCROLL REVEAL
=========================================*/

.welcome,
.vision,
.mission,
.news,
.events,
.nigeria-map,
.contact,
.footer-container{

opacity:0;

transform:translateY(60px);

transition:1s;

}

.show{

opacity:1;

transform:translateY(0);

}


/*=========================================
BACK TO TOP
=========================================*/

#backToTop{

position:fixed;

right:25px;

bottom:25px;

width:50px;

height:50px;

border:none;

border-radius:50%;

background:#008753;

color:#fff;

font-size:22px;

cursor:pointer;

opacity:0;

visibility:hidden;

transition:.3s;

z-index:9999;

box-shadow:0 8px 20px rgba(0,0,0,.25);

}

#backToTop:hover{

transform:translateY(-5px);

}

.showTop{

opacity:1 !important;

visibility:visible !important;

}


/*=========================================
BUTTON RIPPLE
=========================================*/

.btn-primary,
.btn-secondary{

position:relative;

overflow:hidden;

}

.ripple{

position:absolute;

border-radius:50%;

background:rgba(255,255,255,.5);

transform:scale(0);

animation:ripple .6s linear;

}

@keyframes ripple{

to{

transform:scale(4);

opacity:0;

}

}

/*=========================================
NEWS DETAILS PAGE
=========================================*/

.news-header{

background:#0B3D91;

padding:20px 10%;

display:flex;

justify-content:space-between;

align-items:center;

flex-wrap:wrap;

}

.news-header h1{

color:#fff;

font-size:30px;

}

.back-btn{

color:#fff;

text-decoration:none;

font-weight:600;

}

.back-btn:hover{

color:#D4AF37;

}


.article-page{

max-width:900px;

margin:60px auto;

padding:0 20px;

}

.article-image{

width:100%;

border-radius:20px;

margin-bottom:30px;

max-height:500px;

object-fit:cover;

}

.article-page h1{

font-size:42px;

color:#0B3D91;

margin-bottom:20px;

}

.article-meta{

color:#777;

margin-bottom:30px;

font-size:15px;

}

.article-summary{

font-size:22px;

font-style:italic;

margin-bottom:35px;

color:#444;

line-height:1.8;

}

.article-content{

font-size:18px;

line-height:2;

color:#333;

}

.article-content img{

max-width:100%;

border-radius:15px;

margin:20px 0;

}


.share-section{

text-align:center;

padding:50px 20px;

}

.share-section h3{

margin-bottom:25px;

color:#0B3D91;

}

.share-buttons{

display:flex;

justify-content:center;

gap:20px;

flex-wrap:wrap;

}

.share-buttons button{

padding:14px 30px;

border:none;

border-radius:40px;

background:#008753;

color:#fff;

cursor:pointer;

font-size:15px;

transition:.3s;

}

.share-buttons button:hover{

background:#0B3D91;

transform:translateY(-4px);

}


@media(max-width:768px){

.news-header{

justify-content:center;

gap:15px;

}

.article-page h1{

font-size:30px;

}

.article-summary{

font-size:18px;

}

.article-content{

font-size:16px;

}

}

.gallery-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
gap:25px;
margin-top:40px;
}

.gallery-card{
background:#fff;
border-radius:20px;
overflow:hidden;
box-shadow:0 10px 30px rgba(0,0,0,.1);
cursor:pointer;
transition:.3s;
}

.gallery-card:hover{
transform:translateY(-8px);
}

.gallery-card img{
width:100%;
height:220px;
object-fit:cover;
}

.gallery-info{
padding:15px;
}

.gallery-info h3{
color:#0B3D91;
margin-bottom:8px;
}

.gallery-info p{
color:#666;
font-size:14px;
line-height:1.6;
}

/* LIGHTBOX */

.lightbox{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,.85);
display:flex;
justify-content:center;
align-items:center;
z-index:9999;
}

.lightbox-content img{
max-width:90%;
max-height:80vh;
border-radius:10px;
}

.lightbox .close{
position:absolute;
top:30px;
right:40px;
font-size:40px;
color:#fff;
cursor:pointer;
}