/* Disable the vendor template's "sticky header on scroll" clone site-wide —
   #rs-sticky-header normally slides down and stays fixed once scrollTop>200
   (see main.js); keep it permanently in its hidden baseline state instead so
   the header simply scrolls away with the page like any other content. */
.rs-sticky-header.active {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-100%) !important;
    pointer-events: none !important;
}

/* ===== Consolidated into index.html to survive the FTP-sync file-wipe issue ===== */
/* ---- menu-clean.css ---- */
.main-menu .submenu {
    background-color: #ffffff;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 16px 36px rgba(3, 3, 3, 0.14);
    border: 1px solid rgba(3, 3, 3, 0.06);
    border-radius: 10px;
    width: 280px;
    padding: 8px;
}
.main-menu .submenu li:not(:last-child) { border-bottom: none; }
.main-menu .submenu li {
    position: relative;
    border-radius: 6px;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}
.main-menu .submenu li:hover {
    background-color: var(--rs-bg-secondary);
    border-inline-start-color: var(--rs-theme-yellow);
}
.main-menu .submenu li a {
    padding-top: 10px;
    padding-bottom: 10px;
    padding-inline-start: 13px !important;
    line-height: 1.4;
}
.main-menu .submenu li a::before { content: none; }
.main-menu .submenu li.active,
.main-menu .submenu li:hover {
    background-color: var(--rs-bg-secondary);
    border-inline-start-color: var(--rs-theme-yellow);
}
.main-menu .submenu li.active>a,
.main-menu .submenu li:hover>a {
    padding-inline-start: 13px !important;
    color: var(--rs-theme-yellow);
    
}
.main-menu .submenu ul {
    background-color: #ffffff;
    box-shadow: 0 16px 36px rgba(3, 3, 3, 0.14);
    border: 1px solid rgba(3, 3, 3, 0.06);
    border-radius: 10px;
    width: 260px;
    padding: 8px;
    position: absolute;
    inset-inline-start: 100%;
    top: 0;
    margin-inline-start: 8px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 20;
    transition: opacity 0.2s ease;
}
.main-menu .submenu li:hover>ul {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.main-menu .submenu.submenu-column-1:has(>li:nth-child(7)) {
width: 510px;
}
.main-menu .submenu:has(>li:nth-child(7)) {
    width: 480px;
    column-count: 2;
    column-gap: 22px;
    column-rule: 1px solid rgba(3, 3, 3, 0.08);
    padding: 14px 18px;
}
.main-menu .submenu:has(>li:nth-child(7))>li { break-inside: avoid; }
.main-menu>ul>li:nth-last-child(-n+2)>.submenu {
    inset-inline-start: auto;
    inset-inline-end: 0;
}
.main-menu>ul>li:nth-last-child(-n+2) .submenu ul {
    inset-inline-start: auto;
    inset-inline-end: 100%;
    margin-inline-start: 0;
    margin-inline-end: 8px;
}
@media only screen and (min-width: 1200px) {
    .rs-header-one .header-wrapper .header-menu { justify-content: flex-start; }
    .rs-header-one .header-wrapper .header-menu .main-menu { width: 100%;  }
    .rs-header-one .header-wrapper .header-menu .main-menu>ul {
    display: flex;
    width: 100%;
    justify-content: start;
    gap: 0 25px;
    align-items: center;
}
}

/* ---- fixed home button ---- */
.tjs-fixed-home-btn {
    position: fixed;
    bottom: 20px;
    inset-inline-start: 20px;
    z-index: 998;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--rs-theme-yellow);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    box-shadow: 0 8px 16px rgba(3, 4, 28, 0.3);
    transition: transform 0.2s ease, background-color 0.2s ease;
}
.tjs-fixed-home-btn:hover { background: var(--rs-theme-yellow); color: #fff; transform: translateY(-3px); }

/* ---- chatbot.css ---- */
.tjs-chatbot { position: fixed; right: 20px; bottom: 20px; z-index: 9999; font-family: var(--rs-ff-body); }
/* A fullscreen photo zoom/lightbox can render above these fixed widgets
   despite its higher z-index (Chrome compositing quirk with their own
   transform/transition layers), so hide them outright while one is open. */
body.tjs-zoom-open .tjs-chatbot,
body.tjs-zoom-open .rs-fixed-admissions-btn,
body.tjs-zoom-open .tjs-fixed-home-btn { display: none !important; }
.tjs-chatbot-toggle {
    position: relative; width: 62px; height: 62px; border-radius: 50%; border: none; cursor: pointer;
    background: var(--rs-theme-blue); box-shadow: 0 10px 25px rgba(0, 62, 116, 0.35);
    display: flex; align-items: center; justify-content: center;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.tjs-chatbot-toggle:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0, 62, 116, 0.45); }
.tjs-chatbot-toggle svg, .tjs-chatbot-toggle .icon-chat { position: absolute; transition: opacity 0.2s ease, transform 0.2s ease; }
.tjs-chatbot-toggle svg { width: 26px; height: 26px; fill: none; stroke: #fff; stroke-width: 1.8; }
.tjs-chatbot-toggle .icon-chat { width: 62px; height: 62px; border-radius: 50%; object-fit: cover; border: 3px solid var(--rs-theme-blue); }
.tjs-chatbot-toggle .icon-close { opacity: 0; transform: scale(0.6) rotate(-45deg); }
.tjs-chatbot.is-open .tjs-chatbot-toggle .icon-chat { opacity: 0; transform: scale(0.6) rotate(45deg); }
.tjs-chatbot.is-open .tjs-chatbot-toggle .icon-close { opacity: 1; transform: scale(1) rotate(0); }
.tjs-chatbot-ping { position: absolute; top: -3px; right: -3px; width: 16px; height: 16px; border-radius: 50%; background: var(--rs-theme-yellow); border: 2px solid #fff; }
.tjs-chatbot-ping::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--rs-theme-yellow); animation: tjs-chatbot-pulse 1.8s ease-out infinite; }
.tjs-chatbot.is-open .tjs-chatbot-ping { display: none; }
@keyframes tjs-chatbot-pulse { 0% { transform: scale(1); opacity: 0.7; } 100% { transform: scale(2.4); opacity: 0; } }
.tjs-chatbot-teaser {
    position: absolute; right: 72px; bottom: 8px; width: 250px; background: #fff;
    border-radius: 14px 14px 4px 14px; box-shadow: 0 12px 30px rgba(3, 3, 3, 0.16);
    padding: 14px 30px 14px 16px; font-size: 13.5px; line-height: 1.5; color: var(--rs-title-primary);
    opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity 0.3s ease, transform 0.3s ease;
}
.tjs-chatbot-teaser.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.tjs-chatbot-teaser strong { color: var(--rs-theme-blue); }
.tjs-chatbot-teaser-close { position: absolute; top: 6px; right: 8px; border: none; background: transparent; font-size: 16px; line-height: 1; color: var(--rs-text-secondary); cursor: pointer; padding: 4px; }
.tjs-chatbot-panel {
    position: absolute; right: 0; bottom: 78px; width: 340px; max-width: calc(100vw - 32px);
    height: 480px; max-height: calc(100vh - 140px); background: #fff; border-radius: 16px;
    box-shadow: 0 20px 50px rgba(3, 3, 3, 0.25); display: flex; flex-direction: column; overflow: hidden;
    opacity: 0; visibility: hidden; transform: translateY(16px) scale(0.98); transform-origin: bottom right;
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}
.tjs-chatbot.is-open .tjs-chatbot-panel { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.tjs-chatbot-header { background: var(--rs-theme-blue); color: #fff; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto; }
.tjs-chatbot-header-info { display: flex; align-items: center; gap: 10px; }
.tjs-chatbot-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--rs-theme-yellow); display: flex; align-items: center; justify-content: center; font-size: 19px; flex: 0 0 auto; overflow: hidden; }
.tjs-chatbot-avatar img { width: 100%; height: 100%; object-fit: cover; }
.tjs-chatbot-header-info h6 { margin: 0; color: #fff; font-size: 15px; font-family: var(--rs-ff-title); }
.tjs-chatbot-header-info span { font-size: 11.5px; color: var(--rs-rgba-1); }
.tjs-chatbot-header-info span::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #54BD05; margin-right: 5px; }
.tjs-chatbot-header-actions { display: flex; gap: 4px; }
.tjs-chatbot-header-actions button { width: 28px; height: 28px; border: none; background: rgba(255, 255, 255, 0.12); border-radius: 50%; color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s ease; }
.tjs-chatbot-header-actions button:hover { background: rgba(255, 255, 255, 0.25); }
.tjs-chatbot-header-actions svg { width: 14px; height: 14px; fill: none; stroke: #fff; stroke-width: 2; }
.tjs-chatbot-body { flex: 1 1 auto; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: var(--rs-bg-secondary); }
.tjs-chatbot-body::-webkit-scrollbar { width: 5px; }
.tjs-chatbot-body::-webkit-scrollbar-thumb { background: #d7d7d7; border-radius: 5px; }
.tjs-msg { max-width: 86%; font-size: 13.5px; line-height: 1.5; padding: 10px 13px; border-radius: 12px; word-wrap: break-word; }
.tjs-msg.bot { align-self: flex-start; background: #fff; color: var(--rs-title-primary); border-bottom-left-radius: 4px; box-shadow: 0 2px 8px rgba(3, 3, 3, 0.06); }
.tjs-msg.user { align-self: flex-end; background: var(--rs-theme-blue); color: #fff; border-bottom-right-radius: 4px; }
.tjs-msg.typing { display: flex; align-items: center; gap: 4px; padding: 12px 14px; }
.tjs-msg.typing span { width: 6px; height: 6px; border-radius: 50%; background: #bbb; animation: tjs-typing 1s infinite ease-in-out; }
.tjs-msg.typing span:nth-child(2) { animation-delay: 0.15s; }
.tjs-msg.typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes tjs-typing { 0%, 60%, 100% { transform: translateY(0); opacity: 0.5; } 30% { transform: translateY(-4px); opacity: 1; } }
.tjs-msg-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.tjs-msg-actions a { font-size: 12px; font-weight: 500; color: var(--rs-theme-blue); background: #fff; border: 1px solid var(--rs-theme-blue); border-radius: 20px; padding: 5px 12px; text-decoration: none; transition: background 0.2s ease, color 0.2s ease; }
.tjs-msg-actions a:hover { background: var(--rs-theme-blue); color: #fff; }
.tjs-chatbot-quickreplies { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px 2px 4px; }
.tjs-chatbot-quickreplies button { font-size: 12.5px; font-weight: 500; color: var(--rs-theme-blue); background: #fff; border: 1px solid #cdd8e2; border-radius: 20px; padding: 7px 13px; cursor: pointer; transition: all 0.2s ease; }
.tjs-chatbot-quickreplies button:hover { background: var(--rs-theme-blue); border-color: var(--rs-theme-blue); color: #fff; }
.tjs-chatbot-input { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--rs-border-primary); background: #fff; }
.tjs-chatbot-input input { flex: 1 1 auto; border: 1px solid var(--rs-border-primary); border-radius: 20px; padding: 9px 15px; font-size: 13px; outline: none; background: var(--rs-bg-secondary); }
.tjs-chatbot-input input:focus { border-color: var(--rs-theme-blue); }
.tjs-chatbot-input button { width: 36px; height: 36px; flex: 0 0 auto; border: none; border-radius: 50%; background: var(--rs-theme-blue); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.tjs-chatbot-input button svg { width: 15px; height: 15px; fill: #fff; }
@media (max-width: 420px) {
    .tjs-chatbot { right: 14px; bottom: 20px; }
    .tjs-chatbot-panel { width: calc(100vw - 28px); }
    .tjs-chatbot-teaser { width: 220px; right: 60px; }
}

/* ---- events-ticker.css ---- */
.rs-events-ticker { display: flex; align-items: stretch; background: #E4E4E4; position: fixed; z-index: 5; bottom: 0; width: 100%; }
.rs-events-ticker-label { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; background: var(--rs-theme-blue-two); color: #fff; font-family: var(--rs-ff-title); font-weight: 700; font-size: 14px; letter-spacing: 0.3px; text-transform: uppercase; padding: 14px 28px; white-space: nowrap; }
.rs-events-ticker-dot { position: relative; width: 10px; height: 10px; border-radius: 50%; background: var(--rs-theme-red-two); flex: 0 0 auto; }
.rs-events-ticker-dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; background: var(--rs-theme-red-two); opacity: 0.45; animation: rs-ticker-pulse 1.6s ease-out infinite; }
@keyframes rs-ticker-pulse { 0% { transform: scale(0.6); opacity: 0.5; } 100% { transform: scale(1.8); opacity: 0; } }
.rs-events-ticker-track { flex: 1 1 auto; min-width: 0; overflow: hidden; position: relative; display: flex; align-items: center; }
.rs-events-ticker-list { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; white-space: nowrap; animation: rs-ticker-scroll 18s linear infinite; will-change: transform; }
.rs-events-ticker-track:hover .rs-events-ticker-list { animation-play-state: paused; }
.rs-events-ticker-list li { display: flex; align-items: center; padding: 14px 48px 14px 0; font-size: 14px; color: var(--rs-title-primary); }
.rs-events-ticker-list li::before { content: "\2022"; color: var(--rs-theme-red-two); font-size: 20px; line-height: 0; margin-right: 10px; flex: 0 0 auto; }
@keyframes rs-ticker-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@media (max-width: 767px) {
    .rs-events-ticker-label { padding: 12px 16px; font-size: 12.5px; }
    .rs-events-ticker-list li { padding: 12px 32px 12px 0; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .rs-events-ticker-list { animation: none; } }

/* ---- approved-logos.css ---- */
.rs-approved-logos { padding: 40px 0 60px; background: #f6f4ee; }
.rs-approved-logos .container { display: flex; flex-wrap: wrap; justify-content: center; gap: 26px; }
.rs-approved-card { position: relative; z-index: 0; display: flex; align-items: center; gap: 12px; width: 220px; padding: 14px 16px; border-radius: 10px; background: var(--card-bg); box-shadow: 0 10px 20px rgba(3, 3, 3, 0.14); text-decoration: none; transition: transform 0.2s ease; }
a.rs-approved-card:hover { transform: translateY(-3px); }
.rs-approved-card::before { content: ""; position: absolute; left: -8px; bottom: -8px; width: 36px; height: 36px; background: var(--card-accent); border-radius: 6px; transform: rotate(20deg); z-index: -1; }
.rs-approved-card-badge { flex: 0 0 auto; width: 58px; height: 58px; background: #ffffff; border-radius: 8px; display: flex; align-items: center; justify-content: center; padding: 6px; box-sizing: border-box; }
.rs-approved-card-logo { width: 100%; aspect-ratio: var(--ratio); background-image: url('/assets/images/approvedogo.png'); background-repeat: no-repeat; background-size: var(--sx) 100%; background-position: var(--px) 0%; }
.rs-approved-card-text { color: #ffffff; font-weight: 700; font-size: 14px; line-height: 1.3; text-transform: uppercase; }
.rs-approved-card-text span { display: block; font-size: 11.5px; font-weight: 600; text-transform: none; opacity: 0.92; margin-top: 2px; }
@media (max-width: 575px) { .rs-approved-card { width: 100%; max-width: 320px; } }

/* ---- recruiters.css ---- */
.rs-recruiters { padding: 60px 0; background: #ffffff; text-align: center; }
.rs-recruiters .section-title-wrapper { margin-bottom: 34px; }
.rs-recruiters-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; }
.rs-recruiters-card {
    width: 160px;
    height: 140px;
    background: #ffffff;
    border: 1px solid var(--rs-border-primary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
    box-sizing: border-box;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.rs-recruiters-card:hover { transform: translateY(-4px); box-shadow: 0 10px 22px rgba(3, 3, 3, 0.12); }
.rs-recruiters-card img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 575px) { .rs-recruiters-card { width: 105px; height: 68px; padding: 10px; } }

/* ---- contact-highlight.css ---- */
.rs-contact-one .rs-contact-sec-wrapper .section-title-wrapper { position: relative; z-index: 2; display: inline-block; max-width: 100%; background: rgba(255, 255, 255, 0.95); padding: 26px 30px; border-radius: 14px; box-shadow: 0 14px 34px rgba(3, 3, 3, 0.2); }
@media (max-width: 575px) { .rs-contact-one .rs-contact-sec-wrapper .section-title-wrapper { padding: 18px 20px; } }

/* ---- footer-fix.css ---- */
.rs-footer-one .rs-footer-right { display: flex; flex-direction: column; height: 100%; }
.rs-footer-one .rs-footer-right .rs-footer-copyright-area.rs-copyright-one { margin-top: auto; padding-top: 40px; }

/* ---- admission-cta.css ---- */
.rs-admission-cta-stat { display: flex; flex-direction: column; margin-top: 4px; margin-bottom: 18px; }
.rs-admission-cta-number { font-family: var(--rs-ff-title); font-size: 40px; font-weight: 700; line-height: 1.1; color: var(--rs-theme-yellow); }
.rs-admission-cta-label { color: var(--rs-white); font-size: 15px; margin-top: 4px; }

/* ---- application-form.css ---- */
.rs-contact-one .rs-contact-input select {
    height: 50px; width: 100%; border-radius: 8px; padding-inline-start: 20px; padding-inline-end: 40px;
    background-color: #11153d; border: 1px solid #11153d; color: var(--rs-white);
    appearance: none; -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 15'%3E%3Cpath d='M9 10.5 3.5 5 5 3.5 9 7.5l4-4L14.5 5Z' fill='%23d3b96d'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 18px center; background-size: 14px; cursor: pointer;
}
.rs-contact-one .rs-contact-input select:focus { outline: none; border-color: var(--rs-theme-yellow); }
.rs-contact-one .rs-contact-input select option { background-color: #11153d; color: var(--rs-white); }
.rs-contact-one .rs-form-check { display: flex; align-items: flex-start; gap: 10px; margin-top: 4px; margin-bottom: 10px; }
.rs-contact-one .rs-form-check input[type="checkbox"] { margin-top: 4px; flex: 0 0 auto; accent-color: var(--rs-theme-yellow); }
.rs-contact-one .rs-form-check label { position: relative; z-index: 0; color: rgba(255, 255, 255, 0.85); font-size: 13.5px; line-height: 1.5; }

/* ---- header-redesign.css ---- */
.rs-topbar-tjs { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; background: #eef0f3; padding: 7px 30px; border-bottom: 1px solid #e2e5ea; }
.rs-topbar-tjs .topbar-links { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.rs-topbar-tjs a { color: var(--rs-theme-blue); font-size: 13px; font-weight: 500; }
.rs-topbar-tjs a:hover { color: var(--rs-theme-red); }
.rs-topbar-tjs .topbar-divider { width: 1px; height: 14px; background: rgba(44, 51, 112, 0.18); }
.rs-topbar-tjs .topbar-highlight { background: #f4c6c2; color: var(--rs-theme-blue); padding: 4px 14px; border-radius: 4px; }
.rs-topbar-tjs .topbar-highlight:hover { color: var(--rs-theme-blue); }
.rs-topbar-tjs .topbar-btn { background: var(--rs-theme-red); color: #fff; padding: 5px 16px; border-radius: 4px; font-weight: 600; }
.rs-topbar-tjs .topbar-btn:hover { background: var(--rs-theme-yellow); color: #fff; }
.rs-topbar-tjs .topbar-icon-link { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; font-size: 12px; color: var(--rs-theme-blue); }
.rs-topbar-tjs .topbar-code { font-size: 12.5px; font-weight: 600; color: var(--rs-theme-blue); background: rgba(44, 51, 112, 0.08); padding: 4px 12px; border-radius: 4px; border: 1px solid rgba(44, 51, 112, 0.2); }
.rs-topbar-tjs .topbar-links-right a:nth-child(3) { color: #2f6fed; }
.rs-topbar-tjs .topbar-links-right a:nth-child(5) { color: var(--rs-theme-red); }
/* Topbar + badge row take too much vertical space on phones/tablets — hide
   them there and surface the same links/badges inside the offcanvas menu
   instead (see .offcanvas-mobile-extras below), opened via the hamburger.
   This must match meanmenu's own breakpoint (meanScreenWidth: "1199" in
   main.js) — otherwise there's a gap where the nav is already a JS-driven
   hamburger but this compact header hasn't kicked in yet, and the full
   desktop topbar/badges-row/search-box don't fit and wrap badly. */
@media (max-width: 1199px) {
    .rs-topbar-tjs,
    .rs-header-badges-row { display: none !important; }
}

/* Mobile-only compact header: a thin admission-code strip + a logo/name row
   (nav collapses to the hamburger + offcanvas menu, like the reference). */
.mobile-code-strip { display: none; }
.mobile-header-brand { display: none; }
@media (max-width: 1199px) {
    .mobile-code-strip { display: none !important; }
    .mobile-code-strip-admissions {
        background: #f4c6c2; color: var(--rs-theme-blue); font-size: 12.5px; font-weight: 600;
        padding: 4px 14px; border-radius: 4px;
    }
    .mobile-code-strip-code {
        font-size: 12.5px; font-weight: 600; color: var(--rs-theme-blue);
        background: rgba(44, 51, 112, 0.08); padding: 4px 12px; border-radius: 4px;
        border: 1px solid rgba(44, 51, 112, 0.2);
    }
    .mobile-header-brand {
        display: flex; align-items: center; flex: 1 1 auto; min-width: 0; padding-block: 5px;
    }
    .mobile-header-brand a { display: flex; align-items: center; min-width: 0; }
    .mobile-header-brand img { height: 60px; width: auto; flex: 0 0 auto; }
    .header-menu { display: none; }
}

.offcanvas-mobile-extras { display: none; }
@media (max-width: 1199px) {
    .offcanvas-mobile-extras { display: block; padding-bottom: 20px; border-bottom: 1px solid rgba(3, 3, 3, 0.08); }
}
.offcanvas-mobile-links { display: flex; flex-wrap: wrap; gap: 10px 14px; list-style: none; margin: 0 0 14px; padding: 0; }
.offcanvas-mobile-links a { font-size: 13.5px; font-weight: 500; color: var(--rs-title-primary); }
.offcanvas-mobile-links a:hover { color: var(--rs-theme-yellow); }
.offcanvas-mobile-highlight { background: #f4c6c2; padding: 3px 10px; border-radius: 4px; }
.offcanvas-mobile-btn { background: var(--rs-theme-red); color: #fff !important; padding: 4px 12px; border-radius: 4px; font-weight: 600; }
.offcanvas-mobile-code { font-size: 12.5px; font-weight: 600; color: var(--rs-theme-blue); background: var(--rs-bg-secondary); display: inline-block; padding: 4px 12px; border-radius: 4px; margin-bottom: 14px; }
.offcanvas-mobile-badges { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.offcanvas-mobile-badges img { height: 42px; width: auto; max-width: 100px; object-fit: contain; }

/* Solid navy nav bar (not the template's transparent-over-banner look), to
   match the reference site's opaque header. */
.rs-header-one .header-wrapper { background: var(--rs-theme-blue) !important; }

/* Logo/name/hamburger row goes white on mobile — only the code strip above
   it stays navy — so flip the hamburger bars to a dark color. This must
   stay AFTER the unconditional navy rule above: both are !important with
   equal specificity, so source order decides the winner at ≤991px. */
@media (max-width: 1199px) {
    .rs-header-one .header-wrapper { background: #fff !important; border-bottom: 1px solid var(--rs-border-primary); }
    /* The non-sticky header (header-two) is absolutely positioned in the base
       template so it can float over a tall banner — with no banner behind it
       here, that made it overlap the page content right below it. Put it
       back in normal flow on mobile so it reserves its own space instead.
       (Scoped away from #rs-sticky-header, which must stay position:fixed
       for its scroll-to-sticky behavior — it's invisible until then anyway.) */
    .rs-header-one .header-wrapper:not(.rs-sticky-header) { position: static !important; }
    .header-bar-icon span,
    .header-transparent .sidebar-toggle .header-bar-icon span,
    .rs-sticky-header .sidebar-toggle .header-bar-icon span { background: var(--rs-theme-blue); }
}

.rs-header-badges-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 30px; flex-wrap: wrap; background: #fff; border-bottom: 1px solid var(--rs-border-primary); }
.rs-header-badges-left { display: flex; align-items: center; gap: 14px; }
.rs-header-badges-list { margin-inline-start: auto; }
.rs-header-badges-logo img { height: 104px; width: auto; }
.rs-header-college-name { line-height: 1.25; }
.rs-header-college-name strong { display: block; font-size: 20px; color: var(--rs-theme-blue); font-family: var(--rs-ff-title); }
.rs-header-college-name span { font-size: 12.5px; color: var(--rs-text-secondary); }
.rs-header-badges-list { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; justify-content: center; }
.rs-header-badge { display: flex; align-items: center; justify-content: center; padding: 4px 12px; border-radius: 8px; background: #fff; height: 62px; box-sizing: border-box; }
.rs-header-badge img { max-height: 50px; max-width: 150px; width: auto; height: auto; object-fit: contain; }
.rs-header-badges-list .rs-header-badge:nth-child(1),
.rs-header-badges-list .rs-header-badge:nth-child(2) { height: 74px; }
.rs-header-badges-list .rs-header-badge:nth-child(1) img,
.rs-header-badges-list .rs-header-badge:nth-child(2) img { max-height: 62px; max-width: 190px; }
.rs-header-search-box { display: flex; align-items: center; border: 2px solid #c6c6c6; border-radius: 24px; padding: 6px 6px 6px 16px; gap: 8px; min-width: 300px; }
.rs-header-search-box input {
    border: none;
    outline: none;
    font-size: 13px;
    flex: 1;
    background: transparent;
    height: 30px;
    padding: 0;
}
.rs-header-search-box button {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: none;
    color: var(--rs-theme-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex: 0 0 auto;
    font-size: 20px;
}
@media (max-width: 991px) { .rs-header-badges-row { justify-content: center; text-align: center; } }
@media (max-width: 575px) { .rs-header-search-box { display: none; } }

/* Dead-zone fix: between 1200px (desktop nav kicks in) and ~1500px, the
   badges row's full-size content (logo + badges + search + HCLTech badge)
   is wider than the viewport, so it wraps and drops the HCLTech badge
   onto its own line. Compact everything so it stays on one line down to
   1200px. Common at 125% browser zoom on a 1920px-wide laptop screen
   (effective viewport ~1536px) or a 1512px-wide 13" laptop screen at 125%
   zoom (effective viewport ~1210px). The topbar above it has the exact
   same problem in a narrower 1200-1219px band, fixed here too. */
@media (min-width: 1200px) and (max-width: 1500px) {
    .rs-header-badges-row { gap: 10px; padding: 8px 16px; }
    .rs-header-badges-left { gap: 8px; }
    .rs-header-badges-logo img { height: 80px; }
    .rs-header-badge { height: 46px; padding: 3px 8px; }
    .rs-header-badge img { max-height: 40px; max-width: 100px; }
    .rs-header-badges-list .rs-header-badge:nth-child(1),
    .rs-header-badges-list .rs-header-badge:nth-child(2) { height: 60px; }
    .rs-header-badges-list .rs-header-badge:nth-child(1) img,
    .rs-header-badges-list .rs-header-badge:nth-child(2) img { max-height: 50px; max-width: 180px; }
    .rs-header-search-box { min-width: 170px; padding: 4px 4px 4px 10px; }
    .rs-header-search-box input { font-size: 12px; height: 24px; }

    .rs-topbar-tjs { gap: 6px; padding: 7px 16px; }
    .rs-topbar-tjs .topbar-links { gap: 10px; }
    .rs-topbar-tjs a { font-size: 12px; }
    .rs-topbar-tjs .topbar-highlight { padding: 4px 10px; }
    .rs-topbar-tjs .topbar-code { font-size: 11.5px; padding: 4px 8px; }
    .rs-topbar-tjs .topbar-btn { padding: 5px 10px; }
}

/* Compact the nav row so all 10 top-level items fit on one line like the
   reference site — the template's default 16px font / 25px gap was sized
   for ~6 items and wrapped to two lines with the new, longer menu. */
.rs-header-one .header-logo img { max-height: 36px; width: auto; }
.header-menu .main-menu { margin-inline-start: 0; width: auto; }
.header-menu .main-menu > ul { flex-wrap: nowrap; gap: 0 6px; justify-content: center; }
.header-menu .main-menu > ul > li > a { font-size: 15px; white-space: nowrap; padding-inline: 8px; }
.header-menu .main-menu > ul > li.menu-item-has-children > a::after { margin-inline-start: 3px; }
.header-menu .main-menu > ul > li > a .ri-home-4-line { font-size: 22px; }
@media (max-width: 1300px) { .header-menu .main-menu > ul { gap: 0 3px; } .header-menu .main-menu > ul > li > a { font-size: 12.5px; padding-inline: 5px; } }

/* Flat, flush dropdown panel + solid active-tab highlight, matching the
   reference site's look (no floating rounded card / shadow). */
.header-menu .main-menu > ul > li > a { padding-block: 16px; }
.header-menu .main-menu > ul > li:hover > a,
.header-menu .main-menu > ul > li.active > a { color: #ff7a1a; }
.header-menu .main-menu > ul > li:hover > a::after,
.header-menu .main-menu > ul > li.active > a::after { color: #ff7a1a; }
.header-menu .main-menu .submenu li:hover > a,
.header-menu .main-menu .submenu li.active > a { color: #ff7a1a; }
.header-menu .main-menu .submenu { border-radius: 0; box-shadow: 0 12px 24px rgba(3, 3, 3, 0.18); border: none; padding: 0; width: 260px; }
.header-menu .main-menu .submenu li { border-radius: 0; }
.header-menu .main-menu .submenu li a { padding-inline-start: 18px !important; padding-inline-end: 18px; }
.header-menu .main-menu .submenu ul { border-radius: 0; box-shadow: 0 12px 24px rgba(3, 3, 3, 0.18); border: none;padding: 0; width: 240px; margin-inline-start: 0; }

/* Keep every dropdown a single column (menu-clean.css auto-switched to a
   2-column layout once a submenu had 7+ items — the reference site keeps
   long lists as one column with a scroll instead). */
.header-menu .main-menu .submenu:has(> li:nth-child(7)),
.header-menu .main-menu .submenu.submenu-column-1:has(> li:nth-child(7)) {
    width: 260px;
    /* column-count must stay "auto" (not 1) — a multicol formatting
       context, even with a single column, makes Chrome stretch this
       container's height to include its absolutely-positioned flyout
       submenus, leaving a blank gap below the last item. */
    column-count: auto;
    column-gap: 0;
    column-rule: none;
    padding: 0;
}

/* ---- footer-redesign.css ---- */
.tjs-footer { background: var(--rs-theme-blue); padding: 60px 0 65px; }
/* The events ticker is fixed to the viewport bottom and otherwise covers
   the last bit of page content (the copyright line) once fully scrolled. */
.tjs-footer-bottom { padding-bottom: 60px; }
.tjs-footer-columns { display: flex; flex-wrap: wrap; gap: 40px; padding-bottom: 40px; }
.tjs-footer-col { flex: 1 1 180px; color: rgba(255, 255, 255, 0.75); font-size: 14px; line-height: 1.7; }
.tjs-footer-col.tjs-footer-address { flex: 1.4 1 260px; }
.tjs-footer-col h5 { color: #fff; font-family: var(--rs-ff-title); font-size: 19px; font-weight: 600; margin-bottom: 20px; }
.tjs-footer-college-name { color: #fff; font-weight: 700; font-size: 16px; letter-spacing: 0.3px; margin-bottom: 12px; }
.tjs-footer-address p { color: rgba(255, 255, 255, 0.92); }
.tjs-footer-col p { margin-bottom: 12px; }
.tjs-footer-col p i { color: var(--rs-theme-yellow); margin-inline-end: 6px; }
.tjs-footer-col a { color: inherit; transition: color 0.2s ease; }
.tjs-footer-col a:hover { color: var(--rs-theme-yellow); }
.tjs-footer-col ul { list-style: none; margin: 0; padding: 0; }
.tjs-footer-col ul li { margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.tjs-footer-col ul li i { color: var(--rs-white); font-size: 15px; flex: 0 0 auto; }
.tjs-footer-social ul li { margin-bottom: 18px; }
.tjs-footer-social ul li a { display: flex; align-items: center; gap: 14px; font-size: 15px; }
.tjs-footer-social-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 19px; flex: 0 0 auto; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25); }
.tjs-footer-col .tjs-footer-social-icon i {font-size: 19px; }
.tjs-social-instagram { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
.tjs-social-facebook { background: #1877f2; }
.tjs-social-linkedin { background: #0a66c2; }
.tjs-social-twitter { background: #000; }
.tjs-social-youtube { background: #ff0000; }
.tjs-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    padding: 18px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}
.tjs-footer-bottom p { margin: 0; color: rgba(255, 255, 255, 0.6); font-size: 13px; }
.tjs-footer-credit { display: inline-flex; align-items: center; gap: 6px; }
.tjs-footer-credit img { height: 18px; width: auto; display: inline-block; }
@media (max-width: 767px) { .tjs-footer-columns { gap: 30px; } }

/* ---- header-utility.css ---- */
.header-utility-icons { display: flex; align-items: center; gap: 8px; margin-inline-end: 12px; }
.header-utility-icon { display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); color: var(--rs-white); font-size: 20px; transition: background-color 0.2s ease, color 0.2s ease; }
.header-utility-icon:hover { background: var(--rs-theme-yellow); color: var(--rs-theme-blue); }
@media only screen and (max-width: 575px) { .header-utility-icons { display: none; } }

/* ---- programmes-offered.css ---- */
.tjs-prog-page { max-width: 1200px; margin: 0 auto; padding: 70px 20px 90px; }
.tjs-prog-hero { text-align: center; margin-bottom: 36px;     margin-top: 40px;}
.tjs-prog-hero h1 { position: relative; color: var(--rs-theme-blue); font-size: 38px; font-weight: 700; margin-bottom: 10px; padding-bottom: 16px; }
.tjs-prog-hero h1::after { content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 54px; height: 3px; background: var(--rs-theme-yellow); border-radius: 2px; }
.tjs-prog-hero p { color: var(--rs-text-primary); font-size: 16px; }
.tjs-prog-tabs-wrapper { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 16px; box-shadow: 0 12px 30px rgba(3, 3, 3, 0.08); padding: 20px; max-width: 620px; margin: 0 auto 44px; text-align: center; }
.tjs-prog-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; background: var(--rs-bg-secondary); border-radius: 40px; padding: 6px; }
.tjs-prog-tab { border: none; background: transparent; padding: 10px 22px; border-radius: 40px; font-size: 14px; font-weight: 600; color: var(--rs-title-primary); cursor: pointer; transition: background-color 0.2s ease, color 0.2s ease; }
.tjs-prog-tab.active { background: var(--rs-theme-yellow); color: #fff; }
.tjs-prog-hint { margin: 14px 0 0; font-size: 13px; color: var(--rs-text-secondary); }
.tjs-prog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tjs-prog-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; padding: 26px 24px; box-shadow: 0 8px 22px rgba(3, 3, 3, 0.06); }
.tjs-prog-card h3 { color: var(--rs-theme-blue); font-size: 18px; font-weight: 700; margin-bottom: 10px; line-height: 1.35; }
.tjs-prog-degree-tag { display: inline-block; font-size: 12px; color: var(--rs-text-primary); margin-bottom: 14px; }
.tjs-prog-meta { display: flex; align-items: center; gap: 6px; font-size: 13.5px; color: var(--rs-theme-blue); margin-bottom: 16px; }
.tjs-prog-meta-sep { color: var(--rs-border-primary); }
.tjs-prog-explore { color: var(--rs-theme-yellow); font-weight: 600; font-size: 14px; margin-top: auto; padding-top: 12px; }
.tjs-prog-explore:hover { color: var(--rs-theme-blue); }
@media (max-width: 991px) { .tjs-prog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .tjs-prog-grid { grid-template-columns: 1fr; } .tjs-prog-hero h1 { font-size: 28px; } }

/* ---- department-page.css ---- */
.tjs-dept-page { max-width: 1200px; margin: 0 auto; padding: 0 0px 90px; }
.tjs-dept-hero-split { display: flex; min-height: 550px; }
.tjs-dept-hero-text {
    flex: 1 1 50%; display: flex; flex-direction: column; justify-content: center;
    padding: 50px 60px; background: repeating-linear-gradient(135deg, #fff 0px, #fff 46px, #f4f5f7 46px, #f4f5f7 48px);
}
.tjs-dept-hero-label { color: var(--rs-theme-yellow); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px; }
.tjs-dept-hero-text h1 { position: relative; font-size: 34px; font-weight: 700; color: var(--rs-title-primary); margin-bottom: 22px; padding-bottom: 16px; line-height: 1.2; }
.tjs-dept-hero-text h1::after { content: ""; position: absolute; left: 0; bottom: 0; width: 54px; height: 3px; background: var(--rs-theme-yellow); border-radius: 2px; }
.tjs-dept-hero-text p { color: var(--rs-text-primary); font-size: 16px; line-height: 1.7; max-width: 480px; }
.tjs-dept-hero-image { flex: 1 1 50%; position: relative; min-height: 550px; }
.tjs-dept-hero-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 767px) {
    .tjs-dept-hero-split { flex-direction: column; }
    .tjs-dept-hero-text { padding: 36px 24px; }
    .tjs-dept-hero-text h1 { font-size: 26px; }
    .tjs-dept-hero-image { min-height: 350px; }
}
.tjs-dept-jump {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: #fff;
    border-bottom: 1px solid var(--rs-border-primary);
    padding: 12px 10px;
    margin-bottom: 10px;
    position: sticky;
    top: 0;
    z-index: 1;
}
/* Only this inner row clips horizontally, never the <nav> itself: CSS
   forces overflow-y to compute as "auto" wherever overflow-x is non-visible
   and overflow-y isn't the same, which would turn the "Others" dropdown
   (a sibling, not a descendant of this row) into a clipped scrollable
   sliver if it were the one with overflow-x:hidden. */
.tjs-dept-jump-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: hidden;
    gap: 4px;
    justify-content: center;
    flex: 1 1 auto;
    min-width: 0;
}
.tjs-dept-jump a { font-size: 13px; font-weight: 600; color: var(--rs-title-primary); padding: 6px 12px; border-radius: 20px; white-space: nowrap; }
.tjs-dept-jump a:hover { background: var(--rs-bg-secondary); color: var(--rs-theme-blue); }

/* "Others" overflow dropdown: DeptJumpNav.js measures item widths and moves
   whatever doesn't fit on one line in here, instead of letting the row wrap
   to a second line. */
.tjs-dept-jump-others { position: relative; flex: 0 0 auto; }
.tjs-dept-jump-others > button {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 13px;
    font-weight: 600;
    color: var(--rs-title-primary);
    padding: 6px 12px;
    border-radius: 20px;
    border: none;
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
}
.tjs-dept-jump-others > button:hover,
.tjs-dept-jump-others > button[aria-expanded="true"] { background: var(--rs-bg-secondary); color: var(--rs-theme-blue); }
.tjs-dept-jump-others-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #fff;
    border: 1px solid var(--rs-border-primary);
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(20, 25, 60, 0.14);
    padding: 8px;
    display: flex;
    flex-direction: column;
    min-width: 200px;
    z-index: 5;
}
.tjs-dept-jump-others-menu a { padding: 9px 12px; border-radius: 8px; white-space: normal; }
.tjs-dept-jump-others-menu a:hover { background: var(--rs-bg-secondary); color: var(--rs-theme-blue); }
.tjs-dept-jump-measure {
    position: absolute;
    left: -9999px;
    top: -9999px;
    display: flex;
    gap: 4px;
    visibility: hidden;
    pointer-events: none;
}
.tjs-dept-jump-measure a,
.tjs-dept-jump-measure button { padding: 6px 12px; font-size: 13px; font-weight: 600; white-space: nowrap; }
@media (max-width: 767px) {
    .tjs-dept-jump { padding: 0; }
    .tjs-dept-jump-tabs {
        justify-content: flex-start;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 6px;
        padding: 10px 14px;
    }
    .tjs-dept-jump-tabs::-webkit-scrollbar { display: none; }
    .tjs-dept-jump a { flex: 0 0 auto; font-size: 12.5px; padding: 6px 14px; background: var(--rs-bg-secondary); }
}

/* Two-level department quick-nav (DeptMegaNav) — full-width row of category
   triggers, each opening a flyout panel of its real sub-section anchors.
   Collapses to a vertical accordion under 768px, since a flyout doesn't fit
   a narrow screen. */
.tjs-dept-mega-nav { position: sticky; top: 0; z-index: 2; background: #fff; border-bottom: 1px solid var(--rs-border-primary); margin-bottom: 10px; }
.tjs-dept-mega-list { display: flex; flex-wrap: wrap; width: 100%; }
.tjs-dept-mega-item { position: relative; flex: 1 1 0; border-inline-end: 1px solid var(--rs-border-primary); }
.tjs-dept-mega-item:last-child { border-inline-end: none; }
.tjs-dept-mega-trigger {
    display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%;
    border: none; background: none; padding: 15px 10px; font-size: 13.5px; font-weight: 700;
    color: var(--rs-title-primary); cursor: pointer; white-space: nowrap;
}
/* Below ~1300px ten full-text labels no longer fit on one nowrap row; tighten
   padding/font first so wrapping is a last resort, not the first reaction. */
@media (min-width: 768px) and (max-width: 1300px) {
    .tjs-dept-mega-trigger { padding: 13px 6px; font-size: 12px; gap: 4px; }
    .tjs-dept-mega-trigger i { font-size: 14px; }
}
.tjs-dept-mega-trigger i { font-size: 16px; color: var(--rs-text-secondary); transition: transform 0.2s ease; flex: 0 0 auto; }
.tjs-dept-mega-trigger:hover { background: var(--rs-bg-secondary); }
.tjs-dept-mega-item.open .tjs-dept-mega-trigger { background: var(--rs-theme-blue); color: #fff; }
.tjs-dept-mega-item.open .tjs-dept-mega-trigger i { color: #fff; transform: rotate(180deg); }
.tjs-dept-mega-dropdown {
    position: absolute; top: 100%; inset-inline-start: 0; z-index: 5; min-width: 230px;
    background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 0 0 10px 10px;
    box-shadow: 0 16px 36px rgba(3, 3, 3, 0.14); padding: 8px; display: flex; flex-direction: column; gap: 2px;
}
.tjs-dept-mega-item:nth-last-child(-n+2) .tjs-dept-mega-dropdown { inset-inline-start: auto; inset-inline-end: 0; border-radius: 0 0 0 10px; }
.tjs-dept-mega-dropdown a { padding: 10px 14px; border-radius: 6px; font-size: 13.5px; font-weight: 500; color: var(--rs-text-primary); white-space: nowrap; }
.tjs-dept-mega-dropdown a:hover { background: var(--rs-bg-secondary); color: var(--rs-theme-blue); }
.tjs-dept-mega-toggle { display: none; }
@media (max-width: 767px) {
    /* Ten expanded category rows above the fold buried the page's actual
       content — collapse the whole accordion behind one compact toggle bar,
       matching the trigger buttons' own look, and only build it out when
       the visitor actually asks to browse sections. */
    .tjs-dept-mega-toggle {
        display: flex; align-items: center; justify-content: space-between; width: 100%;
        border: none; background: #fff; padding: 14px 16px; font-size: 14px; font-weight: 700;
        color: var(--rs-title-primary); cursor: pointer;
    }
    .tjs-dept-mega-toggle span { display: flex; align-items: center; gap: 8px; }
    .tjs-dept-mega-toggle i { font-size: 18px; color: var(--rs-text-secondary); transition: transform 0.2s ease; }
    .tjs-dept-mega-toggle[aria-expanded="true"] { background: var(--rs-theme-blue); color: #fff; }
    .tjs-dept-mega-toggle[aria-expanded="true"] i { color: #fff; }
    .tjs-dept-mega-toggle[aria-expanded="true"] i:last-child { transform: rotate(180deg); }
    .tjs-dept-mega-list { display: none; flex-direction: column; border-top: 1px solid var(--rs-border-primary); }
    .tjs-dept-mega-list.mobile-open { display: flex; }
    .tjs-dept-mega-item { border-inline-end: none; border-bottom: 1px solid var(--rs-border-primary); }
    .tjs-dept-mega-item:last-child { border-bottom: none; }
    .tjs-dept-mega-trigger { justify-content: space-between; padding: 14px 16px; }
    .tjs-dept-mega-dropdown {
        position: static; min-width: 0; border: none; border-radius: 0; box-shadow: none;
        background: var(--rs-bg-secondary); padding: 6px 10px 10px 24px;
    }
    .tjs-dept-mega-item:nth-last-child(-n+2) .tjs-dept-mega-dropdown { inset-inline-end: auto; }
    .tjs-dept-mega-dropdown a { white-space: normal; }
}

.tjs-dept-toppers-top { padding: 30px 0 0; }
.tjs-dept-toppers-top h3 { color: var(--rs-theme-blue); font-size: 18px; font-weight: 700; margin: 0 0 12px; text-align: center; }
.tjs-dept-section { padding: 50px 0; scroll-margin-top: 74px; }
.tjs-dept-section-alt {margin: 0 0px; }
.tjs-dept-section h2 { position: relative; color: var(--rs-theme-blue); font-size: 26px; font-weight: 700; margin-bottom: 28px; padding-bottom: 14px; }
.tjs-dept-section h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 54px; height: 3px; background: var(--rs-theme-yellow); border-radius: 2px; }
.tjs-dept-section h3 { color: var(--rs-theme-blue); font-size: 18px; font-weight: 700; margin: 26px 0 12px; }
.tjs-dept-section h4 { color: var(--rs-text-primary); font-size: 16px; font-weight: 700; margin: 0px 0 12px; }
.tjs-dept-lab-label { color: var(--rs-theme-blue); font-size: 14px; font-weight: 600; margin: 0 0 10px; }
.tjs-dept-section p { color: var(--rs-text-primary); line-height: 1.7; margin-bottom: 14px; }
.tjs-dept-section ul:not(.tjs-dept-bullets):not(.tjs-dept-person-list):not(.tjs-dept-link-list) {
    color: var(--rs-text-primary); line-height: 1.8; padding-inline-start: 20px; margin-bottom: 14px;
}
.tjs-dept-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 20px 0; }
.tjs-dept-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

.tjs-contact-map-wrap { border-radius: 12px; overflow: hidden; box-shadow: 0 8px 22px rgba(3, 3, 3, 0.08); }
.tjs-contact-map-wrap iframe { width: 100%; height: 420px; border: 0; display: block; }

.tjs-contact-social ul { display: flex; flex-wrap: wrap; gap: 28px; list-style: none; margin: 0; padding: 0; }
.tjs-contact-social ul li a { display: flex; align-items: center; gap: 12px; color: var(--rs-text-primary); font-weight: 600; }
.tjs-contact-social ul li a:hover { color: var(--rs-theme-blue); }
.tjs-dept-card { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; padding: 24px; box-shadow: 0 8px 22px rgba(3, 3, 3, 0.05); }
.tjs-dept-card h3 { margin-top: 0; }
.tjs-dept-card ul { margin: 0; padding: 0; list-style: none; color: var(--rs-text-primary); }
.tjs-dept-card ul li { position: relative; margin-bottom: 12px; padding-inline-start: 26px; line-height: 1.6; }
/* Premium checkmark bullet list for named coordinators/participants inside
   an event card (e.g. Industrial Visit faculty lists) — same checkmark
   glyph as .tjs-dept-card ul, sized down to sit inline in a smaller card. */
.tjs-dept-person-list { list-style: none; margin: 12px 0 0; padding: 0; }
.tjs-dept-person-list li {
    position: relative;
    padding-inline-start: 22px;
    margin-bottom: 8px;
    line-height: 1.5;
    font-size: 14px;
    color: var(--rs-text-primary);
}
.tjs-dept-person-list li:last-child { margin-bottom: 0; }
.tjs-dept-person-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    width: 13px;
    height: 11px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='13' viewBox='0 0 15 13'%3E%3Cpath fill='%23ec6a40' d='M6.39959 12.3594C6.35715 12.3594 6.31517 12.3506 6.27629 12.3336C6.2374 12.3166 6.20246 12.2917 6.17365 12.2606L0.0817469 5.67088C0.0411367 5.62695 0.0142147 5.57213 0.00427583 5.51313C-0.00566304 5.45414 0.00181231 5.39352 0.0257871 5.33871C0.0497619 5.2839 0.0891961 5.23726 0.139263 5.20452C0.189331 5.17177 0.247859 5.15433 0.307685 5.15432H3.23999C3.28402 5.15433 3.32753 5.16378 3.3676 5.18203C3.40766 5.20029 3.44334 5.22692 3.47224 5.26014L5.50818 7.60242C5.72821 7.13208 6.15415 6.34894 6.90159 5.39466C8.00658 3.98389 10.0619 1.90909 13.5783 0.0361075C13.6463 -8.57115e-05 13.7254 -0.00947928 13.7999 0.00978174C13.8745 0.0290428 13.9391 0.0755582 13.981 0.140143C14.023 0.204728 14.0392 0.282687 14.0264 0.358628C14.0137 0.434568 13.9729 0.502968 13.9122 0.550323C13.8988 0.560815 12.5429 1.62851 10.9826 3.58417C9.54652 5.38386 7.63753 8.32663 6.69818 12.1257C6.68168 12.1925 6.6433 12.2517 6.58916 12.2941C6.53503 12.3365 6.46835 12.3594 6.39959 12.3594Z'%3E%3C/path%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.tjs-dept-person-list .tjs-dept-person-role { color: var(--rs-text-secondary); font-weight: 500; }
.tjs-dept-card ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 15px;
    height: 13px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='13' viewBox='0 0 15 13'%3E%3Cpath fill='%23ec6a40' d='M6.39959 12.3594C6.35715 12.3594 6.31517 12.3506 6.27629 12.3336C6.2374 12.3166 6.20246 12.2917 6.17365 12.2606L0.0817469 5.67088C0.0411367 5.62695 0.0142147 5.57213 0.00427583 5.51313C-0.00566304 5.45414 0.00181231 5.39352 0.0257871 5.33871C0.0497619 5.2839 0.0891961 5.23726 0.139263 5.20452C0.189331 5.17177 0.247859 5.15433 0.307685 5.15432H3.23999C3.28402 5.15433 3.32753 5.16378 3.3676 5.18203C3.40766 5.20029 3.44334 5.22692 3.47224 5.26014L5.50818 7.60242C5.72821 7.13208 6.15415 6.34894 6.90159 5.39466C8.00658 3.98389 10.0619 1.90909 13.5783 0.0361075C13.6463 -8.57115e-05 13.7254 -0.00947928 13.7999 0.00978174C13.8745 0.0290428 13.9391 0.0755582 13.981 0.140143C14.023 0.204728 14.0392 0.282687 14.0264 0.358628C14.0137 0.434568 13.9729 0.502968 13.9122 0.550323C13.8988 0.560815 12.5429 1.62851 10.9826 3.58417C9.54652 5.38386 7.63753 8.32663 6.69818 12.1257C6.68168 12.1925 6.6433 12.2517 6.58916 12.2941C6.53503 12.3365 6.46835 12.3594 6.39959 12.3594Z'%3E%3C/path%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}
.tjs-dept-pending { font-style: italic; color: var(--rs-text-secondary); opacity: 0.8; }
.tjs-dept-hod { display: flex; gap: 28px; align-items: flex-start; }
.tjs-dept-hod-photo { flex: 0 0 auto; width: 220px; height: 240px; border-radius: 10px; background: var(--rs-border-primary); color: var(--rs-text-secondary); display: flex; align-items: center; justify-content: center; font-size: 13px; overflow: hidden; box-shadow: 0 10px 24px rgba(3, 3, 3, 0.1); }
.tjs-dept-hod-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; border-radius: 10px; }
.tjs-dept-hod-message h3 { margin-top: 0; }
.tjs-dept-hod-quote { font-weight: 700; color: var(--rs-theme-blue); font-style: italic; }
.tjs-dept-hod-sign { color: var(--rs-title-primary); line-height: 1.5; }
@media (max-width: 767px) {
    .tjs-dept-hod { flex-direction: column; }
    .tjs-dept-hod-photo { width: 100%; max-width: 280px; height: 280px; }
    .tjs-dept-grid-2, .tjs-dept-grid-3 { grid-template-columns: 1fr; }
}
.tjs-dept-table-wrap { overflow-x: auto; margin-bottom: 10px; }
.tjs-dept-table { width: 100%; border-collapse: collapse; background: #fff; }
.tjs-dept-table th, .tjs-dept-table td { border: 1px solid var(--rs-border-primary); padding: 10px 14px; font-size: 14px; text-align: left; }
.tjs-dept-table th { background: var(--rs-theme-blue); color: #fff; font-weight: 600; }
.tjs-dept-table-pending { text-align: center; font-style: italic; color: var(--rs-text-secondary); }
.tjs-dept-bubble-wrap { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; padding: 20px; }
.tjs-dept-bubble-svg { width: 100%; height: auto; overflow: visible; }
.tjs-bubble-title { font-family: var(--rs-ff-title); font-size: 17px; font-weight: 700; fill: var(--rs-title-primary); }
.tjs-bubble-grid { stroke: var(--rs-border-primary); stroke-width: 1; }
.tjs-bubble-axis-label { font-size: 11px; fill: var(--rs-text-secondary); }
.tjs-bubble-axis-title { font-size: 12px; font-weight: 600; fill: var(--rs-text-primary); }
.tjs-dept-bubble-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: center; margin-top: 6px; }
.tjs-dept-bubble-legend-item { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--rs-title-primary); }
.tjs-dept-bubble-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
.tjs-dept-people-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 10px; }
.tjs-dept-people-card { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; overflow: hidden; text-align: center; box-shadow: 0 8px 20px rgba(3, 3, 3, 0.05); }
.tjs-dept-people-photo { background: #e3ecf9; padding: 26px 0 18px; }
.tjs-dept-people-photo img { width: 92px; height: 92px; border-radius: 50%; object-fit: cover; border: 3px solid #fff; box-shadow: 0 4px 10px rgba(3, 3, 3, 0.12); }
.tjs-dept-people-photo span { display: inline-flex; width: 92px; height: 92px; border-radius: 50%; background: #fff; align-items: center; justify-content: center; color: var(--rs-text-secondary); font-size: 12px; }
.tjs-dept-people-card h4 { margin: 16px 0 2px; color: var(--rs-theme-blue); font-size: 15px; font-weight: 700; }
.tjs-dept-people-role { color: var(--rs-text-secondary); font-size: 13px; margin-bottom: 8px !important; }
.tjs-dept-people-spec { font-size: 12.5px; color: var(--rs-title-primary); margin-bottom: 10px !important; padding: 0 12px; }
.tjs-dept-people-email { display: block; font-size: 12.5px; color: var(--rs-theme-yellow); font-weight: 600; padding-bottom: 18px; }
@media (max-width: 991px) { .tjs-dept-people-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .tjs-dept-people-grid { grid-template-columns: 1fr; }.tjs-dept-page {    padding: 0 15px 40px;} .tjs-dept-jump { top: 0; } }
.tjs-dept-tabs { display: inline-flex; gap: 6px; background: var(--rs-bg-secondary); border-radius: 30px; padding: 5px; margin-bottom: 24px; }
.tjs-dept-tab { border: none; background: transparent; padding: 9px 20px; border-radius: 30px; font-size: 13.5px; font-weight: 600; cursor: pointer; color: var(--rs-title-primary); }
.tjs-dept-tab.active { background: var(--rs-theme-blue); color: #fff; }
.tjs-dept-peo-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 10px; }
.tjs-dept-peo { background: #fff; border-inline-start: 3px solid var(--rs-theme-yellow); border-radius: 6px; padding: 14px 18px; box-shadow: 0 4px 14px rgba(3, 3, 3, 0.05); }
.tjs-dept-peo h4 { color: var(--rs-theme-blue); font-size: 16px; margin-bottom: 6px; }
.tjs-dept-peo p { margin: 0; font-size: 15px; }
.tjs-pub-list { display: flex; flex-direction: column; gap: 14px; }
.tjs-pub-card {
    display: flex; gap: 16px; align-items: flex-start; background: #fff; border-radius: 12px;
    border: 1px solid var(--rs-border-primary); border-inline-start: 4px solid var(--rs-theme-blue);
    padding: 18px 20px; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tjs-pub-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(3, 3, 3, 0.1); }
.tjs-pub-icon {
    flex: 0 0 auto; width: 40px; height: 40px; border-radius: 10px; background: var(--rs-bg-secondary);
    color: var(--rs-theme-blue); display: flex; align-items: center; justify-content: center; font-size: 18px;
}
.tjs-pub-content { min-width: 0; }
.tjs-pub-title { font-size: 15.5px; font-weight: 700; color: var(--rs-title-primary); line-height: 1.5; margin: 0 0 8px; }
.tjs-pub-title i { font-size: 13px; color: var(--rs-theme-blue); margin-inline-start: 4px; }
.tjs-pub-card:hover .tjs-pub-title { color: var(--rs-theme-blue); }
.tjs-pub-meta { font-size: 13.5px; color: var(--rs-text-secondary); margin: 0 0 10px !important; }
.tjs-pub-meta strong { color: var(--rs-title-primary); }
.tjs-pub-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.tjs-pub-badge {
    font-size: 11.5px; font-weight: 700; color: var(--rs-theme-blue); background: var(--rs-bg-secondary);
    padding: 4px 10px; border-radius: 20px;
}
.tjs-pub-badge-alt { color: #fff; background: var(--rs-theme-yellow); }

.tjs-dept-link-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; }
.tjs-dept-link-list a { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 8px; padding: 12px 18px; font-weight: 600; color: var(--rs-text-primary); }
.tjs-dept-link-list a:hover { border-color: var(--rs-theme-blue); }
.tjs-dept-link-arrow { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--rs-bg-secondary); color: var(--rs-theme-blue); font-weight: 400; flex: 0 0 auto; transition: background-color 0.2s ease; }
.tjs-dept-link-list a:hover .tjs-dept-link-arrow { background: var(--rs-theme-blue); color: #fff; }
.tjs-dept-bullets { color: var(--rs-text-primary); line-height: 1.8; padding-inline-start: 20px;     margin-bottom: 8px;}
.tjs-dept-richtext a { color: #2072eb; font-weight: 600; }
.tjs-dept-richtext a:hover { text-decoration: underline; }

/* Group label used above a batch of download cards (e.g. Regulations &
   Curriculum page) — needs to read clearly as a sub-level under the h2,
   so it gets its own accent tick and uppercase treatment rather than
   reusing .tjs-dept-lab-label (which is a quieter inline label elsewhere). */
p.tjs-dept-group-label {
    display: flex; align-items: center; gap: 10px;
    color: var(--rs-theme-yellow); font-size: 15px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.5px;
    margin: 34px 0 14px;
}
.tjs-dept-group-label:first-child { margin-top: 0; }


/* Text + photo side-by-side (photo on the right), used where a facility's
   photo previously sat full-width above its description. */
.tjs-dept-media-row { display: flex; gap: 36px; align-items: flex-start; margin-bottom: 10px; }
.tjs-dept-media-row-text { flex: 1 1 55%; min-width: 0; }
.tjs-dept-media-row-text p { margin-bottom: 14px; }
.tjs-dept-media-row-text p:last-child { margin-bottom: 0; }
.tjs-dept-media-row-img { flex: 0 0 38%; position: sticky; top: 90px; }
.tjs-dept-media-row-img img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 16px;
    box-shadow: 0 20px 40px rgba(20, 25, 60, 0.16);
}
@media (max-width: 767px) {
    .tjs-dept-media-row { flex-direction: column; gap: 20px; }
    .tjs-dept-media-row-img { flex: 0 0 auto; width: 100%; position: static; order: -1; }
}
.tjs-dept-divider { border: none; border-top: 1px solid var(--rs-border-primary); margin: 36px 0 6px; }

/* Compact photo gallery slider used inside .tjs-dept-media-row-img — a
   single large frame with overlay prev/next arrows and dot indicators,
   for facilities that have more than one reference photo. */
.tjs-dept-photo-slider-frame {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(20, 25, 60, 0.16);
}
.tjs-dept-photo-slider-frame img { width: 100%; height: auto; display: block; aspect-ratio: 4 / 3; object-fit: cover; }
.tjs-dept-photo-slider-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(4px);
    color: var(--rs-theme-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(20, 25, 60, 0.2);
    transition: background-color 0.2s ease, color 0.2s ease;
}
.tjs-dept-photo-slider-nav:hover { background: var(--rs-theme-blue); color: #fff; }
.tjs-dept-photo-slider-prev { left: 12px; }
.tjs-dept-photo-slider-next { right: 12px; }
.tjs-dept-photo-slider-frame .tjs-modal-zoom-btn { top: 12px; right: 12px; }
.tjs-dept-photo-slider-dots { display: flex; justify-content: center; gap: 8px; margin-top: 14px; }
.tjs-dept-photo-slider-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: var(--rs-border-primary);
    cursor: pointer;
    padding: 0;
    transition: background-color 0.2s ease, transform 0.2s ease;
}
.tjs-dept-photo-slider-dot.active { background: var(--rs-theme-blue); transform: scale(1.25); }

/* Generic rectangular "photo pending" placeholder — used for lab/event/
   activity photos where the source PDF only had scanned images, not
   separate uploadable files. */
.tjs-dept-photo-grid { display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 18px; }
.tjs-dept-photo-box {
    width: 160px; height: 110px; border-radius: 8px; background: var(--rs-bg-secondary);
    border: 1px dashed var(--rs-border-primary); color: var(--rs-text-secondary);
    display: flex; align-items: center; justify-content: center; font-size: 12.5px; flex: 0 0 auto;
}
.tjs-dept-photo-box.tjs-dept-logo-box { background: #fff; font-weight: 600; text-align: center; padding: 8px; }
.tjs-dept-photo-real {
    width: 160px; height: 110px; border-radius: 8px; object-fit: cover;
    border: 1px solid var(--rs-border-primary); flex: 0 0 auto;
}
.tjs-dept-logo-real {
    width: 160px; height: 120px; border-radius: 8px; background: #fff; object-fit: contain;
    border: 1px solid var(--rs-border-primary); flex: 0 0 auto; padding: 10px;
}

/* Dated activity entries (industrial visits, FDPs, guest lectures,
   workshops, conferences, alumni interactions, achievements). */
.tjs-dept-event-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
.tjs-dept-event { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 10px; padding: 16px 20px; box-shadow: 0 4px 14px rgba(3, 3, 3, 0.04); }
.tjs-dept-event-date { display: inline-block; color: #fff; background: var(--rs-theme-blue); font-size: 12px; font-weight: 700; padding: 3px 12px; border-radius: 20px; margin-bottom: 8px; }
.tjs-dept-event-title { color: var(--rs-title-primary); font-weight: 700; font-size: 15px; margin-bottom: 4px; }
.tjs-dept-event p { margin-bottom: 6px !important; font-size: 14px; }
.tjs-dept-event ul { margin: 6px 0 0; padding-inline-start: 20px; color: var(--rs-text-secondary); font-size: 13.5px; line-height: 1.7; }
.tjs-dept-event-imgs { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; }

/* Per-organisation photo blocks under the Internships table — clear
   heading + divider between each company so the galleries don't run
   together. */
.tjs-dept-intern-photos { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--rs-border-primary); }
.tjs-dept-intern-photos:first-of-type { margin-top: 22px; padding-top: 0; border-top: none; }
.tjs-dept-intern-org { color: var(--rs-theme-blue); font-size: 16px; font-weight: 700; margin: 0 0 4px; }
.tjs-dept-event-imgs img { width: 320px; height: 220px; object-fit: cover; border-radius: 10px; border: 1px solid var(--rs-border-primary); box-shadow: 0 6px 18px rgba(3, 3, 3, 0.08); }
.tjs-dept-event-imgs img.tjs-dept-event-img-wide { width: 100%; height: auto; max-width: 640px; max-height: 420px; object-fit: contain; }
@media (max-width: 575px) {
    .tjs-dept-event-imgs img { width: 100%; height: auto; max-width: 100%; }
}
/* Zoomable photo galleries (Sports, Alumni, Science & Humanities): columns
   stretch to fill the panel instead of leaving a gap on the right. */
.tjs-dept-event-imgs.tjs-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.tjs-dept-event-imgs.tjs-photo-grid img { width: 100%; height: auto; aspect-ratio: 16 / 11; }

/* Blog-card style horizontal slider (Events & Achievements) */
.tjs-slider-wrap { position: relative; display: block; margin-bottom: 24px; }
.tjs-slider-wrap .tjs-slider-nav {
    position: absolute; top: 89px; transform: translateY(-50%); z-index: 1;
    box-shadow: 0 8px 20px rgba(3, 3, 3, 0.18);
}
.tjs-slider-wrap .tjs-slider-nav-prev { left: 10px; }
.tjs-slider-wrap .tjs-slider-nav-next { right: 10px; }
.tjs-slider-track {
    display: flex; gap: 22px; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none;
    padding: 4px 4px 10px; min-width: 0; scroll-snap-type: x mandatory;
}
.tjs-slider-track::-webkit-scrollbar { display: none; }
.tjs-slider-card {
    flex: 0 0 calc((100% - 44px) / 3); min-width: 0; background: #fff; border-radius: 16px; overflow: hidden;
    border: 1px solid var(--rs-border-primary); scroll-snap-align: start;
    cursor: pointer; transition: transform 0.2s ease;
    display: flex; flex-direction: column;
}
.tjs-slider-card:hover { transform: translateY(-4px); }
.tjs-slider-nav {
    flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px;
    border-radius: 50%; border: 1px solid var(--rs-border-primary); background: #fff; color: var(--rs-theme-blue);
    cursor: pointer; font-size: 18px;
}
.tjs-slider-nav:hover { background: var(--rs-theme-blue); color: #fff; border-color: var(--rs-theme-blue); }
.tjs-slider-nav:disabled { opacity: 0.35; cursor: default; }
.tjs-slider-nav:disabled:hover { background: #fff; color: var(--rs-theme-blue); border-color: var(--rs-border-primary); }
@media (max-width: 767px) {
    .tjs-slider-card { flex-basis: calc((100% - 22px) / 2); }
}
@media (max-width: 575px) {
    .tjs-slider-card { flex-basis: 100%; }
}
.tjs-slider-card-img { width: 100%; height: 170px; object-fit: cover; display: block; }
.tjs-slider-card-img-spacer { width: 100%; height: 170px; flex: 0 0 auto; }

/* Circular-photo people carousel (Academic Toppers, etc.) — same nav-arrow
   pattern as the blog-card slider above, sized for .tjs-dept-people-card. */
.tjs-people-carousel-wrap { position: relative; display: block; margin-bottom: 20px; }
.tjs-people-carousel-wrap .tjs-slider-nav {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 1;
    box-shadow: 0 8px 20px rgba(3, 3, 3, 0.18);
}
.tjs-people-carousel-wrap .tjs-slider-nav-prev { left: 10px; }
.tjs-people-carousel-wrap .tjs-slider-nav-next { right: 10px; }
.tjs-people-carousel-track {
    display: flex; flex: 1 1 auto; gap: 20px; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none;
    padding: 4px 4px 10px; min-width: 0; scroll-snap-type: x mandatory;
}
.tjs-people-carousel-track::-webkit-scrollbar { display: none; }
.tjs-people-carousel-track .tjs-dept-people-card { flex: 0 0 calc((100% - 80px) / 5); min-width: 0; scroll-snap-align: start; margin-bottom: 0; }
@media (max-width: 1199px) {
    .tjs-people-carousel-track .tjs-dept-people-card { flex-basis: calc((100% - 60px) / 4); }
}
@media (max-width: 991px) {
    .tjs-people-carousel-track .tjs-dept-people-card { flex-basis: calc((100% - 40px) / 3); }
}
@media (max-width: 767px) {
    .tjs-people-carousel-track .tjs-dept-people-card { flex-basis: calc((100% - 20px) / 2); }
}
@media (max-width: 575px) {
    .tjs-people-carousel-track .tjs-dept-people-card { flex-basis: 85%; }
}

/* Academic Toppers carousel card — full, uncropped student photo (not a
   small circular avatar), so it gets its own rules instead of the plain
   faculty-grid look (.tjs-dept-people-card is shared with the Faculty/Staff
   grids, so all of this is scoped to cards rendered inside the carousel
   track). */
.tjs-people-carousel-track .tjs-dept-people-card,
.tjs-dept-people-grid-full .tjs-dept-people-card {
    position: relative;
    display: flex;
    flex-direction: column;
    border: none;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(20, 25, 60, 0.12);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.tjs-people-carousel-track .tjs-dept-people-card::before,
.tjs-dept-people-grid-full .tjs-dept-people-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--rs-theme-yellow), var(--rs-theme-blue));
    z-index: 1;
}
.tjs-people-carousel-track .tjs-dept-people-card:hover,
.tjs-dept-people-grid-full .tjs-dept-people-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 44px rgba(20, 25, 60, 0.2);
}
.tjs-people-carousel-track .tjs-dept-people-photo,
.tjs-dept-people-grid-full .tjs-dept-people-photo {
    aspect-ratio: 4 / 5;
    background: var(--rs-bg-secondary);
    padding: 0;
    overflow: hidden;
}
.tjs-people-carousel-track .tjs-dept-people-photo img,
.tjs-dept-people-grid-full .tjs-dept-people-photo img {
    width: 100%;
    height: 100%;
    display: block;
    border: none;
    border-radius: 0;
    object-fit: cover;
    object-position: top;
    box-shadow: none;
    transition: transform 0.4s ease;
}
.tjs-people-carousel-track .tjs-dept-people-card:hover .tjs-dept-people-photo img,
.tjs-dept-people-grid-full .tjs-dept-people-card:hover .tjs-dept-people-photo img {
    transform: scale(1);
}
.tjs-people-carousel-track .tjs-dept-people-photo span,
.tjs-dept-people-grid-full .tjs-dept-people-photo span {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 0;
}
.tjs-people-carousel-track .tjs-dept-people-card h4,
.tjs-dept-people-grid-full .tjs-dept-people-card h4 { font-size: 17px; margin: 18px 15px 8px; }
.tjs-people-carousel-track .tjs-dept-people-role,
.tjs-dept-people-grid-full .tjs-dept-people-role {
    display: inline-block;
    max-width: calc(100% - 32px);
    background: var(--rs-bg-secondary);
    color: var(--rs-theme-blue) !important;
    font-weight: 600;
    font-size: 12px !important;
    padding: 4px 14px;
    border-radius: 20px;
    margin: 0 16px 10px !important;
}
.tjs-people-carousel-track .tjs-dept-people-spec {
    font-weight: 700;
    color: var(--rs-theme-yellow);
    padding: 0 16px;
    margin-top: auto !important;
    margin-bottom: 20px !important;
}
.tjs-people-carousel-faculty .tjs-dept-people-spec {
    font-weight: 600;
    font-size: 12px;
    color: var(--rs-text-primary);
    white-space: pre-line;
}
.tjs-dept-people-grid-full .tjs-dept-people-spec {
    font-weight: 600;
    font-size: 12px;
    color: var(--rs-text-primary);
    padding: 0 16px;
    margin-top: 5px !important;
    margin-bottom: 20px !important;
    white-space: pre-line;
}
.tjs-dept-people-grid-full {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 24px;
}
.tjs-slider-card-body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1 1 auto; }
.tjs-slider-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; font-size: 12.5px; color: var(--rs-text-secondary); margin-bottom: 12px; }
.tjs-slider-card-meta span { display: inline-flex; align-items: center; gap: 5px; }
.tjs-slider-card-meta i { color: var(--rs-theme-yellow); font-size: 14px; }
.tjs-slider-card-title { font-size: 16px; font-weight: 700; color: var(--rs-title-primary); line-height: 1.35; margin: 0 0 10px; }
.tjs-slider-card-desc {
    font-size: 13px; color: var(--rs-text-secondary); line-height: 1.6; margin: 0 0 14px;
    display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.tjs-slider-card-readmore {
    display: inline-flex; align-items: center; gap: 6px; border: none; background: none; padding: 0;
    font-size: 13px; font-weight: 700; color: var(--rs-theme-blue); cursor: pointer; margin-top: auto;
}
.tjs-slider-card-readmore i { font-size: 15px; transition: transform 0.2s ease; }
.tjs-slider-card:hover .tjs-slider-card-readmore i { transform: translateX(3px); }

/* Fullscreen event detail popup */
@keyframes tjs-modal-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes tjs-modal-pop-in { from { opacity: 0; transform: translateY(18px) scale(0.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
.tjs-modal-overlay {
    position: fixed; inset: 0; background: rgba(10, 12, 20, 0.6); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 24px;
    animation: tjs-modal-fade-in 0.2s ease;
}
.tjs-modal {
    position: relative; background: #fff; border-radius: 20px; max-width: 720px; width: 100%;
    max-height: 88vh; box-shadow: 0 30px 70px rgba(3, 3, 3, 0.35); animation: tjs-modal-pop-in 0.28s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex; flex-direction: column; overflow: hidden;
}
.tjs-modal-scroll {
    flex: 1 1 auto; min-height: 0; overflow-y: auto;
    scrollbar-width: none;
}
.tjs-modal-scroll::-webkit-scrollbar { display: none; width: 0; height: 0; }
.tjs-modal-close {
    position: absolute; top: 18px; right: 18px; width: 40px; height: 40px; border-radius: 50%;
    border: none; background: rgba(255, 255, 255, 0.92); color: var(--rs-title-primary); font-size: 20px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; z-index: 2; box-shadow: 0 4px 14px rgba(3, 3, 3, 0.2);
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.tjs-modal-close:hover { background: var(--rs-theme-blue); color: #fff; transform: rotate(90deg); }
.tjs-modal-img-wrap { position: relative; }
.tjs-modal-img { width: 100%; max-height: 340px; object-fit: cover; display: block; border-radius: 20px 20px 0 0; }
.tjs-modal-img-zoomable { cursor: zoom-in; }
.tjs-modal-zoom-btn {
    position: absolute; top: 18px; right: 66px; width: 40px; height: 40px; border-radius: 50%;
    border: none; background: rgba(255, 255, 255, 0.92); color: var(--rs-title-primary); font-size: 19px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; z-index: 2; box-shadow: 0 4px 14px rgba(3, 3, 3, 0.2);
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.tjs-modal-zoom-btn:hover { background: var(--rs-theme-blue); color: #fff; transform: scale(1.08); }
.tjs-modal-zoom-overlay {
    position: fixed; inset: 0; background: rgba(5, 5, 8, 0.94); z-index: 10000;
    display: flex; align-items: center; justify-content: center; padding: 24px; cursor: zoom-out;
    animation: tjs-modal-fade-in 0.15s ease;
}
.tjs-modal-zoom-img { max-width: 95vw; max-height: 95vh; object-fit: contain; display: block; cursor: default; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); border-radius: 6px; }
.tjs-modal-img-nav {
    position: absolute;
    top: 45%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(4px);
    color: var(--rs-theme-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(20, 25, 60, 0.2);
    transition: background-color 0.2s ease, color 0.2s ease;
}
.tjs-modal-img-nav:hover { background: var(--rs-theme-blue); color: #fff; }
.tjs-modal-img-prev { left: 16px; }
.tjs-modal-img-next { right: 16px; }
.tjs-modal-img-dots { position: absolute; left: 0; right: 0; bottom: 30px; display: flex; justify-content: center; gap: 8px; }
.tjs-modal-img-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.6);
    cursor: pointer;
    padding: 0;
    transition: background-color 0.2s ease, transform 0.2s ease;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}
.tjs-modal-img-dot.active { background: #fff; transform: scale(1.25); }
.tjs-modal-meta-float {
    position: absolute; left: 24px; bottom: -18px; background: #fff; border-radius: 30px;
    padding: 9px 20px; display: flex; flex-wrap: wrap; gap: 14px; font-size: 12.5px; font-weight: 600;
    color: var(--rs-text-secondary); box-shadow: 0 8px 20px rgba(3, 3, 3, 0.14);
}
.tjs-modal-meta-float span, .tjs-modal-meta-noimg span { display: inline-flex; align-items: center; gap: 5px; }
.tjs-modal-meta-float i, .tjs-modal-meta-noimg i { color: var(--rs-theme-yellow); font-size: 14px; }
.tjs-modal-meta-noimg { padding: 28px 28px 0; }
.tjs-modal-body { padding: 38px 28px 32px; }
.tjs-modal-img-wrap + .tjs-modal-body { padding-top: 34px; }
.tjs-modal-title { font-size: 21px; font-weight: 700; color: var(--rs-title-primary); line-height: 1.35; margin: 0 0 16px; }
.tjs-modal-desc { font-size: 14.5px; color: var(--rs-text-primary); line-height: 1.85; margin: 0 0 16px; }
.tjs-modal-person {
    font-size: 13.5px; color: var(--rs-text-secondary); margin: 20px 0 0; padding-top: 16px;
    border-top: 1px solid var(--rs-border-primary);
}
.tjs-modal-person strong { color: var(--rs-title-primary); }
@media (max-width: 575px) {
    .tjs-modal-overlay { padding: 0; }
    .tjs-modal { max-height: 100vh; height: 100%; border-radius: 0; }
    .tjs-modal-img { max-height: 220px; border-radius: 0; }
    .tjs-modal-body { padding: 30px 20px 26px; }
    .tjs-modal-meta-noimg { padding: 22px 20px 0; }
}

/* ---- about-hero.css ---- */
.tjs-about-hero {
    position: relative; min-height: 440px; display: flex; align-items: center;
    background-size: cover; background-position: top; background-repeat: no-repeat;
}
.tjs-about-hero::before {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(44, 51, 112, 0.88) 0%, rgba(44, 51, 112, 0.6) 55%, rgba(44, 51, 112, 0.28) 100%);
}
.tjs-about-hero-content { position: relative; z-index: 1; max-width: 640px; padding: 40px 60px; }
.tjs-about-hero-label { display: inline-flex; align-items: center; gap: 8px; color: var(--rs-theme-yellow); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 16px; }
.tjs-about-hero-content h1 { color: #fff; font-size: 38px; font-weight: 700; line-height: 1.25; margin-bottom: 18px; }
.tjs-about-hero-content p { color: rgba(255, 255, 255, 0.85); font-size: 15.5px; line-height: 1.7; }
@media (max-width: 767px) {
    .tjs-about-hero { min-height: 360px; }
    .tjs-about-hero-content { padding: 30px 24px; }
    .tjs-about-hero-content h1 { font-size: 26px; }
}

.tjs-dept-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; color: var(--rs-text-secondary); padding: 20px 0 0; }
.tjs-dept-breadcrumb a { color: var(--rs-theme-blue); font-weight: 600; }
.tjs-dept-breadcrumb a:hover { color: var(--rs-theme-yellow); }

/* ---- subpage-banner.css (thin title + breadcrumb bar, reused across About sub-pages) ---- */
.tjs-subpage-banner {
    position: relative; display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap;
    gap: 10px; min-height: 130px; padding: 24px 40px;
    background-size: cover; background-position: center; background-repeat: no-repeat;
}
.tjs-subpage-banner::before { content: ""; position: absolute; inset: 0; background: rgb(21 27 86 / 57%); }
.tjs-subpage-banner h1 { position: relative; z-index: 1; color: #fff; font-size: 30px; font-weight: 700; margin: 0; }
.tjs-subpage-crumb { position: relative; z-index: 1; display: flex; gap: 8px; color: rgba(255, 255, 255, 0.85); font-size: 14px; }
.tjs-subpage-crumb a { color: rgba(255, 255, 255, 0.85); }
.tjs-subpage-crumb a:hover { color: var(--rs-theme-yellow); }
@media (max-width: 575px) { .tjs-subpage-banner h1 { font-size: 24px; } }

.tjs-dept-section .tjs-subpage-title { display: flex; align-items: center; gap: 12px; color: var(--rs-theme-blue); font-size: 26px; font-weight: 700; margin-bottom: 28px; padding-bottom: 0; }
/* Cancel the orange underline this h2 would otherwise inherit from
   .tjs-dept-section h2 — same specificity (2 classes), so this must stay
   after that rule in the file for the tie to resolve in its favor. */
.tjs-dept-section .tjs-subpage-title::after { content: none; }
.tjs-subpage-title-bar { display: inline-block; width: 5px; height: 26px; background: var(--rs-theme-blue); border-radius: 2px; flex: 0 0 auto; display:none;}

/* Industry Visit (IV) Forms page — step guide, download card grid and the
   instructions callout. */
.tjs-iv-step { display: flex; align-items: center; gap: 14px; text-align: left; padding: 18px 20px; }
.tjs-iv-step-icon {
    display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; flex: 0 0 auto;
    border-radius: 50%; background: var(--rs-bg-secondary); color: var(--rs-theme-yellow); font-size: 24px;
}
p.tjs-iv-step-title { font-weight: 700; color: var(--rs-title-primary); font-size: 15px; margin: 0 0 2px; }
p.tjs-iv-step-desc { color: var(--rs-text-primary); font-size: 13px; margin: 0; }
.tjs-iv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 10px 0 32px; }
.tjs-iv-card {
    display: block; border: 2px solid var(--rs-theme-blue); border-radius: 12px; padding: 20px 22px;
    background: #fff; transition: box-shadow 0.2s ease;
}
.tjs-iv-card:hover { box-shadow: 0 10px 24px rgba(3, 3, 3, 0.08); }
.tjs-iv-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.tjs-iv-card-head h4 { margin: 0; font-size: 16px; font-weight: 700; color: var(--rs-title-primary); }
.tjs-iv-card-head i { font-size: 20px; color: var(--rs-theme-blue); flex: 0 0 auto; }
.tjs-iv-card p { margin: 8px 0 0; font-size: 13.5px; color: var(--rs-text-primary); line-height: 1.6; }
.tjs-iv-instructions { background: var(--rs-bg-secondary); border-radius: 12px; padding: 26px 28px; }
.tjs-iv-instructions h4 { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 16px; font-weight: 700; color: var(--rs-title-primary); }
.tjs-iv-instructions h4 i { color: var(--rs-theme-yellow); font-size: 20px; }
.tjs-iv-instructions ul { margin: 0; padding-inline-start: 20px; color: var(--rs-text-primary); line-height: 1.9; }
.tjs-cdc-infographic { display: block; width: 100%; height: auto; border-radius: 14px; box-shadow: 0 16px 34px rgba(3, 3, 3, 0.12); margin: 18px 0 28px; }
@media (max-width: 767px) {
    .tjs-iv-grid { grid-template-columns: 1fr; }
}

.tjs-trustee-grid { display: grid; grid-template-columns: 280px 1fr; gap: 28px; align-items: start; }
.tjs-trustee-photo-card { background: var(--rs-bg-secondary); border-radius: 12px; padding: 30px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.tjs-trustee-photo { width: 190px; height: 190px; border-radius: 50%; background: #fff; box-shadow: 0 8px 24px rgba(3, 3, 3, 0.1); display: flex; align-items: center; justify-content: center; color: var(--rs-text-secondary); font-size: 13px; overflow: hidden; }
.tjs-trustee-photo img { width: 100%; height: 100%; object-fit: cover; }
.tjs-trustee-name-card { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; padding: 18px 20px; margin-bottom: 16px; }
.tjs-trustee-name-card h3 { color: var(--rs-theme-blue); font-size: 16px; font-weight: 700; margin-bottom: 2px; }
.tjs-trustee-qualification { color: var(--rs-text-secondary); font-size: 12px; white-space: nowrap; margin-bottom: 6px !important; }
.tjs-trustee-role { font-weight: 700; color: var(--rs-title-primary); font-size: 13.5px; margin-bottom: 2px !important; }
.tjs-trustee-org { color: var(--rs-text-secondary); font-size: 13px; }
.tjs-trustee-cta { display: block; background: var(--rs-theme-green, #1d8a4a); color: #fff; border-radius: 10px; padding: 14px 18px; font-size: 13.5px; font-weight: 600; line-height: 1.5; text-align: center; }
.tjs-trustee-cta i { margin-inline-start: 4px; }
.tjs-trustee-cta:hover { opacity: 0.92; color: #fff; }
.tjs-trustee-message-card { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; padding: 30px; box-shadow: 0 8px 22px rgba(3, 3, 3, 0.05); }

/* Static team-photo grid — large rectangular photos, no slider. */
.tjs-team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 10px; }
.tjs-team-card { display: flex; flex-direction: column; background: #fff; border-radius: 14px; overflow: hidden; border-bottom: 3px solid var(--rs-theme-blue); box-shadow: 0 10px 24px rgba(3, 3, 3, 0.08); text-align: center; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.tjs-team-card:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(3, 3, 3, 0.12); }
.tjs-team-photo { width: 100%; overflow: hidden; background: var(--rs-bg-secondary); }
.tjs-team-photo img { width: 100%; height: auto; display: block; }
.tjs-team-photo:has(span) { flex: 1; display: flex; }
.tjs-team-photo span { display: flex; align-items: center; justify-content: center; flex: 1; min-height: 220px; color: var(--rs-text-secondary); font-size: 13px; }
.tjs-team-info { padding: 20px 16px 22px; }
.tjs-team-info h4 { margin: 0 0 6px; font-size: 17px; font-weight: 700; color: var(--rs-theme-blue); letter-spacing: 0.2px; }
.tjs-team-info .tjs-trustee-qualification { font-size: 12.5px; font-style: italic; color: var(--rs-text-secondary); margin-bottom: 8px !important; }
.tjs-team-info p:last-child {
    display: inline-flex; align-self: center; margin: 0; padding: 4px 14px; border-radius: 20px;
    background: var(--rs-bg-secondary); color: var(--rs-title-primary); font-size: 11.5px; font-weight: 700;
    letter-spacing: 0.6px; text-transform: uppercase;
}
@media (max-width: 767px) { .tjs-team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .tjs-team-grid { grid-template-columns: 1fr; } }
.tjs-trustee-message-card h3 { color: var(--rs-theme-blue); font-size: 17px; font-weight: 700; margin-bottom: 14px; }

.tjs-organogram-card { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 14px; padding: 30px; box-shadow: 0 10px 24px rgba(3, 3, 3, 0.08); text-align: center; }
.tjs-organogram-card img { max-width: 100%; height: auto; }

.tjs-lib-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 4px 0 10px; }
.tjs-lib-stat {
    background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 14px; padding: 26px 18px;
    text-align: center; box-shadow: 0 8px 20px rgba(3, 3, 3, 0.05); transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tjs-lib-stat:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(3, 3, 3, 0.1); }
.tjs-lib-stat i { font-size: 30px; color: var(--rs-theme-blue); margin-bottom: 10px; display: inline-block; }
.tjs-lib-stat strong { display: block; font-size: 24px; font-weight: 800; color: var(--rs-title-primary); margin-bottom: 4px; }
.tjs-lib-stat span { font-size: 13px; color: var(--rs-text-secondary); line-height: 1.4; }
@media (max-width: 991px) { .tjs-lib-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .tjs-lib-stats { grid-template-columns: 1fr; } }
.tjs-trustee-message-card p { color: var(--rs-text-primary); line-height: 1.75; margin-bottom: 16px; }
.tjs-trustee-quote { background: var(--rs-theme-blue); color: #fff; border-radius: 10px; padding: 20px 24px; margin-top: 10px; }
.tjs-trustee-quote p { color: #fff; font-style: italic; font-size: 15px; margin-bottom: 8px !important; }
.tjs-trustee-quote span { color: var(--rs-theme-yellow); font-size: 13.5px; font-weight: 600; }
@media (max-width: 767px) {
    .tjs-trustee-grid { grid-template-columns: 1fr; }
    .tjs-trustee-side { max-width: 320px; margin: 0 auto 24px; }
}

@media (max-width: 767px) {
    .rs-fixed-admissions-btn { display: none !important; }
    .rs-events-ticker { display: none !important; }
}

/* ---- committees-accordion.css ---- */
.tjs-committee-list { display: flex; flex-direction: column; gap: 12px; }
.tjs-committee-item { border: 1px solid var(--rs-border-primary); border-radius: 10px; overflow: hidden; background: #fff; }
.tjs-committee-toggle {
    display: flex; align-items: center; justify-content: space-between; width: 100%;
    border: none; background: #fff; padding: 16px 20px; font-size: 15px; font-weight: 700;
    color: var(--rs-theme-blue); cursor: pointer; text-align: left;
}
.tjs-committee-toggle i { font-size: 20px; color: var(--rs-text-secondary); transition: transform 0.2s ease; flex: 0 0 auto; }
.tjs-committee-toggle.active { background: var(--rs-bg-secondary); }
.tjs-committee-toggle.active i { transform: rotate(180deg); color: var(--rs-theme-blue); }
.tjs-committee-body { padding: 20px 24px 26px;}
.tjs-committee-body h4 {
    color: var(--rs-theme-blue);
    font-size: 17px;
    font-weight: 700;
    margin: 22px 0 15px;
}
.tjs-committee-body h4:first-child { margin-top: 0; }
.tjs-committee-body p { color: var(--rs-text-primary); line-height: 1.7; margin-bottom: 14px; }
.tjs-committee-body ul { color: var(--rs-text-primary); line-height: 1.7; padding-inline-start: 20px; margin-bottom: 14px; }
.tjs-committee-body ul li { margin-bottom: 8px; }

/* Lab accordion (Laboratory Facilities) needs a clearer active-header
   highlight than the default — the section itself already uses the same
   light-gray background as .tjs-committee-toggle.active, so that subtle
   tint disappears into the page here. */
.tjs-lab-accordion .tjs-committee-toggle.active { background: var(--rs-theme-blue); color: #fff; }
.tjs-lab-accordion .tjs-committee-toggle.active i { color: #fff; }

/* Scholarship accordion — every toggle stays dark navy (not just the active
   one), with a red accent bar, matching the reference design. */
.tjs-scholarship-accordion .tjs-committee-item { border: none; border-radius: 6px; }
.tjs-scholarship-accordion .tjs-committee-toggle,
.tjs-scholarship-accordion .tjs-committee-toggle.active {
    background: var(--rs-theme-blue);
    color: #fff;
    border-inline-start: 4px solid var(--rs-theme-red-two);
    font-size: 14px;
}
.tjs-scholarship-accordion .tjs-committee-toggle i,
.tjs-scholarship-accordion .tjs-committee-toggle.active i { color: #fff; }
.tjs-scholarship-accordion .tjs-committee-toggle.active i { transform: rotate(180deg); }

.tjs-scholarship-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 28px; }
.tjs-scholarship-cta-btn {
    display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 8px;
    color: #fff; font-weight: 600; font-size: 14.5px;
}
.tjs-scholarship-cta-blue { background: #2072eb; }
.tjs-scholarship-cta-blue:hover,.tjs-scholarship-link-guidelines:hover, .tjs-scholarship-link-faq:hover{color:#fff}
.tjs-scholarship-cta-yellow { background: var(--rs-theme-yellow); }

.tjs-scholarship-link-btn {
    display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 6px;
    color: #fff; font-weight: 600; font-size: 13.5px; margin-inline-end: 10px; margin-bottom: 10px;
}
.tjs-scholarship-link-guidelines { background: var(--rs-theme-green-two); }
.tjs-scholarship-link-faq { background: var(--rs-theme-light-cyan); }

/* Offcanvas "Follow Us" reuses the footer's colored social icons — icons
   only, laid out in a row (overriding the template's bare circular-anchor
   style and the footer's own vertical icon+label stack). */
.offcanvas-social.tjs-footer-social ul { display: flex; align-items: center; gap: 12px; }
.offcanvas-social.tjs-footer-social ul li { display: block; margin-inline-end: 0; }
.offcanvas-social.tjs-footer-social ul li a {
    width: auto; height: auto; background: none; border: none; border-radius: 0;
}
.offcanvas-social.tjs-footer-social ul li a:hover { background: none; border: none; }
.offcanvas-social.tjs-footer-social .tjs-footer-social-icon { width: 38px; height: 38px; }

/* ---- approvals-viewer.css ---- */
.tjs-approvals-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: start; overflow-x: hidden; }
.tjs-approvals-sidebar { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--rs-border-primary); border-radius: 10px; overflow: hidden; background: #fff; }
.tjs-coe-quicklinks { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
.tjs-coe-quicklink {
    flex: 1 1 160px; display: flex; flex-direction: column; align-items: center; gap: 10px;
    background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; padding: 20px 14px;
    font-size: 14px; font-weight: 600; color: var(--rs-title-primary); cursor: pointer;
    box-shadow: 0 6px 18px rgba(3, 3, 3, 0.05);
}
.tjs-coe-quicklink:hover { border-color: var(--rs-theme-blue); }
.tjs-coe-quicklink.tjs-coe-quicklink-pending { cursor: default; opacity: 0.55; }
.tjs-coe-quicklink.tjs-coe-quicklink-pending:hover { border-color: var(--rs-border-primary); }
.tjs-coe-quicklink-icon {
    width: 44px; height: 44px; border-radius: 50%; background: var(--rs-bg-secondary); color: var(--rs-theme-blue);
    display: flex; align-items: center; justify-content: center; font-size: 19px;
}
.tjs-coe-rules { color: var(--rs-text-primary); line-height: 1.8; padding-inline-start: 22px; }
.tjs-coe-rules li { margin-bottom: 12px; }

.tjs-approvals-cat { border: none; background: #fff; padding: 16px 18px; text-align: left; font-size: 15px; font-weight: 700; color: var(--rs-theme-blue); cursor: pointer; }
.tjs-approvals-cat:not(:last-child) { border-bottom: 1px solid var(--rs-border-primary); }
.tjs-approvals-cat.active { background: var(--rs-theme-yellow); color: #fff; }
.tjs-approvals-panel { min-width: 0; border: 3px solid var(--rs-theme-blue); border-radius: 14px; padding: 24px; background: #fff; }
.tjs-approvals-panel h3 { color: var(--rs-title-primary); font-size: 18px; font-weight: 700; margin-bottom: 16px;margin-top: 0; }
.tjs-approvals-year-tabs-row { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--rs-border-primary); min-width: 0; }
.tjs-approvals-year-tabs { display: flex; flex: 1 1 auto; gap: 8px; overflow-x: auto; scrollbar-width: none; min-width: 0; scroll-behavior: smooth; }
.tjs-approvals-year-tabs::-webkit-scrollbar { display: none; }
.tjs-approvals-year-nav {
    flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px;
    border-radius: 50%; border: 1px solid var(--rs-border-primary); background: #fff; color: var(--rs-theme-blue);
    cursor: pointer; font-size: 16px;
}
.tjs-approvals-year-nav:hover { background: var(--rs-theme-blue); color: #fff; border-color: var(--rs-theme-blue); }
.tjs-approvals-year-nav:disabled { opacity: 0.35; cursor: default; }
.tjs-approvals-year-nav:disabled:hover { background: #fff; color: var(--rs-theme-blue); border-color: var(--rs-border-primary); }
.tjs-approvals-year { flex: 0 0 auto; border: 1px solid var(--rs-border-primary); background: #fff; color: var(--rs-theme-blue); font-weight: 700; font-size: 13.5px; padding: 10px 18px; border-radius: 8px; cursor: pointer; white-space: nowrap; }
.tjs-approvals-year.active { background: var(--rs-theme-blue); color: #fff; border-color: var(--rs-theme-blue); }
.tjs-approvals-viewer { border: 1px solid var(--rs-border-primary); border-radius: 8px; overflow: hidden; height: 640px; }
.tjs-approvals-viewer iframe { width: 100%; height: 100%; border: none; }
@media (max-width: 1200px) {
.tjs-dept-page {padding: 0 15px 90px;}
}
@media (max-width: 767px) {
    .tjs-approvals-layout { grid-template-columns: 1fr; }
    .tjs-approvals-sidebar { flex-direction: row; flex-wrap: wrap; }
    .tjs-approvals-cat:not(:last-child) { border-bottom: none; border-inline-end: 1px solid var(--rs-border-primary); }
    .tjs-approvals-viewer { height: 460px; }
}

/* Year-grouped Industry Visits list — sidebar reuses .tjs-approvals-sidebar,
   panel is its own (no document-viewer border) since it holds a stacked
   list of image+writeup entries instead of a single embedded PDF. */
.tjs-ivy-panel { min-width: 0; border: 1px solid var(--rs-border-primary); border-radius: 14px; padding: 28px; background: #fff; }
.tjs-ivy-panel h3 { color: var(--rs-theme-blue); font-size: 20px; font-weight: 700; margin: 0 0 20px; }
.tjs-ivy-panel .tjs-dept-media-row { align-items: flex-start; margin-bottom: 0; }
.tjs-ivy-panel .tjs-dept-media-row-img { position: sticky; top: 90px; flex: 0 0 36%; }
.tjs-ivy-title { margin: 2px 0 10px; }
hr.tjs-ivy-divider { border: none; border-top: 1px solid var(--rs-border-primary); height: 0; background: none; margin: 24px 0; }
@media (max-width: 767px) {
    .tjs-ivy-panel { padding: 20px; }
}

/* ---- iqac-contact.css ---- */
.tjs-iqac-contact-card { display: flex; align-items: center; gap: 22px; padding: 10px; }
.tjs-iqac-contact-card img { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; box-shadow: 0 8px 20px rgba(3, 3, 3, 0.12); flex: 0 0 auto; }
.tjs-iqac-contact-card h4 { color: var(--rs-theme-blue); font-size: 18px; font-weight: 700; margin-bottom: 4px; }
.tjs-iqac-contact-card p { color: var(--rs-text-primary); line-height: 1.7; margin: 0 0 4px !important; }
.tjs-iqac-contact-card a { color: var(--rs-theme-blue); font-weight: 600; }
@media (max-width: 480px) { .tjs-iqac-contact-card { flex-direction: column; text-align: center; } }
.tjs-iqac-diagram { display: block; max-width: 720px; width: 100%; height: auto; margin: 20px auto; }

/* ---- library-photos.css ---- */
.tjs-lib-photo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 20px 0;
}
.tjs-lib-photo-grid img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(3, 3, 3, 0.1);
}
@media (max-width: 767px) {
    .tjs-lib-photo-grid { grid-template-columns: 1fr; }
    .tjs-lib-photo-grid img { height: 220px; }
}

/* Department top banner: one or more photos; fades between them when there are several */
.tjs-dept-hero-slider { position: absolute; inset: 0; overflow: hidden; }
.tjs-dept-hero-image .tjs-dept-hero-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.8s ease;
}
.tjs-dept-hero-image .tjs-dept-hero-slide.active { opacity: 1; }
.tjs-dept-hero-slider .tjs-dept-photo-slider-nav { z-index: 2; }
.tjs-dept-hero-slider .tjs-dept-photo-slider-dots { position: absolute; left: 0; right: 0; bottom: 16px; margin: 0; z-index: 2; }
.tjs-dept-hero-slider .tjs-dept-photo-slider-dot { background: rgba(255, 255, 255, 0.6); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); }
.tjs-dept-hero-slider .tjs-dept-photo-slider-dot.active { background: #fff; }

/* Images inserted with "Add Media" in WordPress text editors (department About/HOD/MoU,
   S&H Objectives, NAAC text sections, Alumni About/Contact). */
.tjs-dept-page img[class*="wp-image-"] { max-width: 100%; height: auto; border-radius: 8px; }
.tjs-dept-page .wp-caption { max-width: 100%; margin: 0 0 16px; }
.tjs-dept-page .wp-caption img { display: block; }
.tjs-dept-page .wp-caption-text { font-size: 13px; color: var(--rs-text-primary); text-align: center; margin-top: 6px; }
.tjs-dept-page .alignleft { float: left; margin: 4px 20px 12px 0; }
.tjs-dept-page .alignright { float: right; margin: 4px 0 12px 20px; }
.tjs-dept-page .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.tjs-dept-page .tjs-dept-richtext::after,
.tjs-dept-page .tjs-committee-body::after { content: ""; display: block; clear: both; }
@media (max-width: 767px) {
    .tjs-dept-page .alignleft,
    .tjs-dept-page .alignright { float: none; display: block; margin: 12px auto; }
}

/* Document rows (Students Club): click the name to view, round button to download */
.tjs-doc-list { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.tjs-doc-item { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 8px; padding: 10px 14px 10px 18px; transition: border-color 0.2s ease; }
.tjs-doc-item:hover { border-color: var(--rs-theme-blue); }
.tjs-doc-view { flex: 1; display: flex; align-items: center; gap: 12px; font-weight: 600; color: var(--rs-text-primary); min-width: 0; }
.tjs-doc-view:hover { color: var(--rs-theme-blue); }
.tjs-doc-view i { font-size: 22px; color: #2b579a; flex: 0 0 auto; }
.tjs-doc-view .ri-file-pdf-2-line { color: #d93025; }
.tjs-doc-view .ri-file-ppt-2-line { color: #c43e1c; }
.tjs-doc-view .ri-file-excel-2-line { color: #1d6f42; }
.tjs-doc-item .tjs-dept-link-arrow:hover { background: var(--rs-theme-blue); color: #fff; }

/* NAAC "Programs grouped with photos" (e.g. Capacity Building and Skill Enhancement) */
.tjs-program-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin: 14px 0 8px; }
.tjs-program-card { background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 10px; overflow: hidden; box-shadow: 0 6px 18px rgba(3, 3, 3, 0.06); display: flex; flex-direction: column; }
.tjs-program-card > img { width: 100%; height: auto; display: block; background: var(--rs-bg-secondary); }
.tjs-program-caption { padding: 12px 16px 14px; }
.tjs-program-caption p { margin: 0 0 6px; line-height: 1.5; }
.tjs-program-person { font-size: 13px; color: var(--rs-text-primary); white-space: pre-line; }
.tjs-program-title { font-weight: 700; color: var(--rs-title-primary); }
.tjs-program-date { font-size: 13px; color: var(--rs-theme-yellow); font-weight: 600; margin-bottom: 0 !important; }
.tjs-doc-year-count { font-weight: 500; font-size: 13px; color: var(--rs-text-secondary); }

/* Sports and Fitness: event category buttons and videos */
.tjs-sports-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.tjs-sports-cat { border: 1px solid var(--rs-border-primary); background: #fff; border-radius: 30px; padding: 8px 18px; font-size: 14px; font-weight: 600; color: var(--rs-title-primary); cursor: pointer; transition: all 0.2s ease; }
.tjs-sports-cat:hover { border-color: var(--rs-theme-yellow); color: var(--rs-theme-yellow); }
.tjs-sports-cat.active { background: var(--rs-theme-yellow); border-color: var(--rs-theme-yellow); color: #fff; }
.tjs-sports-videos-title { margin-top: 28px; }
.tjs-sports-videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.tjs-sports-video { margin: 0; }
.tjs-sports-video iframe, .tjs-sports-video video { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 10px; background: #000; display: block; }
.tjs-sports-video figcaption { margin-top: 8px; font-weight: 600; color: var(--rs-title-primary); }

/* Medical Centre: facility cards with icons, numbered objectives */
.tjs-medical-heading { margin: 34px 0 16px; }
.tjs-medical-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.tjs-medical-card { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; padding: 18px; box-shadow: 0 6px 18px rgba(3, 3, 3, 0.05); transition: border-color 0.2s ease, transform 0.2s ease; }
.tjs-medical-card:hover { border-color: var(--rs-theme-blue); transform: translateY(-2px); }
.tjs-medical-card h4 { margin: 2px 0 6px; font-size: 16px; color: var(--rs-title-primary); }
.tjs-medical-card p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--rs-text-primary); }
.tjs-medical-icon { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(41, 47, 106, 0.08); color: var(--rs-theme-blue); font-size: 24px; }
.tjs-medical-objectives { list-style: none; padding: 0 !important; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.tjs-medical-objectives li { display: flex; gap: 14px; align-items: center; background: var(--rs-bg-secondary); border-radius: 10px; padding: 12px 16px; color: var(--rs-text-primary); }
.tjs-medical-num { flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; background: var(--rs-theme-yellow); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* Lenis smooth scroll: bootstrap sets :root { scroll-behavior: smooth }, which
   makes the browser smooth every scroll Lenis already smooths (double
   smoothing / laggy scrollbar drag). Lenis's recommended rule turns it off. */
.lenis.lenis-smooth { scroll-behavior: auto !important; }

/* Sports Events category description: tournament list as trophy cards */
.tjs-sports-cat-desc ul { list-style: none; padding: 0 !important; margin: 4px 0 20px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.tjs-sports-cat-desc li { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 10px; padding: 12px 14px; font-weight: 600; color: var(--rs-title-primary); }
.tjs-sports-cat-desc li::before { content: "\f22f"; /* ri-trophy-line */ font-family: "remixicon"; font-weight: 400; font-size: 20px; color: var(--rs-theme-yellow); flex: 0 0 auto; }

/* Department Books & Chapters table */
.tjs-book-isbn { display: block; margin-top: 4px; font-size: 13px; color: var(--rs-text-secondary); }
.tjs-book-tag { display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 20px; font-size: 11px; font-weight: 700; background: var(--rs-bg-secondary); color: var(--rs-theme-blue); vertical-align: middle; }

/* Value Added Course rows: title starts level with the photo, and each
   course is separated by space and a divider so photos don't run into the
   next course. */
.tjs-vac-row { margin-bottom: 0; padding: 32px 0; border-top: 1px solid var(--rs-border-primary); }
.tjs-vac-row:first-of-type { border-top: 0; padding-top: 0; }
.tjs-vac-row:last-child { padding-bottom: 0; }
.tjs-vac-row .tjs-dept-media-row-text > h3:first-child { margin-top: 0; }
.tjs-vac-row .tjs-dept-card { margin-top: 16px; }

/* IQAC → Capacity Building and Skill Enhancement: program groups as photo cards */
.tjs-cb-intro { margin: 0; font-size: 16px; line-height: 1.8; color: var(--rs-text-primary); }
.tjs-cb-group { margin-top: 48px; }
.tjs-cb-group-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 14px; margin-bottom: 16px; border-bottom: 1px solid var(--rs-border-primary); }
.tjs-cb-group-head h3 { margin: 0; padding-left: 14px; border-left: 4px solid var(--rs-theme-yellow); font-size: 24px; line-height: 1.25; color: var(--rs-theme-blue); }
.tjs-cb-count { flex: 0 0 auto; padding: 5px 14px; border-radius: 30px; background: rgba(44, 51, 112, 0.08); color: var(--rs-theme-blue); font-size: 13px; font-weight: 600; }
.tjs-cb-group-desc { margin: 0 0 24px; line-height: 1.8; color: var(--rs-text-primary); }
.tjs-cb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.tjs-cb-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rs-border-primary); border-radius: 12px; overflow: hidden; box-shadow: 0 6px 18px rgba(3, 3, 3, 0.05); transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; }
.tjs-cb-card:hover { border-color: var(--rs-theme-blue); transform: translateY(-3px); box-shadow: 0 12px 28px rgba(3, 3, 3, 0.09); }
.tjs-cb-photo { position: relative; aspect-ratio: 2 / 1; overflow: hidden; background: #1f2450; }
.tjs-cb-photo::before { content: ""; position: absolute; inset: -24px; background: var(--cb-photo) center / cover no-repeat; filter: blur(18px) brightness(0.75); }
.tjs-cb-photo img { position: relative; display: block; width: 100%; height: 100%; object-fit: contain; }
.tjs-cb-zoom { position: absolute; right: 10px; bottom: 10px; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.92); color: var(--rs-theme-blue); font-size: 18px; opacity: 0; transition: opacity 0.2s ease; pointer-events: none; }
.tjs-cb-card:hover .tjs-cb-zoom { opacity: 1; }
.tjs-cb-photo-empty { display: flex; align-items: center; justify-content: center; background: rgba(44, 51, 112, 0.06); color: var(--rs-theme-blue); font-size: 42px; }
.tjs-cb-photo-empty::before { content: none; }
.tjs-cb-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 10px; padding: 18px 20px 20px; }
.tjs-cb-title { margin: 0; font-size: 17px; line-height: 1.45; font-weight: 700; color: var(--rs-title-primary); }
.tjs-cb-person { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 14px; line-height: 1.6; color: #4a4a4a; white-space: pre-line; }
.tjs-cb-person i { flex: 0 0 auto; margin-top: 1px; color: var(--rs-theme-blue); font-size: 16px; }
.tjs-cb-date { display: flex; align-items: center; gap: 8px; margin: auto 0 0; padding-top: 12px; border-top: 1px dashed var(--rs-border-primary); font-size: 14px; font-weight: 600; color: var(--rs-theme-yellow); }
@media (max-width: 991px) { .tjs-cb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) {
  .tjs-cb-group { margin-top: 36px; }
  .tjs-cb-group-head h3 { font-size: 20px; }
  .tjs-cb-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* About → Governing Council: member cards with round photos */
.tjs-gc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.tjs-gc-card { display: flex; flex-direction: column; align-items: center; text-align: center; background: #fff; border: 1px solid var(--rs-border-primary); border-bottom: 3px solid var(--rs-theme-blue); border-radius: 14px; padding: 28px 18px 24px; box-shadow: 0 10px 24px rgba(3, 3, 3, 0.06); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.tjs-gc-card:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(3, 3, 3, 0.11); }
.tjs-gc-card.is-chair { border-bottom-color: var(--rs-theme-yellow); }
.tjs-gc-photo { width: 140px; height: 140px; flex: 0 0 auto; margin-bottom: 18px; border-radius: 50%; overflow: hidden; border: 4px solid #fff; box-shadow: 0 0 0 1px var(--rs-border-primary), 0 8px 20px rgba(3, 3, 3, 0.12); background: rgba(44, 51, 112, 0.08); }
.tjs-gc-photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center top; }
.tjs-gc-photo span { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--rs-theme-blue); font-size: 52px; font-weight: 700; }
.tjs-gc-card h4 { margin: 0 0 6px; font-size: 17px; font-weight: 700; line-height: 1.35; color: var(--rs-theme-blue); }
.tjs-gc-designation { margin: 0 0 16px !important; font-size: 13.5px; line-height: 1.55; color: var(--rs-text-secondary); }
.tjs-gc-position { margin-top: auto; padding: 5px 14px; border-radius: 20px; background: var(--rs-bg-secondary); color: var(--rs-title-primary); font-size: 11.5px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; }
.tjs-gc-card.is-chair .tjs-gc-position { background: var(--rs-theme-yellow); color: #fff; }
@media (max-width: 991px) { .tjs-gc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) {
  .tjs-gc-grid { grid-template-columns: 1fr; gap: 18px; }
  .tjs-gc-photo { width: 120px; height: 120px; }
}

/* Sports and Fitness → Sports Committee: one table per student group (Boys / Girls) */
.tjs-sports-committee { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; align-items: start; }
.tjs-dept-people-grid-full + .tjs-sports-committee { margin-top: 28px; }
.tjs-sports-committee-group h4 { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 12px; padding-left: 12px; border-left: 4px solid var(--rs-theme-yellow); font-size: 18px; line-height: 1.3; color: var(--rs-theme-blue); }
.tjs-sports-committee-group h4 span { padding: 4px 12px; border-radius: 20px; background: rgba(44, 51, 112, 0.08); color: var(--rs-theme-blue); font-family: var(--rs-ff-body); font-size: 12.5px; font-weight: 600; }
.tjs-sports-committee .tjs-dept-table th:first-child,
.tjs-sports-committee .tjs-dept-table td:first-child { width: 64px; text-align: center; }
.tjs-sports-committee .tjs-dept-table tbody tr:nth-child(even) td { background: var(--rs-bg-secondary); }

/* Home → Eminent Recruiters: two rows of logos until "Show More" (checkbox toggle, see app/page.js) */
.rs-recruiters-toggle { position: absolute; opacity: 0; pointer-events: none; }
.rs-recruiters-grid.is-collapsible { max-height: 310px; padding: 6px 0; overflow: hidden; } /* 2 × 140px cards + 18px gap + padding */
.rs-recruiters-toggle:checked + .rs-recruiters-grid.is-collapsible { max-height: none; }
.rs-recruiters-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 26px; padding: 11px 26px; border-radius: 30px; background: var(--rs-theme-blue); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; transition: background-color 0.2s ease; user-select: none; }
.rs-recruiters-more:hover { background: var(--rs-theme-yellow); }
.rs-recruiters-more i { font-size: 20px; transition: transform 0.2s ease; }
.rs-recruiters-more .is-less,
.rs-recruiters-toggle:checked ~ .rs-recruiters-more .is-more { display: none; }
.rs-recruiters-toggle:checked ~ .rs-recruiters-more .is-less { display: inline; }
.rs-recruiters-toggle:checked ~ .rs-recruiters-more i { transform: rotate(180deg); }
.rs-recruiters-toggle:focus-visible ~ .rs-recruiters-more { outline: 2px solid var(--rs-theme-yellow); outline-offset: 3px; }
@media (max-width: 575px) { .rs-recruiters-grid.is-collapsible { max-height: 166px; } } /* 2 × 68px cards */

/* Campus Life → Wellness Centre */
.tjs-well-eyebrow { display: inline-block; margin-bottom: 10px; color: var(--rs-theme-yellow); font-size: 13px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; }
.tjs-well-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; align-items: center; padding: 40px; border-radius: 18px; background: linear-gradient(135deg, rgba(44, 51, 112, 0.07), rgba(236, 106, 64, 0.08)); }
.tjs-well-hero-text h3 { margin: 0 0 14px; font-size: 36px; line-height: 1.2; color: var(--rs-theme-blue); }
.tjs-well-hero-text p { margin: 0; font-size: 16.5px; line-height: 1.8; color: var(--rs-text-primary); }
.tjs-well-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.tjs-well-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border: 2px solid var(--rs-theme-blue); border-radius: 30px; background: var(--rs-theme-blue); color: #fff; font-size: 15px; font-weight: 600; transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.tjs-well-btn:hover { border-color: var(--rs-theme-yellow); background: var(--rs-theme-yellow); color: #fff; }
.tjs-well-btn.is-outline { background: transparent; color: var(--rs-theme-blue); }
.tjs-well-btn.is-outline:hover { background: var(--rs-theme-yellow); color: #fff; }
.tjs-well-hero-side { text-align: center; }
.tjs-well-hero-side img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; box-shadow: 0 14px 30px rgba(3, 3, 3, 0.12); }
.tjs-well-hero-icon { display: inline-flex; align-items: center; justify-content: center; width: 190px; height: 190px; border-radius: 50%; background: #fff; color: var(--rs-theme-yellow); font-size: 92px; box-shadow: 0 0 0 14px rgba(255, 255, 255, 0.55), 0 16px 34px rgba(44, 51, 112, 0.16); }
.tjs-well-hero-note { margin: 22px 0 0; font-size: 15px; font-weight: 600; color: var(--rs-theme-blue); }
.tjs-well-block { margin-top: 56px; }
.tjs-dept-section .tjs-well-heading { margin: 0 0 16px; padding: 0; font-size: 28px; line-height: 1.3; color: var(--rs-theme-blue); }
.tjs-well-para { margin: 0 0 14px; line-height: 1.8; color: var(--rs-text-primary); }
.tjs-well-pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }
.tjs-well-pillar { padding: 26px 22px; border: 1px solid var(--rs-border-primary); border-bottom: 3px solid var(--rs-theme-blue); border-radius: 14px; background: #fff; text-align: center; box-shadow: 0 8px 22px rgba(3, 3, 3, 0.05); transition: transform 0.2s ease, border-color 0.2s ease; }
.tjs-well-pillar:hover { transform: translateY(-4px); border-bottom-color: var(--rs-theme-yellow); }
.tjs-well-pillar-icon { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin-bottom: 14px; border-radius: 16px; background: rgba(44, 51, 112, 0.08); color: var(--rs-theme-blue); font-size: 28px; }
.tjs-well-pillar h4 { margin: 0 0 8px; font-size: 17px; color: var(--rs-title-primary); }
.tjs-well-pillar p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--rs-text-primary); }
.tjs-well-faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 40px; align-items: start; }
.tjs-well-faq-intro .tjs-well-btn { margin-top: 10px; }
.tjs-well-faq-list { display: flex; flex-direction: column; gap: 12px; }
.tjs-well-qa { border: 1px solid var(--rs-border-primary); border-radius: 12px; background: #fff; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.tjs-well-qa[open] { border-color: var(--rs-theme-blue); box-shadow: 0 8px 22px rgba(3, 3, 3, 0.06); }
.tjs-well-qa summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; font-size: 16px; font-weight: 600; color: var(--rs-title-primary); cursor: pointer; list-style: none; }
.tjs-well-qa summary::-webkit-details-marker { display: none; }
.tjs-well-qa summary i { flex: 0 0 auto; font-size: 22px; color: var(--rs-theme-blue); transition: transform 0.2s ease; }
.tjs-well-qa[open] summary i { transform: rotate(180deg); }
.tjs-well-qa p { margin: 0; padding: 0 20px 18px; line-height: 1.75; color: var(--rs-text-primary); }
.tjs-well-support { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; margin-top: 40px; }
.tjs-well-challenges, .tjs-well-privacy { padding: 28px; border-radius: 14px; }
.tjs-well-challenges { background: var(--rs-bg-secondary); }
.tjs-well-challenges h4, .tjs-well-privacy h4 { margin: 0 0 16px; font-size: 19px; color: var(--rs-theme-blue); }
.tjs-well-challenges ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0; padding: 0 !important; list-style: none; }
.tjs-well-challenges li { display: flex; align-items: flex-start; gap: 10px; line-height: 1.5; color: var(--rs-title-primary); }
.tjs-well-challenges li i { flex: 0 0 auto; margin-top: 1px; font-size: 19px; color: var(--rs-theme-yellow); }
.tjs-well-privacy { border: 1px solid var(--rs-border-primary); background: #fff; }
.tjs-well-privacy h4 { margin-bottom: 10px; }
.tjs-well-privacy p { margin: 0; line-height: 1.75; color: var(--rs-text-primary); }
.tjs-well-contact { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 36px; align-items: center; margin-top: 56px; padding: 40px; border-radius: 18px; background: var(--rs-theme-blue); color: #fff; }
.tjs-well-contact h3 { margin: 0 0 12px; font-size: 28px; line-height: 1.3; color: #fff; }
.tjs-well-contact p { margin: 0; line-height: 1.8; color: rgba(255, 255, 255, 0.85); }
.tjs-well-contact-list { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0 !important; list-style: none; }
.tjs-well-contact-list li { display: flex; align-items: center; gap: 14px; }
.tjs-well-contact-list strong { display: block; font-size: 13px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: rgba(255, 255, 255, 0.7); }
.tjs-well-contact-list a { color: #fff; }
.tjs-well-contact-list a:hover { color: var(--rs-theme-yellow); }
.tjs-well-contact-icon { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, 0.12); color: var(--rs-theme-yellow); font-size: 21px; }
@media (max-width: 991px) {
  .tjs-well-hero, .tjs-well-faq, .tjs-well-support, .tjs-well-contact { grid-template-columns: 1fr; }
  .tjs-well-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  .tjs-well-hero, .tjs-well-contact { padding: 26px 20px; gap: 26px; }
  .tjs-well-hero-text h3 { font-size: 28px; }
  .tjs-well-hero-icon { width: 140px; height: 140px; font-size: 66px; }
  .tjs-well-pillars, .tjs-well-challenges ul { grid-template-columns: 1fr; }
  .tjs-dept-section .tjs-well-heading, .tjs-well-contact h3 { font-size: 24px; }
}

/* Full-width photo strip under a page banner (app/components/PhotoStrip.js) */
.tjs-photo-strip { background: #fff; }
.tjs-photo-strip-frame { overflow: hidden; }
.tjs-photo-strip-track { display: flex; transition: transform 0.6s ease; }
.tjs-photo-strip-item { position: relative; flex: 0 0 auto; padding: 0 2px; border: 0; background: #fff; cursor: zoom-in; overflow: hidden; }
.tjs-photo-strip-item img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 0.5s ease, filter 0.3s ease; }
.tjs-photo-strip-item:hover img { transform: scale(1.04); filter: brightness(0.9); }
.tjs-photo-strip-zoom { position: absolute; top: 50%; left: 50%; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: rgba(255, 255, 255, 0.92); color: var(--rs-theme-blue); font-size: 24px; opacity: 0; transform: translate(-50%, -50%) scale(0.85); transition: opacity 0.25s ease, transform 0.25s ease; pointer-events: none; }
.tjs-photo-strip-item:hover .tjs-photo-strip-zoom { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.tjs-photo-strip-dots { display: flex; justify-content: center; gap: 8px; padding: 14px 0 4px; }
.tjs-photo-strip-dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: #d3d5e2; cursor: pointer; transition: width 0.25s ease, background-color 0.25s ease; }
.tjs-photo-strip-dots button.active { width: 26px; border-radius: 6px; background: var(--rs-theme-blue); }

/* Research pages: the sidebar items are links to the three pages */
a.tjs-approvals-cat { display: block; }
a.tjs-approvals-cat:hover { color: var(--rs-theme-yellow); }
a.tjs-approvals-cat.active, a.tjs-approvals-cat.active:hover { color: #fff; }

/* Medical Centre: sub-heading, facilities intro, 3-column facility cards, commitment card */
.tjs-dept-section .tjs-medical-subtitle { margin: -14px 0 22px; font-size: 18px; font-weight: 600; color: var(--rs-theme-yellow); }
.tjs-medical-lead { margin: -6px 0 18px; color: var(--rs-text-primary); }
.tjs-medical-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tjs-medical-commitment { display: flex; gap: 18px; align-items: flex-start; padding: 24px; border-left: 4px solid var(--rs-theme-blue); border-radius: 14px; background: var(--rs-bg-secondary); }
.tjs-medical-commitment .tjs-dept-richtext p:last-child { margin-bottom: 0; }
@media (max-width: 991px) { .tjs-medical-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .tjs-medical-grid { grid-template-columns: 1fr; } .tjs-medical-commitment { flex-direction: column; padding: 20px; } }

/* Controller of Examinations: link quick-cards, circular dates, contact list */
a.tjs-coe-quicklink { color: var(--rs-title-primary); }
a.tjs-coe-quicklink:hover { color: var(--rs-theme-blue); }
.tjs-coe-circular-date { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 500; color: var(--rs-text-secondary); }
.tjs-coe-contact { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0 !important; list-style: none; }
.tjs-coe-contact li { display: flex; align-items: flex-start; gap: 12px; line-height: 1.6; color: var(--rs-text-primary); }
.tjs-coe-contact i { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(44, 51, 112, 0.08); color: var(--rs-theme-blue); font-size: 18px; }
.tjs-coe-contact a { color: var(--rs-theme-blue); }

/* Industry Interface → Professor of Practice: expertise line on the person cards */
.tjs-dept-section .tjs-pop-expertise { margin: -8px 0 16px; font-size: 13px; line-height: 1.55; color: var(--rs-text-primary); font-style: italic; }

/* Department Patent year tabs: same column widths on every tab */
.tjs-patent-table { table-layout: fixed; }
.tjs-patent-table th:nth-child(1) { width: 28%; }
.tjs-patent-table th:nth-child(3) { width: 18%; }
.tjs-patent-table th:nth-child(4) { width: 13%; }
@media (max-width: 767px) { .tjs-patent-table { table-layout: auto; min-width: 640px; } }

/* Department Books & Chapters year tabs: same column widths on every tab */
.tjs-book-table { table-layout: fixed; }
.tjs-book-table th:nth-child(1) { width: 46%; }
.tjs-book-table th:nth-child(3) { width: 24%; }
@media (max-width: 767px) { .tjs-book-table { table-layout: auto; min-width: 560px; } }

/* Testimonial slider (app/components/TestimonialSlider.js): home page box and Alumni page */
.tjs-tslider-track { display: grid; }
/* Every slide stretches to the tallest one; the name row sits at the bottom.
   The old slide fades out first, then the new one fades in (no text over text). */
.tjs-tslider-slide { grid-area: 1 / 1; display: flex; flex-direction: column; margin: 0; opacity: 0; visibility: hidden; transition: opacity 0.25s ease, visibility 0s linear 0.25s; }
.tjs-tslider-slide.active { opacity: 1; visibility: visible; transition: opacity 0.45s ease 0.25s, visibility 0s; }
.tjs-tslider-slide > figcaption { margin-top: auto; }
.tjs-tslider blockquote { margin: 0; padding: 0; border: 0; }
.tjs-tslider blockquote p { margin: 0 0 12px; }
.tjs-tslider blockquote p:last-child { margin-bottom: 0; }
.tjs-tslider-initial { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; font-size: 24px; font-weight: 700; }
.tjs-tslider-controls { position: relative; z-index: 1; display: flex; align-items: center; gap: 14px; margin-top: 26px; }
.tjs-tslider-arrow { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border-radius: 50%; font-size: 22px; cursor: pointer; transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.tjs-tslider-dots { display: flex; align-items: center; gap: 8px; }
.tjs-tslider-dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; cursor: pointer; transition: width 0.25s ease, background-color 0.25s ease; }
.tjs-tslider-dots button.active { width: 26px; border-radius: 6px; }

/* Home page: inside the template's blue box */
.tjs-tslider.is-home .rs-testimonial-desc { margin-bottom: 30px; }
.tjs-tslider.is-home .rs-testimonial-desc p { color: inherit; font: inherit; line-height: inherit; }
.tjs-tslider.is-home .rs-testimonial-avater-wrapper { gap: 16px; flex-wrap: nowrap; }
.tjs-tslider.is-home .rs-testimonial-avater-thumb,
.tjs-tslider-photo { flex: 0 0 auto; }
.tjs-tslider.is-home .rs-testimonial-avater-thumb img { display: block; width: 60px; height: 60px; max-width: none; border-radius: 50%; object-fit: cover; object-position: 50% 20%; }
.tjs-tslider.is-home .rs-testimonial-avater-info { display: flex; flex-direction: column; }
.tjs-tslider.is-home .rs-testimonial-avater-title { font-size: 20px; font-weight: 700; }
.tjs-tslider.is-home .tjs-tslider-initial { background: rgba(255, 255, 255, 0.14); color: #fff; }
.tjs-tslider.is-home .tjs-tslider-arrow { border: 1px solid rgba(255, 255, 255, 0.5); background: transparent; color: #fff; }
.tjs-tslider.is-home .tjs-tslider-arrow:hover { border-color: var(--rs-theme-yellow); background: var(--rs-theme-yellow); }
.tjs-tslider.is-home .tjs-tslider-dots button { background: rgba(255, 255, 255, 0.35); }
.tjs-tslider.is-home .tjs-tslider-dots button.active { background: var(--rs-theme-yellow); }
.tjs-home-testimonials-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 22px; color: rgba(255, 255, 255, 0.85); font-weight: 600; }
.tjs-home-testimonials-more:hover { color: var(--rs-theme-yellow); }

/* Alumni page: white card */
.tjs-tslider.is-page .tjs-tslider-track { transition: height 0.45s ease; }
.tjs-tslider.is-page .tjs-tslider-slide { align-self: start; padding: 30px 32px 26px; border: 1px solid var(--rs-border-primary); border-radius: 14px; background: #fff; box-shadow: 0 8px 22px rgba(3, 3, 3, 0.05); }
.tjs-tslider-quote { display: block; margin: -8px 0 4px -4px; font-size: 44px; line-height: 1; color: rgba(236, 106, 64, 0.4); }
.tjs-tslider-text { font-size: 16.5px; font-style: italic; line-height: 1.8; color: var(--rs-text-primary); }
.tjs-tslider.is-page .tjs-tslider-text { margin-bottom: 22px; }
.tjs-tslider-person { display: flex; align-items: center; gap: 16px; padding-top: 18px; border-top: 1px dashed var(--rs-border-primary); }
.tjs-tslider-photo img { display: block; width: 64px; height: 64px; max-width: none; border-radius: 50%; object-fit: cover; object-position: 50% 20%; box-shadow: 0 6px 16px rgba(3, 3, 3, 0.12); }
.tjs-tslider.is-page .tjs-tslider-initial { width: 64px; height: 64px; background: rgba(44, 51, 112, 0.08); color: var(--rs-theme-blue); }
.tjs-tslider-who { display: flex; flex-direction: column; gap: 3px; }
.tjs-tslider-name { font-size: 17px; color: var(--rs-theme-blue); }
.tjs-tslider-details { font-size: 14px; line-height: 1.5; color: var(--rs-text-secondary); }
.tjs-tslider.is-page .tjs-tslider-controls { justify-content: center; }
.tjs-tslider.is-page .tjs-tslider-arrow { border: 1px solid var(--rs-border-primary); background: #fff; color: var(--rs-theme-blue); }
.tjs-tslider.is-page .tjs-tslider-arrow:hover { border-color: var(--rs-theme-blue); background: var(--rs-theme-blue); color: #fff; }
.tjs-tslider.is-page .tjs-tslider-dots button { background: #d3d5e2; }
.tjs-tslider.is-page .tjs-tslider-dots button.active { background: var(--rs-theme-blue); }
@media (max-width: 575px) {
  .tjs-tslider.is-page .tjs-tslider-slide { padding: 24px 20px 20px; }
  .tjs-tslider-text { font-size: 15.5px; }
  .tjs-tslider-person { align-items: flex-start; }
  .tjs-tslider.is-home .rs-testimonial-avater-title { font-size: 17px; }
}
