:root {
  --primary-color: #4aa3df;
  --bg-light: #f6fbff;
  --text-dark: #2c2c2c;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-family: "Segoe UI", system-ui, sans-serif;
  color: var(--text-dark);
  background: #fff;
  padding-top: 72px;
}

/* NAVBAR */
.navbar {
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
  transition: transform 0.3s ease;
}

.logo {
  height: 50px;
    width: auto;
    border-radius: 20px;
}
.navbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.navbar-brand .logo, .navbar .logo { margin-right: 10px; }
.navbar.hide {
  transform: translateY(-100%);
}

.nav-link {
  font-weight: 500;
  margin-left: 12px;
}

/* HERO */
.hero {
  background: linear-gradient(180deg, var(--bg-light), #ffffff);
  padding: 90px 0;
  min-height: calc(100vh - 72px);
  display: flex;
  align-items: center;
}

.hero h1 {
  font-weight: 700;
}

.hero p {
  font-size: 1.05rem;
  max-width: 600px;
}

/* BUTTON */
.btn-primary-custom {
  background: var(--primary-color);
  border: none;
  padding: 10px 26px;
  border-radius: 30px;
  color: #fff;
}

.btn-primary-custom:hover {
  opacity: 0.9;
}

/* SECTIONS */
.section {
  padding: 80px 0;
}

.section-light {
  background: var(--bg-light);
}

/* CARDS */
.soft-card {
  background: #fff;
  border-radius: 14px;
  padding: 30px;
  height: 100%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.05);
  transition: transform 0.25s ease;
}

.soft-card:hover {
  transform: translateY(-4px);
}

/* GALLERY */
.gallery-img {
  border-radius: 14px;
  height: 235px;
  width: 100%;
  object-fit: cover;
}

/* DONATION */
.qr-box {
  width: 170px;
  height: 170px;
  border-radius: 14px;
  border: 2px dashed var(--primary-color);
  display: flex;
  align-items: center;
  justify-content: center;
}

.map{
    border-radius: 25px;
    height: 300px;
    border: none;
}


/* FOOTER */
footer {
  background: var(--primary-color);
  color: #fff;
  font-size: 0.9rem;
}

main {
  flex: 1 0 auto;
}

/* SKIP LINK */
.visually-hidden-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 10px;
  padding: 10px;
  background: #000;
  color: #fff;
  z-index: 10000;
}

/* WHATSAPP */
.whatsapp-float {
  position:fixed;
  bottom:20px;
  right:20px;
  font-size:24px;
  background:#25D366;
  color:#fff;
  width:50px;
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  text-decoration:none;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  z-index: 1000;
}

@media (min-width: 768px) {
  .whatsapp-float {
    bottom:50px;
    right:50px;
    font-size:28px;
    width:55px;
    height:55px;
  }
}


.contdet {
    font-size: 1.5rem;
    text-decoration: none;
    color: var(--secondary-color);
    font-weight: 600;
    transition: all 0.3s ease, font-size 0.3s;
}

@media (min-width: 768px) {
    .contdet {
        width: 50%;
    }
}


.contdet:hover {
    color: var(--base-color);
    font-size: 1.9rem;
    font-weight: 800;
    cursor: pointer;
   transition: 0.6s!important;
    transform: scale(1.2)!important;

}

/* Modern gallery styles */
.gallery-grid {
  width: 100%;
}
.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  display: block;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(12,12,15,0.06);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.gallery-item {
  aspect-ratio: 4 / 3;
}
.gallery-item:focus {
  outline: 3px solid rgba(74,163,223,0.25);
  outline-offset: 6px;
}
.gallery-item:hover {
  transform: translateY(-6px) scale(1.02);
  box-shadow: 0 18px 40px rgba(12,12,15,0.08);
}
.gallery-item::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.28) 100%);
  pointer-events: none;
}
.gallery-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.gallery-item:hover .gallery-img {
  transform: scale(1.06);
}
.lb-caption {
  color: #fff;
  margin-top: 12px;
  font-size: 0.95rem;
  text-align: center;
}

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(10,10,12,0.7);
  z-index: 2000;
  padding: 24px;
}
.lightbox[aria-hidden="false"] { display: flex; }
.lb-content { max-width: 1100px; width: 100%; text-align: center; }
.lb-content img { max-width: 100%; max-height: 78vh; border-radius: 12px; box-shadow: 0 18px 40px rgba(0,0,0,0.6); }
.lb-close, .lb-prev, .lb-next {
  position: absolute;
  background: transparent;
  color: #fff;
  border: none;
  font-size: 28px;
  padding: 10px 14px;
  cursor: pointer;
}
.lb-close { top: 22px; right: 28px; font-size: 34px; }
.lb-prev { left: 18px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 18px; top: 50%; transform: translateY(-50%); }
.lb-close:focus, .lb-prev:focus, .lb-next:focus { outline: 3px solid rgba(74,163,223,0.25); }

@media (max-width: 575px) {
  .gallery-img { height: 160px; }
  .lb-close { right: 12px; }
}

/* Make prev/next large and touch-friendly on small screens */
@media (max-width: 767px) {
  .lb-prev, .lb-next {
    background: rgba(0,0,0,0.35);
    width: 62px;
    height: 62px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    padding: 0;
    box-shadow: 0 8px 20px rgba(0,0,0,0.35);
    /* backdrop-filter: blur(4px); */
  }
  .lb-prev { left: 12px; }
  .lb-next { right: 12px; }
  .lb-prev::after, .lb-next::after { display: none; }

  /* Make the hit area slightly larger than visible control */
  .lb-prev, .lb-next { touch-action: manipulation; }
}

/* Add an invisible wide zone over the image for easy tapping */
.lb-content { position: relative; }
.lb-touch-zone {
  position: absolute; inset: 0; display: flex; z-index: 5;
}
.lb-touch-zone > div { flex: 1; }
.lb-touch-hint { pointer-events: none; }



/* Home Slider */
.home-slider {
  margin-top: 0;
}

/* Make carousel items a centered flex container so images can scale
   to fit vertically without being cropped top/bottom on wide screens */
.home-slider .carousel-item {
  height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  position: relative;
}

.home-slider .carousel-item img { display: none; }

/* overlay for better caption contrast */
.home-slider .slide-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.45) 60%);
  z-index: 1;
}

.home-slider .carousel-caption {
  position: relative; z-index: 2; bottom: 20%;
  text-align: left;
}
.home-slider .carousel-caption h2 {
  font-size: 2rem; font-weight: 700; color: #fff; text-shadow: 0 4px 18px rgba(0,0,0,0.45);
}
.home-slider .carousel-caption p { color: rgba(255,255,255,0.92); font-size: 1rem; }

/* Ken Burns subtle zoom */
.home-slider .carousel-item { transform-origin: center center; }
.home-slider .carousel-item.active,
.home-slider .carousel-item-next,
.home-slider .carousel-item-prev { animation: kenburns 12s ease-in-out infinite; }
@keyframes kenburns {
  0% { transform: scale(1); }
  50% { transform: scale(1.06); }
  100% { transform: scale(1); }
}

/* Mobile adjustments: reduce carousel height for small screens */
@media (max-width: 768px) {
  .home-slider .carousel-item { height: 45vh; }
  .home-slider .carousel-item img { max-height: 100%; }
  .home-slider {
    margin-top: 0px;
    margin-bottom: auto;
  }
}

/* Per-slide focal adjustments to prevent cropping of important areas */
.home-slider .carousel-item.slide-1 { background-position: center 35%; }
.home-slider .carousel-item.slide-2 { background-position: center 28%; }
.home-slider .carousel-item.slide-3 { background-position: center 28%; }
.home-slider .carousel-item.slide-4 { background-position: center 22%; }
.home-slider .carousel-item.slide-5 { background-position: center 30%; }
.home-slider .carousel-item.slide-6 { background-position: center 32%; }
.home-slider .carousel-item.slide-6 { background-position: center 22%; }
