/*
 * nst-improvements.css — v4
 * Drop in assets/css/ and link from each page <head>
 */

/* ─── 1. BODY / NAVBAR OVERLAP FIX ──────────────────────── */
body { padding-top: 80px !important; }

/* ─── 2. NAVBAR ──────────────────────────────────────────── */
.navbar.fixed-top {
  box-shadow: 0 2px 12px rgba(0,0,0,0.09) !important;
}
.navbar .nav-link {
  font-size: 0.88rem; font-weight: 600;
  color: #334155 !important;
  padding: 6px 12px !important;
  border-radius: 6px;
  transition: background 0.2s, color 0.2s;
}
.navbar .nav-link:hover  { background: #f0fdfa; color: #0d9488 !important; }
.navbar .nav-link.nst-active {
  color: #0d9488 !important; background: #f0fdfa;
  border-bottom: 2px solid #0d9488;
}

/* ─── 3. HERO (index.html) — keep original layout, just recolour */
.jumbotron.hero-technology {
  height: 414px;
  background: linear-gradient(135deg, #0a1929 0%, #0f2d40 60%, #0d4a3a 100%) !important;
  border-radius: 0 !important;
  margin-bottom: 0 !important;
  position: relative;
}
.jumbotron.hero-technology .hero-title  { color: #e6f1ff !important; }
.jumbotron.hero-technology .hero-subtitle {
  color: rgba(255,255,255,0.82) !important;
  background-color: transparent !important;
}

/* ─── 4. SECTION HEADINGS — teal underline ───────────────── */
.container h2.text-center,
.intro h2.text-center,
h3.text-center {
  position: relative;
  padding-bottom: 14px;
  margin-bottom: 24px !important;
}
.container h2.text-center::after,
.intro h2.text-center::after,
h3.text-center::after {
  content: '';
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 48px; height: 3px;
  background: #0d9488; border-radius: 2px;
}

/* ─── 5. RESEARCH FEATURE CARDS (index.html) ────────────── */
.features-clean .item {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
  padding: 28px 20px !important; margin-bottom: 20px;
  transition: box-shadow 0.25s, transform 0.25s;
}
.features-clean .item:hover { box-shadow: 0 8px 28px rgba(0,0,0,0.09); transform: translateY(-3px); }
.features-clean .item i.icon { color: #0d9488 !important; font-size: 2rem !important; margin-bottom: 12px; }
.features-clean .item h3.name { font-size: 1rem !important; font-weight: 700; color: #1e293b; margin-bottom: 6px !important; }
.features-clean .item p.description { font-size: 0.88rem; color: #64748b; margin-bottom: 0; }

/* ─── 6. GROUP INTRO (index.html) ────────────────────────── */
.container .Group-Intro { padding: 40px 0 24px; }
.container .Group-Intro p { font-size: 0.97rem; line-height: 1.8; color: #334155; }

/* ─── 7. MEMBER CARDS (People.html) ─────────────────────── */
.team4 .row > .col-lg-3 > .row {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
  padding: 20px 12px !important;
  transition: box-shadow 0.25s, transform 0.25s;
}
.team4 .row > .col-lg-3 > .row:hover { box-shadow: 0 8px 28px rgba(0,0,0,0.10); transform: translateY(-3px); }
.team4 p:empty, .team4 p { display: none; }
.team4 .subtitle { display: block !important; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 1.2px; color: #0d9488; font-weight: 700; }
.team4 h5 { font-size: 0.97rem !important; color: #1e293b; font-weight: 700 !important; }
.team4 img.rounded-circle { border: 3px solid #ccfbf1 !important; padding: 3px; background: #f0fdfa; }

/* ─── 8. ALUMNI LIST (People.html) ──────────────────────── */
.container .row .col-md-6 ul { list-style: none; padding-left: 0 !important; }
.container .row .col-md-6 ul li {
  background: #f8fafc; border: 1px solid #e2e8f0;
  border-left: 3px solid #0d9488; border-radius: 0 8px 8px 0;
  padding: 10px 16px; margin-bottom: 8px; transition: background 0.2s;
}
.container .row .col-md-6 ul li:hover { background: #f0fdfa; }
.container .row .col-md-6 ul li h6 { font-size: 0.9rem; font-weight: 700; color: #1e293b; margin-bottom: 2px !important; }
.container .row .col-md-6 ul li p { font-size: 0.82rem; color: #64748b; margin-bottom: 0 !important; display: block !important; }

/* ─── 9. STUDENT AREA — ul.labels-list lecture rows ─────────
   Only targets <ul> (student/PI pages), NOT <ol> (publications) */
.container ul.labels-list { list-style: none; padding-left: 0 !important; }
.container ul.labels-list > li {
  display: flex; align-items: flex-start; gap: 8px;
  background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px;
  padding: 12px 18px !important; margin-bottom: 8px;
  font-size: 0.93rem; color: #334155;
  transition: background 0.2s, border-color 0.2s;
}
.container ul.labels-list > li:hover { background: #f0fdfa; border-color: #0d9488; }
.container ul.labels-list > li a { color: #0d9488; font-weight: 600; }
.container ul.labels-list > li a:hover { color: #0f766e; text-decoration: underline; }
.container ul.labels-list > li::before { content: '📄'; flex-shrink: 0; font-size: 1rem; }

/* ─── 10. PI PAGE — nested ul (drkawsar.html) ────────────── */
/* Outer section-header li */
.container ul.labels-list > li {
  background: none; border: none; border-radius: 0;
  padding: 0 0 18px 0 !important; display: block;
}
.container ul.labels-list > li::before { display: none; }
/* Inner nested ul */
.container ul.labels-list > li > ul { list-style: none; padding-left: 0 !important; margin: 10px 0 0 0; }
.container ul.labels-list > li > ul > li {
  display: flex !important; align-items: flex-start; gap: 10px;
  background: #f8fafc; border: 1px solid #e2e8f0;
  border-left: 3px solid #0d9488; border-radius: 0 8px 8px 0;
  padding: 11px 16px !important; margin-bottom: 8px;
  font-size: 0.93rem; color: #334155; line-height: 1.6;
}
.container ul.labels-list > li > ul > li::before { display: none !important; }
.container ul.labels-list > li > ul > li:hover { background: #f0fdfa; border-color: #0d9488; }

/* ─── 11. PUBLICATIONS — ol.labels-list ─────────────────────
   IMPORTANT: Do NOT touch counter-increment or ::before here.
   mystyle.css already handles the reverse counter display.
   We ONLY add visual card styling on top.                    */
.container ol.labels-list { padding-left: 0 !important; }
.container ol.labels-list > li {
  /* Keep as list-item so mystyle.css counter ::before still renders */
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-left: 3px solid #0d9488;
  border-radius: 0 8px 8px 0;
  padding: 12px 16px 12px 8px !important;
  margin-bottom: 10px;
  transition: background 0.2s, border-color 0.2s;
}
.container ol.labels-list > li:hover { background: #f0fdfa; border-color: #0d9488; }
.container ol.labels-list > li a { color: #0d9488; font-weight: 600; }
.container ol.labels-list > li a:hover { color: #0f766e; text-decoration: underline; }

/* Spacing above each pub section heading */
.container h3.text-center { margin-top: 48px !important; }

/* ─── 12. FOOTER ─────────────────────────────────────────── */
.footer-basic footer {
  background: #0a1929 !important; border: none !important;
  border-radius: 0 !important; padding: 32px 20px !important;
}
.footer-basic footer .social a,
.footer-basic footer ul.list-inline a { color: rgba(255,255,255,0.55) !important; transition: color 0.2s; }
.footer-basic footer .social a:hover,
.footer-basic footer ul.list-inline a:hover { color: #5eead4 !important; }
.footer-basic footer p.copyright { color: rgba(255,255,255,0.4) !important; font-size: 0.82rem; }
.footer-basic footer p.copyright img { filter: brightness(0) invert(1) opacity(0.5); }

/* ─── 13. CONTACT PAGE ───────────────────────────────────── */
#contact-section .col-md-4 { padding: 24px 16px !important; }
#contact-section iframe { border-radius: 10px; border: 1px solid #e2e8f0 !important; }

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 768px) {
  .team4 .row > .col-lg-3 { margin-bottom: 16px; }
}

/* ─── 14. FONT FIX — remove Times New Roman ─────────────────
   Some elements fall back to browser default serif (Times New
   Roman) because no font-family is set on them. Force Source
   Sans Pro (already loaded) everywhere.                      */

body, .container, .container *,
ol.labels-list, ol.labels-list li,
ul.labels-list, ul.labels-list li,
h1, h2, h3, h4, h5, h6,
p, a, td, th, blockquote,
.projects-horizontal, .projects-horizontal *,
.features-clean, .features-clean * {
  font-family: 'Source Sans Pro', sans-serif !important;
}

/* Keep bold/italic semantic meaning intact */
strong, b { font-weight: 700; }
em, i     { font-style: italic; }

/* ─── 15. FONT SIZE INCREASE ─────────────────────────────────
   Bump body base from Bootstrap's 14px up to 16px, and scale
   all the small text proportionally.                         */

body {
  font-size: 16px !important;
  line-height: 1.75 !important;
}

/* Publication & PI list items */
.container ol.labels-list > li,
.container ul.labels-list > li > ul > li { font-size: 1rem !important; }

/* Student lecture rows */
.container ul.labels-list > li { font-size: 1rem !important; }

/* Alumni items */
.container .row .col-md-6 ul li { font-size: 0.95rem !important; }
.container .row .col-md-6 ul li p { font-size: 0.9rem !important; }

/* Research feature cards */
.features-clean .item h3.name  { font-size: 1.05rem !important; }
.features-clean .item p.description { font-size: 0.95rem !important; }

/* Group intro paragraph */
.container .Group-Intro p { font-size: 1.02rem !important; }

/* Featured article titles and descriptions */
.projects-horizontal h3.name { font-size: 1rem !important; }
.projects-horizontal p.description { font-size: 0.95rem !important; }

/* Nav links slightly bigger */
.navbar .nav-link { font-size: 0.93rem !important; }

/* ─── 16. FIX: PI page inner list — remove flex, use block ──
   display:flex was splitting <strong>Title</strong>, rest of
   sentence into separate columns. Block flow keeps it inline. */
.container ul.labels-list > li > ul > li {
  display: block !important;
  line-height: 1.7 !important;
}

/* ─── 17. FIX: Restore icon fonts — exempt from Source Sans Pro
   Rule 14 applied font-family to ALL elements including <i> tags,
   which broke Material Icons, Ionicons, FontAwesome, Line Awesome
   (they all render glyphs via their own font-family).           */
i,
i.material-icons,
i[class^="ion-"],
i[class*=" ion-"],
i[class^="la "],
i[class*=" la-"],
i[class^="fa"],
i[class*=" fa-"],
i[class^="icon "],
i[class*=" icon-"],
.material-icons {
  font-family: inherit !important; /* let each icon CSS set its own font */
  font-family: unset !important;
}

/* Re-apply each icon font explicitly */
i.material-icons,
.material-icons        { font-family: 'Material Icons' !important; }
i[class^="ion-"],
i[class*=" ion-"]      { font-family: 'Ionicons' !important; }
i[class^="la"],
i[class*=" la-"]       { font-family: 'Line Awesome Free', 'Line Awesome Brands' !important; }
i[class^="fa"],
i[class*=" fa-"],
i[class^="far"],
i[class^="fas"]        { font-family: 'Font Awesome 5 Free', 'Font Awesome 5 Brands' !important; }

/* ─── 18. FIX: Research feature card icons on mobile ─────────
   Original Features-Clean.css floats/positions icons in a way
   that overflows outside the card border we added. Contain them. */
.features-clean .item {
  position: relative;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.features-clean .item i.icon {
  position: static !important;
  float: none !important;
  display: block !important;
  margin: 0 0 12px 0 !important;
  font-size: 2rem !important;
  color: #0d9488 !important;
}

/* ─── 19. FONT SIZE — bigger bump ────────────────────────────
   Previous increase wasn't enough. Pushing base to 17px and
   scaling all content text up proportionally.               */
body {
  font-size: 17px !important;
  line-height: 1.8 !important;
}

/* Main content text */
.container p,
.container li,
.container ol.labels-list > li,
.container ul.labels-list > li > ul > li,
.container .labels-list > li              { font-size: 1rem !important; }

/* Publication list */
.container ol.labels-list > li           { font-size: 1.02rem !important; }

/* Group intro paragraph */
.container .Group-Intro p                { font-size: 1.05rem !important; }

/* Research feature cards */
.features-clean .item h3.name            { font-size: 1.1rem !important; }
.features-clean .item p.description      { font-size: 1rem !important; }

/* Featured article titles */
.projects-horizontal h3.name             { font-size: 1.05rem !important; }
.projects-horizontal p.description       { font-size: 1rem !important; }

/* Section headings */
.container h2, .intro h2                 { font-size: 1.75rem !important; }
.container h3                            { font-size: 1.35rem !important; }
.container h4                            { font-size: 1.15rem !important; }

/* Alumni */
.container .row .col-md-6 ul li         { font-size: 1rem !important; }
.container .row .col-md-6 ul li p       { font-size: 0.95rem !important; }

/* Nav */
.navbar .nav-link                        { font-size: 0.97rem !important; }

/* ─── 20. LINE HEIGHT TIGHTENING ─────────────────────────────
   Bring line-height closer to ResearchGate's ~1.6 feel.
   Also add size hierarchy to publication entries.            */

body {
  line-height: 1.62 !important;
}

/* General content */
.container p,
.container li { line-height: 1.62 !important; }

/* Publication list — tighter, more journal-like */
.container ol.labels-list > li {
  line-height: 1.58 !important;
}

/* Slightly smaller metadata inside pub entries
   (journal name, volume, year — the italic/em parts) */
.container ol.labels-list > li em {
  font-size: 0.93rem !important;
  color: #555 !important;
}

/* PI page inner list */
.container ul.labels-list > li > ul > li {
  line-height: 1.6 !important;
}

/* Group intro */
.container .Group-Intro p { line-height: 1.65 !important; }

/* Feature card descriptions */
.features-clean .item p.description { line-height: 1.55 !important; }

/* ─── 21. FOOTER CANVAS — content above canvas ───────────── */
.footer-basic footer .social,
.footer-basic footer ul.list-inline,
.footer-basic footer p.copyright {
  position: relative;
  z-index: 2;
}

/* ─── 22. FEATURED ARTICLES — card treatment ─────────────────
   Wraps each .projects-horizontal .item in a clean card with
   journal image, hover lift, and teal accent on hover.       */

.projects-horizontal .row.projects {
  gap: 20px 0;
}

.projects-horizontal .col-sm-6.item {
  padding: 10px 12px !important;
}

.projects-horizontal .col-sm-6.item > .row {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  height: 100%;
  margin: 0 !important;
  transition: box-shadow 0.25s, transform 0.25s, border-color 0.25s;
}

.projects-horizontal .col-sm-6.item > .row:hover {
  box-shadow: 0 8px 28px rgba(0,0,0,0.10);
  transform: translateY(-4px);
  border-color: #0d9488;
}

/* Journal cover image — dark background, contained */
.projects-horizontal .col-sm-6.item .col-md-12.col-lg-5 {
  background: #0a1929;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px !important;
  min-height: 130px;
}

.projects-horizontal .col-sm-6.item .col-md-12.col-lg-5 img {
  max-height: 100px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Text side */
.projects-horizontal .col-sm-6.item .col {
  padding: 16px 18px !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Article title */
.projects-horizontal .col-sm-6.item h3.name {
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
  margin-bottom: 10px !important;
  font-weight: 600;
}

.projects-horizontal .col-sm-6.item h3.name a {
  color: #1e293b !important;
  text-decoration: none;
}

.projects-horizontal .col-sm-6.item h3.name a:hover {
  color: #0d9488 !important;
}

/* Journal metadata */
.projects-horizontal .col-sm-6.item p.description {
  font-size: 0.85rem !important;
  color: #64748b !important;
  margin-bottom: 0 !important;
  line-height: 1.5 !important;
}

/* Teal left accent bar on hover */
.projects-horizontal .col-sm-6.item > .row::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: #0d9488;
  border-radius: 12px 0 0 12px;
  opacity: 0;
  transition: opacity 0.25s;
}
.projects-horizontal .col-sm-6.item > .row {
  position: relative;
}
.projects-horizontal .col-sm-6.item > .row:hover::before {
  opacity: 1;
}

/* ─── 23. FEATURED ARTICLES — light slate image background ── */
.projects-horizontal .col-sm-6.item .col-md-12.col-lg-5 {
  background: #f1f5f9 !important;
}

/* ─── 24. FEATURED ARTICLES — portrait aspect ratio for cover ─
   Journal covers are tall/portrait (~2:3). Remove fixed square
   height and let images show at their natural proportions.    */
.projects-horizontal .col-sm-6.item .col-md-12.col-lg-5 {
  min-height: unset !important;
  padding: 12px !important;
  align-items: stretch !important;
}
.projects-horizontal .col-sm-6.item .col-md-12.col-lg-5 img {
  max-height: unset !important;
  width: 100% !important;
  max-width: 120px !important;
  height: auto !important;
  aspect-ratio: 3 / 4;
  object-fit: cover !important;
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.13);
}

/* ─── 25. STUDENT AREA — lecture handout cards ───────────────
   2-column card grid. Each li is a download card.
   The "# " text node can't be hidden via CSS so we make it
   tiny and use the card shape + icon to carry the visual weight */

/* 2-column grid for lecture lists */
.container ul.labels-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 10px !important;
  padding-left: 0 !important;
  list-style: none !important;
}

/* Each lecture card */
.container ul.labels-list > li {
  display: block !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  padding: 0 !important;
  margin-bottom: 0 !important;
  overflow: hidden;
  transition: box-shadow 0.22s, transform 0.22s, border-color 0.22s;
  position: relative;
}

.container ul.labels-list > li:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.09) !important;
  transform: translateY(-3px);
  border-color: #0d9488 !important;
  background: #f0fdfa !important;
}

/* Teal left accent bar */
.container ul.labels-list > li::before {
  content: '' !important;
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: #0d9488;
  border-radius: 10px 0 0 10px;
  font-size: 0 !important;
}

/* Inner link — main clickable area, full card */
.container ul.labels-list > li a {
  display: flex !important;
  align-items: center;
  gap: 14px;
  padding: 14px 18px 14px 20px !important;
  text-decoration: none !important;
  color: #1e293b !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  line-height: 1.4 !important;
}

/* PDF icon box left of text */
.container ul.labels-list > li a::before {
  content: '';
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  background: #f0fdfa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E") no-repeat center/18px;
  border: 1px solid #ccfbf1;
  border-radius: 8px;
}

.container ul.labels-list > li a:hover {
  color: #0d9488 !important;
}

/* Download arrow on right */
.container ul.labels-list > li a::after {
  content: '↓';
  margin-left: auto;
  flex-shrink: 0;
  font-size: 1rem;
  color: #94a3b8;
  font-weight: 400;
}
.container ul.labels-list > li:hover a::after {
  color: #0d9488;
}

/* Hide the "#  " prefix text — set li font-size tiny,
   restore on a (already done above) and on topic text */
.container ul.labels-list > li {
  font-size: 0.01px !important;
  color: transparent !important;
}
/* Topic description text (outside <a>) — needs restoring */
.container ul.labels-list > li a strong {
  font-size: 0.95rem !important;
  color: inherit;
}

/* ─── 26. STUDENT AREA — lecture cards REWRITE (overrides #25) ── */

.container ul.labels-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  gap: 10px !important;
  padding-left: 0 !important;
  list-style: none !important;
  margin-bottom: 24px !important;
}

/* Card shell */
.container ul.labels-list > li {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-left: 4px solid #0d9488 !important;
  border-radius: 0 10px 10px 0 !important;
  padding: 0 !important;
  margin-bottom: 0 !important;
  overflow: hidden;
  transition: box-shadow 0.22s, transform 0.22s, border-color 0.22s, background 0.22s;
  font-size: 0 !important;        /* hides the "# " text node */
  color: transparent !important;  /* hides it completely     */
  position: static !important;
}

.container ul.labels-list > li::before {
  display: none !important;
}

.container ul.labels-list > li:hover {
  box-shadow: 0 5px 18px rgba(0,0,0,0.09) !important;
  transform: translateY(-2px) !important;
  border-color: #0d9488 !important;
  background: #f0fdfa !important;
}

/* Link fills the whole card */
.container ul.labels-list > li a {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  padding: 14px 16px !important;
  text-decoration: none !important;
  color: #1e293b !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}

.container ul.labels-list > li a:hover {
  color: #0d9488 !important;
}

/* PDF icon */
.container ul.labels-list > li a::before {
  content: '' !important;
  flex-shrink: 0 !important;
  width: 36px !important;
  height: 36px !important;
  background: #f0fdfa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E") no-repeat center/18px !important;
  border: 1px solid #ccfbf1 !important;
  border-radius: 7px !important;
}

/* Download arrow on right */
.container ul.labels-list > li a::after {
  content: '↓' !important;
  margin-left: auto !important;
  flex-shrink: 0 !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  color: #94a3b8 !important;
}

.container ul.labels-list > li:hover a::after {
  color: #0d9488 !important;
}

/* ─── 27. CONTACT PAGE — styled info cards + map ─────────────*/

/* Section padding & background */
#contact-section {
  padding: 56px 0 0 !important;
  background: #f8fafc !important;
}

/* Heading */
#contact-section h2 {
  color: #1e293b !important;
  font-size: 2rem !important;
  margin-bottom: 40px !important;
}

/* Wrapper row for the 3 cards */
#contact-section .col-md-12.no-padding {
  display: flex !important;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  padding: 0 15px 40px !important;
}

/* Each contact card */
#contact-section .col-md-4 {
  flex: 1 1 240px;
  max-width: 340px;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-top: 3px solid #0d9488 !important;
  border-radius: 0 0 12px 12px !important;
  padding: 28px 24px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 16px !important;
  transition: box-shadow 0.22s, transform 0.22s;
}

#contact-section .col-md-4:hover {
  box-shadow: 0 6px 22px rgba(0,0,0,0.08);
  transform: translateY(-3px);
}

/* Icon container — teal circle */
#contact-section .col-md-4 > .col-md-2,
#contact-section .col-md-4 > .col-md-3 {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px;
  background: #f0fdfa;
  border: 1px solid #ccfbf1;
  border-radius: 50%;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  flex-shrink: 0;
}

/* Icon colour */
#contact-section .ti-location-pin,
#contact-section .ti-email,
#contact-section .ti-mobile {
  color: #0d9488 !important;
  font-size: 1.2rem !important;
}

/* Text side of each card */
#contact-section .col-md-4 > .col-md-10,
#contact-section .col-md-4 > .col-md-9 {
  padding: 0 !important;
  width: auto !important;
}

/* Label above each card */
#contact-section .text-medium.font-weight-600 {
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  color: #94a3b8 !important;
  margin-bottom: 6px !important;
  display: block;
}

/* Address & contact text */
#contact-section .col-md-4 .col-md-10,
#contact-section .col-md-4 .col-md-9 {
  font-size: 0.95rem !important;
  color: #334155 !important;
  line-height: 1.7 !important;
}

#contact-section a.tz-text {
  color: #0d9488 !important;
  display: block;
}
#contact-section a.tz-text:hover {
  color: #0f766e !important;
  text-decoration: underline !important;
}

/* Map — rounded, shadow, full width */
#contact-section .map {
  padding: 0 !important;
  margin: 0 !important;
}

#contact-section iframe {
  width: 100% !important;
  height: 400px !important;
  border: none !important;
  border-radius: 0 !important;
  display: block;
}

/* ─── 28. FIX: Scope lecture cards to students.html only ─────
   Rules 25 & 26 applied font-size:0 / color:transparent to ALL
   ul.labels-list li, breaking the PI page section headers.
   
   Fix: use :has() to target ONLY li items that directly contain
   an <a> (students page), not those with a nested <ul> (PI page).
   
   PI page: ul.labels-list > li:has(> ul)  → section header
   Students: ul.labels-list > li:not(:has(> ul)) → lecture item  */

/* RESTORE PI page outer section headers */
.container ul.labels-list > li:has(> ul) {
  display: block !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 0 18px 0 !important;
  font-size: 1rem !important;
  color: var(--text-body, #334155) !important;
  transform: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.container ul.labels-list > li:has(> ul)::before {
  display: none !important;
}
.container ul.labels-list > li:has(> ul):hover {
  transform: none !important;
  box-shadow: none !important;
  background: none !important;
  border-color: transparent !important;
}

/* SCOPE card styles only to lecture items (direct <a> child) */
.container ul.labels-list > li:not(:has(> ul)) {
  font-size: 0 !important;
  color: transparent !important;
  display: flex !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-left: 4px solid #0d9488 !important;
  border-radius: 0 10px 10px 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transition: box-shadow 0.22s, transform 0.22s, border-color 0.22s, background 0.22s;
}
.container ul.labels-list > li:not(:has(> ul)):hover {
  box-shadow: 0 5px 18px rgba(0,0,0,0.09) !important;
  transform: translateY(-2px) !important;
  border-color: #0d9488 !important;
  background: #f0fdfa !important;
}
.container ul.labels-list > li:not(:has(> ul))::before {
  display: none !important;
}

/* Grid only on ul that contains lecture items */
.container ul.labels-list:has(> li:not(:has(> ul))) {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  gap: 10px !important;
}

/* PI page ul stays as normal block */
.container ul.labels-list:has(> li:has(> ul)) {
  display: block !important;
  grid-template-columns: unset !important;
}

/* ─── 29. FIX: Further scope lecture cards — only li:has(> a) ─
   Rule 28's li:not(:has(>ul)) was still catching the PI bio
   paragraph (no ul, no a → became invisible empty card).
   Use li:has(> a) to target ONLY items with a direct link.   */

/* Restore plain text li (bio paragraph on PI page) */
.container ul.labels-list > li:not(:has(> ul)):not(:has(> a)) {
  display: block !important;
  background: none !important;
  border: none !important;
  border-left: none !important;
  border-radius: 0 !important;
  padding: 0 0 16px 0 !important;
  font-size: 1rem !important;
  color: #334155 !important;
  transform: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.container ul.labels-list > li:not(:has(> ul)):not(:has(> a))::before {
  display: none !important;
}
.container ul.labels-list > li:not(:has(> ul)):not(:has(> a)):hover {
  transform: none !important;
  box-shadow: none !important;
  background: none !important;
}

/* Lecture card styling — ONLY li with direct <a> child */
.container ul.labels-list > li:has(> a) {
  display: flex !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-left: 4px solid #0d9488 !important;
  border-radius: 0 10px 10px 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  font-size: 0 !important;
  color: transparent !important;
  transition: box-shadow 0.22s, transform 0.22s, background 0.22s;
}
.container ul.labels-list > li:has(> a):hover {
  box-shadow: 0 5px 18px rgba(0,0,0,0.09) !important;
  transform: translateY(-2px) !important;
  background: #f0fdfa !important;
  border-color: #0d9488 !important;
}

/* Grid only on ul that has direct-link children */
.container ul.labels-list:has(> li:has(> a)) {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  gap: 10px !important;
}

/* PI page ul — keep as block */
.container ul.labels-list:not(:has(> li:has(> a))) {
  display: block !important;
}

/* ─── 30. FINAL FIX: Page-scoped list rules ──────────────────
   Using body IDs (added to HTML) to cleanly separate PI page
   styles from student lecture card styles. No more :has() fights.
   These rules have highest specificity and override everything. */

/* ── PI PAGE: fully restore ul.labels-list to plain block ── */
#page-pi .container ul.labels-list {
  display: block !important;
  grid-template-columns: unset !important;
  gap: 0 !important;
}
#page-pi .container ul.labels-list > li {
  display: block !important;
  background: none !important;
  border: none !important;
  border-left: none !important;
  border-radius: 0 !important;
  padding: 0 0 18px 0 !important;
  font-size: 1rem !important;
  color: #334155 !important;
  transform: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}
#page-pi .container ul.labels-list > li::before,
#page-pi .container ul.labels-list > li a::before,
#page-pi .container ul.labels-list > li a::after {
  display: none !important;
}
#page-pi .container ul.labels-list > li:hover {
  transform: none !important;
  box-shadow: none !important;
  background: none !important;
}
#page-pi .container ul.labels-list > li a {
  display: inline !important;
  padding: 0 !important;
  width: auto !important;
  font-size: inherit !important;
  color: #0d9488 !important;
  font-weight: 600 !important;
  gap: 0 !important;
}

/* ── STUDENTS PAGE: lecture card grid ── */
#page-students .container ul.labels-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  gap: 10px !important;
  list-style: none !important;
  padding-left: 0 !important;
}
#page-students .container ul.labels-list > li {
  display: flex !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-left: 4px solid #0d9488 !important;
  border-radius: 0 10px 10px 0 !important;
  padding: 0 !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
  font-size: 0 !important;
  color: transparent !important;
  transition: box-shadow 0.22s, transform 0.22s, background 0.22s;
}
#page-students .container ul.labels-list > li:hover {
  box-shadow: 0 5px 18px rgba(0,0,0,0.09) !important;
  transform: translateY(-2px) !important;
  background: #f0fdfa !important;
  border-color: #0d9488 !important;
}
#page-students .container ul.labels-list > li::before {
  display: none !important;
}
#page-students .container ul.labels-list > li a {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  padding: 14px 16px !important;
  text-decoration: none !important;
  color: #1e293b !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}
#page-students .container ul.labels-list > li a:hover {
  color: #0d9488 !important;
}
#page-students .container ul.labels-list > li a::before {
  content: '' !important;
  flex-shrink: 0 !important;
  width: 36px !important;
  height: 36px !important;
  background: #f0fdfa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E") no-repeat center/18px !important;
  border: 1px solid #ccfbf1 !important;
  border-radius: 7px !important;
}
#page-students .container ul.labels-list > li a::after {
  content: '↓' !important;
  margin-left: auto !important;
  flex-shrink: 0 !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  color: #94a3b8 !important;
}
#page-students .container ul.labels-list > li:hover a::after {
  color: #0d9488 !important;
}

/* ─── 31. DEFINITIVE FIX: PI page grid override ──────────────
   Works even without body ID in HTML.
   PI page ul has nested ul children → use :has(> li > ul)
   This selector has higher specificity than the grid rule.   */

/* Any ul.labels-list containing nested lists = PI page */
.container ul.labels-list:has(> li > ul) {
  display: block !important;
  grid-template-columns: unset !important;
  gap: 0 !important;
}
.container ul.labels-list:has(> li > ul) > li {
  display: block !important;
  background: none !important;
  border: none !important;
  border-left: none !important;
  border-radius: 0 !important;
  padding: 0 0 18px 0 !important;
  font-size: 1rem !important;
  color: #334155 !important;
  transform: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.container ul.labels-list:has(> li > ul) > li::before {
  display: none !important;
}
.container ul.labels-list:has(> li > ul) > li:hover {
  transform: none !important;
  box-shadow: none !important;
  background: none !important;
}
/* Restore links inside PI list items */
.container ul.labels-list:has(> li > ul) > li a,
.container ul.labels-list:has(> li > ul) > li > ul > li a {
  display: inline !important;
  padding: 0 !important;
  width: auto !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  gap: 0 !important;
}
.container ul.labels-list:has(> li > ul) > li a::before,
.container ul.labels-list:has(> li > ul) > li a::after,
.container ul.labels-list:has(> li > ul) > li > ul > li a::before,
.container ul.labels-list:has(> li > ul) > li > ul > li a::after {
  display: none !important;
}

/* ─── 32. DARK NAVBAR ────────────────────────────────────────
   Matches the hero banner and footer for a cohesive bookend.  */

.navbar.fixed-top {
  background: #0a1929 !important;
  border-bottom: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 0 !important;
}

/* Logo image — keep visible on dark bg */
.navbar .container > img {
  filter: brightness(1.1);
}

/* Nav links — light text */
.navbar .nav-link {
  color: rgba(255,255,255,0.65) !important;
}
.navbar .nav-link:hover {
  color: #fff !important;
  background: rgba(255,255,255,0.08) !important;
}
.navbar .nav-link.nst-active {
  color: #5eead4 !important;
  background: rgba(13,148,136,0.18) !important;
  border-bottom: 2px solid #0d9488 !important;
}

/* Hamburger icon (mobile) — white lines */
.navbar-toggler-icon {
  filter: invert(1);
}
.navbar-toggler {
  border-color: rgba(255,255,255,0.3) !important;
}

/* Mobile collapsed menu — keep dark */
.navbar-collapse.show,
.navbar-collapse.collapsing {
  background: #0a1929 !important;
  padding: 8px 0 16px !important;
  border-top: 1px solid rgba(255,255,255,0.07) !important;
}

/* ─── 34. NAVBAR DARK — force override Bootstrap navbar-light
   and bg-white classes which reassert on mobile breakpoints.  */

/* Override bg-white and navbar-light at all screen sizes */
nav.navbar,
nav.navbar.navbar-light,
nav.navbar.bg-white,
nav.navbar.fixed-top,
.navbar.navbar-light.bg-white.fixed-top {
  background-color: #0a1929 !important;
  background: #0a1929 !important;
  border-color: rgba(255,255,255,0.07) !important;
}

/* Bootstrap navbar-light sets these — override all of them */
.navbar-light .navbar-nav .nav-link,
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-toggler,
.navbar-light .navbar-brand {
  color: rgba(255,255,255,0.65) !important;
}
.navbar-light .navbar-nav .nav-link:hover {
  color: #ffffff !important;
}

/* Mobile collapsed dropdown */
.navbar-collapse,
.navbar-collapse.show,
.navbar-collapse.collapsing {
  background: #0a1929 !important;
}

/* Mobile toggler */
.navbar-light .navbar-toggler {
  border-color: rgba(255,255,255,0.25) !important;
}
.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* Mobile: add padding to links when menu opens */
@media (max-width: 767px) {
  .navbar-collapse.show .nav-link,
  .navbar-collapse.collapsing .nav-link {
    padding: 10px 16px !important;
    border-radius: 6px !important;
    margin: 2px 8px !important;
  }
}

/* ─── 35. NAVBAR MOBILE FIX — target Bootstrap collapse exactly */

/* Force the top bar dark at ALL sizes */
nav.navbar { background-color: #0a1929 !important; }

/* The collapse dropdown container */
#navcol-1,
div[id^="navcol"],
.navbar .navbar-collapse {
  background-color: #0a1929 !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
}

/* Every nav link — white text */
.navbar .navbar-nav .nav-item .nav-link,
.navbar .nav .nav-link,
.navbar a.nav-link {
  color: rgba(255,255,255,0.72) !important;
  background-color: transparent !important;
}
.navbar .navbar-nav .nav-item .nav-link:hover,
.navbar .nav .nav-link:hover {
  color: #ffffff !important;
  background-color: rgba(255,255,255,0.08) !important;
}

/* Active link */
.navbar a.nav-link.nst-active {
  color: #5eead4 !important;
  background-color: rgba(13,148,136,0.18) !important;
}

/* Kill Bootstrap's white border on the collapsed menu */
.navbar-collapse.show {
  border: none !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.35) !important;
}

/* Hamburger icon — white lines */
.navbar .navbar-toggler {
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.3) !important;
}
.navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.85)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* ─── 36. NAVBAR — match EXACT Bootstrap class combo from HTML ─
   Bootstrap's .bg-white uses !important. To beat it we must
   match the full class chain for higher specificity.          */

nav.navbar.navbar-light.navbar-expand-md.fixed-top.bg-white,
nav.navbar.navbar-light.navbar-expand-md.bg-white,
nav.navbar.bg-white {
  background-color: #0a1929 !important;
  background: #0a1929 !important;
  border-color: rgba(255,255,255,0.07) !important;
}

/* Also override via attribute selector — catches any variant */
nav[class*="bg-white"] {
  background-color: #0a1929 !important;
}

/* ─── 37. NST-NAV — clean dark navbar class (replaces bg-white) */
.navbar.nst-nav,
nav.nst-nav {
  background-color: #0a1929 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
/* navbar-dark handles toggler icon + link colours automatically */
/* But we still set our exact tones */
.nst-nav .navbar-nav .nav-link {
  color: rgba(255,255,255,0.68) !important;
}
.nst-nav .navbar-nav .nav-link:hover {
  color: #fff !important;
  background: rgba(255,255,255,0.08) !important;
  border-radius: 6px;
}
.nst-nav .navbar-nav .nav-link.nst-active {
  color: #5eead4 !important;
  background: rgba(13,148,136,0.18) !important;
  border-radius: 6px;
  border-bottom: 2px solid #0d9488 !important;
}
/* Mobile collapse stays dark */
.nst-nav .navbar-collapse {
  background-color: #0a1929 !important;
}

/* ─── 38. CONTACT PAGE — fix icons, card gaps, map box ──────── */

/* Replace pinkish teal tint with clean light ash */
#contact-section .col-md-4 > .col-md-2,
#contact-section .col-md-4 > .col-md-3 {
  background: #f1f5f9 !important;
  border: 1px solid #e2e8f0 !important;
}

/* Icon color — keep teal but on ash background */
#contact-section .ti-location-pin,
#contact-section .ti-email,
#contact-section .ti-mobile {
  color: #0d9488 !important;
}

/* Cards — add visible gap between them */
#contact-section .col-md-12.no-padding {
  gap: 24px !important;
}

/* Card background — pure white, no tint */
#contact-section .col-md-4 {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-top: 3px solid #0d9488 !important;
}

/* Map — wrap in a matching box */
#contact-section .map {
  padding: 0 15px 24px !important;
  margin-top: 8px !important;
}

#contact-section iframe {
  border-radius: 10px !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.07) !important;
  display: block !important;
  width: 100% !important;
  height: 400px !important;
}

/* Section background — light ash, not white */
#contact-section {
  background: #f1f5f9 !important;
}

/* ─── 39. NAVBAR MOBILE DROPDOWN — force dark background ────── */

/* Target every possible element in the mobile collapse chain */
#navcol-1,
div#navcol-1,
.navbar-collapse#navcol-1,
.collapse.navbar-collapse,
.navbar-dark .navbar-collapse,
.nst-nav .collapse,
.nst-nav .navbar-collapse,
.nst-nav .navbar-collapse.show,
.nst-nav .navbar-collapse.collapsing,
.nst-nav > .container > .collapse,
.nst-nav > .container > #navcol-1 {
  background-color: #0a1929 !important;
  background: #0a1929 !important;
}

/* Nav items and links inside collapse */
.nst-nav .navbar-collapse .nav-item,
.nst-nav .navbar-collapse .nav-link,
#navcol-1 .nav-item,
#navcol-1 .nav-link,
#navcol-1 a {
  background-color: transparent !important;
  color: rgba(255,255,255,0.75) !important;
}

#navcol-1 .nav-link:hover,
.nst-nav .navbar-collapse .nav-link:hover {
  background-color: rgba(255,255,255,0.08) !important;
  color: #ffffff !important;
  border-radius: 6px;
}

#navcol-1 .nav-link.nst-active {
  color: #5eead4 !important;
  background-color: rgba(13,148,136,0.18) !important;
  border-radius: 6px;
}

/* ─── 41. FEATURED ARTICLES — remove pink tint from image panel */
.projects-horizontal .col-sm-6.item .col-md-12.col-lg-5 {
  background: #ffffff !important;
  border-right: 1px solid #e2e8f0 !important;
}

/* ─── 42. PUBLICATION LIST — remove pink/blue tint from entries
   mystyle.css sets rgba(201,213,231,0.18) on ol.labels-list > li
   Override with pure white.                                    */
.container ol.labels-list > li {
  background-color: #ffffff !important;
  background: #ffffff !important;
}

/* ─── 43. FIX: Remove pink/tinted background from PI list items
   and Contact page — mystyle.css sets rgba(0,60,79,0.05) on
   ul.labels-list > li which appears pinkish on some screens.  */

/* PI page inner list items */
#page-pi .container ul.labels-list > li > ul > li {
  background-color: #ffffff !important;
  background: #ffffff !important;
}

/* All ul list items globally — catch any remaining tint */
.container ul.labels-list > li,
.container ul.labels-list > li > ul > li {
  background-color: #ffffff !important;
  background: #ffffff !important;
}

/* Contact page — remove any tinted backgrounds */
#contact-section,
#contact-section .col-md-4,
#contact-section .col-md-12,
#contact-section .row {
  background-color: #ffffff !important;
}

/* Contact section outer wrapper — keep light slate */
#contact-section {
  background: #f1f5f9 !important;
}

/* Contact cards specifically white */
#contact-section .col-md-4 {
  background: #ffffff !important;
}

/* Kill any Bootstrap row pink tint in contact */
#contact-section .col-md-12.no-padding.text-center.center-col.clear-both {
  background: transparent !important;
}

/* ─── 47. FIX: Remove pinkish strip below navbar on Contact page ─
   The body padding-top area was showing a tinted background from
   Bootstrap or styles.css. Force it white/transparent.         */
body {
  background-color: #ffffff !important;
}

/* Contact page specifically */
#page-contact body,
#page-contact {
  background-color: #ffffff !important;
}

/* The strip is the .text-dark padding-top area from styles.css
   which sets padding-top:65px — override background there too */
.text-dark {
  background-color: #ffffff !important;
}

/* Kill any pink from Bootstrap's container or row on contact */
#page-contact .container,
#page-contact > .container {
  background-color: transparent !important;
}

/* ─── 48. FIX: Pink strip on Contact.html — targets the exact
   elements: #page div, bg-dark-white, and builder-bg classes
   from the Contact page template CSS.                         */
#page,
div#page,
.page,
.bg-dark-white,
.builder-bg,
.bg-dark-white.builder-bg {
  background-color: #ffffff !important;
  background: #ffffff !important;
}

/* The outer container wrapping #page also picks up a tint */
body > .container,
body > .container > #page {
  background-color: #ffffff !important;
  background: #ffffff !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ─── 49. EMERGENCY FIX: Revert broken container/margin rules ──
   Rule 48 set padding:0 and margin:0 on body > .container which
   killed Bootstrap's auto-centering on ALL pages. Restore it.  */
body > .container {
  padding-left: 15px !important;
  padding-right: 15px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Now fix only the pink strip — target #page inside container */
div#page,
#page.page {
  background-color: transparent !important;
  background: transparent !important;
}
.bg-dark-white {
  background-color: #ffffff !important;
}

/* ─── 50. FIX: Contact page pink strip — target bg-dark-white
   and builder-bg classes from Contact-white--Gmap.css template.
   Also kill the #page div background which shows as a strip.   */
.bg-dark-white,
.builder-bg,
section.bg-dark-white,
#contact-section.bg-dark-white {
  background-color: #ffffff !important;
  background: #ffffff !important;
}
div#page.page {
  background-color: #ffffff !important;
  background: #ffffff !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
}
/* The strip itself is the outer .container before #page */
body > .container:has(#page) {
  background-color: #ffffff !important;
  padding-top: 0 !important;
}

/* ─── 51. NAVBAR + FOOTER — Option C gradient (teal centre glow) */
nav.navbar,
nav.navbar.nst-nav,
nav.nst-nav {
  background: linear-gradient(90deg, #0a1929 0%, #0d2e2a 50%, #0a1929 100%) !important;
}

.footer-basic footer {
  background: linear-gradient(90deg, #0a1929 0%, #0d2e2a 50%, #0a1929 100%) !important;
}

/* ─── 52. NAVBAR gradient — force over Bootstrap bg-white ─────
   Must target the exact class combo AND use attribute selector
   to beat Bootstrap's specificity                              */
nav.navbar,
nav[class*="navbar"],
nav[class*="bg-white"],
nav.nst-nav,
.navbar.nst-nav,
.navbar.fixed-top {
  background: linear-gradient(90deg, #0a1929 0%, #0d2e2a 50%, #0a1929 100%) !important;
  background-color: unset !important;
}

/* ─── 54. NAVBAR gradient — stronger teal shift, more visible ── */
nav.navbar { 
  background: linear-gradient(90deg, #0a1929 0%, #0e3030 50%, #0a1929 100%) !important;
  background-color: unset !important;
}


/* ─── GALLERY — minimal fix, let Bootstrap col-lg-3 do the layout ─
   Only fix image height consistency and background. Nothing else.  */
.photo-gallery {
  background: #e6f4f1 !important;
  padding: 32px 0 40px !important;
}
.photo-gallery .row.photos .item {
  padding: 6px !important;
}
.photo-gallery .row.photos .item a {
  display: block;
  overflow: hidden;
  border-radius: 10px;
}
.photo-gallery .row.photos .item img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  border-radius: 10px;
  transition: transform 0.3s ease, opacity 0.3s ease !important;
}
.photo-gallery .row.photos .item:hover img {
  transform: scale(1.05) !important;
  opacity: 0.85 !important;
}
.photo-gallery .container > p {
  color: #475569 !important;
  font-size: 0.93rem !important;
}

/* ─── NAV — same gradient as footer ─────────────────────────── */
nav.navbar {
  background: linear-gradient(90deg, #0a1929 0%, #0d2e2a 50%, #0a1929 100%) !important;
}

/* ─── NAV link font — explicit px so homepage CSS can't shrink it */
.navbar .nav-link,
.navbar .navbar-nav .nav-link,
.navbar .nav .nav-link,
#navcol-1 .nav-link {
  font-size: 15px !important;
  font-weight: 600 !important;
}

/* NST@EEE-BUET logo text — consistent across all pages */
.navbar a[href="index.html"] {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #e6f1ff !important;
  text-decoration: none !important;
}

/* ─── MOBILE NAV DROPDOWN — force dark on ALL breakpoints ────── */
@media (max-width: 991px) {
  .navbar-collapse,
  .navbar-collapse.show,
  .navbar-collapse.collapsing,
  #navcol-1,
  #navcol-1.show,
  #navcol-1.collapsing,
  .nst-nav .navbar-collapse,
  .navbar-dark .navbar-collapse {
    background-color: #0a1929 !important;
    background: #0a1929 !important;
    border: none !important;
    box-shadow: 0 8px 20px rgba(0,0,0,0.3) !important;
  }

  /* Nav links inside mobile dropdown */
  .navbar-collapse .nav-link,
  #navcol-1 .nav-link,
  .navbar-collapse .nav-item .nav-link {
    color: rgba(255,255,255,0.75) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 10px 16px !important;
    border-radius: 6px !important;
    margin: 2px 8px !important;
  }
  .navbar-collapse .nav-link:hover,
  #navcol-1 .nav-link:hover {
    background: rgba(255,255,255,0.08) !important;
    color: #fff !important;
  }

  /* Kill the ugly groove border from styles.css on mobile */
  .nav {
    border: none !important;
  }
}

/* ─── FIX: Navbar icon fonts — restore all three font families ─
   Global font rule was overriding icon fonts in the navbar.    */

/* Line Awesome (la la-home, la la-user) */
.navbar i.la,
.navbar i[class*="la-"] {
  font-family: 'Line Awesome Free', 'Line Awesome Brands', 'LineAwesome' !important;
  font-weight: 900 !important;
  font-style: normal !important;
}

/* Ionicons (ion-ios-people, ion-document-text) */
.navbar i.icon[class*="ion-"],
.navbar i[class*="ion-"] {
  font-family: 'Ionicons' !important;
  font-weight: normal !important;
  font-style: normal !important;
}

/* FontAwesome (far fa-envelope) */
.navbar i.far,
.navbar i[class*="fa-"] {
  font-family: 'Font Awesome 5 Free', 'FontAwesome' !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

/* Make icons same color as nav links */
.navbar .nav-link i {
  color: inherit !important;
  font-size: 0.95em !important;
}
