/* ============================================
   BVM - Bharatiya Vijnana Mandali
   Parent Website Design System
   ============================================ */
:root {
    --bvm-primary: #1e3a5f;
    --bvm-primary-light: #2d5a8e;
    --bvm-accent: #e85d04;
    --bvm-gold: #d4a537;
    --bvm-success: #059669;
    --bvm-bg: #fafbfc;
    --bvm-card-shadow: 0 4px 6px -1px rgba(0,0,0,.06), 0 2px 4px -2px rgba(0,0,0,.04);
    --bvm-card-shadow-hover: 0 20px 40px -10px rgba(0,0,0,.1);
    --bvm-radius: 16px;
    --bvm-transition: all .3s cubic-bezier(.4,0,.2,1);
}

* { box-sizing: border-box; }
body { font-family: 'Inter', sans-serif; background: var(--bvm-bg); -webkit-font-smoothing: antialiased; }
html { scroll-behavior: smooth; }

/* Scroll Progress */
.scroll-progress-container {
    position:fixed; top:0; left:0; width:100%; height:5px; z-index:9999;
    background:rgba(255,255,255,0.14);
    box-shadow:inset 0 -1px 0 rgba(0,0,0,0.08);
}
.scroll-progress-bar {
    height:100%; width:0%;
    background:linear-gradient(90deg,var(--bvm-accent),var(--bvm-gold),#ffd166,var(--bvm-accent));
    background-size:300% 100%;
    animation:progGrad 3s linear infinite;
    border-radius:0 3px 3px 0;
    box-shadow:0 0 10px rgba(232,93,4,0.65);
}
@keyframes progGrad { 0%{background-position:0% 0;} 100%{background-position:300% 0;} }

/* ============================================
   NAVBAR
   ============================================ */
.bvm-navbar {
    background: rgba(30,58,95,0.97);
    backdrop-filter: blur(20px);
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    transition: var(--bvm-transition);
    z-index: 1050;
}
.bvm-navbar.scrolled { box-shadow: 0 4px 30px rgba(0,0,0,0.2); }
.bvm-navbar .nav-link { color:rgba(255,255,255,0.75) !important; font-weight:500; font-size:0.82rem; padding:6px 10px !important; border-radius:6px; transition:var(--bvm-transition); white-space:nowrap; }
.bvm-navbar .nav-link:hover { background:rgba(255,255,255,0.1); color:#fff !important; }
.bvm-navbar .nav-link.active { background:rgba(255,255,255,0.15); color:#fff !important; }

.btn-bvm-cta {
    background: var(--bvm-accent);
    color: #fff !important;
    padding: 6px 14px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.78rem;
    text-decoration: none;
    display: inline-block;
    transition: var(--bvm-transition);
    white-space: nowrap;
}
.btn-bvm-cta:hover { background:#c74e03; transform:translateY(-2px); box-shadow:0 4px 12px rgba(232,93,4,0.3); }

/* ============================================
   HERO
   ============================================ */
.bvm-hero {
    position: relative;
    min-height: 100vh;
    background: linear-gradient(135deg, #1e3a5f 0%, #0f2744 50%, #1a365d 100%);
    overflow: hidden;
}
.bvm-hero::before {
    content:'';
    position:absolute; inset:0;
    background: url('data:image/svg+xml,%3Csvg width="80" height="80" viewBox="0 0 80 80" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%23ffffff" fill-opacity="0.03"%3E%3Cpath d="M50 50c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10-10-4.477-10-10zm-40 0c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10S10 55.523 10 50zm40-40c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10-10-4.477-10-10zm-40 0c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10S10 15.523 10 10z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E');
    z-index:1;
}
.bvm-hero-overlay {
    position:absolute; inset:0;
    background: radial-gradient(ellipse at 70% 50%, rgba(232,93,4,0.1) 0%, transparent 60%);
    z-index:2;
}
.bvm-hero-tag { font-size:1rem; font-weight:500; opacity:0.8; letter-spacing:1px; text-transform:uppercase; margin-bottom:0.5rem; }
.bvm-hero-title { font-size:clamp(2.5rem,5vw,4rem); font-weight:900; letter-spacing:-1.5px; line-height:1.1; margin-bottom:1rem; }
.bvm-hero-subtitle { font-size:1.1rem; opacity:0.8; max-width:550px; line-height:1.7; }

/* ============================================
   BUTTONS
   ============================================ */
.btn-bvm-primary {
    display:inline-block;
    padding:14px 28px;
    background: var(--bvm-accent);
    color:#fff;
    font-weight:600;
    border-radius:12px;
    text-decoration:none;
    transition:var(--bvm-transition);
    border:none;
    font-size:0.95rem;
    box-shadow:0 4px 15px rgba(232,93,4,0.3);
}
.btn-bvm-primary:hover { transform:translateY(-2px); box-shadow:0 8px 25px rgba(232,93,4,0.4); color:#fff; }

.btn-bvm-outline {
    display:inline-block;
    padding:14px 28px;
    background:transparent;
    color:#fff;
    font-weight:600;
    border-radius:12px;
    text-decoration:none;
    border:2px solid rgba(255,255,255,0.3);
    transition:var(--bvm-transition);
    font-size:0.95rem;
}
.btn-bvm-outline:hover { background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.6); color:#fff; transform:translateY(-2px); }

.btn-bvm-secondary {
    display:inline-block;
    padding:12px 24px;
    background:#f1f5f9;
    color:var(--bvm-primary);
    font-weight:600;
    border-radius:10px;
    text-decoration:none;
    transition:var(--bvm-transition);
    border:none;
    font-size:0.9rem;
}
.btn-bvm-secondary:hover { background:var(--bvm-primary); color:#fff; transform:translateY(-2px); }

/* ============================================
   CARDS & SECTIONS
   ============================================ */
.bvm-card {
    background:#fff;
    border-radius:var(--bvm-radius);
    box-shadow:var(--bvm-card-shadow);
    border:1px solid rgba(0,0,0,0.04);
    transition:var(--bvm-transition);
    overflow:hidden;
}
.bvm-card:hover { transform:translateY(-4px); box-shadow:var(--bvm-card-shadow-hover); }

.bvm-section-tag {
    display:inline-block;
    font-size:0.8rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:1px;
    color:var(--bvm-accent);
    margin-bottom:0.75rem;
}
.bvm-section-title {
    font-size:2.2rem;
    font-weight:800;
    color:#1a202c;
    letter-spacing:-0.5px;
    margin-bottom:1rem;
}

/* ============================================
   PROGRAM CARDS
   ============================================ */
.bvm-program-card .bvm-program-header {
    padding:2rem;
    text-align:center;
    color:#fff;
    font-size:2.5rem;
}
.bvm-tag {
    display:inline-block;
    padding:4px 10px;
    border-radius:6px;
    background:#f1f5f9;
    color:#64748b;
    font-size:0.7rem;
    font-weight:600;
}

/* ============================================
   ADVISORY COUNCIL
   ============================================ */
.bvm-avatar {
    width:70px; height:70px;
    border-radius:50%;
    background:linear-gradient(135deg,#eef2ff,#e0e7ff);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:1.8rem;
    color:var(--bvm-primary);
}

/* ============================================
   CONTACT
   ============================================ */
.bvm-contact-icon {
    width:50px; height:50px;
    border-radius:14px;
    background:linear-gradient(135deg,#eef2ff,#e0e7ff);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:1.3rem;
    color:var(--bvm-primary);
    margin-bottom:1rem;
}

/* ============================================
   FOOTER
   ============================================ */
.bvm-footer {
    background:linear-gradient(135deg,#0f2744 0%,#1e3a5f 100%);
    color:#fff;
    padding:3rem 0 1.5rem;
    position:relative;
}
.bvm-footer::before {
    content:''; position:absolute; top:0; left:0; right:0; height:4px;
    background:linear-gradient(90deg,var(--bvm-primary),var(--bvm-accent),var(--bvm-gold),var(--bvm-primary));
    background-size:300% 100%; animation:progGrad 4s linear infinite;
}
.bvm-social {
    width:36px; height:36px; border-radius:10px;
    background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.12);
    display:inline-flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,0.6); text-decoration:none; font-size:1rem;
    transition:var(--bvm-transition);
}
.bvm-social:hover { background:rgba(255,255,255,0.15); color:#fff; transform:translateY(-3px); }

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width:768px) {
    .bvm-hero-title { font-size:2rem; }
    .bvm-section-title { font-size:1.7rem; }
}

/* ============================================
   INNER PAGE BANNER - Textured Header
   ============================================ */
section[style*="padding-top:100px"] {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 50%, #1a365d 100%) !important;
    padding-bottom: 2rem !important;
}

section[style*="padding-top:100px"]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23ffffff' fill-opacity='0.04' fill-rule='evenodd'/%3E%3C/svg%3E");
    z-index: 0;
}

section[style*="padding-top:100px"]::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(232,93,4,0.15) 0%, transparent 70%);
    z-index: 0;
}

section[style*="padding-top:100px"] .container {
    position: relative;
    z-index: 1;
}

section[style*="padding-top:100px"] .bvm-section-tag {
    color: var(--bvm-accent) !important;
    opacity: 0.9;
}

section[style*="padding-top:100px"] .bvm-section-title {
    color: #ffffff !important;
}

section[style*="padding-top:100px"] p.text-muted {
    color: rgba(255,255,255,0.7) !important;
}

/* Dropdown Menus */
.bvm-dropdown {
    border: none;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.12);
    padding: 8px;
    margin-top: 8px;
}
.bvm-dropdown .dropdown-item {
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 0.88rem;
    font-weight: 500;
    transition: all .2s ease;
}
.bvm-dropdown .dropdown-item:hover {
    background: #f1f5f9;
    color: var(--bvm-primary);
}


/* Nested Dropdown (submenu) */
.bvm-dropdown .dropend .dropdown-menu {
    position: absolute;
    top: 0;
    left: 100%;
    margin-left: 0;
    margin-top: 0;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.12);
    display: none;
    min-width: 240px;
}
.bvm-dropdown .dropend:hover > .dropdown-menu {
    display: block;
}
.bvm-dropdown .dropend {
    position: relative;
}
.bvm-dropdown .dropend .dropdown-toggle::after {
    margin-left: auto;
    border-left: 0.3em solid;
    border-top: 0.3em solid transparent;
    border-bottom: 0.3em solid transparent;
    border-right: 0;
}
.bvm-dropdown .dropend .dropdown-toggle {
    display: flex;
    align-items: center;
}

/* Desktop hover for all dropdowns */
@media (min-width: 992px) {
    .bvm-navbar .nav-item.dropdown:hover > .dropdown-menu {
        display: block;
        margin-top: 0;
    }
    .bvm-navbar .nav-item.dropdown > .dropdown-menu {
        transition: none;
    }
}


/* ============================================
   HERO CAROUSEL - World Class Transitions
   ============================================ */
.bvm-hero-carousel {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #0a1628;
    padding-top: 56px; /* navbar height */
}

/* Slide Container */
.bvm-carousel-slides {
    position: relative;
    width: 100%;
    z-index: 1;
}

/* Individual Slide */
.bvm-carousel-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.2s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 1.2s;
}

.bvm-carousel-slide.active {
    position: relative;
    opacity: 1;
    visibility: visible;
    transition: opacity 1.2s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s;
    z-index: 2;
}

.bvm-carousel-slide.exit {
    opacity: 0;
    visibility: visible;
    z-index: 1;
    transition: opacity 1.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Banner link wraps the image and must sit above the decorative canvas */
.bvm-carousel-slide a {
    display: block;
    position: relative;
    z-index: 4;
    cursor: pointer;
}

/* Banner Image - full width, no crop */
.bvm-carousel-slide img {
    width: 100%;
    height: auto;
    display: block;
}

/* Gradient Overlay - subtle, lets banners show through */
.bvm-carousel-overlay {
    display: none;
}

/* Action Bar below carousel */
.bvm-action-bar {
    background: linear-gradient(135deg, #1e3a5f 0%, #0f2744 100%);
    padding: 16px 0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

/* Dark outline button for action bar */
.btn-bvm-outline-dark {
    display: inline-block;
    padding: 14px 28px;
    background: transparent;
    color: #fff;
    font-weight: 600;
    border-radius: 12px;
    text-decoration: none;
    border: 2px solid rgba(255, 255, 255, 0.4);
    transition: var(--bvm-transition);
    font-size: 0.95rem;
}
.btn-bvm-outline-dark:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.8);
    color: #fff;
    transform: translateY(-2px);
}

/* Carousel Action Buttons */
.btn-carousel-action {
    padding: 14px 32px !important;
    font-size: 0.95rem !important;
    border-radius: 14px !important;
    letter-spacing: 0.3px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* Particles - removed, not needed */

/* Science Canvas Overlay */
.bvm-science-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    pointer-events: none;
    opacity: 0.7;
    mix-blend-mode: screen;
}

/* Canvas is purely decorative and must never intercept clicks,
   otherwise it swallows clicks meant for the banner link underneath.
   Mouse tracking is bound to the carousel section, not the canvas,
   so keeping pointer-events disabled does not affect the effect. */
.bvm-hero-carousel:hover .bvm-science-canvas {
    pointer-events: none;
}

/* Content layer removed - buttons now in separate action bar */

/* Navigation Arrows */
.bvm-carousel-nav {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    z-index: 10;
    display: flex;
    justify-content: space-between;
    padding: 0 24px;
    transform: translateY(-50%);
    pointer-events: none;
}

.bvm-carousel-arrow {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    color: #fff;
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    pointer-events: all;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.bvm-carousel-arrow:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.5);
    transform: scale(1.1);
    box-shadow: 0 0 30px rgba(232, 93, 4, 0.3);
}

.bvm-carousel-arrow:active {
    transform: scale(0.95);
}

/* Indicators (Dots) */
.bvm-carousel-indicators {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    gap: 12px;
    align-items: center;
}

.bvm-carousel-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.4);
    background: transparent;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.bvm-carousel-dot::after {
    content: '';
    position: absolute;
    inset: 2px;
    border-radius: 50%;
    background: #fff;
    transform: scale(0);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.bvm-carousel-dot.active {
    border-color: var(--bvm-accent);
    transform: scale(1.2);
    box-shadow: 0 0 15px rgba(232, 93, 4, 0.4);
}

.bvm-carousel-dot.active::after {
    transform: scale(1);
    background: var(--bvm-accent);
}

.bvm-carousel-dot:hover {
    border-color: rgba(255, 255, 255, 0.8);
    transform: scale(1.15);
}

/* Progress Bar at bottom */
.bvm-carousel-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: rgba(255, 255, 255, 0.1);
    z-index: 10;
}

.bvm-carousel-progress-bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--bvm-accent), var(--bvm-gold));
    border-radius: 0 2px 2px 0;
    box-shadow: 0 0 10px rgba(232, 93, 4, 0.5);
}

/* ============================================
   RESPONSIVE - CAROUSEL
   ============================================ */
@media (max-width: 768px) {
    .bvm-carousel-arrow {
        width: 42px;
        height: 42px;
        font-size: 1rem;
    }
    .bvm-carousel-nav {
        padding: 0 12px;
    }
    .bvm-carousel-indicators {
        bottom: 24px;
    }
    .bvm-carousel-dot {
        width: 10px;
        height: 10px;
    }
}

@media (max-width: 576px) {
    .bvm-carousel-arrow {
        width: 36px;
        height: 36px;
        font-size: 0.9rem;
    }
}

/* ============================================
   WHO'S WHO PAGE TABS
   ============================================ */
.bvm-page-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 1.75rem;
}
.bvm-page-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.85);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(6px);
    transition: var(--bvm-transition);
    white-space: nowrap;
}
.bvm-page-tab:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.45);
    color: #fff;
    transform: translateY(-2px);
}
.bvm-page-tab:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}
.bvm-page-tab.active {
    background: var(--bvm-accent);
    border-color: var(--bvm-accent);
    color: #fff;
    box-shadow: 0 8px 20px -6px rgba(232, 93, 4, 0.65);
    cursor: default;
}
.bvm-page-tab.active:hover {
    transform: none;
    background: var(--bvm-accent);
    border-color: var(--bvm-accent);
}

@media (max-width: 576px) {
    .bvm-page-tabs { gap: 8px; }
    .bvm-page-tab { padding: 9px 14px; font-size: 0.78rem; }
}

/* ============================================
   BACK TO TOP
   ============================================ */
.bvm-back-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    background: var(--bvm-primary);
    color: #fff;
    font-size: 1.05rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    box-shadow: 0 12px 28px -10px rgba(15, 39, 68, 0.7);
    transition: var(--bvm-transition);
    z-index: 1040;
}
.bvm-back-to-top.show { opacity: 1; visibility: visible; transform: none; }
.bvm-back-to-top:hover { background: var(--bvm-accent); transform: translateY(-3px); }
.bvm-back-to-top:focus-visible { outline: 3px solid var(--bvm-gold); outline-offset: 3px; }
/* Sit above the chat launcher on pages that have the assistant. */
body.bvm-has-chat .bvm-back-to-top { bottom: 92px; }

/* ============================================
   BVM ASSISTANT (CHAT)
   ============================================ */
.bvm-chat-launcher {
    position: fixed;
    right: 24px;
    bottom: 24px;
    height: 54px;
    padding: 0 20px 0 14px;
    border: none;
    border-radius: 999px;
    background: var(--bvm-accent);
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    box-shadow: 0 14px 34px -10px rgba(232, 93, 4, 0.75);
    transition: var(--bvm-transition);
    z-index: 1041;
}
.bvm-chat-launcher-icon { font-size: 1.25rem; display: inline-flex; }
.bvm-chat-launcher-label { font-weight: 600; font-size: 0.9rem; letter-spacing: 0.2px; }
.bvm-chat-launcher:hover { background: #c74e03; transform: translateY(-3px); }
.bvm-chat-launcher:focus-visible { outline: 3px solid var(--bvm-gold); outline-offset: 3px; }
.bvm-chat-launcher.hidden { opacity: 0; visibility: hidden; transform: scale(0.9); }

.bvm-chat-panel {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 372px;
    max-width: calc(100vw - 32px);
    /* Bottom offset (24px) + navbar (~62px) + breathing room is reserved so
       the panel always stops short of the fixed menu instead of sliding under it. */
    height: 470px;
    max-height: calc(100vh - 108px);
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 34px 80px -22px rgba(15, 39, 68, 0.5);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(18px) scale(0.98);
    transform-origin: bottom right;
    transition: var(--bvm-transition);
    z-index: 1042;
}
.bvm-chat-panel.open { opacity: 1; visibility: visible; transform: none; }

.bvm-chat-head {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    color: #fff;
    padding: 11px 14px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.bvm-chat-head-id { display: flex; align-items: center; gap: 11px; }
.bvm-chat-avatar {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.1rem;
}
.bvm-chat-title { margin: 0; font-weight: 700; font-size: 0.95rem; line-height: 1.2; }
.bvm-chat-status { margin: 2px 0 0; font-size: 0.72rem; color: rgba(255, 255, 255, 0.72); display: flex; align-items: center; gap: 6px; }
.bvm-chat-dot { width: 7px; height: 7px; border-radius: 50%; background: #34d399; box-shadow: 0 0 8px rgba(52, 211, 153, 0.9); }
.bvm-chat-close {
    background: rgba(255, 255, 255, 0.12);
    border: none; color: #fff;
    width: 32px; height: 32px; border-radius: 9px;
    cursor: pointer; font-size: 0.8rem;
    transition: var(--bvm-transition);
}
.bvm-chat-close:hover { background: rgba(255, 255, 255, 0.26); }

.bvm-chat-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 14px; background: #f6f8fb; }
.bvm-chat-msg {
    max-width: 84%;
    padding: 11px 14px;
    border-radius: 16px;
    font-size: 0.87rem;
    line-height: 1.65;
    margin-bottom: 10px;
    word-wrap: break-word;
}
.bvm-chat-msg.bot {
    background: #fff;
    color: #334155;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-bottom-left-radius: 6px;
    box-shadow: 0 2px 6px -2px rgba(15, 39, 68, 0.08);
}
.bvm-chat-msg.user {
    background: var(--bvm-primary);
    color: #fff;
    margin-left: auto;
    border-bottom-right-radius: 6px;
}
.bvm-chat-msg a { color: var(--bvm-accent); font-weight: 600; }
.bvm-chat-msg.user a { color: #fff; }

.bvm-chat-chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 12px; }
.bvm-chat-chip {
    border: 1px solid rgba(30, 58, 95, 0.22);
    background: #fff;
    color: var(--bvm-primary);
    border-radius: 999px;
    padding: 7px 13px;
    font-size: 0.76rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--bvm-transition);
}
.bvm-chat-chip:hover { background: var(--bvm-primary); border-color: var(--bvm-primary); color: #fff; }
.bvm-chat-chip:focus-visible { outline: 2px solid var(--bvm-accent); outline-offset: 2px; }

.bvm-chat-typing { display: inline-flex; gap: 5px; align-items: center; }
.bvm-chat-typing span {
    width: 7px; height: 7px; border-radius: 50%;
    background: #94a3b8;
    animation: bvmTyping 1.2s infinite ease-in-out;
}
.bvm-chat-typing span:nth-child(2) { animation-delay: 0.15s; }
.bvm-chat-typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes bvmTyping {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
    30% { transform: translateY(-4px); opacity: 1; }
}

.bvm-chat-foot { display: flex; flex: 0 0 auto; gap: 8px; padding: 10px; border-top: 1px solid rgba(0, 0, 0, 0.07); background: #fff; }
.bvm-chat-input {
    flex: 1;
    border: 1px solid rgba(0, 0, 0, 0.14);
    border-radius: 12px;
    padding: 10px 13px;
    font-family: inherit;
    font-size: 0.87rem;
    color: #1a202c;
}
.bvm-chat-input:focus { outline: none; border-color: var(--bvm-primary); box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.12); }
.bvm-chat-send {
    width: 44px;
    border: none;
    border-radius: 12px;
    background: var(--bvm-accent);
    color: #fff;
    cursor: pointer;
    transition: var(--bvm-transition);
}
.bvm-chat-send:hover { background: #c74e03; }
.bvm-chat-send:focus-visible { outline: 3px solid var(--bvm-gold); outline-offset: 2px; }
.bvm-chat-note { margin: 0; flex: 0 0 auto; padding: 0 14px 9px; font-size: 0.66rem; color: #94a3b8; text-align: center; background: #fff; }

/* Very short viewports: drop the footnote so the conversation keeps its room. */
@media (max-height: 620px) {
    .bvm-chat-note { display: none; }
}

@media (max-width: 480px) {
    .bvm-chat-launcher-label { display: none; }
    .bvm-chat-launcher { padding: 0; width: 54px; justify-content: center; }
    .bvm-chat-panel {
        right: 0; bottom: 0; left: 0;
        width: 100%; max-width: 100%;
        height: 100%; max-height: 100%;
        border-radius: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bvm-back-to-top,
    .bvm-chat-launcher,
    .bvm-chat-panel { transition: opacity .01s linear; }
    .bvm-back-to-top:hover,
    .bvm-chat-launcher:hover { transform: none; }
    .bvm-chat-typing span { animation: none; }
    .scroll-progress-bar { animation: none; }
}

/* ============================================
   CONTACT FORM STATUS
   ============================================ */
.bvm-form-status {
    display: none;
    margin-top: 4px;
    padding: 13px 16px;
    border-radius: 12px;
    font-size: 0.87rem;
    line-height: 1.6;
    border: 1px solid transparent;
}
.bvm-form-status.show { display: block; }
.bvm-form-status.success {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #065f46;
}
.bvm-form-status.error {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}

/* ============================================
   KOUSHAL 2026 CALL TO ACTION
   A narrow highlight sweeps across, pauses, then repeats,
   with a slow glow behind it. Restrained on purpose: the eye
   is drawn back every few seconds without the button nagging.
   ============================================ */

@keyframes koushalSheen {
    /* Sits off-screen for most of the cycle, so the sweep reads as
       an occasional glint rather than constant motion. */
    0%, 62% { transform: translateX(-260%) skewX(-18deg); }
    100%    { transform: translateX(360%) skewX(-18deg); }
}

/* ---------- Navbar button, every page ---------- */
.btn-bvm-cta {
    position: relative;
    overflow: hidden;
    z-index: 0;
    animation: koushalNavPulse 3.4s ease-in-out infinite;
}
.btn-bvm-cta::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 38%;
    background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.45) 50%, rgba(255,255,255,0) 100%);
    transform: translateX(-260%) skewX(-18deg);
    animation: koushalSheen 5s ease-in-out infinite;
    pointer-events: none;
}
@keyframes koushalNavPulse {
    /* Ring grows outward and fades. box-shadow is not clipped by
       overflow:hidden, so it escapes the button cleanly. */
    0%, 100% { box-shadow: 0 0 0 0 rgba(232, 93, 4, 0.5); }
    55%      { box-shadow: 0 0 0 7px rgba(232, 93, 4, 0); }
}
/* On hover the idle pulse steps aside for the existing hover glow. */
.btn-bvm-cta:hover { animation: none; }
.btn-bvm-cta:hover::after { animation-duration: 1.1s; }
.btn-bvm-cta i { transition: var(--bvm-transition); }
.btn-bvm-cta:hover i { transform: translateY(-2px) rotate(-8deg); }

/* ---------- Hero action bar button, home page ---------- */
.btn-koushal-hero {
    position: relative;
    overflow: hidden;
    z-index: 0;
    background: linear-gradient(115deg, #e85d04 0%, #f97316 38%, #d4a537 68%, #e85d04 100%);
    background-size: 220% 100%;
    background-position: 0% 50%;
    animation: koushalHeroTint 7s ease-in-out infinite, koushalHeroGlow 3.4s ease-in-out infinite;
}
@keyframes koushalHeroTint {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}
@keyframes koushalHeroGlow {
    0%, 100% { box-shadow: 0 6px 18px rgba(232, 93, 4, 0.35), 0 0 0 0 rgba(212, 165, 55, 0.55); }
    55%      { box-shadow: 0 10px 26px rgba(232, 93, 4, 0.5), 0 0 0 12px rgba(212, 165, 55, 0); }
}
.btn-koushal-hero::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 30%;
    z-index: 1;
    background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.5) 50%, rgba(255,255,255,0) 100%);
    transform: translateX(-260%) skewX(-18deg);
    animation: koushalSheen 4.4s ease-in-out infinite;
    pointer-events: none;
}
/* Label and icons ride above the sheen so the text stays crisp. */
.btn-koushal-hero > span,
.btn-koushal-hero > i { position: relative; z-index: 2; }
.btn-koushal-hero > i { transition: var(--bvm-transition); }

/* The arrow stays tucked in until hover, then slides out. */
.btn-koushal-arrow {
    max-width: 0;
    opacity: 0;
    margin-left: 0 !important;
    overflow: hidden;
    transform: translateX(-6px);
}
.btn-koushal-hero:hover .btn-koushal-arrow,
.btn-koushal-hero:focus-visible .btn-koushal-arrow {
    max-width: 1.4em;
    opacity: 1;
    margin-left: 0.45rem !important;
    transform: translateX(0);
}
.btn-koushal-hero:hover,
.btn-koushal-hero:focus-visible {
    animation: none;
    background-position: 100% 50%;
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 14px 34px rgba(232, 93, 4, 0.55);
}
.btn-koushal-hero:hover .bi-mortarboard { transform: rotate(-10deg) scale(1.12); }
.btn-koushal-hero:focus-visible { outline: 3px solid var(--bvm-gold); outline-offset: 3px; }
.btn-koushal-hero:active { transform: translateY(-1px) scale(0.99); }

@media (prefers-reduced-motion: reduce) {
    .btn-bvm-cta,
    .btn-koushal-hero { animation: none; }
    .btn-bvm-cta::after,
    .btn-koushal-hero::after { display: none; }
    .btn-bvm-cta:hover i,
    .btn-koushal-hero:hover,
    .btn-koushal-hero:hover .bi-mortarboard { transform: none; }
    .btn-koushal-arrow { transition: none; }
}
