/* ═══════════════════════════════════════════════════
   IMR Group of Institutions — Main Stylesheet
   ═══════════════════════════════════════════════════ */

/* ── CSS Variables ──────────────────────────────── */
:root {
  --primary:       #880001;
  --primary-dark:  #5c0000;
  --gold:          #c9a84c;
  --text:          #333;
  --text-light:    #666;
  --white:         #fff;
  --bg-light:      #f8f8f8;
  --orange:        #e65100;
  --purple:        #6a1b9a;
  --pink:          #d81b60;
  --darkblue:      #1a237e;
  --brown:         #5d4037;
  --font-main:     'Poppins', 'Open Sans', sans-serif;
  --font-heading:  'Montserrat', sans-serif;
  --transition:    all 0.3s ease;
  --shadow:        0 4px 20px rgba(0,0,0,.08);
  --shadow-lg:     0 8px 40px rgba(0,0,0,.14);
}

/* ── Base ───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-main); color: var(--text); font-size: 15px; line-height: 1.7; overflow-x: hidden; background: #fff; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); font-weight: 700; line-height: 1.3; color: #222; }
a { color: var(--primary); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--primary-dark); }
img { max-width: 100%; height: auto; }
.page-wraper { overflow: hidden; }

/* ── Custom Colors ──────────────────────────────── */
.bg-orange { background-color: var(--orange) !important; }
.bg-purple { background-color: var(--purple) !important; }
.bg-pink { background-color: var(--pink) !important; }
.bg-darkblue { background-color: var(--darkblue) !important; }
.bg-brown { background-color: var(--brown) !important; }
.text-warning { color: var(--gold) !important; }

/* ── Mosaic Grid ────────────────────────────────── */
.mosaic-grid .mosaic-box {
    height: 250px;
    width: 100%;
}
.mosaic-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ── Bento Grid ─────────────────────────────────── */
.bento-box {
    height: 500px;
    overflow: hidden;
}
.bento-box.bento-sm {
    height: 250px;
}
.grayscale {
    filter: grayscale(100%);
    transition: filter 0.3s ease;
}
.bento-box:hover .grayscale {
    filter: grayscale(0%);
}

/* ── Celebrities Neon Borders ───────────────────── */
.celeb-card {
    height: 150px;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 10px;
    border: 2px solid transparent;
}
.neon-border-red { box-shadow: 0 0 15px rgba(255,0,0,0.8), inset 0 0 10px rgba(255,0,0,0.5); border-color: rgba(255,0,0,0.8); }
.neon-border-blue { box-shadow: 0 0 15px rgba(0,0,255,0.8), inset 0 0 10px rgba(0,0,255,0.5); border-color: rgba(0,0,255,0.8); }
.neon-border-purple { box-shadow: 0 0 15px rgba(128,0,128,0.8), inset 0 0 10px rgba(128,0,128,0.5); border-color: rgba(128,0,128,0.8); }
.neon-border-yellow { box-shadow: 0 0 15px rgba(255,255,0,0.8), inset 0 0 10px rgba(255,255,0,0.5); border-color: rgba(255,255,0,0.8); }
.neon-border-green { box-shadow: 0 0 15px rgba(0,255,0,0.8), inset 0 0 10px rgba(0,255,0,0.5); border-color: rgba(0,255,0,0.8); }

/* ── Alumni Testimonials ────────────────────────── */
.alumni-block {
    background-color: var(--primary);
    border-radius: 12px;
    padding: 30px 40px 30px 100px;
    position: relative;
    margin-left: 60px;
}
.alumni-img {
    position: absolute;
    left: -60px;
    top: 50%;
    transform: translateY(-50%);
    width: 120px;
    height: 120px;
    border-radius: 5px;
    border: 3px solid #fff;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    object-fit: cover;
}
@media (max-width: 767px) {
    .alumni-block {
        margin-left: 0;
        padding: 80px 20px 30px 20px;
        text-align: center !important;
    }
    .alumni-img {
        left: 50%;
        top: -60px;
        transform: translateX(-50%);
    }
    .alumni-text {
        text-align: center;
    }
}

/* ── Utilities ──────────────────────────────────── */
.text-primary  { color: var(--primary) !important; }
.bg-primary    { background-color: var(--primary) !important; }
.m-b20 { margin-bottom:20px; } .m-b10 { margin-bottom:10px; }
.m-t30 { margin-top:30px; }   .m-a0  { margin:0; }
.p-a30 { padding:30px; }      .font-weight-300 { font-weight:300; }
.radius-no { border-radius:0; } .radius-xl { border-radius:30px; }

/* ── Buttons ─────────────────────────────────────── */
.site-button {
  display:inline-block; padding:10px 24px;
  background:var(--primary); color:#fff;
  border:2px solid var(--primary); font-weight:600;
  font-size:14px; letter-spacing:.4px; text-transform:uppercase;
  cursor:pointer; transition:var(--transition); border-radius:4px; line-height:1.4;
}
.site-button:hover                { background:var(--primary-dark); border-color:var(--primary-dark); color:#fff; }
.site-button.outline              { background:transparent; color:var(--primary); }
.site-button.outline:hover        { background:var(--primary); color:#fff; }
.site-button.outline-2            { border-width:2px; }
.site-button.white                { background:transparent; color:#fff; border-color:#fff; }
.site-button.white:hover          { background:#fff; color:var(--primary); }
.site-button.btn-sm               { padding:6px 16px; font-size:12px; }
.site-button.facebook             { background:#3b5998; border-color:#3b5998; }
.site-button.instagram            { background:#e1306c; border-color:#e1306c; }
.site-button.youtube              { background:#ff0000; border-color:#ff0000; }
.site-button.sharp                { border-radius:0; padding:8px 12px; }
.btnhover13:hover                 { background:var(--gold); border-color:var(--gold); color:#fff; }

/* ── Section Headings ──────────────────────────── */
.section-head { margin-bottom:30px; }
.section-head .title { font-size:2rem; font-weight:800; position:relative; padding-bottom:16px; }
.section-head .title::after { content:''; position:absolute; bottom:0; left:0; width:60px; height:3px; background:var(--primary); }
.section-head.text-center .title::after { left:50%; transform:translateX(-50%); }

/* ════════════════════════════════════════════════════
   HEADER / TOP BAR
   ════════════════════════════════════════════════════ */
.site-header   { position:relative; z-index:999; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.08); }
.top-bar       { background:#1a1a1a; padding:6px 0; }
.topbar-links  { list-style:none; display:flex; flex-wrap:wrap; gap:0; margin:0; padding:0; }
.topbar-links li a { color:#ccc; font-size:11px; padding:2px 8px; border-right:1px solid #444; display:block; white-space:nowrap; }
.topbar-links li:last-child a { border-right:none; }
.topbar-links li a:hover { color:var(--gold); }
.dlab-topbar-right { display:flex; gap:8px; align-items:center; }
.dlab-topbar-right .site-button { padding:4px 12px; font-size:11px; }

/* Flash animation */
.flash-bg { animation:flashBg 1.5s infinite; }
@keyframes flashBg { 0%,30%{background:orange;color:#fff;} 31%,70%{background:#1a1a1a;color:#fff;} 71%,100%{background:var(--primary);color:#fff;} }

/* ── Marquee ─────────────────────────────────────── */
.marquee-background { background:linear-gradient(to right,#000,var(--primary),#000); overflow:hidden; padding:4px 0; }
.marquee-wrap  { width:100%; overflow:hidden; }
.marquee-inner { display:flex; white-space:nowrap; width:max-content; animation:marqueeScroll 35s linear infinite; }
.marquee-inner:hover { animation-play-state:paused; }
.marquee-list  { list-style:none; display:inline-flex; margin:0; padding:0; }
.marquee-list li a { color:#fff; font-size:12px; padding:2px 20px; border-right:1px solid rgba(255,255,255,.25); }
.marquee-list li a:hover { color:var(--gold); }
@keyframes marqueeScroll { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }

/* ── Main Nav ─────────────────────────────────────── */
.sticky-header { position:sticky; top:0; z-index:1000; background:#fff; }
.main-bar { box-shadow:0 2px 15px rgba(0,0,0,.07); }
.logo-header { display:flex; align-items:center; }
.logo-header img { max-height:70px; width:auto; height:70px; object-fit:contain; }
.nav.navbar-nav { display:flex; align-items:center; gap:0; }
.nav.navbar-nav > li > a { display:block; padding:18px 12px; font-size:13px; font-weight:600; color:#333; text-transform:uppercase; letter-spacing:.3px; white-space:nowrap; position:relative; transition:var(--transition); }
.nav.navbar-nav > li > a i.fas { font-size:10px; margin-left:3px; }
.nav.navbar-nav > li > a::after { content:''; position:absolute; bottom:12px; left:12px; right:12px; height:2px; background:var(--primary); transform:scaleX(0); transition:var(--transition); }
.nav.navbar-nav > li:hover > a::after, .nav.navbar-nav > li.active > a::after { transform:scaleX(1); }
.nav.navbar-nav > li.active > a, .nav.navbar-nav > li:hover > a { color:var(--primary); }

/* Dropdown */
.has-mega-menu { position:relative; }
.sub-menu { position:absolute; top:100%; left:0; min-width:230px; background:#fff; border-top:3px solid var(--primary); box-shadow:0 8px 30px rgba(0,0,0,.12); list-style:none; padding:8px 0; margin:0; opacity:0; visibility:hidden; transform:translateY(10px); transition:var(--transition); z-index:9999; }
.has-mega-menu:hover .sub-menu { opacity:1; visibility:visible; transform:translateY(0); }
.sub-menu li a { display:block; padding:8px 18px; font-size:13px; color:#444; font-weight:500; border-bottom:1px solid #f4f4f4; }
.sub-menu li:last-child a { border-bottom:none; }
.sub-menu li a:hover { background:#fff5f5; color:var(--primary); padding-left:24px; }

/* Mobile toggle */
.navbar-toggler { background:none; border:2px solid var(--primary); padding:6px 10px; border-radius:4px; cursor:pointer; display:none; }
.navbar-toggler span { display:block; width:22px; height:2px; background:var(--primary); margin:4px 0; }

/* ════════════════════════════════════════════════════
   HERO BANNER
   ════════════════════════════════════════════════════ */
.owl-home-banner .item img { width:100%; max-height:560px; object-fit:cover; }
.owl-nav .owl-prev, .owl-nav .owl-next { position:absolute; top:50%; transform:translateY(-50%); background:rgba(136,0,1,.8)!important; color:#fff!important; width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:16px; transition:var(--transition); border:none; }
.owl-nav .owl-prev { left:15px; } .owl-nav .owl-next { right:15px; }
.owl-nav .owl-prev:hover, .owl-nav .owl-next:hover { background:var(--primary-dark)!important; }
.icon-cell:hover { transform:translateY(-3px); color:var(--gold)!important; }
.icon-cell { transition:var(--transition); }

/* ════════════════════════════════════════════════════
   INNER PAGE LAYOUT
   ════════════════════════════════════════════════════ */
.dlab-bnr-inr { background-size:cover; background-position:center; background-attachment:fixed; position:relative; }
.overlay-black-middle::before { content:''; position:absolute; inset:0; background:rgba(0,0,0,.62); z-index:0; }
.dlab-bnr-inr-entry { position:relative; z-index:1; }
.breadcrumb-list { display:flex; flex-wrap:wrap; align-items:center; gap:4px; list-style:none; padding:0; margin:4px 0 0; }
.breadcrumb-list li+li::before { content:'/'; margin-right:4px; color:rgba(255,255,255,.5); }
.breadcrumb-list li.text-white-50 { color:rgba(255,255,255,.6)!important; font-size:13px; }

/* ── Sidebar ───────────────────────────────────── */
.sidebar { position:sticky; top:100px; }
.sticky-sidebar { position:sticky; top:100px; }
.widget { background:#fff; border-radius:6px; overflow:hidden; box-shadow:var(--shadow); }
.widget-title { background:var(--primary); color:#fff; padding:12px 16px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin:0; }
.list-group-item { font-size:13px; border-color:#f0f0f0!important; }
.list-group-item a { color:#444; display:block; transition:var(--transition); }
.list-group-item a:hover { color:var(--primary); padding-left:4px; }
.list-group-item.active { background:#fff5f5; }
.list-group-item.active a { color:var(--primary); font-weight:600; }

/* ── Inner content ─────────────────────────────── */
.inner-page-content p  { line-height:1.85; margin-bottom:1rem; }
.inner-page-content h3 { color:#222; margin-bottom:.8rem; }
.inner-page-content h4 { color:var(--primary); margin-top:2rem; margin-bottom:.8rem; }
.inner-page-content ul li, .inner-page-content ol li { margin-bottom:.4rem; }
.inner-page-content .table td, .inner-page-content .table th { font-size:14px; }
.prose-content h4 { color:var(--primary); margin-top:1.5rem; }
.section-title-1 { font-size:1.7rem; }
.person-card { border:1px solid #eee; border-radius:8px; overflow:hidden; }

/* ── Blog & Event content ─────────────────────── */
.blog-content p, .event-content p { line-height:1.9; margin-bottom:1.2rem; }
.blog-content img, .event-content img { max-width:100%; border-radius:6px; margin:1rem 0; }

/* ════════════════════════════════════════════════════
   CARDS
   ════════════════════════════════════════════════════ */
.card { border-radius:8px; transition:var(--transition); }
.card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg)!important; }
.event-card:hover img { transform:scale(1.04); }

/* ════════════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════════════ */
.site-footer { background:#7a0000 !important; color:#ccc; }
.footer-top  { padding:50px 0 30px; }
.footer-top h6 { color:#fff; font-size:12px; letter-spacing:1px; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,.2); padding-bottom:10px; margin-bottom:14px; }

/* Override .widget white-box style inside footer only */
.site-footer .widget { background:transparent !important; border-radius:0 !important; box-shadow:none !important; }

.list-2 { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:4px 10px; }
.list-2 li a { color:#ccc; font-size:13px; transition:var(--transition); }
.list-2 li a::before { content:'» '; color:var(--gold); }
.list-2 li a:hover { color:var(--gold); padding-left:4px; }
.footer-contact-list { list-style:none; padding:0; margin:0; }
.footer-contact-list li { font-size:13px; color:#ccc; margin-bottom:6px; }
.footer-contact-list li a { color:#ccc; }
.footer-contact-list li a:hover { color:var(--gold); }
.subscribe-form .form-control { border-radius:0; border:none; font-size:13px; }
.subscribe-form .site-button  { border-radius:0; padding:8px 16px; font-size:12px; background:var(--gold); border-color:var(--gold); }
.br-col-w1 { border:1px solid rgba(255,255,255,.15); }
.bg-tpw1   { background:rgba(255,255,255,.06); }
.icon-bx-wraper p a { color:var(--gold); }
.icon-bx-wraper p a:hover { color:#fff; }
.footer-bottom { background:#2a0000 !important; padding:14px 0; border-top:1px solid rgba(255,255,255,.1); font-size:13px; }
.footer-bottom span { color:#bbb; }
.footer-bottom a { color:var(--gold); }
.footer-bottom a:hover { color:#fff; }

/* widget-link ul inside footer bottom */
.footer-bottom .widget-link ul { list-style:none; padding:0; margin:0; display:flex; gap:16px; justify-content:flex-end; }
.footer-bottom .widget-link ul li a { color:#bbb; font-size:12px; }
.footer-bottom .widget-link ul li a:hover { color:var(--gold); }

.widget-link-list { list-style:none; padding:0; margin:0; display:flex; gap:15px; justify-content:flex-end; }
.widget-link-list li a { color:#aaa; font-size:12px; }
.widget-link-list li a:hover { color:var(--gold); }

/* WhatsApp & Scroll-top */
.whatsapp-button { position:fixed; bottom:80px; right:20px; z-index:9998; transition:var(--transition); filter:drop-shadow(0 4px 8px rgba(0,0,0,.3)); }
.whatsapp-button:hover { transform:scale(1.1); }
.scroltop { position:fixed; bottom:20px; right:20px; z-index:9999; background:var(--primary); color:#fff; width:44px; height:44px; border:none; border-radius:50%; font-size:16px; cursor:pointer; opacity:0; visibility:hidden; transition:var(--transition); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow); }
.scroltop.show { opacity:1; visibility:visible; }
.scroltop:hover { background:var(--primary-dark); }

/* ════════════════════════════════════════════════════
   TESTIMONIALS CAROUSEL
   ════════════════════════════════════════════════════ */
.testimonial-card { min-height:220px; }

/* ════════════════════════════════════════════════════
   MISC
   ════════════════════════════════════════════════════ */
.counter { font-family:var(--font-heading); }
.checklist-card:hover { border-color:var(--primary)!important; }
.news-card:hover { transform:translateY(-3px); }
.brochure-card:hover { box-shadow:var(--shadow-lg)!important; }
.initiative-card:hover { border-color:var(--primary)!important; }
.campus-card:hover .card-img-top i { transform:scale(1.2); transition:.3s; }
.prose-content h4 { border-left:4px solid var(--primary); padding-left:10px; }

/* ════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════ */
@media (max-width:991px) {
  .navbar-toggler { display:block; }
  .header-nav { position:absolute; top:100%; left:0; right:0; background:#fff; box-shadow:var(--shadow-lg); padding:10px 20px; max-height:75vh; overflow-y:auto; display:none; }
  .header-nav.show { display:block; }
  .nav.navbar-nav { flex-direction:column; align-items:flex-start; gap:0; width:100%; }
  .nav.navbar-nav > li { width:100%; border-bottom:1px solid #eee; }
  .nav.navbar-nav > li > a { padding:12px 8px; }
  .sub-menu { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border-top:1px solid #eee; display:none; padding-left:14px; }
  .has-mega-menu.open .sub-menu { display:block; }
  
  /* Mobile topbar wrap */
  .dlab-topbar-left { width:100%; text-align:center; margin-bottom:10px; }
  .topbar-links { display:flex; justify-content:center; flex-wrap:wrap; gap:4px; padding:6px 0; }
  .topbar-links li a { border-right:none; border-radius:2px; font-size:12px; }
  .dlab-topbar-right { justify-content:center; width:100%; }
  .widget-link-list { justify-content:flex-start; margin-top:8px; }
}
@media (max-width:767px) {
  .owl-home-banner .item img { max-height:280px; }
  .section-head .title { font-size:1.5rem; }
  .footer-top { padding:30px 0 20px; }
  .dlab-bnr-inr { background-attachment:scroll; }
  .sidebar { position:static; }
  .mosaic-grid .mosaic-box, .bento-box.bento-sm { height: auto; padding: 20px 0; }
  .bento-box { height: auto; }
  
  /* Footer Mobile alignment */
  .footer-bottom { text-align: center; padding-bottom: 70px; }
  .footer-bottom .row > div { flex: 0 0 100%; max-width: 100%; text-align: center !important; }
  .footer-bottom .text-left, .footer-bottom .text-right { text-align: center !important; }
  .footer-bottom .widget-link ul { justify-content: center; margin-top: 10px; padding: 0; }
}