/* Pro Marketing Club v3.2 visual safety + polish layer.
 * Loaded after Elementor and the academy suite so an update reliably fixes live-site spacing/formatting.
 */
:root{
  --bap-space-section:clamp(52px,6vw,78px);
  --bap-space-section-mobile:44px;
  --bap-shell:1180px;
  --bap-shadow-soft:0 18px 55px rgba(6,23,35,.10);
  --bap-shadow-strong:0 28px 80px rgba(6,23,35,.16);
}
html{scroll-padding-top:96px}
body.bap-theme-pro{overflow-x:hidden}
body.bap-theme-pro :where(h1,h2,h3,h4,h5,h6,p){text-wrap:pretty}
body.bap-theme-pro :where(h1,h2,h3,h4,h5,h6){font-family:"Noto Sans Bengali","Hind Siliguri","Nirmala UI","Vrinda","Segoe UI",Arial,sans-serif}
body.bap-theme-pro :where(p,li,a,button,input,select,textarea){font-family:"Noto Sans Bengali","Hind Siliguri","Nirmala UI","Vrinda","Segoe UI",Arial,sans-serif}

/* Elementor wrapper reset only for Bishwas-managed pages/templates. This removes inherited blank padding/gap without fighting normal custom pages. */
body.bap-managed-page .elementor > .e-con,
body.bap-managed-page .elementor > .elementor-element.e-con,
.bap-global-template .elementor > .e-con,
.bap-global-template .elementor > .elementor-element.e-con{
  width:100%!important;
  max-width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
  --padding-top:0px!important;
  --padding-bottom:0px!important;
  --padding-left:0px!important;
  --padding-right:0px!important;
  --row-gap:0px!important;
  --column-gap:0px!important;
  background:transparent!important;
}
body.bap-managed-page .elementor-widget,
.bap-global-template .elementor-widget{margin:0!important;max-width:100%}
body.bap-managed-page .elementor-widget-container,
.bap-global-template .elementor-widget-container{margin:0!important;padding:0!important}
body.bap-managed-page .bap-empty-elementor-container{display:none!important}

/* Global section rhythm. Inline Elementor widget padding remains editable, but extreme demo values are normalized for consistency. */
body.bap-theme-pro .bap-section{
  padding-top:min(var(--bap-pad,68px),68px)!important;
  padding-bottom:min(var(--bap-pad,68px),68px)!important;
  margin:0!important;
  isolation:isolate;
}
body.bap-theme-pro .bap-inner{width:min(var(--bap-shell),calc(100% - 40px));margin-inline:auto}
body.bap-theme-pro .bap-section-head{margin-bottom:34px}
body.bap-theme-pro .bap-section-head h2,
body.bap-theme-pro .bap-story-copy h2,
body.bap-theme-pro .bap-showcase h2,
body.bap-theme-pro .bap-certificate-showcase h2,
body.bap-theme-pro .bap-contact h2{
  font-size:clamp(2rem,4.2vw,3.75rem)!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
  margin:0 0 16px!important;
  max-width:900px;
}
body.bap-theme-pro .bap-section-head p,
body.bap-theme-pro .bap-story-copy>p,
body.bap-theme-pro .bap-showcase p,
body.bap-theme-pro .bap-certificate-showcase p,
body.bap-theme-pro .bap-contact p{
  font-size:clamp(1rem,1.25vw,1.12rem)!important;
  line-height:1.78!important;
  max-width:760px;
}
body.bap-theme-pro .bap-kicker{margin-bottom:12px;font-size:11px;letter-spacing:.12em}

/* Header: tighter, cleaner, no post-nav white gap. */
body.bap-theme-pro .bap-header-wrap{margin:0!important;padding:0!important}
body.bap-theme-pro .bap-announcement{min-height:34px;padding:6px 18px}
body.bap-theme-pro .bap-main-header{box-shadow:0 10px 35px rgba(0,0,0,.10)}
body.bap-theme-pro .bap-header-inner{min-height:76px;gap:18px}
body.bap-theme-pro .bap-brand{min-width:220px}
body.bap-theme-pro .bap-menu{gap:3px}

body.bap-theme-pro .bap-menu>li>a{padding:10px 9px;font-size:12px}
body.bap-theme-pro .bap-header-cta{padding:12px 18px;box-shadow:0 12px 28px rgba(42,215,195,.18)}

/* Hero: clearer hierarchy and better fold on normal laptop screens. */
body.bap-theme-pro .bap-hero{
  min-height:clamp(590px,72vh,690px)!important;
  padding-top:clamp(54px,6vw,76px)!important;
  padding-bottom:clamp(54px,6vw,76px)!important;
}
body.bap-theme-pro .bap-hero-grid{gap:clamp(36px,5vw,68px)}
body.bap-theme-pro .bap-hero-copy h1{
  font-size:clamp(3rem,5.8vw,5.45rem)!important;
  line-height:.98!important;
  letter-spacing:-.055em!important;
  margin:0 0 22px!important;
}
body.bap-theme-pro .bap-hero-copy p{font-size:clamp(1rem,1.4vw,1.14rem)!important;line-height:1.75!important;margin-bottom:26px!important}
body.bap-theme-pro .bap-hero-image{border-radius:28px;box-shadow:0 32px 80px rgba(0,0,0,.28)}
body.bap-theme-pro .bap-hero-image img{border-radius:20px}

/* Section-to-section contrast. */
body.bap-theme-pro .bap-stats{padding:22px 0!important;background:#fff!important}
body.bap-theme-pro .bap-dynamic-section{background:#f5f8f8!important}
body.bap-theme-pro .bap-feature-card,
body.bap-theme-pro .bap-course-card,
body.bap-theme-pro .bap-mode-card,
body.bap-theme-pro .bap-testimonial-grid blockquote,
body.bap-theme-pro .bap-form-shell,
body.bap-theme-pro .bap-panel{box-shadow:0 8px 28px rgba(6,23,35,.04)}
body.bap-theme-pro .bap-feature-card:hover,
body.bap-theme-pro .bap-course-card:hover,
body.bap-theme-pro .bap-mode-card:hover{box-shadow:var(--bap-shadow-soft)}
body.bap-theme-pro .bap-course-body{padding:22px!important}
body.bap-theme-pro .bap-course-body h3{font-size:20px!important;line-height:1.25!important}
body.bap-theme-pro .bap-course-body p{font-size:13px!important;line-height:1.7!important}
body.bap-theme-pro .bap-mode-card{padding:30px!important}
body.bap-theme-pro .bap-feature-card{padding:28px!important}

/* Buttons: reliable contrast in every section. */
body.bap-theme-pro .bap-button{min-height:46px;border-radius:13px;line-height:1.2;text-align:center}
body.bap-theme-pro .bap-button--primary{background:#2ad7c3!important;color:#061723!important}
body.bap-theme-pro .bap-button--primary:hover{background:#6be5d7!important;color:#061723!important}
body.bap-theme-pro .bap-button--dark{background:#071b2b!important;color:#fff!important}
body.bap-theme-pro .bap-button--light{background:#fff!important;color:#071b2b!important}

/* Contact + form readability. */
body.bap-theme-pro .bap-field input,
body.bap-theme-pro .bap-field select,
body.bap-theme-pro .bap-field textarea,
body.bap-theme-pro .bap-verify-form input,
body.bap-theme-pro .bap-login-card input{font-size:15px;min-height:48px;background:#fff}
body.bap-theme-pro .bap-field textarea{min-height:120px}
body.bap-theme-pro .bap-contact-cards strong{font-size:13px;overflow-wrap:anywhere}

/* Footer feels connected to the page, not like an oversized extra section. */
body.bap-theme-pro .bap-footer{margin:0!important}
body.bap-theme-pro .bap-footer-cta{padding:38px 0}
body.bap-theme-pro .bap-footer-grid{padding:40px 0;gap:28px}
body.bap-theme-pro .bap-footer-bottom{padding-top:18px}

/* Floating contact actions: permanently visible, high contrast, above Elementor overlays. */
body.bap-theme-pro .bap-floating-actions{
  position:fixed!important;
  right:max(18px,env(safe-area-inset-right))!important;
  bottom:max(20px,calc(env(safe-area-inset-bottom) + 14px))!important;
  z-index:2147483000!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  gap:10px!important;
  pointer-events:none;
}
body.bap-theme-pro .bap-floating-actions>a,
body.bap-theme-pro .bap-floating-actions>.bap-back-top{pointer-events:auto}
body.bap-theme-pro .bap-floating-actions a{
  min-width:132px!important;
  height:52px!important;
  border:0!important;
  border-radius:999px!important;
  padding:0 16px 0 8px!important;
  color:#fff!important;
  box-shadow:0 15px 40px rgba(6,23,35,.24)!important;
  font-size:12px!important;
  letter-spacing:.01em;
  transition:transform .2s ease,box-shadow .2s ease!important;
}
body.bap-theme-pro .bap-floating-actions a:hover{transform:translateY(-3px) scale(1.02)!important;box-shadow:0 20px 48px rgba(6,23,35,.30)!important}
body.bap-theme-pro .bap-float-whatsapp{background:#10a66f!important}
body.bap-theme-pro .bap-float-call{background:#0b2d43!important}
body.bap-theme-pro .bap-floating-actions a span{
  flex:0 0 38px!important;width:38px!important;height:38px!important;border-radius:50%!important;
  display:grid!important;place-items:center!important;background:rgba(255,255,255,.16)!important;font-size:15px!important
}
body.bap-theme-pro .bap-floating-actions a b{display:block!important;font-size:12px!important;color:#fff!important}
body.bap-theme-pro .bap-back-top{
  width:46px!important;height:46px!important;border-radius:50%!important;background:#fff!important;color:#0b2d43!important;
  box-shadow:0 12px 30px rgba(6,23,35,.18)!important
}

/* Progressive enhancement: content is never hidden when JS/cache fails. */
body.bap-theme-pro [data-bap-reveal]{opacity:1!important;transform:none!important}
body.bap-theme-pro [data-bap-reveal].is-visible{animation:bapSafeReveal .55s cubic-bezier(.2,.7,.2,1) both}
@keyframes bapSafeReveal{from{opacity:.82;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Accessibility */
body.bap-theme-pro :where(a,button,input,select,textarea):focus-visible{outline:3px solid rgba(42,215,195,.45);outline-offset:3px}

@media(max-width:1080px){
  body.bap-theme-pro .bap-header-inner{min-height:70px}
  body.bap-theme-pro .bap-hero{min-height:auto!important}
  body.bap-theme-pro .bap-hero-copy h1{font-size:clamp(3rem,7vw,4.6rem)!important}
}
@media(max-width:820px){
  html{scroll-padding-top:76px}
  body.bap-theme-pro .bap-inner{width:min(var(--bap-shell),calc(100% - 30px))}
  body.bap-theme-pro .bap-section{padding-top:56px!important;padding-bottom:56px!important}
  body.bap-theme-pro .bap-hero{padding-top:52px!important;padding-bottom:58px!important}
  body.bap-theme-pro .bap-hero-grid{gap:38px}
  body.bap-theme-pro .bap-hero-image{transform:none!important}
  body.bap-theme-pro .bap-floating-card{display:none!important}
  body.bap-theme-pro .bap-section-head h2,
  body.bap-theme-pro .bap-story-copy h2,
  body.bap-theme-pro .bap-showcase h2,
  body.bap-theme-pro .bap-certificate-showcase h2,
  body.bap-theme-pro .bap-contact h2{font-size:clamp(2rem,7vw,3rem)!important}
}
@media(max-width:620px){
  body.bap-theme-pro .bap-inner{width:min(100% - 24px,var(--bap-shell))}
  body.bap-theme-pro .bap-section{padding-top:44px!important;padding-bottom:44px!important}
  body.bap-theme-pro .bap-announcement{min-height:32px;font-size:9px!important;padding-inline:10px}
  body.bap-theme-pro .bap-announcement a{margin-left:4px}
  body.bap-theme-pro .bap-brand-mark{width:42px;height:42px}
  body.bap-theme-pro .bap-brand-copy strong{font-size:12px!important;max-width:170px}
  body.bap-theme-pro .bap-menu-toggle{flex:0 0 42px}
  body.bap-theme-pro .bap-hero-copy h1{font-size:clamp(2.55rem,13vw,3.75rem)!important;line-height:1.01!important;letter-spacing:-.045em!important}
  body.bap-theme-pro .bap-hero-copy p{font-size:15px!important;line-height:1.7!important}
  body.bap-theme-pro .bap-hero-actions .bap-button{width:100%}
  body.bap-theme-pro .bap-stat-grid strong{font-size:1.7rem!important}
  body.bap-theme-pro .bap-mode-card,body.bap-theme-pro .bap-feature-card{padding:23px!important}
  body.bap-theme-pro .bap-floating-actions{right:12px!important;bottom:max(14px,calc(env(safe-area-inset-bottom) + 10px))!important;gap:8px!important}
  body.bap-theme-pro .bap-floating-actions a{min-width:0!important;width:52px!important;height:52px!important;padding:0!important;justify-content:center!important}
  body.bap-theme-pro .bap-floating-actions a span{width:52px!important;height:52px!important;background:transparent!important;font-size:17px!important}
  body.bap-theme-pro .bap-floating-actions a b{display:none!important}
  body.bap-theme-pro .bap-back-top{width:44px!important;height:44px!important}
}
@media(prefers-reduced-motion:reduce){body.bap-theme-pro [data-bap-reveal].is-visible{animation:none!important}}

/* Keep Elementor editing workspace clean. */
body.elementor-editor-active .bap-floating-actions,
body.elementor-editor-preview .bap-floating-actions{display:none!important}


/* ========================================================================
   v3.2.1 — Student Portal mobile-first responsive polish
   Presentation only. Bishwas Academy Suite keeps all portal/database logic.
   ======================================================================== */
body.bap-student-portal-page{overflow-x:clip}
body.bap-student-portal-page #bap-student-portal,
body.bap-student-portal-page #bap-student-portal *{box-sizing:border-box}
body.bap-student-portal-page .bap-portal-main,
body.bap-student-portal-page .bap-panel,
body.bap-student-portal-page .bap-course-portal-card,
body.bap-student-portal-page .bap-cert-card,
body.bap-student-portal-page .bap-profile-card,
body.bap-student-portal-page .bap-support-grid{min-width:0;max-width:100%}
body.bap-student-portal-page .bap-portal-main :where(p,strong,h2,h3,h4,td,a,span){overflow-wrap:anywhere}
body.bap-student-portal-page .bap-portal-main :where(img,video,iframe,svg){max-width:100%}

@media(max-width:900px){
  /* Avoid 100vw + negative-margin horizontal overflow on phones/tablets. */
  body.bap-student-portal-page .bap-portal-section{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow-x:clip!important;
  }
  body.bap-student-portal-page .bap-portal-section>.bap-portal-inner{
    width:min(100% - 24px,760px)!important;
    max-width:760px!important;
    margin-inline:auto!important;
  }
  body.bap-student-portal-page .bap-portal{
    width:100%!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
    min-height:0!important;
  }
  /* On mobile the account header becomes a normal compact card instead of
     occupying a large sticky portion of the viewport. */
  body.bap-student-portal-page .bap-portal-sidebar{
    position:relative!important;
    top:auto!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding:14px!important;
    border-radius:18px!important;
  }
  body.admin-bar.bap-student-portal-page .bap-portal-sidebar{top:auto!important;height:auto!important}
  body.bap-student-portal-page .bap-portal-profile{
    min-height:50px!important;
    padding:0 82px 12px 0!important;
    gap:11px!important;
  }
  body.bap-student-portal-page .bap-avatar{
    width:44px!important;height:44px!important;min-width:44px!important;border-radius:13px!important
  }
  body.bap-student-portal-page .bap-portal-profile>div:last-child{min-width:0}
  body.bap-student-portal-page .bap-portal-profile strong{
    display:block!important;max-width:100%!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
  }
  body.bap-student-portal-page .bap-portal-profile small{white-space:normal!important}
  body.bap-student-portal-page .bap-portal-logout{
    display:inline-flex!important;
    position:absolute!important;
    top:15px!important;right:14px!important;
    min-height:36px!important;
    margin:0!important;padding:7px 11px!important
  }
  /* Touch-friendly, horizontally scrollable portal tabs. */
  body.bap-student-portal-page .bap-portal-nav{
    display:flex!important;
    width:100%!important;
    gap:7px!important;
    padding:11px 0 1px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity;
    scroll-padding-inline:2px;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  body.bap-student-portal-page .bap-portal-nav::-webkit-scrollbar{display:none}
  body.bap-student-portal-page .bap-portal-nav a{
    flex:0 0 auto!important;
    scroll-snap-align:start;
    min-height:44px!important;
    padding:11px 13px!important;
    white-space:nowrap!important;
    font-size:12px!important;
  }
  body.bap-student-portal-page .bap-portal-nav a.is-active{
    background:rgba(42,215,195,.18)!important;
    border-color:rgba(42,215,195,.28)!important;
  }
  body.bap-student-portal-page .bap-portal-main{
    width:100%!important;
    min-height:0!important;
    overflow:visible!important;
    padding:24px!important;
    border-radius:20px!important;
  }
  body.bap-student-portal-page .bap-dashboard-grid,
  body.bap-student-portal-page .bap-support-grid,
  body.bap-student-portal-page .bap-profile-card,
  body.bap-student-portal-page .bap-lms-player-shell,
  body.bap-student-portal-page .bap-lms-assignment{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.bap-student-portal-page .bap-lms-curriculum{position:relative!important;top:auto!important;max-height:none!important}
}

@media(max-width:620px){
  body.bap-student-portal-page .bap-portal-section{--bap-pad:24px!important;padding-top:24px!important;padding-bottom:38px!important}
  body.bap-student-portal-page .bap-portal-section>.bap-portal-inner{width:calc(100% - 14px)!important}
  body.bap-student-portal-page .bap-section-head{margin-bottom:22px!important}
  body.bap-student-portal-page .bap-section-head h2{font-size:clamp(1.9rem,9vw,2.55rem)!important}
  body.bap-student-portal-page .bap-section-head p{font-size:14px!important;line-height:1.65!important}
  body.bap-student-portal-page .bap-portal{gap:9px!important}
  body.bap-student-portal-page .bap-portal-sidebar{padding:11px!important;border-radius:15px!important}
  body.bap-student-portal-page .bap-portal-profile{padding-right:70px!important;padding-bottom:9px!important}
  body.bap-student-portal-page .bap-portal-logout{top:11px!important;right:11px!important;font-size:10px!important}
  body.bap-student-portal-page .bap-portal-nav{gap:5px!important;padding-top:9px!important}
  body.bap-student-portal-page .bap-portal-nav a{min-height:42px!important;padding:10px 11px!important;font-size:11px!important}
  body.bap-student-portal-page .bap-portal-main{padding:17px 13px!important;border-radius:16px!important}
  body.bap-student-portal-page .bap-portal-heading{display:block!important;margin-bottom:18px!important}
  body.bap-student-portal-page .bap-portal-heading h2{font-size:25px!important;line-height:1.15!important}
  body.bap-student-portal-page .bap-portal-heading p{font-size:13px!important;line-height:1.65!important}
  body.bap-student-portal-page .bap-status-pill{display:inline-flex!important;margin-top:10px!important}

  body.bap-student-portal-page .bap-dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  body.bap-student-portal-page .bap-dashboard-stats>div{min-width:0!important;min-height:80px!important;padding:13px!important}
  body.bap-student-portal-page .bap-dashboard-stats strong{font-size:21px!important}
  body.bap-student-portal-page .bap-panel{padding:15px!important;border-radius:14px!important}
  body.bap-student-portal-page .bap-panel-title{gap:10px!important}
  body.bap-student-portal-page .bap-quick-actions a{min-height:44px!important;padding:12px!important}

  body.bap-student-portal-page .bap-course-portal-card{padding:13px!important;border-radius:15px!important}
  body.bap-student-portal-page .bap-course-portal-card__head{grid-template-columns:minmax(0,1fr)!important;gap:13px!important}
  body.bap-student-portal-page .bap-course-portal-card__head img,
  body.bap-student-portal-page .bap-course-portal-card__head .bap-image-placeholder{
    width:100%!important;height:auto!important;aspect-ratio:16/9!important;border-radius:12px!important
  }
  body.bap-student-portal-page .bap-lesson{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;padding:14px 0!important}
  body.bap-student-portal-page .bap-lesson-actions{width:100%!important;display:grid!important;grid-template-columns:1fr!important}
  body.bap-student-portal-page .bap-lesson-actions a{min-height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}

  body.bap-student-portal-page .bap-cert-card{display:grid!important;grid-template-columns:1fr!important;align-items:start!important;gap:11px!important;padding:14px!important}
  body.bap-student-portal-page .bap-cert-card__icon{width:44px!important;height:44px!important}
  body.bap-student-portal-page .bap-cert-card__actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important;gap:7px!important}
  body.bap-student-portal-page .bap-cert-card__actions .bap-button{width:100%!important;min-height:44px!important}

  /* Convert payment history from a wide desktop table into readable cards. */
  body.bap-student-portal-page .bap-table-wrap{overflow:visible!important;border:0!important;background:transparent!important}
  body.bap-student-portal-page .bap-table{display:block!important;width:100%!important;min-width:0!important;border:0!important}
  body.bap-student-portal-page .bap-table thead{display:none!important}
  body.bap-student-portal-page .bap-table tbody{display:grid!important;gap:10px!important}
  body.bap-student-portal-page .bap-table tr{
    display:grid!important;
    width:100%!important;
    padding:8px 13px!important;
    background:#fff!important;
    border:1px solid #dfe7eb!important;
    border-radius:14px!important;
    box-shadow:0 7px 20px rgba(6,23,35,.045)!important;
  }
  body.bap-student-portal-page .bap-table td{
    display:grid!important;
    grid-template-columns:minmax(78px,.42fr) minmax(0,1fr)!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    padding:9px 0!important;
    border-bottom:1px solid #edf2f3!important;
    font-size:12px!important;
    text-align:right!important;
  }
  body.bap-student-portal-page .bap-table td:last-child{border-bottom:0!important}
  body.bap-student-portal-page .bap-table td::before{font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#78909c;text-align:left}
  body.bap-student-portal-page .bap-table td:nth-child(1)::before{content:"Date"}
  body.bap-student-portal-page .bap-table td:nth-child(2)::before{content:"Amount"}
  body.bap-student-portal-page .bap-table td:nth-child(3)::before{content:"Method"}
  body.bap-student-portal-page .bap-table td:nth-child(4)::before{content:"Status"}
  body.bap-student-portal-page .bap-table td:nth-child(5)::before{content:"Note"}
  body.bap-student-portal-page .bap-table td:nth-child(6)::before{content:"Slip"}
  body.bap-student-portal-page .bap-table td .bap-button{justify-self:end!important;min-height:38px!important;padding:8px 11px!important}

  body.bap-student-portal-page .bap-profile-card{gap:15px!important}
  body.bap-student-portal-page .bap-profile-card__photo{text-align:center!important}
  body.bap-student-portal-page .bap-profile-card__photo img,
  body.bap-student-portal-page .bap-profile-card__photo .bap-image-placeholder{
    width:120px!important;height:120px!important;margin-inline:auto!important;border-radius:18px!important
  }
  body.bap-student-portal-page .bap-profile-fields{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  body.bap-student-portal-page .bap-profile-fields>div{min-width:0!important;padding:12px!important}
  body.bap-student-portal-page .bap-profile-fields strong{word-break:break-word!important}

  body.bap-student-portal-page .bap-field input,
  body.bap-student-portal-page .bap-field select,
  body.bap-student-portal-page .bap-field textarea,
  body.bap-student-portal-page .bap-login-card input{font-size:16px!important;max-width:100%!important}
  body.bap-student-portal-page .bap-support-grid .bap-button{width:100%!important;min-height:44px!important}

  body.bap-student-portal-page .bap-lms-course-grid{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  body.bap-student-portal-page .bap-lms-course-card{border-radius:15px!important}
  body.bap-student-portal-page .bap-lms-course-card img,
  body.bap-student-portal-page .bap-lms-course-art{height:auto!important;min-height:180px!important;aspect-ratio:16/9!important}
  body.bap-student-portal-page .bap-lms-course-card__body{padding:15px!important}
  body.bap-student-portal-page .bap-lms-course-meta{flex-wrap:wrap!important;gap:6px!important}
  body.bap-student-portal-page .bap-lms-player-top{align-items:flex-start!important;flex-direction:column!important;gap:8px!important}
  body.bap-student-portal-page .bap-lms-video-wrap{border-radius:12px!important}
  body.bap-student-portal-page .bap-lms-video,
  body.bap-student-portal-page .bap-lms-embed{width:100%!important;max-width:100%!important}
  body.bap-student-portal-page .bap-lms-lesson-copy{padding:19px 0 8px!important}
  body.bap-student-portal-page .bap-lms-lesson-copy h2{font-size:24px!important}
  body.bap-student-portal-page .bap-lms-curriculum{width:100%!important;border-radius:14px!important}
  body.bap-student-portal-page .bap-lms-curriculum-item{padding:13px!important}
  body.bap-student-portal-page .bap-lms-assignment{padding:14px!important;gap:14px!important;border-radius:14px!important}

  /* Login page also becomes a single, compact mobile card. */
  body.bap-student-portal-page .bap-login-card{grid-template-columns:minmax(0,1fr)!important;border-radius:18px!important}
  body.bap-student-portal-page .bap-login-card__copy{padding:25px 20px!important}
  body.bap-student-portal-page .bap-login-card__copy h2{font-size:clamp(1.85rem,9vw,2.5rem)!important}
  body.bap-student-portal-page .bap-login-points{margin-top:18px!important;gap:7px!important}
  body.bap-student-portal-page .bap-login-card__form{padding:22px 18px!important}
  body.bap-student-portal-page .bap-login-options{align-items:flex-start!important;flex-direction:column!important;gap:10px!important}
  body.bap-student-portal-page .bap-login-submit{min-height:48px!important;font-size:15px!important}

  /* Floating contact buttons should not cover portal controls on small screens. */
  body.bap-student-portal-page .bap-floating-actions{bottom:max(10px,env(safe-area-inset-bottom))!important;right:8px!important;transform:scale(.88);transform-origin:right bottom}
}

@media(max-width:400px){
  body.bap-student-portal-page .bap-dashboard-stats{grid-template-columns:minmax(0,1fr)!important}
  body.bap-student-portal-page .bap-portal-main{padding:14px 10px!important}
  body.bap-student-portal-page .bap-table td{grid-template-columns:72px minmax(0,1fr)!important}
}


/* ========================================================================
   v3.2.2 — Premium responsive global navbar
   Targets Bishwas Academy Suite header v3.5.8 without changing menu data.
   ======================================================================== */
body.bap-theme-pro .bap-header-v358 .bap-main-header{
  transition:background-color .28s ease,box-shadow .28s ease,border-color .28s ease,backdrop-filter .28s ease;
}
body.bap-theme-pro .bap-header-v358 .bap-main-header.is-bap-scrolled{
  background:rgba(5,20,31,.975)!important;
  border-bottom-color:rgba(42,215,195,.16)!important;
  box-shadow:0 14px 42px rgba(2,14,23,.28)!important;
  backdrop-filter:blur(22px) saturate(130%);
}
body.bap-theme-pro .bap-header-v358 .bap-header-inner{
  width:calc(100% - 44px)!important;
  max-width:1540px!important;
  min-height:88px!important;
  column-gap:16px!important;
  transition:min-height .25s ease,padding .25s ease;
}
body.bap-theme-pro .bap-header-v358 .bap-main-header.is-bap-scrolled .bap-header-inner{
  min-height:76px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
}
body.bap-theme-pro .bap-header-v358 .bap-brand--horizontal{
  width:clamp(245px,18vw,300px)!important;
  transition:transform .24s ease,filter .24s ease;
}
body.bap-theme-pro .bap-header-v358 .bap-brand:hover{
  transform:translateY(-1px);
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.14));
}
body.bap-theme-pro .bap-header-v358 .bap-header-nav{overflow:visible!important}
body.bap-theme-pro .bap-header-v358 .bap-menu{gap:2px!important}
body.bap-theme-pro .bap-header-v358 .bap-menu>li>a{
  position:relative;
  z-index:1;
  min-height:44px!important;
  padding:11px 10px!important;
  color:#dbe8ee!important;
  font-size:clamp(13px,.76vw,14px)!important;
  line-height:1.15!important;
  font-weight:800!important;
  letter-spacing:.005em;
  border-radius:11px!important;
  transition:color .2s ease,background-color .2s ease,transform .2s ease,box-shadow .2s ease!important;
}
body.bap-theme-pro .bap-header-v358 .bap-menu>li>a::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:5px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,#2ad7c3,#73eadc);
  transform:scaleX(0);
  transform-origin:center;
  opacity:0;
  transition:transform .24s cubic-bezier(.2,.75,.25,1),opacity .2s ease;
}
body.bap-theme-pro .bap-header-v358 .bap-menu>li>a:hover{
  color:#fff!important;
  background:rgba(255,255,255,.065)!important;
  transform:translateY(-2px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035);
}
body.bap-theme-pro .bap-header-v358 .bap-menu>li>a:hover::after,
body.bap-theme-pro .bap-header-v358 .bap-menu>.current-menu-item>a::after,
body.bap-theme-pro .bap-header-v358 .bap-menu>.current_page_item>a::after,
body.bap-theme-pro .bap-header-v358 .bap-menu>.current-menu-ancestor>a::after{
  transform:scaleX(1);
  opacity:1;
}
body.bap-theme-pro .bap-header-v358 .bap-menu>.current-menu-item>a,
body.bap-theme-pro .bap-header-v358 .bap-menu>.current_page_item>a,
body.bap-theme-pro .bap-header-v358 .bap-menu>.current-menu-ancestor>a{
  color:#fff!important;
  background:linear-gradient(180deg,rgba(42,215,195,.13),rgba(42,215,195,.055))!important;
  box-shadow:inset 0 0 0 1px rgba(42,215,195,.13),0 8px 22px rgba(0,0,0,.08)!important;
}
body.bap-theme-pro .bap-header-v358 .bap-menu .sub-menu{
  margin-top:8px!important;
  padding:10px!important;
  background:rgba(8,31,45,.985)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:15px!important;
  box-shadow:0 24px 55px rgba(0,0,0,.32)!important;
  animation:bapNavDrop .2s ease both;
}
body.bap-theme-pro .bap-header-v358 .bap-menu .sub-menu a{
  min-height:40px;
  display:flex!important;
  align-items:center;
  font-size:13px!important;
  font-weight:750!important;
  transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
body.bap-theme-pro .bap-header-v358 .bap-menu .sub-menu a:hover{
  background:rgba(42,215,195,.10)!important;
  color:#fff!important;
  transform:translateX(3px);
}
@keyframes bapNavDrop{from{opacity:0;transform:translateY(7px) scale(.985)}to{opacity:1;transform:none}}

body.bap-theme-pro .bap-header-v358 .bap-header-phone{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.025);
  transition:transform .2s ease,border-color .2s ease,background-color .2s ease,box-shadow .2s ease!important;
}
body.bap-theme-pro .bap-header-v358 .bap-header-phone:hover{
  transform:translateY(-2px) rotate(-4deg);
  background:rgba(42,215,195,.10)!important;
  border-color:rgba(42,215,195,.36)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.16);
}
body.bap-theme-pro .bap-header-v358 .bap-header-cta{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:46px!important;
  padding:11px 19px!important;
  font-size:13px!important;
  font-weight:900!important;
  border-radius:13px!important;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease!important;
}
body.bap-theme-pro .bap-header-v358 .bap-header-cta::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-40% auto -40% -55%;
  width:38%;
  transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  transition:left .55s ease;
}
body.bap-theme-pro .bap-header-v358 .bap-header-cta:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 16px 34px rgba(42,215,195,.26)!important;
}
body.bap-theme-pro .bap-header-v358 .bap-header-cta:hover::before{left:125%}

/* Hamburger has a clear animated open/close state. */
body.bap-theme-pro .bap-header-v358 .bap-menu-toggle{
  border:1px solid rgba(255,255,255,.10)!important;
  background:rgba(255,255,255,.055)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.10);
  transition:background-color .2s ease,border-color .2s ease,transform .2s ease!important;
}
body.bap-theme-pro .bap-header-v358 .bap-menu-toggle:hover{
  background:rgba(42,215,195,.10)!important;
  border-color:rgba(42,215,195,.28)!important;
  transform:translateY(-1px);
}
body.bap-theme-pro .bap-header-v358 .bap-menu-toggle span{
  transform-origin:center;
  transition:transform .25s ease,opacity .2s ease,background-color .2s ease!important;
}
body.bap-theme-pro .bap-header-v358 .bap-menu-toggle[aria-expanded="true"] span{background:#62e3d4!important}
body.bap-theme-pro .bap-header-v358 .bap-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.bap-theme-pro .bap-header-v358 .bap-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(.2)}
body.bap-theme-pro .bap-header-v358 .bap-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Compact/tablet/mobile dropdown — larger touch targets and a polished entrance. */
body.bap-theme-pro .bap-header-v358 .bap-header-inner.bap-nav-compact .bap-header-nav.is-open{
  top:calc(100% + 10px)!important;
  padding:12px!important;
  background:linear-gradient(180deg,rgba(8,35,51,.995),rgba(5,26,39,.995))!important;
  border-color:rgba(42,215,195,.16)!important;
  border-radius:18px!important;
  box-shadow:0 28px 70px rgba(0,0,0,.38)!important;
  animation:bapMobileMenuIn .24s cubic-bezier(.2,.72,.25,1) both;
}
body.bap-theme-pro .bap-header-v358 .bap-header-inner.bap-nav-compact .bap-header-nav.is-open .bap-menu{gap:4px!important}
body.bap-theme-pro .bap-header-v358 .bap-header-inner.bap-nav-compact .bap-header-nav.is-open .bap-menu>li>a{
  min-height:48px!important;
  padding:13px 14px!important;
  font-size:14px!important;
  border-radius:11px!important;
}
body.bap-theme-pro .bap-header-v358 .bap-header-inner.bap-nav-compact .bap-header-nav.is-open .bap-menu>li>a::after{
  left:14px;right:auto;width:38px;bottom:7px;transform-origin:left;
}
@keyframes bapMobileMenuIn{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}

@media(max-width:1320px){
  body.bap-theme-pro .bap-header-v358 .bap-header-inner{column-gap:12px!important}
  body.bap-theme-pro .bap-header-v358 .bap-brand--horizontal{width:clamp(235px,18vw,280px)!important}
  body.bap-theme-pro .bap-header-v358 .bap-menu>li>a{padding-inline:8px!important;font-size:13px!important}
}
@media(max-width:900px){
  body.bap-theme-pro .bap-header-v358 .bap-header-inner{width:calc(100% - 26px)!important;min-height:74px!important;padding-block:7px!important}
  body.bap-theme-pro .bap-header-v358 .bap-main-header.is-bap-scrolled .bap-header-inner{min-height:68px!important}
  body.bap-theme-pro .bap-header-v358 .bap-brand--horizontal{width:min(250px,55vw)!important}
  body.bap-theme-pro .bap-header-v358 .bap-header-cta{min-height:42px!important;padding:10px 14px!important;font-size:12px!important}
}
@media(max-width:620px){
  body.bap-theme-pro .bap-header-v358 .bap-header-inner{width:calc(100% - 18px)!important;min-height:66px!important}
  body.bap-theme-pro .bap-header-v358 .bap-brand--horizontal{width:min(218px,72vw)!important}
  body.bap-theme-pro .bap-header-v358 .bap-header-inner.bap-nav-compact .bap-header-nav.is-open{
    top:calc(100% + 7px)!important;
    padding:10px!important;
    border-radius:15px!important;
    max-height:min(72vh,560px);
    overflow-y:auto!important;
    overscroll-behavior:contain;
  }
  body.bap-theme-pro .bap-header-v358 .bap-header-inner.bap-nav-compact .bap-header-nav.is-open .bap-menu>li>a{
    min-height:46px!important;
    padding:12px 13px!important;
    font-size:13.5px!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.bap-theme-pro .bap-header-v358 *{scroll-behavior:auto!important}
  body.bap-theme-pro .bap-header-v358 .bap-menu>li>a,
  body.bap-theme-pro .bap-header-v358 .bap-menu>li>a::after,
  body.bap-theme-pro .bap-header-v358 .bap-header-cta,
  body.bap-theme-pro .bap-header-v358 .bap-menu-toggle,
  body.bap-theme-pro .bap-header-v358 .bap-menu-toggle span{transition:none!important;animation:none!important}
}
