/* ── HERO ── */
    .lib-hero {
    position: relative;
    height: 260px;
    overflow: hidden;
    display: flex;
    align-items: center;
}
    .lib-hero__img {
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center 40%;
    }
   .lib-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(10, 25, 47, 0.45), rgba(15, 40, 70, 0.25));
}
    .lib-hero__content {
      position: absolute; inset: 0;
      display: flex; flex-direction: column;
      justify-content: flex-end;
      padding-bottom: 40px;
    }
   .lib-hero__title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 700;
  color: var(--gold);
  margin-bottom: 8px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
    .lib-hero__breadcrumb {
      display: flex; align-items: center; gap: 10px;
      font-size: .85rem; color: rgba(255,255,255,.78);
    }
    .lib-hero__breadcrumb a { color: rgba(255,255,255,.78); text-decoration: none; }
    .lib-hero__breadcrumb a:hover { color: var(--white); }
    .bc-sep { font-size: .6rem; color: var(--gold); }
    .bc-current { color: var(--white); font-weight: 600; }

    /* ── LAYOUT ── */
    .content-wrap {
      padding: 48px 0 64px;
    }

    /* ── SIDEBAR ── */
    .sidebar-panel {
      background: var(--white);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
      position: sticky;
      top: 24px;
    }
    .sidebar-head {
      background: var(--navy);
      color: var(--white);
      padding: 18px 20px;
      font-weight: 700;
      font-size: .95rem;
      letter-spacing: .04em;
      text-transform: uppercase;
      display: flex; align-items: center; gap: 10px;
    }
    .tab-btn {
      display: flex; align-items: center; gap: 12px;
      width: 100%; padding: 14px 20px;
      background: none; border: none; border-left: 3px solid transparent;
      font-family: 'Inter', sans-serif;
      font-size: .93rem; font-weight: 500;
      color: var(--text);
      text-align: left; cursor: pointer;
      transition: all .22s;
      border-bottom: 1px solid #f0f0f8;
    }
    .tab-btn i:first-child { color: var(--navy); width: 18px; }
    .tab-arrow { margin-left: auto; font-size: .7rem; color: var(--muted); transition: transform .22s; }
    .tab-btn:hover { background: #f0f0fb; color: var(--navy); border-left-color: var(--navy); }
    .tab-btn.active {
      background: linear-gradient(90deg, #f0f0fb 0%, var(--white) 100%);
      color: var(--red); border-left-color: var(--red); font-weight: 600;
    }
    .tab-btn.active i:first-child { color: var(--red); }
    .tab-btn.active .tab-arrow { transform: rotate(90deg); color: var(--red); }

    /* Sub-tabs inside sidebar */
    .sub-tab-group { display: none; background: #f8f8fd; }
    .sub-tab-group.open { display: block; }
    .sub-tab-btn {
      display: flex; align-items: center; gap: 10px;
      width: 100%; padding: 11px 20px 11px 40px;
      background: none; border: none; border-left: 3px solid transparent;
      font-family: 'Inter', sans-serif;
      font-size: .88rem; font-weight: 500; color: var(--muted);
      text-align: left; cursor: pointer;
      border-bottom: 1px solid #eeeef6;
      transition: all .2s;
    }
    .sub-tab-btn:hover { color: var(--navy); background: #ebebf8; border-left-color: var(--navy); }
    .sub-tab-btn.active { color: var(--red); border-left-color: var(--red); font-weight: 600; background: #fdf0f0; }
    .hostel-link {
      display: flex; align-items: center; gap: 10px;
      padding: 11px 20px 11px 40px;
      font-size: .88rem; font-weight: 500;
      color: var(--muted); text-decoration: none;
      border-left: 3px solid transparent;
      border-bottom: 1px solid #eeeef6;
      transition: all .2s;
      background: #f8f8fd;
    }
    .hostel-link:hover { color: var(--navy); background: #ebebf8; border-left-color: var(--navy); }

    /* ── CONTENT PANEL ── */
    .content-panel {
      background: var(--white);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 36px 40px;
      min-height: 500px;
    }
    @media (max-width: 767px) { .content-panel { padding: 24px 18px; } }

    .tab-pane { display: none; }
    .tab-pane.active { display: block; }

    .content-panel-head {
    background: linear-gradient(90deg, var(--navy) 0%, #000088 100%);
    padding: 22px 30px;
    display: flex;
    align-items: center;
    gap: 12px;
}
    .content-panel-head .icon-circle {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    border: 1.5px solid rgba(255, 255, 255, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.content-panel {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 98, 0.09);
    min-height: 500px;
    overflow: hidden;
}
.content-panel-head .icon-circle i {
    color: var(--gold);
    font-size: 16px;
}
    .content-panel-head h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    margin: 0;
}
    .head-sub { font-size: .9rem; color: var(--muted); margin: 0; }

    .section-title-red {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.25rem; color: var(--red);
      font-weight: 700; margin-bottom: 18px;
      padding-bottom: 8px;
      border-bottom: 2px solid #fbe8e7;
    }

    /* ── INFRA GRID CARDS ── */
    .infra-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
    @media (max-width: 991px) { .infra-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 575px)  { .infra-grid { grid-template-columns: 1fr; } }

    .infra-card {
      border-radius: 12px;
      overflow: hidden;
      border: 1.5px solid #eaeaf4;
      cursor: pointer;
      transition: transform .22s, box-shadow .22s, border-color .22s;
      background: var(--white);
    }
    .infra-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 8px 30px rgba(0,0,98,.14);
      border-color: var(--navy);
    }
    .infra-card__img-wrap {
      position: relative; overflow: hidden;
      height: 150px;
    }
    .infra-card__img-wrap img {
      width: 100%; height: 100%; object-fit: cover;
      transition: transform .35s;
    }
    .infra-card:hover .infra-card__img-wrap img { transform: scale(1.06); }
    .infra-card__overlay {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(0,0,62,.45) 0%, transparent 60%);
      opacity: 0; transition: opacity .25s;
    }
    .infra-card:hover .infra-card__overlay { opacity: 1; }
    .infra-card__zoom-icon {
      position: absolute; bottom: 10px; right: 10px;
      background: var(--white); color: var(--navy);
      width: 32px; height: 32px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: .85rem;
      opacity: 0; transform: scale(.7);
      transition: opacity .25s, transform .25s;
    }
    .infra-card:hover .infra-card__zoom-icon { opacity: 1; transform: scale(1); }
    .infra-card__label {
      padding: 12px 14px;
      font-size: .82rem; font-weight: 700;
      text-align: center; color: var(--navy);
      letter-spacing: .04em; text-transform: uppercase;
      background: var(--white);
    }

    /* ── LIBRARY GRID ── */
    .lib-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
    @media (max-width: 991px) { .lib-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 575px)  { .lib-grid { grid-template-columns: 1fr; } }

    .lib-card {
      border-radius: 12px; overflow: hidden;
      border: 1.5px solid #eaeaf4; cursor: pointer;
      transition: transform .22s, box-shadow .22s, border-color .22s;
      background: var(--white);
    }
    .lib-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 8px 30px rgba(0,0,98,.14);
      border-color: var(--navy);
    }
    .lib-card img { width: 100%; height: 160px; object-fit: cover; display: block; }
    .lib-card__label {
      padding: 10px 14px;
      font-size: .83rem; font-weight: 700;
      text-align: center; color: var(--navy);
      text-transform: uppercase; letter-spacing: .04em;
    }

    /* ── HOSTEL TEXT ── */
    .hostel-body p { font-size: .97rem; line-height: 1.78; color: var(--text); margin-bottom: 16px; text-align: justify; }

    /* ── HIGHLIGHT BOX ── */
    .highlight-box {
      background: #f0f0fb; border-left: 4px solid var(--navy);
      border-radius: 8px; padding: 16px 20px;
      font-size: .95rem; line-height: 1.65;
    }
    .highlight-box.red { background: #fdf0f0; border-left-color: var(--red); }

    /* ── MAINTENANCE ── */
    .policy-link {
      display: inline-flex; align-items: center; gap: 10px;
      padding: 14px 28px;
      background: var(--red); color: var(--white);
      border-radius: 8px; font-weight: 600; font-size: .95rem;
      text-decoration: none; transition: background .2s, transform .2s;
      margin-top: 20px;
    }
    .policy-link:hover { background: #8a1610; transform: translateY(-2px); color: var(--white); }

    /* ── MODAL ── */
    .card-modal-dialog { max-width: 820px; }
    .card-modal-content { position: relative; overflow: visible !important; border-radius: 12px; }
    .infra-modal-close {
      position: absolute; top: -16px; right: -16px; z-index: 1060;
      width: 36px; height: 36px; border-radius: 50%; border: none;
      background: var(--navy); color: var(--white);
      font-size: 1rem; display: flex; align-items: center; justify-content: center;
      cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.35);
      transition: background .2s, transform .15s;
    }
    .infra-modal-close:hover { background: var(--red); transform: scale(1.1); }
    .carousel-item img { max-height: 540px; object-fit: contain; background: #000; }

    /* ── ICT GRID ── */
    .ict-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
    @media (max-width: 991px) { .ict-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 575px)  { .ict-grid { grid-template-columns: 1fr; } }

    /* ── RESPONSIVE SIDEBAR ── */
    @media (max-width: 991px) {
      .sidebar-panel { position: static; margin-bottom: 24px; }
    }

    /* ── Mobile hero ── */
    @media (max-width: 767px) {
      .lib-hero { height: 220px; }
    }