:root{
  --bg:#062e22;
  --bg2:#041f16;
  --card:rgba(255,255,255,.06);
  --line:rgba(255,255,255,.14);
  --text:#eafff6;
  --muted:rgba(234,255,246,.72);
  --green:#22c55e;
  --green2:#16a34a;
  --red:#e53935;
  --shadow: 0 18px 60px rgba(0,0,0,.35);
  --radius: 22px;
}

html,body{ height:100%; }
body{
  font-family: Inter, "Noto Sans Bengali", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(900px 500px at 15% 15%, rgba(34,197,94,.18), transparent 55%),
    radial-gradient(700px 420px at 85% 20%, rgba(229,57,53,.14), transparent 55%),
    linear-gradient(180deg, var(--bg), var(--bg2));
  color: var(--text);
}

.text-white-75{ color: var(--muted)!important; }
.fw-800{ font-weight: 800; }

.topbar{
  background: rgba(255,255,255,.04);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(10px);
}

.toplink{ color: var(--text); text-decoration:none; opacity:.9; }
.toplink:hover{ opacity:1; text-decoration:underline; }

.pill{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background: rgba(255,255,255,.04);
}
.dot{
  width:10px;height:10px;border-radius:50%;
  background: var(--green);
  box-shadow: 0 0 0 6px rgba(34,197,94,.12);
  display:inline-block;
  animation:pulse 1.6s infinite ease-in-out;
}
@keyframes pulse{ 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.18);opacity:.7} }

.btn-facebook{
  background:#1877f2!important;
  border-color: rgba(24,119,242,.35)!important;
  color:#fff!important;
  font-weight:800;
  border-radius: 14px;
}

.lang-toggle{
  display:inline-flex;
  border:1px solid var(--line);
  border-radius: 14px;
  overflow:hidden;
  background: rgba(255,255,255,.04);
}
.lang-btn{
  border:0;
  padding:8px 12px;
  color: var(--text);
  background: transparent;
  font-weight: 800;
  cursor:pointer;
}
.lang-btn.active{
  background: rgba(34,197,94,.16);
}

.site-nav{
  background: rgba(3,20,14,.7);
  border-bottom:1px solid var(--line);
  backdrop-filter: blur(10px);
}
.navbar-brand .brand-mark{
  width:38px;height:38px;border-radius:12px;
  display:grid; place-items:center;
  background: linear-gradient(135deg, rgba(229,57,53,.95), rgba(229,57,53,.55));
  font-weight:900;
}
.brand-title{ font-weight:900; line-height:1; }
.brand-sub{ font-size:12px; color: var(--muted); margin-top:2px; }
.nav-link{ color: rgba(255,255,255,.82)!important; font-weight:700; }
.nav-link:hover{ color:#fff!important; }

.hero{
  position:relative;
  padding: 64px 0 40px;
}
.hero-badge{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  width: fit-content;
}

.hero-mini{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:10px;
}
@media (max-width: 992px){
  .hero-mini{ grid-template-columns: 1fr; }
}
.mini-card{
  border:1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.04);
  padding: 14px;
}
.mini-kicker{ color: var(--muted); font-size: 12px; text-transform:uppercase; letter-spacing:.12em; }
.mini-value{ font-weight:900; font-size:16px; margin-top:6px; }
.mini-sub{ color: var(--muted); font-size: 13px; margin-top:2px; }

.slider-card{
  position:relative;
  border-radius: var(--radius);
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.slide-img{
  width:100%;
  height: 430px;
  object-fit: cover;
  display:block;
}
@media (max-width: 992px){
  .slide-img{ height: 360px; }
}
.slider-overlay{
  position:absolute;
  left:14px; right:14px; bottom:14px;
  background: rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(10px);
  border-radius: 18px;
  padding: 12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.overlay-title{ font-weight: 800; }
.overlay-link{ color:#fff; text-decoration:none; font-weight: 800; }
.overlay-link:hover{ text-decoration: underline; }

.swiper-button-prev, .swiper-button-next{
  color: #fff !important;
}
.swiper-pagination-bullet{ background: rgba(255,255,255,.65)!important; }
.swiper-pagination-bullet-active{ background: #fff!important; }

.hero-wave{
  height: 44px;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.04));
  margin-top: 40px;
}

.section{
  padding: 70px 0;
}
.section-alt{
  background: rgba(255,255,255,.03);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.section-kicker{
  display:flex;
  align-items:center;
  gap:10px;
  color: rgba(234,255,246,.82);
  font-weight: 900;
  letter-spacing: .18em;
  font-size: 12px;
  text-transform: uppercase;
}
.section-kicker::before{
  content:"";
  width:18px; height:2px;
  background: var(--green);
  border-radius: 999px;
}
.section-title{
  font-weight: 900;
  letter-spacing: -.02em;
}

.photo-frame{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  padding: 12px;
  box-shadow: var(--shadow);
}
.photo-frame img{
  width:100%;
  display:block;
  border-radius: 18px;
  border: 3px solid rgba(255,255,255,.85);
}

.info-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}
@media (max-width: 576px){
  .info-grid{ grid-template-columns: 1fr; }
}
.info-item{
  border:1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.04);
  padding: 14px;
}
.info-label{
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 800;
}
.info-value{
  margin-top: 6px;
  font-weight: 900;
}
.info-value a{ color:#fff; text-decoration: none; }
.info-value a:hover{ text-decoration: underline; }

.soft-alert{
  border: 1px solid var(--line);
  background: rgba(34,197,94,.08);
  color: #fff;
  border-radius: 18px;
}

.stat-card{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(229,57,53,.14), rgba(255,255,255,.04));
  box-shadow: var(--shadow);
  overflow:hidden;
}
.stat-head{ padding: 18px 18px 10px; }
.stat-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  padding: 0 18px 10px;
}
.stat{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.18);
  border-radius: 18px;
  padding: 14px;
}
.stat-num{
  font-weight: 900;
  font-size: 26px;
}
.stat-label{ color: var(--muted); font-weight: 800; font-size: 12px; margin-top: 4px; }
.stat-foot{ padding: 10px 18px 18px; }

.icon-card{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  padding: 20px;
  height: 100%;
  box-shadow: 0 10px 40px rgba(0,0,0,.18);
}
.icon{
  width:44px;height:44px;border-radius:16px;
  display:grid;place-items:center;
  background: rgba(34,197,94,.14);
  border: 1px solid rgba(34,197,94,.22);
  font-size: 20px;
  margin-bottom: 12px;
}

.media-card{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  overflow:hidden;
  box-shadow: var(--shadow);
}
.list-group-item{
  background: transparent!important;
  border-color: rgba(255,255,255,.12)!important;
  color: #fff!important;
}
.list-group-item:hover{
  background: rgba(255,255,255,.06)!important;
}

.gallery-thumb{
  width:100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 18px;
  border: 1px solid var(--line);
  box-shadow: 0 12px 40px rgba(0,0,0,.2);
}

.contact-card{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  padding: 18px;
  box-shadow: var(--shadow);
}
.contact-icon{
  width:44px;height:44px;border-radius:16px;
  display:grid;place-items:center;
  background: rgba(229,57,53,.18);
  border: 1px solid rgba(229,57,53,.25);
  font-size: 18px;
}

.form-card{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  padding: 18px;
  box-shadow: var(--shadow);
}
.form-control{
  background: rgba(0,0,0,.18)!important;
  border-color: rgba(255,255,255,.14)!important;
  color:#fff!important;
  border-radius: 14px!important;
}
.form-control::placeholder{ color: rgba(255,255,255,.55); }
.form-label{ font-weight: 800; color: rgba(255,255,255,.85); }

.toast-msg{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(34,197,94,.25);
  background: rgba(34,197,94,.10);
  color:#fff;
}

.site-footer{
  border-top: 1px solid var(--line);
  background: rgba(0,0,0,.18);
}
.footer-link{ color: rgba(234,255,246,.78); text-decoration:none; font-weight:800; }
.footer-link:hover{ color:#fff; text-decoration: underline; }


/* ===== Manifesto / Promises ===== */
.promise-card{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  padding: 20px;
  height: 100%;
  box-shadow: 0 10px 40px rgba(0,0,0,.18);
}
.promise-icon{
  width:46px;height:46px;border-radius:16px;
  display:grid; place-items:center;
  background: rgba(229,57,53,.16);
  border: 1px solid rgba(229,57,53,.22);
  font-size: 20px;
  margin-bottom: 12px;
}
.promise-list{
  margin:0;
  padding-left: 18px;
  color: var(--muted);
  line-height: 1.65;
}
.promise-list li{
  margin-bottom: 8px;
}

/* ===== Unions / Map ===== */
.map-card, .union-card{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  overflow:hidden;
  box-shadow: var(--shadow);
}
.map-head{
  padding: 16px 18px 10px;
}
.map-foot{
  padding: 10px 18px 16px;
  border-top: 1px solid rgba(255,255,255,.10);
}
.union-card{
  padding: 18px;
}
.union-search .input-group-text,
.news-search .input-group-text{
  background: rgba(0,0,0,.22)!important;
  border-color: rgba(255,255,255,.14)!important;
  color:#fff!important;
  border-top-left-radius: 14px!important;
  border-bottom-left-radius: 14px!important;
}
.union-search .form-control,
.news-search .form-control{
  border-top-right-radius: 14px!important;
  border-bottom-right-radius: 14px!important;
}

/* Accordion overrides */
.accordion-item{
  background: transparent!important;
  border-color: rgba(255,255,255,.12)!important;
}
.accordion-button{
  background: rgba(0,0,0,.14)!important;
  color:#fff!important;
  border-radius: 14px!important;
  margin-bottom: 10px;
  border: 1px solid rgba(255,255,255,.12)!important;
  font-weight: 800;
}
.accordion-button:not(.collapsed){
  box-shadow: none!important;
  border-color: rgba(34,197,94,.22)!important;
}
.accordion-body{
  color: rgba(234,255,246,.78);
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 14px;
  margin: -6px 0 12px;
}
.union-tags{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-top: 10px;
}
.tag{
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.04);
  font-weight: 800;
  font-size: 12px;
  color: rgba(234,255,246,.78);
}

/* ===== News ===== */
.news-card{
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  overflow:hidden;
  box-shadow: 0 12px 45px rgba(0,0,0,.22);
  height:100%;
}
.news-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  color: rgba(234,255,246,.72);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.news-body{
  padding: 16px 18px;
}
.news-title{
  font-weight: 900;
  margin: 10px 0 8px;
}
.news-excerpt{
  color: rgba(234,255,246,.75);
  line-height: 1.65;
  margin:0;
}
.news-actions{
  display:flex; flex-wrap:wrap; gap:10px;
  margin-top: 14px;
}
.news-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(34,197,94,.22);
  background: rgba(34,197,94,.10);
  font-weight: 900;
  font-size: 12px;
  color:#fff;
}


/* ===== Slider responsiveness (show full image, keep aspect) ===== */
.slider,
.hero-slider,
.carousel,
.slider-wrap{
  width: 100%;
}

.slide-img,
.slider img,
.hero-slider img,
.carousel-item img{
  width: 100%;
  height: 100%;
  object-fit: contain; /* show full image */
  background: rgba(0,0,0,.18);
}

.slider-frame,
.hero-visual,
.slider-card{
  height: clamp(240px, 42vw, 520px);
}

@media (max-width: 576px){
  .slider-frame,
  .hero-visual,
  .slider-card{
    height: 260px;
  }
}


/* ===== Global text contrast fix ===== */
body{
  color: #eafff6;
}
p, li, .lead, .text-muted{
  color: rgba(234,255,246,.78) !important;
}
h1,h2,h3,h4,h5,h6,.section-title,.navbar .nav-link{
  color:#ffffff;
}
.small, .text-secondary{
  color: rgba(234,255,246,.72) !important;
}


/* ===== Slider bottom clipping fix ===== */
.slider-card{ padding-bottom: 38px; } /* space for pagination */
.heroSwiper{ width:100%; height:auto; }
.heroSwiper .swiper-wrapper{ height:auto; }
.heroSwiper .swiper-slide{ height:auto; display:flex; align-items:center; justify-content:center; }
.slide-img{
  height: auto !important;
  max-height: 520px;
  width: 100%;
  object-fit: contain !important;
  padding: 10px 10px 0;
}
@media (max-width: 576px){
  .slide-img{ max-height: 320px; padding: 8px 8px 0; }
  .slider-card{ padding-bottom: 44px; }
}
.heroSwiper .swiper-pagination{
  bottom: 10px !important;
}
