/* =========================================================
   Base / Theme
   ========================================================= */
:root{
  --sky-blue:#00b8ff;
  --deep-blue:#172ec9;
  --soft-pink:#ff6ec7;
  --text-dark:#222;
  --footer-bg: linear-gradient(135deg,#172ec9 0%, #172ec9 100%);
}

html { font-size:14px; }
@media (min-width:768px){ html { font-size:16px; } }

body{
  font-family: 'Open Sans', 'Poppins', 'Segoe UI', Roboto, sans-serif;
  color:var(--text-dark);
  background:#fff;
  line-height:1.6;
  font-size:1rem;
  margin-bottom:60px;
  padding-top:110px; /* for fixed navbar */
}

/* Headings */
h1,h2,h3,h4,h5,h6{ font-family:'Poppins',sans-serif; font-weight:700; color:var(--deep-blue); }

/* Links */
a{ color:var(--deep-blue); text-decoration:none; transition: color .25s; }
a:hover{ color:var(--soft-pink); }

/* Buttons */
.btn-primary{ background:var(--deep-blue); border:none; }
.btn-primary:hover{ background:var(--soft-pink); color:#fff; }
.btn { font-weight:600; border-radius:50px; }

/* Navbar */
.navbar{
  position:fixed; top:0; width:100%; z-index:1030;
  background: rgba(255,255,255,0.55);
  backdrop-filter: blur(12px);
  transition: background .45s ease, box-shadow .35s ease;
  padding: .6rem 2rem;
}
.navbar.scrolled{ background: rgba(255,255,255,0.98); box-shadow:0 4px 14px rgba(0,0,0,0.08); }
.navbar-brand{ display:flex; align-items:center; font-weight:700; color:var(--deep-blue); }
.navbar-brand img{ height:90px; margin-right:10px; }
.navbar-brand span{ font-size:1.05rem; color:var(--deep-blue); }

/* Menu items */
.navbar-nav .nav-link{ font-family:'Poppins',sans-serif; font-weight:600; color:var(--deep-blue) !important; padding:.8rem 1.2rem; }
.navbar-nav .nav-link:hover{ color:var(--soft-pink) !important; letter-spacing:.6px; }
.navbar-nav .nav-link.active{ color:var(--soft-pink) !important; font-weight:700; border-bottom:3px solid var(--soft-pink); }

/* Navbar separators */
.navbar-separated .nav-item:not(:last-child)::after{
  content:""; position:absolute; right:0; top:50%; transform:translateY(-50%);
  height:18px; width:1px; background: rgba(23,46,201,0.12);
}

/* Contribute button */
.contribute-btn{ background:var(--deep-blue); color:#fff; border-radius:50px; padding:.5rem 1.4rem; box-shadow:0 4px 10px rgba(23,46,201,0.35); }
.contribute-btn:hover{ background:var(--soft-pink); transform:translateY(-2px); }

/* Social icons */
.social-icons a{ font-size:1.25rem; color:var(--deep-blue); margin:0 .35rem; }
.social-icons a:hover{ color:var(--soft-pink); transform:translateY(-2px); }

/* Footer */
footer{ color:#fff; background:var(--footer-bg); }
.footer-donate{ background: linear-gradient(90deg,var(--sky-blue) 0%, var(--sky-blue) 100%); color:#fff; text-align:center; padding:60px 20px; }
.footer-donate .btn{ background:#fff; color:var(--deep-blue); border-radius:30px; padding:10px 30px; font-weight:600; }
.footer-main{ padding:50px 0 30px; }

/* Back to top */
#backToTop{ position:fixed; right:30px; bottom:30px; width:50px; height:50px; border-radius:50%; background:var(--soft-pink); color:#fff; border:none; display:none; z-index:2000; box-shadow:0 4px 12px rgba(0,0,0,0.2); }

/* =========================================================
   HERO SLIDER + CAPTION STRIPE
   ========================================================= */
#home-slider{ width:100vw; margin-left: calc(-50vw + 50%); }
#home-slider .carousel-item img{ height:90vh; object-fit:cover; filter: brightness(0.75); }
.hero-caption{
  position:absolute; bottom:0; left:0; right:0; padding:3rem 10%;
  background: linear-gradient(90deg, rgba(10,20,40,0.65) 0%, rgba(10,20,40,0.25) 60%, rgba(10,20,40,0) 100%);
  border-top:2px solid var(--sky-blue);
  text-shadow:0 2px 8px rgba(0,0,0,0.6);
}
.hero-caption h5{ color:var(--sky-blue); font-size:1rem; letter-spacing:1px; }
.hero-caption h2{ font-size:2.3rem; font-weight:700; line-height:1.3; color:#fff; }
.hero-caption p{ color:#f0f0f0; max-width:600px; }

/* smaller screens */
@media (max-width:992px){
  .navbar-brand img{ height:70px; }
  body{ padding-top:90px; }
  .hero-caption{ padding:2rem 5%; background: linear-gradient(180deg, rgba(10,20,40,0.7) 0%, rgba(10,20,40,0.1) 80%); }
  .hero-caption h2{ font-size:1.6rem; }
  .hero-caption p{ font-size:.95rem; }
}

/* =========================================================
   OUR IMPACT (image slider + caption stripe)
   ========================================================= */
#our-impact{ background: linear-gradient(180deg, #eaf5ff 0%, #eaf5ff 100%); }
#our-impact .impact-img{ width:100%; height:500px; object-fit:cover; }
#our-impact .impact-caption{
  position:absolute; bottom:0; left:0; right:0; padding:1.5rem 1rem;
  background: linear-gradient(90deg, rgba(10,20,40,0.75) 0%, rgba(10,20,40,0.35) 60%, rgba(10,20,40,0) 100%);
  border-top:2px solid var(--sky-blue); color:#fff; z-index:5;
  opacity:0; transform: translateY(20px);
  animation: impactFadeIn 900ms ease forwards;
}
#our-impact .carousel-item.active .impact-caption{ animation-delay: 300ms; }
#our-impact .impact-caption h5{ color:var(--sky-blue); margin-bottom:.25rem; text-shadow:0 2px 8px rgba(0,0,0,0.7); }
#our-impact .impact-caption p{ color:#f1f1f1; text-shadow:0 2px 6px rgba(0,0,0,0.6); }
@keyframes impactFadeIn{ from{ opacity:0; transform:translateY(25px);} to{ opacity:1; transform:translateY(0);} }

@media (max-width:992px){
  #our-impact .impact-img{ height:400px; }
}
@media (max-width:768px){
  #our-impact .impact-img{ height:280px; }
  #our-impact .impact-caption{ padding:1rem 0.8rem; background: linear-gradient(180deg, rgba(10,20,40,0.8) 0%, rgba(10,20,40,0.2) 90%); }
  #our-impact .impact-caption p{ font-size:.85rem; }
}

/* small helpers */
.text-pink{ color:var(--soft-pink) !important; }
.text-sky{ color:var(--sky-blue) !important; }

/* reveal on scroll */
section{ opacity:0; transform: translateY(40px); transition: all .9s ease; }
section.visible{ opacity:1; transform: translateY(0); }

/* navbar active highlight (non-razor fallback) */
.navbar-nav .nav-link.active{ color:var(--soft-pink) !important; font-weight:700; border-bottom:3px solid var(--soft-pink); }

/* small screens tweak */
@media (max-width:768px){
  .navbar-nav .nav-link{ padding:.6rem .8rem; font-size:.95rem; }
}

/* Footer Social Icons — Always Visible */
.footer-main .social-links a {
    color: #ffffff !important;
    font-size: 22px;
    margin: 0 8px;
    transition: 0.3s ease;
}

.footer-main .social-links a:hover {
    color: #ff6db2 !important;   /* pink hover */
    transform: scale(1.15);
}
/* Horizontal Timeline */
.timeline-horizontal {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 60px;
    flex-wrap: wrap;
    gap: 40px;
}

.timeline-track {
    position: absolute;
    top: 25px;
    left: 0;
    right: 0;
    height: 6px;
    background: linear-gradient(90deg, #009ffd, #2a2a72);
    border-radius: 4px;
    z-index: 1;
}

.timeline-step {
    position: relative;
    z-index: 2;
    width: 22%;
    min-width: 200px;
    text-align: center;
}

.timeline-step .circle {
    width: 65px;
    height: 65px;
    margin: 0 auto;
    background: white;
    border: 4px solid #009ffd;
    border-radius: 50%;
    color: #009ffd;
    font-weight: 700;
    font-size: 20px;
    line-height: 57px;
    z-index: 2;
    position: relative;
}

.timeline-step .content-box {
    background: white;
    border-radius: 12px;
    padding: 18px;
    margin-top: 15px;
    min-height: 150px;
    border-left: 4px solid #009ffd;
}

.timeline-step h5 {
    margin-bottom: 10px;
}

@media (max-width: 768px) {
    .timeline-horizontal {
        flex-direction: column;
        align-items: center;
    }
    .timeline-track {
        display: none;
    }
    .timeline-step {
        width: 100%;
    }
}
/* Timeline animation starting state */
.timeline-step {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s ease;
}

/* When activated */
.timeline-step.active {
    opacity: 1;
    transform: translateY(0);
}
/* ========== SOCIAL BUTTON OUTLINE STYLES ========== */

/* Facebook */
.btn-outline-facebook {
    color: #1877F2 !important;
    border: 2px solid #1877F2 !important;
}
.btn-outline-facebook:hover {
    background: #1877F2 !important;
    color: #fff !important;
}

/* Instagram */
.btn-outline-instagram {
    color: #E1306C !important;
    border: 2px solid #E1306C !important;
}
.btn-outline-instagram:hover {
    background: #E1306C !important;
    color: #fff !important;
}

/* Twitter (X) */
.btn-outline-x {
    color: #000 !important;
    border: 2px solid #000 !important;
}
.btn-outline-x:hover {
    background: #000 !important;
    color: #fff !important;
}

/* LinkedIn */
.btn-outline-linkedin {
    color: #0A66C2 !important;
    border: 2px solid #0A66C2 !important;
}
.btn-outline-linkedin:hover {
    background: #0A66C2 !important;
    color: #fff !important;
}

/* YouTube */
.btn-outline-youtube {
    color: #FF0000 !important;
    border: 2px solid #FF0000 !important;
}
.btn-outline-youtube:hover {
    background: #FF0000 !important;
    color: #fff !important;
}


 /* ===== DONATE GRID LAYOUT ===== */
        .donate-grid {
            display: grid;
            grid-template-columns: repeat(8, 1fr);
            gap: 20px;
            grid-auto-rows: minmax(250px, auto);
        }

        /* ===== TILE BASE ===== */
        .tile {
            border-radius: 16px;
            transition: all 0.4s ease;
            box-shadow: 0 4px 14px rgba(0, 0, 0, 0.10);
            overflow: hidden;
            padding: 2rem;
            display: flex;
            justify-content: center;
            align-items: center;
            text-align: center;
            flex-direction: column;
			min-height: 260px;
			word-wrap: break-word;
        }
        .tile:hover {
            transform: translateY(-6px);
            box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
        }

        /* === TILE SIZES === */
        .tile-large {
            grid-column: 1 / span 8;
            padding: 3rem;
        }
        .tile-wide {
            grid-column: 1 / span 5;
        }
        .tile-small {
            grid-column: span 3;
        }

        /* ===== GRADIENTS ===== */
        .gradient-sky     { background: linear-gradient(135deg, #00b8ff, #4ed0ff); }
        .gradient-pink    { background: linear-gradient(135deg, #ff6ec7, #ff9edb); }
        .gradient-green   { background: linear-gradient(135deg, #22c55e, #16a34a); }
        .gradient-orange  { background: linear-gradient(135deg, #ff9800, #ffb84d); }
        .gradient-purple  { background: linear-gradient(135deg, #6a11cb, #2575fc); }
        .gradient-softblue{ background: linear-gradient(135deg, #e0f2ff, #f5fcff); }

        /* QUOTE ICON */
        .quote-icon {
            position: absolute;
            top: -10px;
            left: 12px;
            font-size: 5.5rem;
            opacity: 0.15;
            font-family: Georgia, serif;
        }

        /* Bank Logo */
        .bank-logo img {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .bank-logo img:hover {
            transform: scale(1.07);
        }

        /* RESPONSIVE */
        /* ================= DONATE GRID RESPONSIVE FIX ================= */

		/* Desktop (default stays same) */

		/* Tablet */
		@media (max-width: 992px) {
			.donate-grid {
				grid-template-columns: repeat(2, 1fr);
			}

			.tile,
			.tile-large,
			.tile-wide,
			.tile-small {
				grid-column: span 2;   /* each tile takes full row */
			}
		}

		/* Mobile */
		@media (max-width: 576px) {
			.donate-grid {
				grid-template-columns: 1fr;
			}

			.tile,
			.tile-large,
			.tile-wide,
			.tile-small {
				grid-column: span 1;
				min-height: auto;
			}

			.tile img {
				max-width: 100%;
				height: auto;
				object-fit: contain;
			}
		}
