/* ============================================================
   iPlus Madrasah — UI & Motion Layer (ipm-ui.css)
   Design system: .claude/skills/islamic-ui-pro/SKILL.md
   Animates existing page-builder blocks + custom pages by class.
   Progressive enhancement: nothing here hides content without JS.
   ============================================================ */

:root{
  --ipm-green:#0f3d2c; --ipm-green2:#15653f; --ipm-gold:#d4a437; --ipm-gold2:#f4d23f;
  --ipm-yellow:#e9ee8f; --ipm-cream:#f6f1e5; --ipm-line:#e9e0cc; --ipm-ink:#14261d; --ipm-muted:#5a6a60;
  --ipm-ease:cubic-bezier(.22,.61,.36,1); --ipm-spring:cubic-bezier(.34,1.56,.64,1);
}

/* ---------- global feel ---------- */
@media (prefers-reduced-motion: no-preference){ html{scroll-behavior:smooth} }

/* ---------- smooth page-to-page navigation ----------
   Same-origin MPA view transitions: the browser cross-fades from the old
   page to the new one instead of flashing white between them (the source
   of the "blink" when navigating Home/Courses/Classes/Quiz). Progressive
   enhancement - browsers without support just navigate normally. */
@media (prefers-reduced-motion: no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation-duration:.16s}
  ::view-transition-new(root){animation-duration:.16s}
}
a,button,.ipm-faq-q,.ipm-bottnav a{-webkit-tap-highlight-color:transparent}

/* Double-scrollbar fix: the theme's own frontend_style.css sets
   #content-area{overflow-x:hidden} with no overflow-y specified — per the
   CSS overflow spec, having one axis non-visible forces the other to
   auto-promote to "auto". On any sufficiently tall page (the homepage, once
   all its blocks were added) #content-area's own box ends up a bit shorter
   than its content, so it independently scrolls a small residual range in
   addition to the page's normal scroll — a second, short scrollbar thumb
   next to the real one ("bada + chota scroll"). Restoring normal flow here
   removes that nested scroll box (body already clips horizontal overflow
   sitewide, so #content-area's own clip was redundant anyway). */
#content-area{overflow:visible !important}

/* header elevates once scrolled (JS toggles .ipm-scrolled) */
header.ipm-scrolled, .ipm-scrolled header{box-shadow:0 6px 24px -12px rgba(15,61,44,.28)}
header{transition:box-shadow .3s var(--ipm-ease)}

/* ---------- scroll-reveal system (AOS-style, JS adds classes) ---------- */
.ipm-reveal{opacity:0;transform:translateY(22px);
  transition:opacity .6s var(--ipm-ease) var(--ipm-d,0ms),transform .6s var(--ipm-ease) var(--ipm-d,0ms)}
.ipm-reveal.ipm-in{opacity:1;transform:none}

/* ---------- hero entrance + ambient motion ---------- */
@media (prefers-reduced-motion: no-preference){
  /* Entrance is transform-only: content paints at full opacity immediately,
     so the browser records LCP at first paint. An opacity:0 start made
     Lighthouse wait for the animation before counting LCP (12s+ on mobile). */
  .ipm-hero .ipm-hero-kick,.ipm-hero h1,.ipm-hero .ipm-hero-p{animation:ipmUpSolid .7s var(--ipm-ease)}
  .ipm-hero h1{animation-delay:.06s;animation-fill-mode:backwards}
  .ipm-hero .ipm-hero-p{animation-delay:.12s;animation-fill-mode:backwards}
  .ipm-hero .ipm-hero-logo{animation:ipmFloat 7s ease-in-out 1.2s infinite}
  .ipm-hero .ipm-hero-beta{animation:ipmPulse 2.8s ease-in-out 1.4s infinite}
}
@keyframes ipmUpSolid{from{transform:translateY(18px)}to{transform:none}}
@keyframes ipmUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes ipmScaleIn{from{opacity:0;transform:scale(.93) translateY(14px)}to{opacity:1;transform:none}}
@keyframes ipmFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes ipmPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}

/* ---------- gold ornament divider under section headings ---------- */
.ipm-mh .ipm-sec-head h2::after,
.ipm-faq .ipm-faq-phead h2::after,
.ipm-teachers .ipm-eyebrow + h2::after{
  content:"";display:block;width:120px;height:12px;margin:16px auto 0;opacity:.95;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12'%3E%3Cline x1='0' y1='6' x2='44' y2='6' stroke='%23d4a437' stroke-width='1' opacity='.5'/%3E%3Cline x1='76' y1='6' x2='120' y2='6' stroke='%23d4a437' stroke-width='1' opacity='.5'/%3E%3Cpath d='M60 1l1.6 3.4L65 6l-3.4 1.6L60 11l-1.6-3.4L55 6l3.4-1.6z' fill='%23d4a437'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ---------- mihrab arch on scholar portraits ---------- */
.ipm-home-teachers img,
.ipm-tcard img, .ipm-member img, .ipm-teacher img, .ipm-principal-photo img{
  border-radius:48% 48% 14px 14px / 32% 32% 14px 14px !important;
  transition:transform .35s var(--ipm-ease), box-shadow .35s var(--ipm-ease);
}

/* card lift + gold edge on hover (desktop) */
@media (hover:hover){
  .ipm-home-teachers .col-6>div:hover, .ipm-home-teachers [class*="col-"]>div:hover,
  .ipm-tcard:hover, .ipm-member:hover, .ipm-teacher:hover, .ipm-card:hover,
  .ipm-mh-fcard:hover, .ipm-mh-lcard:hover, .ipm-mh-step:hover{
    border-color:var(--ipm-gold) !important;
  }
  .ipm-home-teachers [class*="col-"]>div:hover img,
  .ipm-tcard:hover img, .ipm-member:hover img{transform:scale(1.03)}
}
.ipm-tcard,.ipm-member,.ipm-teacher,.ipm-card{transition:transform .3s var(--ipm-ease),box-shadow .3s var(--ipm-ease),border-color .3s var(--ipm-ease)}
.ipm-home-teachers [class*="col-"]>div{transition:transform .3s var(--ipm-ease),box-shadow .3s var(--ipm-ease),border-color .3s var(--ipm-ease)}

/* ---------- buttons: sheen sweep + press ---------- */
.ipm-hero-btn,.ipm-enroll,.ipm-submit,.ipm-faq-video a,.ipm-btn,.ipm-wa-btn{position:relative;overflow:hidden}
.ipm-hero-btn::before,.ipm-enroll::before,.ipm-submit::before,.ipm-faq-video a::before,.ipm-btn.primary::before{
  content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg);transition:left .65s ease;pointer-events:none;
}
@media (hover:hover){
  .ipm-hero-btn:hover::before,.ipm-enroll:hover::before,.ipm-submit:hover::before,
  .ipm-faq-video a:hover::before,.ipm-btn.primary:hover::before{left:130%}
}

/* ---------- form focus (contact page) ---------- */
.ipm-field input:focus,.ipm-field textarea:focus,.ipm-field select:focus{
  border-color:var(--ipm-green2) !important;
  box-shadow:0 0 0 4px rgba(21,101,63,.12) !important;outline:none;
  transition:border-color .2s,box-shadow .2s;
}

/* ---------- FAQ micro-polish ---------- */
.ipm-faq .ipm-faq-chev{transition:transform .35s var(--ipm-spring),margin .35s var(--ipm-spring)}
.ipm-faq .ipm-faq-qn{transition:background .25s,color .25s}

/* ============================================================
   MOBILE APP FEEL  (<992px)
   ============================================================ */
@media (max-width:991.98px){

  /* native press "squish" on every interactive surface */
  .ipm-hero-btn:active,.ipm-enroll:active,.ipm-submit:active,.ipm-btn:active,
  .ipm-faq-q:active,.ipm-faq-video a:active,.ipm-wa-btn:active,
  .ipm-mh-fcard:active,.ipm-mh-lcard:active,.ipm-mh-step:active,.ipm-mh-qa:active,
  .ipm-tcard:active,.ipm-member:active,.ipm-teacher:active,.ipm-card:active,
  .ipm-home-teachers [class*="col-"]>div:active,
  .ipm-bottnav a:active{transform:scale(.96);transition:transform .12s ease}

  /* overflow guard: theme page-builder rows run ~24px wide on phones.
     IMPORTANT: the theme's own frontend_style.css already sets
     body{overflow-x:hidden} sitewide (unconditional, every page). Adding
     overflow-x to html AS WELL (even mobile-only) breaks the normal
     html/body overflow-propagation exemption and makes body become its OWN
     independent scroll box nested inside the viewport's scroll box — i.e.
     two stacked scrollbars ("bada + chota scroll"). So: don't touch html's
     or body's overflow-x here at all; fix the actual overflowing element. */
  [data-type="container-content"]{max-width:100% !important;min-width:0 !important}

  /* comfy tap targets */
  .ipm-faq-q{min-height:52px}
}

/* ---------- glass bottom tab bar (injected by ipm-app.js) ---------- */
.ipm-bottnav{display:none}
@media (max-width:991.98px){
  .ipm-bottnav{
    position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));
    z-index:99990;display:flex;justify-content:space-around;align-items:stretch;
    background:rgba(13,42,29,.93);
    -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
    border:1px solid rgba(212,164,55,.28);border-radius:22px;padding:8px 6px;
    box-shadow:0 18px 40px -16px rgba(0,0,0,.55);
    animation:ipmNavIn .5s var(--ipm-ease) .15s both;
  }
  .ipm-bottnav a{
    flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
    color:#b9cdc1;text-decoration:none;font-family:Inter,system-ui,sans-serif;
    font-size:10.5px;font-weight:600;letter-spacing:.3px;padding:6px 2px;border-radius:14px;
    transition:color .2s;
  }
  .ipm-bottnav a i{font-size:17px;transition:transform .25s var(--ipm-spring)}
  .ipm-bottnav a.active{color:var(--ipm-gold2)}
  .ipm-bottnav a.active i{transform:translateY(-2px)}
  /* dashboard variant: flat edge-to-edge app tab bar (5 tabs).
     White surface + green active - reads like a native bottom bar,
     clearly different from the public floating pill. */
  .ipm-bottnav-dash{
    left:0;right:0;bottom:0;
    border-radius:0;
    border:0;border-top:1px solid #e8e3d6;
    background:#fff;
    -webkit-backdrop-filter:none;backdrop-filter:none;
    box-shadow:0 -8px 24px -16px rgba(15,61,44,.35);
    padding:7px 2px calc(7px + env(safe-area-inset-bottom));
    animation:none;
  }
  .ipm-bottnav-dash a{
    color:#8a927f;
    font-size:10px;letter-spacing:.1px;
    gap:4px;padding:4px 1px;border-radius:10px;
  }
  .ipm-bottnav-dash a i{font-size:17px}
  .ipm-bottnav-dash a span{white-space:nowrap}
  .ipm-bottnav-dash a.active{color:#0f3d2c;font-weight:700}
  .ipm-bottnav-dash a.active i{color:#15653f;transform:translateY(-1px)}
  body.ipm-has-bottnav{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  body.ipm-dash-nav{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
}
@keyframes ipmNavIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* ---------- accessibility: motion off ---------- */
@media (prefers-reduced-motion: reduce){
  .ipm-reveal,.ipm-hero .ipm-hero-kick,.ipm-hero h1,.ipm-hero .ipm-hero-p,.ipm-hero .ipm-hero-r{
    opacity:1 !important;transform:none !important;animation:none !important;
  }
  .ipm-hero .ipm-hero-logo,.ipm-hero .ipm-hero-beta,.ipm-bottnav{animation:none !important}
  html{scroll-behavior:auto}
}

/* ============================================================
   THEME RESKIN — premium Islamic identity (site-wide)
   Transforms the stock LMS look: dark-green glass header,
   warm paper canvas, gold accents, premium cards & footer.
   ============================================================ */

/* ---------- canvas & typography ---------- */
body{background:#faf7ef}
h1,h2{font-family:"Playfair Display",Georgia,serif !important;letter-spacing:-.3px}
::selection{background:var(--ipm-gold);color:#fff}
/* custom scrollbar: desktop/mouse only — on touch devices this rendered as a
   second, always-on green bar next to the OS's own overlay scrollbar */
@media (min-width:992px) and (hover:hover){
  ::-webkit-scrollbar{width:10px;height:10px}
  ::-webkit-scrollbar-track{background:#efe9da}
  ::-webkit-scrollbar-thumb{background:#15653f;border-radius:8px;border:2px solid #efe9da}
  ::-webkit-scrollbar-thumb:hover{background:#0f3d2c}
}

/* ---------- HEADER: deep-green glass ---------- */
#sticky-header.header_area{
  background:linear-gradient(180deg,#0d3524 0%,#0f3d2c 100%) !important;
  border-bottom:1px solid rgba(212,164,55,.25);
  box-shadow:0 12px 34px -22px rgba(0,0,0,.6);
}
.header_area .logo_img img{filter:brightness(0) invert(1)}
.header_area .main_menu .menu_dropdown>ul>li>a{color:#e7efe9 !important;font-weight:600}
.header_area .main_menu .menu_dropdown>ul>li>a:hover{color:var(--ipm-gold2) !important}
.header_area .main_menu .menu_dropdown>ul>li.active_menu_item>a{color:var(--ipm-gold2) !important}
/* dropdown panels stay light with dark links */
.header_area .menu_dropdown ul ul a,
.header_area .single_menu_dropdown a,
.header_area .single_menu_dropdown h4{color:#14261d !important}
/* search pill */
.header_area .theme_search_field{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:15px;overflow:hidden}
.header_area .theme_search_field .form-control{background:transparent !important;color:#fff !important;border:none !important}
.header_area .theme_search_field .form-control::placeholder{color:#9fb7aa}
.header_area .theme_search_field .btn{background:transparent}
.header_area .theme_search_field svg path{fill:#cfdcd4}
/* icons / toggles on dark bar */
.header_area .translator-switch,.header_area .translator-switch *{color:#e7efe9 !important}
.header_area #mobileSearchToggle,.header_area #mobileSearchToggle *{color:#e7efe9}
.header_area #mobileSearchToggle svg path{fill:#e7efe9}
.header_area .mobile_menu i,.header_area .mobile_menu button{color:#f1f6f2}
.header_area .mobile_menu span{background:#f1f6f2}
/* gold Sign In pill (after global button rules, still wins by specificity) */
.header_area .header__right .theme_btn{
  background:linear-gradient(135deg,var(--ipm-gold2),var(--ipm-gold)) !important;
  color:#20240a !important;border:none !important;border-radius:30px !important;font-weight:700;
}

/* ---------- BUTTONS: pill everywhere ---------- */
.theme_btn{border-radius:30px !important;font-weight:600;transition:transform .2s var(--ipm-ease),box-shadow .2s,background .25s}
.theme_btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(15,61,44,.6)}
.theme_btn_outline{border-radius:30px !important}

/* ---------- COURSE / QUIZ / BLOG CARDS ---------- */
.course-item{border-radius:20px !important;border:1px solid #eadfc6;background:#fff;overflow:hidden;
  box-shadow:0 20px 44px -34px rgba(15,61,44,.45);transition:transform .3s var(--ipm-ease),box-shadow .3s,border-color .3s}
.course-item:hover{transform:translateY(-6px);border-color:var(--ipm-gold);box-shadow:0 26px 54px -30px rgba(15,61,44,.55)}
.course-item-img{border-radius:14px;overflow:hidden}
.course-item-title{font-weight:700}
.course-item-title a{color:#14261d}
.course-item-title a:hover{color:#15653f}
.course-tag{background:rgba(212,164,55,.16) !important;color:#8a6a10 !important;border-radius:20px;font-weight:600}
.blog-single{border-radius:20px !important;border:1px solid #eadfc6;overflow:hidden;
  box-shadow:0 20px 44px -34px rgba(15,61,44,.4);transition:transform .3s var(--ipm-ease),border-color .3s}
.blog-single:hover{transform:translateY(-5px);border-color:var(--ipm-gold)}

/* ---------- APK / mobile-app band: deep green ---------- */
.apk{background:radial-gradient(120% 130% at 18% 20%,#164a33 0%,#0b2c1d 100%) !important;
  border-radius:26px;overflow:hidden}
.apk .apk-content h1,.apk .apk-content h2,.apk .apk-content h3{color:#fff !important}
.apk .apk-content h1 span,.apk .apk-content h2 span,.apk .apk-content h3 span{color:var(--ipm-gold2) !important}
.apk .apk-content p{color:#cfe0d6 !important}

/* ---------- COOKIE BANNER: match the theme ---------- */
.cookie_type{background:#fffdf6 !important;border:1px solid #eadfc6 !important;border-radius:20px !important;
  box-shadow:0 24px 60px -30px rgba(15,61,44,.4) !important}
.cookie_type p,.cookie_type div{color:#3d4c43}
.cookie_btn{background:#15653f !important;color:#fff !important;border-radius:26px !important;border:none !important;font-weight:600}
.cookie_btn.cookeSettingModalBtn{background:transparent !important;color:#15653f !important;border:1.5px solid #15653f !important}

/* ---------- FOOTER: deep green + gold ---------- */
.footer_top_area{background:#0b2c1d !important;border-top:1px solid rgba(212,164,55,.28);position:relative}
.footer_top_area::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.05'%3E%3Cpath d='M36 0l36 36-36 36L0 36z'/%3E%3Ccircle cx='36' cy='36' r='17'/%3E%3C/g%3E%3C/svg%3E")}
.footer_top_area>*{position:relative}
.footer_title{color:var(--ipm-gold2) !important;font-family:"Playfair Display",Georgia,serif !important}
.copyright_area{background:#0b2c1d !important;border-top:1px solid rgba(212,164,55,.28)}
.footer_links a:hover,.footer-legal-links a:hover{color:var(--ipm-gold2) !important}

/* ---------- forms & pagination ---------- */
input.form-control:focus,textarea.form-control:focus,select.form-control:focus{
  border-color:#15653f !important;box-shadow:0 0 0 4px rgba(21,101,63,.1) !important}
.pagination .page-link{color:#15653f;border-radius:10px;margin:0 3px}
.pagination .page-item.active .page-link{background:#15653f !important;border-color:#15653f !important;color:#fff}

/* ---------- mobile header comfort ---------- */
@media (max-width:991.98px){
  #sticky-header.header_area{border-radius:0 0 18px 18px}
}

/* ---------- reskin fixes: specificity + real cookie wrapper ---------- */
#sticky-header.header_area .main_menu .menu_dropdown>ul>li>a{color:#e7efe9 !important}
#sticky-header.header_area .main_menu .menu_dropdown>ul>li>a:hover,
#sticky-header.header_area .main_menu .menu_dropdown>ul>li.active_menu_item>a{color:var(--ipm-gold2) !important}
#sticky-header.header_area .main_menu .menu_dropdown ul ul a{color:#14261d !important}
#sticky-header.header_area .main_menu .menu_dropdown ul ul a:hover{color:#15653f !important}

.theme_cookies{background:#fffdf6 !important;border:1px solid #eadfc6 !important;border-radius:20px !important;
  box-shadow:0 24px 60px -30px rgba(15,61,44,.45) !important}
.theme_cookies p,.theme_cookies .theme_cookies_info p{color:#3d4c43 !important}

/* ---------- reskin fixes r2: the visible top menu is .main_menu ul (not .menu_dropdown) ---------- */
#sticky-header.header_area .main_menu ul li a{color:#e7efe9 !important}
#sticky-header.header_area .main_menu ul li:hover>a,
#sticky-header.header_area .main_menu ul li a.active,
#sticky-header.header_area .main_menu ul li.active_menu_item>a{color:var(--ipm-gold2) !important}
/* dropdown/mega panels keep dark text on white (placed after broad rule so they win the tie) */
#sticky-header.header_area .main_menu ul li .submenu li a{color:#14261d !important}
#sticky-header.header_area .main_menu ul li .submenu li a:hover,
#sticky-header.header_area .main_menu ul li .submenu li a.active{color:#15653f !important}
#sticky-header.header_area .menu_dropdown ul li a{color:#202e3b !important}
#sticky-header.header_area .menu_dropdown ul li a:hover{color:#15653f !important}
#sticky-header.header_area .menu_dropdown_iner .single_menu_dropdown h4{color:#0f3d2c !important}
/* categories toggle + misc header text */
.header_area .categories_menu,.header_area .categories_menu *{color:#e7efe9 !important}

/* ---------- reskin fixes r3: slicknav hamburger on dark header ---------- */
.header_area .mobile_menu span{background:transparent}
.header_area .slicknav_menu,.header_area .slicknav_btn{background:transparent !important}
.header_area .mobile_menu .slicknav_icon-bar{background:#f1f6f2 !important}

/* ============================================================
   HOMEPAGE POLISH v2 — professional pass
   Fixes unstyled .ipm-mh-ic icons + elevates every block card.
   ============================================================ */

/* --- premium icon chips (gold-cream squircle, deep-green glyph) --- */
.ipm-mh .ipm-mh-ic{
  width:58px;height:58px;border-radius:17px;display:inline-flex;align-items:center;justify-content:center;
  font-size:22px;color:#15653f;
  background:linear-gradient(135deg,#faf5e6,#f0e4c8);
  border:1px solid #eadfc6;
  box-shadow:0 10px 22px -14px rgba(15,61,44,.35),inset 0 1px 0 rgba(255,255,255,.85);
}
.ipm-mh .ipm-mh-stage .ipm-mh-ic{width:68px;height:68px;font-size:26px;border-radius:20px}
.ipm-mh .ipm-mh-lcard .ipm-mh-ic{width:54px;height:54px;font-size:20px}

/* --- feature & learn cards: gold top-accent sweep on hover --- */
.ipm-mh .ipm-mh-fcard,.ipm-mh .ipm-mh-lcard{position:relative;overflow:hidden;border-radius:18px !important}
.ipm-mh .ipm-mh-fcard::after,.ipm-mh .ipm-mh-lcard::after{
  content:"";position:absolute;left:0;top:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--ipm-gold),var(--ipm-gold2),var(--ipm-gold));
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ipm-ease);
}
.ipm-mh .ipm-mh-fcard:hover::after,.ipm-mh .ipm-mh-lcard:hover::after{transform:scaleX(1)}
.ipm-mh .ipm-mh-fcard{box-shadow:0 16px 34px -26px rgba(15,61,44,.4) !important;padding:26px 24px !important}
.ipm-mh .ipm-mh-fcard h4{font-size:18.5px;margin-top:18px !important}
.ipm-mh .ipm-mh-fcard p{font-size:14.5px !important;line-height:1.65}
.ipm-mh .ipm-mh-lcard{padding:28px 20px !important}

/* --- curriculum stage cards: green crest line + depth --- */
.ipm-mh .ipm-mh-stage{border-radius:20px !important;padding:36px 24px 30px !important;
  box-shadow:0 22px 44px -30px rgba(15,61,44,.5) !important;position:relative;overflow:hidden}
.ipm-mh .ipm-mh-stage::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,#0f3d2c,#15653f,#0f3d2c)}
.ipm-mh .ipm-mh-stage h4{font-size:24px;margin-top:18px !important}

/* --- ornament under the dark "why" band heading (matches other sections) --- */
.ipm-mh .ipm-why h2::after{
  content:"";display:block;width:120px;height:12px;margin:16px auto 0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12'%3E%3Cline x1='0' y1='6' x2='44' y2='6' stroke='%23d4a437' stroke-width='1' opacity='.6'/%3E%3Cline x1='76' y1='6' x2='120' y2='6' stroke='%23d4a437' stroke-width='1' opacity='.6'/%3E%3Cpath d='M60 1l1.6 3.4L65 6l-3.4 1.6L60 11l-1.6-3.4L55 6l3.4-1.6z' fill='%23d4a437'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* --- big benefit cards (Recognition / Fast Track) --- */
.ipm-mh .ipm-bigcard{border-radius:24px !important;box-shadow:0 28px 56px -36px rgba(0,0,0,.55)}

/* --- "kya yeh aap ke liye" ticks in gold coins --- */
.ipm-mh .ipm-you-list li i{
  width:27px;height:27px;flex:0 0 27px;background:rgba(212,164,55,.2);border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;margin-top:0 !important;
}

/* --- QA cards: gradient question coin --- */
.ipm-mh .ipm-mh-q i{background:linear-gradient(135deg,#15653f,#0f3d2c) !important}

/* --- step numbers: gold glow --- */
.ipm-mh .ipm-mh-num{box-shadow:0 12px 24px -10px rgba(212,164,55,.75)}
.ipm-mh .ipm-mh-step{border-radius:18px !important}

/* --- teachers grid: gold halo around arch portraits, softer cards --- */
.ipm-home-teachers img{box-shadow:0 0 0 5px rgba(212,164,55,.16),0 16px 30px -20px rgba(15,61,44,.5) !important}
.ipm-home-teachers [class*="col-"]>div{border-radius:18px !important;
  box-shadow:0 18px 38px -30px rgba(15,61,44,.45) !important;padding:16px 14px 18px !important}
.ipm-home-teachers p{letter-spacing:.2px}

/* --- FAQ: softer container radius --- */
.ipm-faq .ipm-faq-item{border-radius:16px !important}
.ipm-faq .ipm-faq-lang{box-shadow:0 12px 26px -20px rgba(15,61,44,.4)}

/* --- kick pills: tighter craft --- */
.ipm-mh .ipm-kick,.ipm-faq .ipm-kick{letter-spacing:2.5px;font-size:11.5px}

/* --- trust band buttons breathing room --- */
.ipm-mh .ipm-btns{gap:18px}

/* --- FA5 fallback: fa-house-user is FA6-only, map to fa-home glyph --- */
.fa-house-user::before{content:"\f015"}

/* ============================================================
   CRAFT PASS v3 — iPlus logo, scalloped dividers, icon pop
   ============================================================ */

/* --- header: natural-colour iPlus Madrasah logo (kills earlier white filter) --- */
.header_area .logo_img img{filter:none !important;height:54px;width:auto !important;padding:2px !important}
@media (max-width:575.98px){ .header_area .logo_img img{height:46px} }

/* --- footer logo: crisp on deep green --- */
.footer_logo img{width:96px !important;filter:drop-shadow(0 6px 16px rgba(0,0,0,.35))}

/* --- scalloped arch dividers where dark bands meet cream (Islamic craft) --- */
.ipm-mh .ipm-why,.ipm-mh .ipm-you,.ipm-mh .ipm-trust{position:relative}
.ipm-mh .ipm-why{border-top:1px solid rgba(212,164,55,.18)}
.ipm-mh .ipm-why::after,.ipm-mh .ipm-you::after,.ipm-mh .ipm-trust::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:16px;pointer-events:none;
  background-image:radial-gradient(circle at 50% 100%,#faf7ef 9px,transparent 10px);
  background-size:32px 16px;background-repeat:repeat-x;background-position:center bottom;
}
.ipm-mh .ipm-you::before,.ipm-mh .ipm-trust::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:16px;pointer-events:none;
  background-image:radial-gradient(circle at 50% 0,#faf7ef 9px,transparent 10px);
  background-size:32px 16px;background-repeat:repeat-x;background-position:center top;
}

/* --- icon chips pop in with a spring after their card reveals --- */
@media (prefers-reduced-motion: no-preference){
  .ipm-reveal .ipm-mh-ic{transform:scale(.55);opacity:0;
    transition:transform .55s var(--ipm-spring) calc(var(--ipm-d,0ms) + 160ms),opacity .3s ease calc(var(--ipm-d,0ms) + 140ms)}
  .ipm-reveal.ipm-in .ipm-mh-ic{transform:scale(1);opacity:1}
}

/* --- theme section headings (Hamare Asaatizah, Articles & News...) --- */
.section-title h2{letter-spacing:-.3px}
.section-title p{color:#5a6a60}

/* --- copyright line refinement --- */
.copyright_text p{letter-spacing:.2px}

/* ============================================================
   CRAFT PASS v4 — Marcellus display type, textures, refinements
   ============================================================ */

/* --- display type: Marcellus (carved, monumental, Islamic-classic) --- */
h1,h2{font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important;letter-spacing:.4px}
.ipm-mh h2,.ipm-mh h3,.ipm-faq h2,.ipm-mh .ipm-mh-stage h4{font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important;letter-spacing:.4px}
.ipm-mh .ipm-sec-head h2{font-size:clamp(30px,4.4vw,46px) !important}
.ipm-mh .ipm-why h2{font-size:clamp(30px,4.6vw,48px) !important}
.ipm-faq .ipm-faq-phead h2{font-size:clamp(28px,4vw,42px) !important}
.section-title h2{font-size:clamp(28px,3.6vw,40px)}

/* --- hide header search (temporary, re-enable by deleting this rule) --- */
.header_area .category_search,.header_area .mobile-search,
.header_area .mobile-search-box-toggler,#mobileSearchToggle{display:none !important}

/* --- textures: fine gold star lattice breathing through every section --- */
body{background:#faf7ef url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23b98a17' stroke-opacity='0.05'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E")}
.ipm-mh .ipm-feat,.ipm-mh .ipm-steps{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23b98a17' stroke-opacity='0.07'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E") #f5efdf !important}
.ipm-faq{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23b98a17' stroke-opacity='0.07'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E") #f6f1e5 !important}
.ipm-mh .ipm-you{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.10'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E"),linear-gradient(135deg,#0e3626,#124a33) !important}
.ipm-mh .ipm-trust{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.10'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(circle at 85% 15%,#17472f,#0b2c1d) !important}
.apk{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.10'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(120% 130% at 18% 20%,#164a33 0%,#0b2c1d 100%) !important}

/* --- remove the thick gold left-borders on Q&A cards (cleaner) --- */
.ipm-mh .ipm-mh-qa{border-left:1px solid #e9e0cc !important;border-radius:14px !important}
.lg-section{border-left:none !important}

/* --- APK section: launching soon (hide store badges until launch) --- */
.apk .apk-content > .d-flex{display:none !important}

/* --- FAQ launch-video button: proper play chip --- */
.ipm-faq .ipm-faq-video a{background:linear-gradient(135deg,#15653f,#0f3d2c) !important;
  padding:15px 34px !important;font-size:15.5px !important;border-radius:40px !important;
  box-shadow:0 16px 34px -16px rgba(15,61,44,.65)}
.ipm-faq .ipm-faq-play{font-size:0 !important;width:34px !important;height:34px !important;flex:0 0 34px;
  background:#fff !important;color:#15653f !important;border-radius:50% !important;
  display:inline-flex !important;align-items:center !important;justify-content:center !important}
.ipm-faq .ipm-faq-play::before{content:"\f04b";font-family:"Font Awesome 6 Free","Font Awesome 5 Free";
  font-weight:900;font-size:12px;color:#15653f;line-height:1;margin-left:2px}

/* --- newsletter band: stop the reward card overlapping it --- */
.reward{margin-bottom:36px !important}
.footer_top_area .footer__cta{margin-top:0 !important;padding:48px 0 !important;position:relative;z-index:2}
.footer__cta .thumb{display:none !important}
.footer__cta .info h1,.footer__cta .info h2,.footer__cta .info h3,.footer__cta .info h4{color:#fff !important}
.footer__cta .subcribe-form .form-control{border-radius:14px 0 0 14px !important}
.footer__cta .subcribe-form button,.footer__cta .subcribe-form .theme_btn{border-radius:0 14px 14px 0 !important}

/* ============================================================
   CURRICULUM JOURNEY v5 — 8-saala nisab (marhala ba marhala)
   Premium connected-milestone timeline. Overrides earlier stage rules.
   ============================================================ */
.ipm-mh .ipm-stages{display:flex !important;flex-wrap:nowrap;align-items:stretch;justify-content:center;gap:0 !important;margin-top:30px !important}
.ipm-mh .ipm-mh-stage{position:relative;flex:1 1 0;max-width:310px;min-width:0;
  background:linear-gradient(180deg,#ffffff,#fcfaf2) !important;
  border:1px solid #ece0c6 !important;border-radius:22px !important;
  padding:28px 24px 26px !important;text-align:center;overflow:visible !important;
  box-shadow:0 26px 52px -34px rgba(15,61,44,.55) !important;
  transition:transform .35s var(--ipm-ease),box-shadow .35s var(--ipm-ease),border-color .35s var(--ipm-ease)}
.ipm-mh .ipm-mh-stage::before{display:none !important}
@media (hover:hover){ .ipm-mh .ipm-mh-stage:hover{transform:translateY(-8px);border-color:var(--ipm-gold) !important;box-shadow:0 36px 62px -30px rgba(15,61,44,.55) !important} }
/* marhala badge */
.ipm-mh .ipm-stage-badge{display:inline-flex;align-items:center;gap:6px;
  font-size:10.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#b98a17;
  background:rgba(212,164,55,.12);border:1px solid rgba(212,164,55,.32);
  padding:5px 15px;border-radius:30px;margin-bottom:18px}
/* mihrab-arch icon medallion (matches hero) */
.ipm-mh .ipm-mh-stage .ipm-mh-ic{width:76px !important;height:82px !important;font-size:29px !important;
  border-radius:50% 50% 16px 16px / 46% 46% 16px 16px !important;
  background:linear-gradient(162deg,#fbf4e0,#efdcb4) !important;color:#0f3d2c !important;
  border:1px solid #e7d3a4 !important;position:relative;
  box-shadow:0 16px 28px -14px rgba(15,61,44,.5),inset 0 1px 0 rgba(255,255,255,.9) !important}
.ipm-mh .ipm-mh-stage .ipm-mh-ic::after{content:"";position:absolute;inset:7px;border-radius:44% 44% 12px 12px / 40% 40% 12px 12px;border:1px dashed rgba(15,61,44,.18)}
.ipm-mh .ipm-mh-stage h4{font-size:23px !important;margin:18px 0 2px !important;color:#0f3d2c}
.ipm-mh .ipm-stage-cap{display:block;font-size:11.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--ipm-gold);margin-bottom:12px}
.ipm-mh .ipm-stage-desc{font-size:13.5px;line-height:1.6;color:#5f6f65;margin:0 auto 20px;max-width:230px}
/* duration ribbon */
.ipm-mh .ipm-mh-stage .ipm-mh-dur{display:inline-flex !important;align-items:center;gap:7px;
  background:linear-gradient(135deg,#15653f,#0f3d2c) !important;color:#fff !important;
  font-weight:600;font-size:13.5px;padding:9px 22px !important;border-radius:30px !important;
  box-shadow:0 12px 22px -10px rgba(15,61,44,.6)}
.ipm-mh .ipm-mh-stage .ipm-mh-dur i{color:var(--ipm-gold2);font-size:12px}
/* connectors between stages */
.ipm-mh .ipm-stage-link{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:0 10px;align-self:center}
.ipm-mh .ipm-stage-line{width:30px;height:2px;background:repeating-linear-gradient(90deg,var(--ipm-gold) 0 5px,transparent 5px 11px);opacity:.7}
.ipm-mh .ipm-stage-arrow{width:30px;height:30px;flex:0 0 30px;border-radius:50%;margin-left:-1px;
  background:#fff;border:1.5px solid rgba(212,164,55,.55);color:var(--ipm-green2);
  display:flex;align-items:center;justify-content:center;font-size:11px;
  box-shadow:0 8px 16px -8px rgba(15,61,44,.4)}
/* final (summit) card */
.ipm-mh .ipm-mh-stage.ipm-stage-last{border-color:rgba(212,164,55,.6) !important;
  background:linear-gradient(180deg,#fffdf5,#faf2dc) !important;
  box-shadow:0 30px 56px -32px rgba(184,135,31,.55) !important}
.ipm-mh .ipm-mh-stage.ipm-stage-last .ipm-stage-badge{background:linear-gradient(135deg,var(--ipm-gold2),var(--ipm-gold));color:#241a02;border-color:transparent}
/* summary stat banner */
.ipm-mh .ipm-stage-sum{display:flex;align-items:center;width:fit-content;margin:40px auto 0;
  background:linear-gradient(180deg,#ffffff,#fbf7ec);border:1px solid #ece0c6;border-radius:20px;
  padding:16px 8px;box-shadow:0 24px 46px -32px rgba(15,61,44,.5)}
.ipm-mh .ipm-stage-stat{padding:2px 30px;text-align:center;line-height:1.1}
.ipm-mh .ipm-stage-stat b{display:block;font-family:'Marcellus',Georgia,serif;font-size:28px;color:#0f3d2c;letter-spacing:.3px}
.ipm-mh .ipm-stage-stat span{font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:#93a399;font-weight:600}
.ipm-mh .ipm-stage-sep{width:1px;height:38px;background:linear-gradient(180deg,transparent,#e2d6bb,transparent)}
@media(max-width:991px){
  .ipm-mh .ipm-stages{flex-direction:column !important;align-items:center;gap:0 !important;margin-top:22px !important}
  .ipm-mh .ipm-mh-stage{width:100%;max-width:360px;flex:0 0 auto}
  .ipm-mh .ipm-stage-link{flex-direction:column;padding:8px 0}
  .ipm-mh .ipm-stage-line{width:2px;height:16px;background:repeating-linear-gradient(180deg,var(--ipm-gold) 0 5px,transparent 5px 11px)}
  .ipm-mh .ipm-stage-arrow{transform:rotate(90deg);margin:-1px 0 0}
}
@media(max-width:479px){
  .ipm-mh .ipm-stage-sum{width:100%;max-width:340px;justify-content:space-around}
  .ipm-mh .ipm-stage-stat{padding:2px 8px}
  .ipm-mh .ipm-stage-stat b{font-size:24px}
}

/* ============================================================
   CRAFT PASS v6 — navbar logo align, hero ultra-premium extras,
   unified mihrab-arch icon medallions, centered cards, app-style
   horizontal snap-scroll on mobile.
   ============================================================ */

/* ---------- NAVBAR: logo perfectly centred, no dead space ---------- */
.header_area .header__wrapper{align-items:center !important}
.header_area .header__left{align-items:center !important}
.header_area .logo_img{display:flex !important;align-items:center !important;line-height:0}
.header_area .logo_img img{display:block !important;height:58px !important;width:auto !important;padding:0 !important;margin:0 !important}
@media (max-width:575.98px){ .header_area .logo_img img{height:46px !important} }

/* (corner ornaments removed per feedback) */

/* ---------- HERO: arcade arch divider along the bottom edge (home hero ONLY —
   scoping to a bare .ipm-hero leaked onto teachers/shura/contact's own hero
   bands and rendered as a stray horizontal line there) ---------- */
#ipm-hero-root.ipm-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;pointer-events:none;opacity:.35;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='14'%3E%3Cpath d='M2 14Q18 -6 34 14' fill='none' stroke='%23d4a437' stroke-width='1.4'/%3E%3C/svg%3E") repeat-x bottom}

/* ---------- HERO: living gold shimmer on the accent line ---------- */
@media (prefers-reduced-motion: no-preference){
  .ipm-hero h1 .g{background-size:220% 100% !important;animation:ipmGoldShine 7s ease-in-out infinite}
}
@keyframes ipmGoldShine{0%,100%{background-position:0% 0}50%{background-position:100% 0}}
/* soft outer halo ring around the logo orbit */
.ipm-hero .ipm-hero-ring{box-shadow:0 0 0 26px rgba(212,164,55,.05)}

/* ---------- UNIFIED mihrab-arch icon medallions (features + learn) ---------- */
.ipm-mh .ipm-mh-ic{width:64px !important;height:70px !important;font-size:25px !important;
  border-radius:50% 50% 15px 15px / 45% 45% 13px 13px !important;
  background:linear-gradient(162deg,#fbf4e0,#efdcb4) !important;color:#0f3d2c !important;
  border:1px solid #e7d3a4 !important;position:relative;
  box-shadow:0 14px 26px -14px rgba(15,61,44,.45),inset 0 1px 0 rgba(255,255,255,.9) !important}
.ipm-mh .ipm-mh-ic::after{content:"";position:absolute;inset:6px;
  border-radius:44% 44% 11px 11px / 40% 40% 10px 10px;border:1px dashed rgba(15,61,44,.16)}
/* stages keep their larger medallion */
.ipm-mh .ipm-mh-stage .ipm-mh-ic{width:76px !important;height:82px !important;font-size:29px !important}
/* marhala badge centred above its medallion */
.ipm-mh .ipm-stage-badge{display:table;margin:0 auto 16px}

/* ---------- FEATURE CARDS: centred, taller, calmer ---------- */
.ipm-mh .ipm-mh-fcard{text-align:center;padding:30px 22px 26px !important;border-radius:20px !important;
  transition:transform .3s var(--ipm-ease),box-shadow .3s var(--ipm-ease),border-color .3s var(--ipm-ease)}
.ipm-mh .ipm-mh-fcard h4{font-size:19px;margin-top:16px !important}
.ipm-mh .ipm-mh-fcard p{max-width:270px;margin-left:auto !important;margin-right:auto !important}
.ipm-mh .ipm-mh-lcard{border-radius:20px !important;transition:transform .3s var(--ipm-ease),box-shadow .3s var(--ipm-ease),border-color .3s var(--ipm-ease)}
@media (hover:hover){
  .ipm-mh .ipm-mh-fcard:hover,.ipm-mh .ipm-mh-lcard:hover{transform:translateY(-6px);box-shadow:0 26px 48px -28px rgba(15,61,44,.5) !important}
}

/* ---------- STEP CARDS: gold coin numbers + lift ---------- */
.ipm-mh .ipm-mh-step{border-radius:20px !important;border:1px solid #ece0c6 !important;padding:32px 22px 28px !important;
  transition:transform .3s var(--ipm-ease),box-shadow .3s var(--ipm-ease),border-color .3s var(--ipm-ease)}
.ipm-mh .ipm-mh-num{width:52px !important;height:52px !important;font-size:20px !important;
  background:linear-gradient(135deg,var(--ipm-gold2),#c3921f) !important;color:#241a02 !important;
  box-shadow:0 12px 24px -10px rgba(184,135,31,.65),inset 0 1px 0 rgba(255,255,255,.6) !important;
  outline:4px solid rgba(212,164,55,.16);outline-offset:4px}
.ipm-mh .ipm-mh-step h4{font-size:18.5px;margin-top:20px !important}
@media (hover:hover){
  .ipm-mh .ipm-mh-step:hover{transform:translateY(-6px);border-color:var(--ipm-gold) !important;box-shadow:0 26px 48px -28px rgba(15,61,44,.5) !important}
}

/* ---------- MOBILE: plain stacked cards (removed) ----------
   A horizontal scroll-snap-type:x deck was here for an "app carousel" feel,
   but nested horizontal snap containers intercept vertical swipes on real
   touch devices — the page-scroll would stall on the first swipe and only
   continue on a second try. Reverted to normal stacking; smooth vertical
   scroll takes priority over the carousel look. */
@media (max-width:767.98px){
  .ipm-mh .ipm-grid,.ipm-mh .ipm-learn-grid,.ipm-mh .ipm-steps-grid{grid-template-columns:1fr !important}
}

/* ============================================================
   CRAFT PASS v7 — you-grid cards, chat-style Q&A, animated steps,
   matched section-bar fonts, premium newsletter.
   ============================================================ */

/* hero: no scroll cue (element removed; guard for cached markup) */
.ipm-hero .ipm-hero-scroll{display:none !important}

/* ---------- section title bars (Top Online Courses / Articles & News) ---------- */
.section-subtitle h3{font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important;letter-spacing:.5px;font-size:26px !important}

/* ---------- "Kya Yeh Aap Ke Liye Hai?" — scenario cards grid ---------- */
.ipm-mh .ipm-you-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.ipm-mh .ipm-you-card{position:relative;background:rgba(255,255,255,.055);border:1px solid rgba(212,164,55,.28);
  border-radius:18px;padding:24px 22px 22px;display:flex;flex-direction:column;gap:14px;text-align:left;
  transition:transform .3s var(--ipm-ease),border-color .3s,background .3s}
@media (hover:hover){ .ipm-mh .ipm-you-card:hover{transform:translateY(-5px);border-color:rgba(244,210,63,.7);background:rgba(255,255,255,.09)} }
.ipm-mh .ipm-you-ic{width:46px;height:46px;flex:0 0 auto;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;
  font-size:18px;background:rgba(212,164,55,.16);color:var(--ipm-gold2);border:1px solid rgba(212,164,55,.32)}
.ipm-mh .ipm-you-card p{margin:0;color:#dfe9e1;font-size:15px;line-height:1.6;flex:1}
.ipm-mh .ipm-you-tick{position:absolute;top:20px;right:20px;color:rgba(244,210,63,.75);font-size:16px}
/* gold conclusion card */
.ipm-mh .ipm-you-final{background:linear-gradient(135deg,var(--ipm-gold2),#c99a24) !important;border-color:transparent !important}
.ipm-mh .ipm-you-final p{color:#241a02;font-weight:700;font-size:16.5px}
.ipm-mh .ipm-you-ic.f{background:rgba(0,0,0,.15);color:#241a02;border-color:rgba(0,0,0,.12)}
.ipm-mh .ipm-you-go{display:inline-flex;align-items:center;gap:8px;background:#0f3d2c;color:#fff;font-weight:700;font-size:14px;
  padding:11px 22px;border-radius:26px;text-decoration:none;width:fit-content;transition:transform .2s,box-shadow .2s}
.ipm-mh .ipm-you-go:hover{transform:translateY(-2px);color:#fff;box-shadow:0 12px 24px -12px rgba(0,0,0,.6)}
@media (max-width:991.98px){ .ipm-mh .ipm-you-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:639.98px){ .ipm-mh .ipm-you-grid{grid-template-columns:1fr} }

/* ---------- "Agar Aap Soch Rahe Hain..." — chat-style exchanges ---------- */
.ipm-mh .ipm-mh-qa{background:#fff !important;border:1px solid #ece0c6 !important;border-radius:18px !important;
  padding:18px !important;display:flex;flex-direction:column;gap:12px}
.ipm-mh .ipm-qa-row{display:flex;align-items:flex-end;gap:10px}
.ipm-mh .ipm-qa-row p{margin:0 !important;font-size:14.5px;line-height:1.55;padding:12px 16px;max-width:82%}
.ipm-mh .ipm-qa-row.u{justify-content:flex-end}
.ipm-mh .ipm-qa-row.u p{background:#f6f1e5;color:#4a4433;border-radius:16px 16px 4px 16px;font-weight:600;font-style:italic}
.ipm-mh .ipm-qa-row.m p{background:linear-gradient(135deg,#15653f,#0f3d2c);color:#eef5ef;border-radius:16px 16px 16px 4px}
.ipm-mh .ipm-qa-av{width:32px;height:32px;flex:0 0 32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:13px;background:#efe7d4;color:#7c6a3f}
.ipm-mh .ipm-qa-av.g{background:linear-gradient(135deg,var(--ipm-gold2),#c3921f);color:#241a02}

/* ---------- 4 Steps — living stepper ---------- */
.ipm-mh .ipm-steps-grid{position:relative}
.ipm-mh .ipm-mh-step{position:relative;overflow:visible !important}
/* flowing dotted connector between cards */
.ipm-mh .ipm-mh-step:not(:last-child)::after{content:"";position:absolute;top:56px;right:-23px;width:24px;height:2px;
  background:repeating-linear-gradient(90deg,var(--ipm-gold) 0 6px,transparent 6px 12px)}
@media (prefers-reduced-motion: no-preference){
  .ipm-mh .ipm-mh-step:not(:last-child)::after{animation:ipmFlow 1.1s linear infinite}
}
@keyframes ipmFlow{to{background-position:12px 0}}
/* radar ping around the number coins (staggered) */
.ipm-mh .ipm-mh-num{position:relative}
.ipm-mh .ipm-mh-num::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid rgba(212,164,55,.55);opacity:0}
@media (prefers-reduced-motion: no-preference){
  .ipm-mh .ipm-mh-num::after{animation:ipmPing 3.2s ease-out infinite}
  .ipm-mh .ipm-mh-step:nth-child(2) .ipm-mh-num::after{animation-delay:.5s}
  .ipm-mh .ipm-mh-step:nth-child(3) .ipm-mh-num::after{animation-delay:1s}
  .ipm-mh .ipm-mh-step:nth-child(4) .ipm-mh-num::after{animation-delay:1.5s}
}
@keyframes ipmPing{0%{transform:scale(.85);opacity:.8}60%{transform:scale(1.6);opacity:0}100%{opacity:0}}
@media (max-width:767.98px){ .ipm-mh .ipm-mh-step:not(:last-child)::after{display:none} }

/* ---------- newsletter: one premium glass card ---------- */
.footer_top_area>.container>.row{align-items:center;margin:0;
  background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  border:1px solid rgba(212,164,55,.32);border-radius:24px;padding:28px 26px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 26px 50px -34px rgba(0,0,0,.7)}
.footer_top_area .footer__cta{padding:6px 0 !important;margin:0 !important}
.footer__cta .cta_content h3{font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important;color:#fff !important;font-size:27px !important;letter-spacing:.4px}
.footer__cta .cta_content h3::before{content:"\f0e0";font-family:"Font Awesome 6 Free","Font Awesome 5 Free";font-weight:900;
  color:var(--ipm-gold2);margin-right:12px;font-size:20px;vertical-align:1px}
.footer__cta .cta_content p{color:#b9cdc1 !important;margin-top:6px}
.footer_top_area .subcribe-form .form-control{height:56px;border-radius:16px 0 0 16px !important;
  border:1px solid rgba(212,164,55,.4) !important;border-right:none !important;background:#fffdf6 !important;padding-left:20px;font-size:15px}
.footer_top_area .subcribe-form button,.footer_top_area .subcribe-form .theme_btn{height:56px;
  border-radius:0 16px 16px 0 !important;background:linear-gradient(135deg,var(--ipm-gold2),#c3921f) !important;
  color:#241a02 !important;font-weight:700 !important;border:none !important;padding:0 30px !important}
@media (max-width:767.98px){
  .footer_top_area>.container>.row{padding:22px 16px}
}

/* ============================================================
   CRAFT PASS v8 — breadcrumbs, inner-page heroes, mobile fixes,
   login page, dedups.
   ============================================================ */

/* ---------- breadcrumb banners (Courses/Classes/Quiz/Blogs): theme green ---------- */
.breadcrumb_area{background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.08'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E"),
  radial-gradient(130% 120% at 18% 25%,#175035 0%,#0c3020 48%,#06190f 100%) !important;
  border-bottom:1px solid rgba(212,164,55,.25)}
.breadcam_wrap h3{font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important;letter-spacing:.5px;color:#f4f8f4 !important}
.breadcam_wrap p{color:#cdb46a !important;font-weight:600;letter-spacing:.6px}

/* ---------- app store buttons hidden site-wide (app launching soon) ---------- */
.ipm-store{display:none !important}

/* ---------- inner-page heroes (teachers/shura/contact/about): match home ---------- */
.ipm-teach .ipm-hero,.ipm-shura .ipm-hero,.ipm-contact .ipm-hero,.ipm-about .ipm-hero{
  background:
   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.07'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E"),
   radial-gradient(85% 120% at 84% 20%,rgba(212,164,55,.15) 0%,transparent 45%),
   radial-gradient(130% 120% at 18% 25%,#175035 0%,#0c3020 48%,#06190f 100%) !important;
  border-bottom:1px solid rgba(212,164,55,.2)}
.ipm-teach .ipm-hero h1,.ipm-shura .ipm-hero h1,.ipm-about .ipm-hero h1,.ipm-contact .ipm-hero-title{
  font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important;letter-spacing:.5px}
/* eyebrows -> gold kick pills (like home) */
.ipm-eyebrow{display:inline-block !important;letter-spacing:2.5px !important;font-size:11.5px !important;font-weight:700 !important;
  text-transform:uppercase;color:var(--ipm-gold) !important;background:rgba(212,164,55,.14);
  padding:7px 16px;border-radius:30px;margin-bottom:14px}
/* trust/CTA bands on inner pages -> home-trust style */
.ipm-cta{background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.10'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E"),
  radial-gradient(circle at 85% 15%,#17472f,#0b2c1d) !important;
  border:1px solid rgba(212,164,55,.28) !important;border-radius:26px !important}
.ipm-cta h3{font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important}
/* "Every Teacher Works Under Scholarly Supervision" — proper solid, textured band
   (previous glass override was near-invisible on the page's cream background) */
.ipm-superv{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.09'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(120% 160% at 12% 0%,#175035 0%,#0e3626 55%,#0b2c1d 100%) !important;
  border:1px solid rgba(212,164,55,.3) !important;border-radius:20px !important;
  box-shadow:0 26px 50px -32px rgba(15,61,44,.55) !important;
  position:relative;overflow:hidden}
.ipm-superv::before{
  content:"\f3ed";font-family:"Font Awesome 6 Free","Font Awesome 5 Free";font-weight:900;
  flex:0 0 52px;width:52px;height:52px;border-radius:14px;font-size:20px;
  background:linear-gradient(135deg,var(--ipm-gold2),#c3921f);color:#241a02;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 22px -10px rgba(184,135,31,.6),inset 0 1px 0 rgba(255,255,255,.55)}
.ipm-superv > div{flex:1;min-width:260px}
.ipm-superv h4{font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important;font-size:22px !important}
.ipm-superv a{
  display:inline-flex !important;align-items:center;gap:8px;flex:0 0 auto;
  background:rgba(255,255,255,.08);border:1px solid rgba(212,164,55,.45);
  padding:11px 22px;border-radius:30px;white-space:nowrap;
  transition:background .2s,border-color .2s,transform .2s}
.ipm-superv a:hover{background:rgba(212,164,55,.16);border-color:var(--ipm-gold2);transform:translateY(-2px);text-decoration:none !important}
@media (max-width:575.98px){ .ipm-superv > div{min-width:0} }

/* ---------- contact: single centred form (reach column removed) ---------- */
.ipm-contact .ipm-main{grid-template-columns:1fr !important;max-width:820px;margin-left:auto !important;margin-right:auto !important}

/* ---------- MOBILE: header break fix ---------- */
@media (max-width:991.98px){
  #sticky-header.header_area{border-radius:0 !important}
  /* overflow-x is intentionally NOT touched here — the theme's own
     frontend_style.css already guards it on body; see the note above the
     other mobile block for why doubling up on html breaks vertical scroll. */
}

/* ---------- MOBILE: smooth scroll (disable heavy paint work) ---------- */
@media (max-width:991.98px){
  .ipm-hero .ipm-hero-tex{animation:none !important}
  .ipm-hero .ipm-hero-beam{display:none !important}
  .ipm-hero .ipm-tw{display:none !important}
  .ipm-hero .ipm-hero-logowrap::after{animation:none !important;filter:none !important;opacity:.3}
  .ipm-hero .ipm-hero-ring{animation:none !important}
  .ipm-hero h1 .g{animation:none !important}
  .footer_top_area .footer__cta,.ipm-bottnav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
}

/* ---------- LOGIN / REGISTER: Islamic panel ---------- */
.login_wrapper_right{background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.08'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3C/g%3E%3C/svg%3E"),
  radial-gradient(130% 120% at 20% 25%,#175035 0%,#0c3020 50%,#06190f 100%) !important}
.login_wrapper_right h4,.login_wrapper_right h3{color:#f4f8f4 !important;font-family:'Marcellus',Georgia,serif !important;font-weight:400 !important}
.login_wrapper_right p,.login_wrapper_right li,.login_wrapper_right span{color:#c2d4c8 !important}
.login_wrapper_right img{max-width:300px !important;width:64% !important;height:auto;
  filter:drop-shadow(0 24px 46px rgba(0,0,0,.5)) drop-shadow(0 0 30px rgba(233,214,120,.18))}
@media (prefers-reduced-motion: no-preference){
  .login_wrapper_right img{animation:ipmFloat2 8s ease-in-out infinite}
}
.login_wrapper_left{background:#faf7ef url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23b98a17' stroke-opacity='0.05'%3E%3Cpath d='M48 8l11 29 29 11-29 11-11 29-11-29-29-11 29-11z'/%3E%3C/g%3E%3C/svg%3E") !important}


/* ── Sidebar: highlight the program entry ─────────────────────────────
   The multi-year program is the primary offering, so its menu row reads as
   a promoted item rather than one link among many. */
.ipm-nav-program{margin:6px 0 10px}.ipm-nav-program>a{position:relative;background:linear-gradient(135deg,#0f3d2c 0%,#15653f 100%)!important;border-radius:12px!important;margin:0 12px!important;padding:12px 14px!important;box-shadow:0 5px 16px rgba(15,61,44,.22)}.ipm-nav-program>a span{color:#fff!important;font-weight:700!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ipm-nav-program>a .menu_icon,.ipm-nav-program>a .menu_icon svg{color:#d4a437!important}.ipm-nav-program>a:before{content:"";position:absolute;inset:0;border-radius:12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M30 4l7 15 15 7-15 7-7 15-7-15-15-7 15-7z' fill='none' stroke='%23d4a437' stroke-width='1' opacity='.16'/%3E%3C/svg%3E");pointer-events:none}.ipm-nav-program>a:hover{filter:brightness(1.08)}.ipm-nav-program>a.active{box-shadow:0 0 0 2px #d4a437,0 5px 16px rgba(15,61,44,.3)}
/* Sidebar: not-yet-joined program - own two-row block (title row, then a
   full-width "Enroll Now" button) so the CTA never has to squeeze onto the
   same line as the title and wrap awkwardly. Deliberately self-contained -
   does not reuse .ipm-nav-program's rules, which assume a single text row. */
.ipm-nav-promo{margin:6px 0 10px}
.ipm-nav-promo__link{position:relative;display:block;overflow:hidden;background:linear-gradient(135deg,#0f3d2c 0%,#15653f 100%)!important;border-radius:12px!important;margin:0 12px!important;padding:12px 12px 10px!important;box-shadow:0 5px 16px rgba(15,61,44,.22);text-decoration:none!important}
.ipm-nav-promo__link:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M30 4l7 15 15 7-15 7-7 15-7-15-15-7 15-7z' fill='none' stroke='%23d4a437' stroke-width='1' opacity='.16'/%3E%3C/svg%3E");pointer-events:none}
.ipm-nav-promo__row{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ipm-nav-promo__icon,.ipm-nav-promo__icon svg{flex:0 0 auto;display:flex;color:#d4a437!important}
.ipm-nav-promo__title{color:#fff!important;font-weight:700!important;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ipm-nav-promo__cta{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border-radius:8px;font-size:11px!important;font-weight:800!important;letter-spacing:.3px;text-transform:uppercase;color:#241a02!important;background:linear-gradient(135deg,#f4d23f,#d4a437)!important;white-space:nowrap;text-decoration:none!important}
.ipm-nav-promo__link:hover{filter:brightness(1.08)}
.ipm-nav-promo__link:hover .ipm-nav-promo__cta{filter:brightness(1.05)}

/* ── Header: Sign Up as a secondary/outline action next to solid Sign In ── */
/* ============================================================
   NAVBAR r3 — refined header bar, animated gold nav underline,
   and clearly-differentiated auth actions:
     Sign In  = ghost / gold-outline (secondary)
     Sign Up  = solid gold gradient  (primary CTA)
   Written last + high specificity so it beats the earlier
   `.header_area .header__right .theme_btn` gold-pill rule that
   was flattening both buttons into the same look.
   ============================================================ */

/* --- the bar itself --- */
#sticky-header.header_area{
  background:linear-gradient(180deg,#0c3322 0%,#0f3d2c 60%,#10432f 100%) !important;
  border-bottom:1px solid rgba(212,164,55,.22);
  transition:box-shadow .3s var(--ipm-ease),border-color .3s var(--ipm-ease);
}
header.ipm-scrolled #sticky-header.header_area{
  box-shadow:0 14px 38px -20px rgba(0,0,0,.72);
  border-bottom-color:rgba(212,164,55,.42);
}

/* --- top-level nav links: gold underline that grows from the centre --- */
#sticky-header.header_area .main_menu>nav>ul#mobile-menu>li>a{
  position:relative;
  font-size:15.5px;
  font-weight:600;
  letter-spacing:.2px;
  margin:0 15px;
  transition:color .25s var(--ipm-ease);
}
#sticky-header.header_area .main_menu>nav>ul#mobile-menu>li>a::after{
  content:"";position:absolute;left:0;right:0;bottom:18px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--ipm-gold),var(--ipm-gold2));
  transform:scaleX(0);transform-origin:center;
  transition:transform .3s var(--ipm-ease);
}
#sticky-header.header_area .main_menu>nav>ul#mobile-menu>li:hover>a::after,
#sticky-header.header_area .main_menu>nav>ul#mobile-menu>li>a.active::after,
#sticky-header.header_area .main_menu>nav>ul#mobile-menu>li.active_menu_item>a::after{transform:scaleX(1)}
/* At this width the sticky/scrolled bar (.navbar_fixed) shrinks the link's
   own padding to 10px (frontend_style.css), so the 18px underline offset
   above no longer fits under the padding and cuts into the link text. */
@media only screen and (min-width:1440px) and (max-width:1580px){
  #sticky-header.header_area.navbar_fixed .main_menu>nav>ul#mobile-menu>li>a::after{bottom:2px}
}

/* --- auth actions --- */
#sticky-header.header_area .header__right .ipm-auth-actions{gap:10px}
#sticky-header.header_area .header__right .contact_btn .theme_btn,
header .header_area .header__right .contact_btn .theme_btn{
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
  font-family:Inter,system-ui,sans-serif;font-size:14.5px;font-weight:700;letter-spacing:.2px;line-height:1;
  padding:13px 26px;border-radius:999px !important;
  transition:transform .22s var(--ipm-ease),box-shadow .28s var(--ipm-ease),
             background .28s var(--ipm-ease),border-color .28s var(--ipm-ease),color .28s var(--ipm-ease);
}
/* Sign In — secondary, ghost */
#sticky-header.header_area .header__right .contact_btn .ipm-signin-btn,
header .header_area .header__right .contact_btn .ipm-signin-btn{
  background:transparent !important;background-image:none !important;
  color:#f2e4bd !important;
  border:1.5px solid rgba(212,164,55,.55) !important;
  box-shadow:none !important;
}
#sticky-header.header_area .header__right .contact_btn .ipm-signin-btn:hover,
header .header_area .header__right .contact_btn .ipm-signin-btn:hover{
  background:rgba(212,164,55,.15) !important;
  border-color:var(--ipm-gold) !important;color:#fff !important;
  transform:translateY(-2px);
}
/* Sign Up — primary, solid gold */
#sticky-header.header_area .header__right .contact_btn .ipm-signup-btn,
header .header_area .header__right .contact_btn .ipm-signup-btn{
  background:linear-gradient(135deg,var(--ipm-gold2) 0%,var(--ipm-gold) 100%) !important;
  background-image:linear-gradient(135deg,var(--ipm-gold2) 0%,var(--ipm-gold) 100%) !important;
  color:#20240a !important;
  border:1.5px solid transparent !important;
  box-shadow:0 10px 24px -12px rgba(212,164,55,.85) !important;
}
#sticky-header.header_area .header__right .contact_btn .ipm-signup-btn:hover,
header .header_area .header__right .contact_btn .ipm-signup-btn:hover{
  background:linear-gradient(135deg,#ffe066 0%,#e0b246 100%) !important;
  background-image:linear-gradient(135deg,#ffe066 0%,#e0b246 100%) !important;
  color:#1a1d08 !important;transform:translateY(-2px);
  box-shadow:0 16px 32px -12px rgba(212,164,55,1) !important;
}
#sticky-header.header_area .header__right .contact_btn .theme_btn:active{transform:translateY(0) scale(.97)}
#sticky-header.header_area .header__right .contact_btn .theme_btn:focus-visible{
  outline:2px solid var(--ipm-gold2);outline-offset:3px;
}

/* --- responsive tightening --- */
@media (max-width:1299.98px){
  #sticky-header.header_area .header__right .contact_btn .theme_btn,
  header .header_area .header__right .contact_btn .theme_btn{padding:11px 19px;font-size:13.5px}
  #sticky-header.header_area .main_menu>nav>ul#mobile-menu>li>a{margin:0 11px;font-size:15px}
}
@media (max-width:575.98px){
  #sticky-header.header_area .header__right .ipm-auth-actions{gap:7px}
  #sticky-header.header_area .header__right .contact_btn .theme_btn,
  header .header_area .header__right .contact_btn .theme_btn{padding:10px 15px;font-size:12.5px}
}

@media (prefers-reduced-motion:reduce){
  #sticky-header.header_area .main_menu>nav>ul#mobile-menu>li>a::after,
  #sticky-header.header_area .header__right .contact_btn .theme_btn{transition:none !important}
  #sticky-header.header_area .header__right .contact_btn .theme_btn:hover{transform:none !important}
}

/* ============================================================
   ONE-STEP CHECKOUT (/order/payment)
   Scoped to .payment_area so the legacy multi-step checkout page
   keeps its original look. Turns the two stacked bordered boxes
   the theme renders into a single cohesive order-summary card,
   and gives the billing/payment column matching surfaces.
   ============================================================ */

/* --- shared card surface for billing + order --- */
.payment_area .biling_address,
.payment_area .order_wrapper>div{
  background:var(--ipm-paper,#fff) !important;
  border:1px solid var(--ipm-line) !important;
  box-shadow:0 10px 30px -22px rgba(15,61,44,.35);
}
.payment_area .biling_address{border-radius:16px !important;padding:24px 26px 26px !important}
.payment_area .biling_address .biling-header{border-bottom:1px solid var(--ipm-line);padding-bottom:14px}
.payment_area .biling_address .biling-header h4{
  font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:19px;color:var(--ipm-ink);letter-spacing:.3px;
}
/* "Edit" reads as a quiet secondary action, not a slab */
.payment_area .biling_address .biling-header a{
  background:transparent;color:var(--ipm-green2);font-weight:600;font-size:14px;
  padding:7px 18px;border:1px solid var(--ipm-line);border-radius:999px;line-height:1;
  transition:background .22s var(--ipm-ease),border-color .22s var(--ipm-ease),color .22s var(--ipm-ease);
}
.payment_area .biling_address .biling-header a:hover{
  background:rgba(21,101,63,.07);border-color:var(--ipm-green2);color:var(--ipm-green);
}
.payment_area .biling_address .biling_body_content{padding-top:18px;padding-bottom:0}
.payment_area .biling_address .biling_body_content p{font-size:14.5px;color:var(--ipm-muted);line-height:25px}
.payment_area .biling_address .biling_body_content p:first-child{
  font-size:16px;font-weight:600;color:var(--ipm-ink);margin-bottom:4px;
}

/* --- order summary: merge the two boxes into one card --- */
.payment_area .order_wrapper h3{
  font-family:'Marcellus',Georgia,serif;font-weight:400 !important;
  color:var(--ipm-ink);letter-spacing:.3px;margin-bottom:18px !important;
}
.payment_area .order_wrapper .ordered_products{
  border-radius:16px 16px 0 0 !important;border-bottom:none !important;
  padding:22px 24px 8px !important;box-shadow:none !important;
}
.payment_area .order_wrapper .ordered_products_lists{
  border-radius:0 0 16px 16px !important;border-top:none !important;
  padding:4px 24px 20px !important;margin-bottom:0 !important;
}

/* item row */
.payment_area .order_wrapper .ordered_products .single_ordered_product{
  align-items:center;gap:14px;margin-bottom:14px;
}
.payment_area .order_wrapper .ordered_products .single_ordered_product .product_name .thumb{
  width:56px;min-width:56px;height:56px;border-radius:11px;overflow:hidden;
  border:1px solid var(--ipm-line);margin-right:12px;background:var(--ipm-cream);
}
.payment_area .order_wrapper .ordered_products .single_ordered_product .product_name .thumb img{
  width:100%;height:100%;object-fit:cover;
}
.payment_area .order_wrapper .ordered_products .single_ordered_product .product_name span{
  font-size:15.5px;font-weight:600;color:var(--ipm-ink);line-height:1.35;
}
.payment_area .order_wrapper .ordered_products .single_ordered_product .order_prise{
  font-size:15.5px;font-weight:700;color:var(--ipm-green);white-space:nowrap;
}

/* fee breakdown — indented sub-lines under the item it belongs to */
.payment_area .ipm-fee-breakdown{
  margin:-4px 0 16px 68px;padding:11px 14px;
  background:var(--ipm-cream);border:1px solid var(--ipm-line);border-radius:11px;
}
.payment_area .ipm-fee-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  font-size:13px;line-height:1.5;color:var(--ipm-muted);
}
.payment_area .ipm-fee-row+.ipm-fee-row{margin-top:7px;padding-top:7px;border-top:1px dashed var(--ipm-line)}
.payment_area .ipm-fee-row span:last-child{font-weight:600;color:var(--ipm-ink);white-space:nowrap}

/* totals rows */
.payment_area .order_wrapper .ordered_products_lists .single_lists{
  border-top:1px solid var(--ipm-line);padding:15px 0;gap:14px;
}
.payment_area .order_wrapper .ordered_products_lists .single_lists span{
  font-size:15px;font-weight:600;color:var(--ipm-ink);
}
.payment_area .order_wrapper .ordered_products_lists .single_lists span.total_text{
  font-size:15px;font-weight:500;color:var(--ipm-muted);
}
/* payable = the number that matters */
.payment_area .order_wrapper .ordered_products_lists .single_lists:last-child{
  border-top:1px solid var(--ipm-line);margin-top:4px;padding:17px 0 4px;
}
.payment_area .order_wrapper .ordered_products_lists .single_lists:last-child span.total_text{
  font-size:16.5px;font-family:'Marcellus',Georgia,serif;font-weight:400;color:var(--ipm-ink);
}
.payment_area .order_wrapper .ordered_products_lists .single_lists:last-child .totalBalance{
  font-size:21px;font-weight:700;color:var(--ipm-green);
}

/* coupon row */
.payment_area .order_wrapper #couponBox{padding:15px 0 !important}
.payment_area .coupon_wrapper{grid-template-columns:1fr auto;grid-gap:9px;width:100%}
.payment_area .coupon_wrapper .primary_input3{
  height:46px;border:1px solid var(--ipm-line);border-radius:10px;background:#fff;
  padding:0 15px;font-size:14.5px;color:var(--ipm-ink);width:100%;
  transition:border-color .22s var(--ipm-ease),box-shadow .22s var(--ipm-ease);
}
.payment_area .coupon_wrapper .primary_input3::placeholder{color:#9aa79f}
.payment_area .coupon_wrapper .primary_input3:focus{
  outline:none;border-color:var(--ipm-green2);box-shadow:0 0 0 3px rgba(21,101,63,.12);
}
.payment_area .coupon_wrapper #applyCoupon{
  height:46px;padding:0 26px !important;border-radius:10px !important;
  font-size:14.5px;font-weight:600;white-space:nowrap;
  transition:transform .2s var(--ipm-ease),box-shadow .24s var(--ipm-ease);
}
.payment_area .coupon_wrapper #applyCoupon:hover{transform:translateY(-1px);box-shadow:0 10px 22px -12px rgba(15,61,44,.7)}
.payment_area .coupon_wrapper #applyCoupon:active{transform:translateY(0) scale(.97)}
/* discount row: label, remove-x, amount */
.payment_area #discountBox #cancelCoupon{
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;margin-left:auto;margin-right:10px;
  transition:background .2s var(--ipm-ease);
}
.payment_area #discountBox #cancelCoupon:hover{background:rgba(212,164,55,.18)}
.payment_area #discountBox .discountAmount{font-weight:600;color:var(--ipm-ink)}

/* --- payment methods ---
   Students here are largely first-time online buyers: a wall of gateway
   logos reads as decoration, not as "pay here". So each method becomes a
   full-width, tappable ROW — icon + what you can pay with + a chevron —
   the pattern people already know from Amazon/Flipkart. */
.payment_area .select_payment_method{margin-top:30px}
.payment_area .select_payment_method .input_box_tittle h4{
  font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:20px;
  color:var(--ipm-ink);letter-spacing:.3px;margin-bottom:4px;
}
.payment_area .select_payment_method .input_box_tittle .ipm-pay-sub{
  font-size:14.5px;color:var(--ipm-muted);margin-bottom:0;
}
.payment_area .select_payment_method .checkout_area{padding:16px 0 0 !important}
/* one column: these rows carry text, not just a logo */
.payment_area .payment_method_wrapper{grid-template-columns:1fr !important;grid-gap:12px}

/* the row itself — works for both the <button> and the <a> variants */
.payment_area .ipm-pay-option{
  display:flex !important;align-items:center;justify-content:flex-start !important;
  gap:14px;width:100%;
  height:auto !important;min-height:78px;
  padding:16px 18px !important;text-align:left;
  background:#fff !important;background-image:none !important;
  border:1.5px solid var(--ipm-line) !important;border-radius:14px !important;
  color:var(--ipm-ink) !important;font-size:inherit !important;
  transition:border-color .22s var(--ipm-ease),box-shadow .24s var(--ipm-ease),
             transform .18s var(--ipm-ease),background .22s var(--ipm-ease);
}
.payment_area .ipm-pay-option:hover{
  border-color:var(--ipm-green2) !important;background:#fcfdfc !important;
  box-shadow:0 14px 30px -20px rgba(15,61,44,.7);transform:translateY(-1px);
}
.payment_area .ipm-pay-option:active{transform:translateY(0) scale(.995)}
.payment_area .ipm-pay-option:focus-visible{outline:2px solid var(--ipm-gold2);outline-offset:3px}

/* leading icon medallion */
.payment_area .ipm-pay-ic{
  flex:0 0 46px;width:46px;height:46px;border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(21,101,63,.10),rgba(212,164,55,.16));
  color:var(--ipm-green2);font-size:19px;
}
.payment_area .ipm-pay-option--alt .ipm-pay-ic{
  background:linear-gradient(135deg,rgba(212,164,55,.20),rgba(244,210,63,.24));
  color:#8a6a12;
}

/* text column */
.payment_area .ipm-pay-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}
.payment_area .ipm-pay-title{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  font-size:16px;font-weight:700;color:var(--ipm-ink);line-height:1.3;
}
.payment_area .ipm-pay-badge{
  font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  color:#7a5c0c;background:rgba(212,164,55,.20);
  padding:3px 8px;border-radius:999px;white-space:nowrap;
}
.payment_area .ipm-pay-desc{
  font-size:13.5px;font-weight:400;color:var(--ipm-muted);line-height:1.45;
}
.payment_area .ipm-pay-logo{display:block;margin-top:5px}
.payment_area .ipm-pay-logo img{
  height:19px !important;width:auto !important;max-width:96px !important;
  object-fit:contain;opacity:.65;margin:0 !important;padding:0 !important;
}
/* trailing chevron */
.payment_area .ipm-pay-go{
  flex:0 0 auto;color:#9aa79f;font-size:14px;
  transition:transform .2s var(--ipm-ease),color .2s var(--ipm-ease);
}
.payment_area .ipm-pay-option:hover .ipm-pay-go{color:var(--ipm-green2);transform:translateX(3px)}

/* reassurance strip */
.payment_area .ipm-pay-trust{
  display:flex;align-items:flex-start;gap:11px;margin-top:16px;
  padding:13px 16px;border-radius:12px;
  background:var(--ipm-cream);border:1px solid var(--ipm-line);
}
.payment_area .ipm-pay-trust i{color:var(--ipm-green2);font-size:15px;margin-top:2px}
.payment_area .ipm-pay-trust span{font-size:13.5px;color:var(--ipm-muted);line-height:1.5}
.payment_area .ipm-pay-trust strong{display:block;color:var(--ipm-ink);font-weight:600;font-size:14px}

/* gateways with no friendly copy keep their logo, in the same row shell */
.payment_area .payment_method_wrapper .Payment_btn:not(.ipm-pay-option),
.payment_area .payment_method_wrapper .payment_btn_text:not(.ipm-pay-option){
  height:60px !important;border-radius:12px !important;
  border:1px solid var(--ipm-line) !important;background:#fff;
  transition:transform .2s var(--ipm-ease),border-color .22s var(--ipm-ease),box-shadow .24s var(--ipm-ease);
}
.payment_area .payment_method_wrapper .Payment_btn:not(.ipm-pay-option) img{object-fit:contain;max-height:34px}
.payment_area .payment_method_wrapper .Payment_btn:not(.ipm-pay-option):hover,
.payment_area .payment_method_wrapper .payment_btn_text:not(.ipm-pay-option):hover{
  transform:translateY(-2px);border-color:var(--ipm-gold) !important;
  box-shadow:0 12px 26px -16px rgba(15,61,44,.75);
}
.payment_area .payment_method_wrapper form{margin:0}
.payment_area .payment_method_wrapper .single_deposite_item,
.payment_area .payment_method_wrapper .deposite_button,
.payment_area .payment_method_wrapper .bank_check{width:100%}

/* --- responsive --- */
@media (max-width:1199.98px){
  .payment_area .ipm-fee-breakdown{margin-left:0}
}
/* single-column: show WHAT they're paying before HOW they pay */
@media (max-width:991.98px){
  .payment_area .order_wrapper{order:-1}
}
@media (max-width:767.98px){
  .payment_area .biling_address{padding:20px !important}
  .payment_area .order_wrapper .ordered_products{padding:18px 18px 6px !important}
  .payment_area .order_wrapper .ordered_products_lists{padding:4px 18px 16px !important}
  .payment_area .order_wrapper .ordered_products_lists .single_lists:last-child .totalBalance{font-size:19px}
  .payment_area .ipm-pay-option{padding:14px 15px !important;gap:12px;min-height:72px}
  .payment_area .ipm-pay-ic{flex-basis:42px;width:42px;height:42px;font-size:17px}
  .payment_area .ipm-pay-title{font-size:15.5px}
  .payment_area .ipm-pay-desc{font-size:13px}
}
@media (max-width:575.98px){
  .payment_area .coupon_wrapper{grid-template-columns:1fr}
  .payment_area .coupon_wrapper #applyCoupon{width:100%}
  .payment_area .ipm-fee-row{font-size:12.5px}
}

@media (prefers-reduced-motion:reduce){
  .payment_area .ipm-pay-option,
  .payment_area .ipm-pay-go,
  .payment_area .payment_method_wrapper .Payment_btn,
  .payment_area .payment_method_wrapper .payment_btn_text,
  .payment_area .coupon_wrapper #applyCoupon{transition:none !important}
  .payment_area .ipm-pay-option:hover,
  .payment_area .payment_method_wrapper .Payment_btn:hover,
  .payment_area .payment_method_wrapper .payment_btn_text:hover,
  .payment_area .coupon_wrapper #applyCoupon:hover{transform:none !important}
  .payment_area .ipm-pay-option:hover .ipm-pay-go{transform:none !important}
}

/* ============================================================
   PAYMENT PROCESSING OVERLAY
   Covers the page between "money taken" and "enrolled", so the
   few seconds of server work never look like a dead page.
   Not scoped to .payment_area: it sits at body level, above the
   Bootstrap modals the gateways use.
   ============================================================ */
.ipm-payproc{
  position:fixed;inset:0;z-index:20000;display:none;
  align-items:center;justify-content:center;padding:24px;
  background:rgba(12,40,28,.86);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.ipm-payproc.is-on{display:flex}
.ipm-payproc__box{
  max-width:420px;width:100%;text-align:center;
  background:var(--ipm-paper,#fff);border:1px solid var(--ipm-line);border-radius:18px;
  padding:38px 30px 30px;box-shadow:0 30px 70px -30px rgba(0,0,0,.7);
}
.ipm-payproc__spinner{
  width:54px;height:54px;margin:0 auto 22px;border-radius:50%;
  border:4px solid var(--ipm-line);border-top-color:var(--ipm-green2);
  animation:ipmPayspin .9s linear infinite;
}
@keyframes ipmPayspin{to{transform:rotate(360deg)}}
.ipm-payproc__box h3{
  font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:21px;
  color:var(--ipm-ink);letter-spacing:.3px;margin-bottom:8px;
}
.ipm-payproc__box p{font-size:14.5px;color:var(--ipm-muted);margin-bottom:18px}
.ipm-payproc__warn{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;color:#8a6a12;
  background:rgba(212,164,55,.16);border:1px solid rgba(212,164,55,.4);
  padding:9px 14px;border-radius:999px;
}
@media (prefers-reduced-motion:reduce){
  .ipm-payproc__spinner{animation-duration:2.4s}
}

/* ============================================================
   PAYMENT SUCCESS (/payment-success) — matches the one-step
   checkout card language above (same tokens, same card shell).
   ============================================================ */
.ipm-success{padding:56px 0 64px;background:var(--ipm-cream)}
.ipm-success-card{
  background:var(--ipm-paper,#fff);border:1px solid var(--ipm-line);border-radius:18px;
  box-shadow:0 16px 40px -26px rgba(15,61,44,.4);
  padding:40px 36px;
}
.ipm-success-head{text-align:center;margin-bottom:30px}
.ipm-success-icon{width:120px;height:120px;margin:0 auto 14px}
.ipm-success-head h1{
  font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:27px;
  color:var(--ipm-ink);letter-spacing:.3px;margin-bottom:8px;
}
.ipm-success-head p{font-size:15.5px;color:var(--ipm-muted);margin-bottom:0}

.ipm-order-summary{
  background:var(--ipm-cream);border:1px solid var(--ipm-line);border-radius:14px;
  padding:20px 22px 6px;margin-bottom:26px;
}
.ipm-order-summary-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:14px;
}
.ipm-order-summary-head h3{
  font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:17px;
  color:var(--ipm-ink);margin-bottom:0;
}
.ipm-inv-chip{
  font-size:12.5px;font-weight:700;letter-spacing:.3px;color:var(--ipm-green2);
  background:rgba(21,101,63,.08);border:1px solid rgba(21,101,63,.18);
  padding:5px 12px;border-radius:999px;white-space:nowrap;
}
.ipm-order-row{
  display:flex;align-items:center;gap:12px;padding:12px 0;
  border-top:1px solid var(--ipm-line);
}
.ipm-order-summary-head+.ipm-order-row{border-top:none}
.ipm-order-row img{
  width:44px;height:44px;min-width:44px;border-radius:10px;object-fit:cover;
  border:1px solid var(--ipm-line);background:#fff;
}
.ipm-order-row-title{
  flex:1 1 auto;min-width:0;font-size:14.5px;font-weight:600;color:var(--ipm-ink);
  line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.ipm-order-row-price{
  flex:0 0 auto;font-size:14.5px;font-weight:600;color:var(--ipm-ink);white-space:nowrap;
}

.ipm-order-totals{border-top:1px dashed var(--ipm-line);margin-top:8px;padding:12px 0 14px}
.ipm-order-total-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:6px 0;font-size:14.5px;color:var(--ipm-muted);
}
.ipm-order-total-row--grand{
  margin-top:6px;padding-top:12px;border-top:1px solid var(--ipm-line);
}
.ipm-order-total-row--grand span{
  font-size:18px;font-weight:700;color:var(--ipm-green);
}
.ipm-order-total-row--grand span:first-child{
  font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:16.5px;color:var(--ipm-ink);
}

.ipm-success-cta{text-align:center}
.ipm-success-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:240px;height:52px;padding:0 34px;border-radius:999px;
  background:linear-gradient(135deg,var(--ipm-green2) 0%,var(--ipm-green) 100%);
  color:#fff !important;font-size:15.5px;font-weight:700;letter-spacing:.2px;
  box-shadow:0 14px 30px -16px rgba(15,61,44,.65);
  transition:transform .2s var(--ipm-ease),box-shadow .24s var(--ipm-ease);
}

/* ---------------------------------------------------------------------------
   "What do these levels mean?" - secondary helper link shown beside the
   gamification headings (leaderboard modal, Upcoming Badge card, Reward page).
   Rendered as a small pill so it reads as clearly subordinate to the heading
   it sits next to, never competing with it.

   The theme sets `.dashboard_card .head a{font-size:18px}` (and re-declares it
   at several breakpoints), which outranks a lone class selector - hence the
   scoped selectors plus !important on font-size.
--------------------------------------------------------------------------- */
.ipm-levels-explainer,
.dashboard_card .head a.ipm-levels-explainer,
#myLeaderBoard .modal-header a.ipm-levels-explainer,
.reward-leader a.ipm-levels-explainer{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:999px;
  border:1px solid var(--ipm-line);background:#fff;
  font-size:12px !important;font-weight:600;line-height:1.35;
  color:var(--ipm-green2);text-decoration:none;white-space:nowrap;
  transition:color .18s ease,border-color .18s ease,background .18s ease;
}
.ipm-levels-explainer i{font-size:10.5px;color:var(--ipm-gold);line-height:1}
.ipm-levels-explainer:hover,
.dashboard_card .head a.ipm-levels-explainer:hover,
#myLeaderBoard .modal-header a.ipm-levels-explainer:hover,
.reward-leader a.ipm-levels-explainer:hover{
  color:var(--ipm-green);border-color:var(--ipm-gold);
  background:rgba(212,164,55,.08);text-decoration:none;
}

/* Heading row that carries the pill: heading left, pill right, wraps on mobile */
.ipm-gami-head{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:8px 16px;
}
.ipm-gami-head > h4{margin-bottom:0}

/* Leaderboard modal: keep title + pill grouped on the left so the close
   button stays alone on the right (Bootstrap's space-between would otherwise
   strand the pill in the middle of the header). */
#myLeaderBoard .modal-header{flex-wrap:wrap;gap:8px 14px}
.ipm-modal-title-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
.ipm-modal-title-group .modal-title{margin-bottom:0}

@media(max-width:575px){
  .ipm-levels-explainer,
  .dashboard_card .head a.ipm-levels-explainer,
  #myLeaderBoard .modal-header a.ipm-levels-explainer,
  .reward-leader a.ipm-levels-explainer{
    font-size:11.5px !important;padding:4px 10px;
  }
}
.ipm-success-btn:hover{
  color:#fff !important;transform:translateY(-2px);
  box-shadow:0 18px 36px -14px rgba(15,61,44,.8);
}
.ipm-success-btn:active{transform:translateY(0) scale(.97)}

@media (max-width:575.98px){
  .ipm-success{padding:36px 0 48px}
  .ipm-success-card{padding:26px 18px;border-radius:14px}
  .ipm-success-icon{width:96px;height:96px}
  .ipm-success-head h1{font-size:23px}
  .ipm-success-btn{width:100%;min-width:0}
}

@media (prefers-reduced-motion:reduce){
  .ipm-success-btn{transition:none !important}
  .ipm-success-btn:hover{transform:none !important}
}

/* secondary action next to "Go to Dashboard" */
.ipm-success-cta{display:flex;flex-direction:column;align-items:center;gap:12px}
.ipm-success-link{
  font-size:14.5px;font-weight:600;color:var(--ipm-muted);
  text-decoration:underline;text-underline-offset:3px;
}
.ipm-success-link:hover{color:var(--ipm-green2)}
.ipm-success-nudge{
  display:flex;align-items:flex-start;gap:11px;margin:0 0 22px;
  padding:13px 16px;border-radius:12px;
  background:rgba(212,164,55,.12);border:1px solid rgba(212,164,55,.35);
  text-align:left;
}
.ipm-success-nudge i{color:#8a6a12;font-size:15px;margin-top:2px}
.ipm-success-nudge span{font-size:13.5px;color:var(--ipm-muted);line-height:1.5}
.ipm-success-nudge strong{display:block;color:var(--ipm-ink);font-weight:600;font-size:14px}

/* ============================================================
   COMPLETE PROFILE (/complete-profile)
   The details signup deliberately skips, asked for once the
   student is already in. Same card language as checkout.
   ============================================================ */
.ipm-cp{padding:48px 0 64px;background:var(--ipm-cream)}
.ipm-cp-card{
  background:var(--ipm-paper,#fff);border:1px solid var(--ipm-line);border-radius:18px;
  box-shadow:0 16px 40px -26px rgba(15,61,44,.4);padding:34px 32px 30px;
}
.ipm-cp-head{margin-bottom:24px}
.ipm-cp-head h1{
  font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:26px;
  color:var(--ipm-ink);letter-spacing:.3px;margin-bottom:6px;
}
.ipm-cp-head p{font-size:15px;color:var(--ipm-muted);margin-bottom:0}

.ipm-cp-field{margin-bottom:18px}
.ipm-cp-lbl{
  display:block;font-size:13px;font-weight:600;color:var(--ipm-ink);
  margin-bottom:7px;letter-spacing:.1px;
}
.ipm-cp-lbl .req{color:#c0392b;margin-left:2px}
.ipm-cp-in,.ipm-cp-sel{
  width:100%;height:52px;border:1.5px solid var(--ipm-line);border-radius:12px;
  padding:0 15px;background:#fff;color:var(--ipm-ink);font-size:15px;
  transition:border-color .2s var(--ipm-ease),box-shadow .2s var(--ipm-ease);
  -webkit-appearance:none;appearance:none;
}
.ipm-cp-in:focus,.ipm-cp-sel:focus{
  outline:none;border-color:var(--ipm-green2);box-shadow:0 0 0 4px rgba(21,101,63,.1);
}
.ipm-cp-sel{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a6a60' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;cursor:pointer;
}
.ipm-cp-sel:disabled{background-color:#f6f4ed;color:#a8b2ac;cursor:not-allowed}
.ipm-cp-err{display:block;font-size:12.5px;color:#c0392b;margin-top:6px}
.ipm-cp-row{display:flex;gap:14px}
.ipm-cp-row>*{flex:1;min-width:0}

.ipm-cp-chips{display:flex;gap:10px}
.ipm-cp-chips input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.ipm-cp-chips label{
  flex:1;margin:0;cursor:pointer;text-align:center;padding:14px 12px;
  border:1.5px solid var(--ipm-line);border-radius:12px;background:#fff;
  font-size:15px;font-weight:600;color:var(--ipm-ink);
  transition:border-color .2s var(--ipm-ease),background .2s var(--ipm-ease),color .2s var(--ipm-ease);
  -webkit-tap-highlight-color:transparent;
}
.ipm-cp-chips input:checked + label{
  border-color:var(--ipm-green2);background:rgba(21,101,63,.07);color:var(--ipm-green2);
}
/* track chips carry a duration under the name, so the label stacks */
.ipm-cp-chips--track label{padding:12px 10px;line-height:1.3}
.ipm-cp-chips--track label em{
  display:block;font-style:normal;font-size:12.5px;font-weight:600;
  color:var(--ipm-muted);margin-top:3px;
}
.ipm-cp-chips--track input:checked + label em{color:var(--ipm-green2)}
.ipm-cp-hint{font-size:12.5px;color:var(--ipm-muted);margin-top:6px;line-height:1.5}

.ipm-cp-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:26px}
.ipm-cp-nav--single{justify-content:flex-end}
.ipm-cp-skip{
  font-size:14.5px;font-weight:600;color:var(--ipm-muted);
  text-decoration:underline;text-underline-offset:3px;
}
.ipm-cp-skip:hover{color:var(--ipm-green2)}
.ipm-cp-btn{
  min-width:200px;height:52px;padding:0 32px;border:none;border-radius:999px;cursor:pointer;
  background:linear-gradient(135deg,var(--ipm-green2) 0%,var(--ipm-green) 100%);
  color:#fff;font-size:15.5px;font-weight:700;letter-spacing:.2px;
  box-shadow:0 12px 26px -14px rgba(15,61,44,.75);
  transition:transform .2s var(--ipm-ease),box-shadow .25s var(--ipm-ease);
}
.ipm-cp-btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px -14px rgba(15,61,44,.85)}
.ipm-cp-btn:active{transform:translateY(0) scale(.97)}

@media (max-width:575.98px){
  .ipm-cp{padding:30px 0 44px}
  .ipm-cp-card{padding:24px 18px 22px;border-radius:14px}
  .ipm-cp-head h1{font-size:22px}
  .ipm-cp-row{flex-direction:column;gap:0}
  .ipm-cp-row>*{margin-bottom:18px}
  .ipm-cp-nav{flex-direction:column-reverse;align-items:stretch}
  .ipm-cp-btn{width:100%;min-width:0}
  .ipm-cp-skip{text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .ipm-cp-btn,.ipm-cp-in,.ipm-cp-sel,.ipm-cp-chips label{transition:none !important}
  .ipm-cp-btn:hover{transform:none !important}
}

/* ============================================================
   COURSE POSTER FIT (2026-08-09) - every course poster is 16:9,
   so give every card thumb a true 16:9 box: nothing is cropped
   (old fixed heights cut the art at other widths) and nothing is
   stretched. The resting-state zoom (scale 1.1) is removed for
   the same reason; hover zoom stays.
   ============================================================ */
@supports (aspect-ratio: 16/9){
  .couse_wizged .thumb{height:auto !important;aspect-ratio:16/9}
  .course-item-img{height:auto !important;aspect-ratio:16/9}
}
.couse_wizged .thumb_inner{
  transform:none !important;
  background-size:cover !important;
  background-position:center !important;
}
.couse_wizged:hover .thumb_inner{transform:scale(1.04) !important}
.course-item-img img{object-position:center !important}

/* "Students also bought" rows: the poster img had no sizing rule at
   all, so flex squeezed it out of shape. Fixed 16:9 box instead. */
.single_related_product .left img.thumb{
  width:126px;height:auto;aspect-ratio:16/9;
  object-fit:cover;object-position:center;
  flex:0 0 auto;border-radius:6px;align-self:flex-start;
}
@supports not (aspect-ratio: 16/9){
  .single_related_product .left img.thumb{height:71px}
}
@media (max-width: 575px){
  .single_related_product .left img.thumb{width:104px}
}

/* Course-details trailer/preview: a late theme rule forces the box SQUARE
   (aspect-ratio:1/1), so the 16:9 poster cover-cropped hard on phones.
   Give it back the poster's own shape. */
.video_screen{aspect-ratio:16/9 !important}

/* ── PWA install pill (homepage, injected by ipm-app.js) ───────── */
.ipm-pwa{
  position:fixed;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));
  z-index:1090;display:flex;align-items:center;gap:6px;
  animation:ipmPwaIn .5s cubic-bezier(.22,.61,.36,1);
}
@keyframes ipmPwaIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ipm-pwa-go{
  display:inline-flex;align-items:center;gap:9px;border:0;cursor:pointer;
  background:linear-gradient(135deg,#15653f,#0f3d2c);color:#fff;
  font-weight:700;font-size:13.5px;padding:12px 18px;border-radius:30px;
  box-shadow:0 14px 30px -12px rgba(15,61,44,.65);
  -webkit-tap-highlight-color:transparent;
}
.ipm-pwa-go i{color:#f4d23f}
.ipm-pwa-go:active{transform:scale(.96)}
.ipm-pwa-x{
  width:26px;height:26px;border:0;border-radius:50%;cursor:pointer;
  background:rgba(15,61,44,.85);color:#fff;font-size:15px;line-height:1;
  display:grid;place-items:center;box-shadow:0 6px 14px -6px rgba(15,61,44,.5);
}
@media (min-width:992px){
  .ipm-pwa{bottom:24px;right:24px}
}

/* ============================================================
   STUDENT DASHBOARD - PHONE APP FEEL (2026-08-10)
   Scoped to .main_content.dashboard_part so only dashboard pages
   change, and only under 768px - desktop stays as designed.
   ============================================================ */
@media (max-width: 767.98px){
  .main_content.dashboard_part{background:#f6f1e5}
  .main_content.dashboard_part .main_content_iner.main_content_padding{
    padding:12px 12px 96px !important;margin:0 !important}

  /* welcome strip */
  .dashboard_part .dashboard_title{margin:4px 2px 14px}
  .dashboard_part .dashboard_title h3{font-size:19px;line-height:1.3}
  .dashboard_part .dashboard_title h3 span{color:#15653f}
  .dashboard_part .dashboard_title p{font-size:12px;color:#8a978f;margin:2px 0 0}

  /* stat tiles: force a tidy 2-col app grid */
  .dashboard_part .col-lg-6.col-md-4.col-sm-6{width:50%}
  .dashboard_part .dashboard_card{
    padding:13px 8px 14px !important;border-radius:14px !important;
    margin-bottom:12px !important;border:1px solid #eee7d7;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.3)}
  .dashboard_part .dashboard_card .icon svg{width:42px;height:42px}
  .dashboard_part .dashboard_card > span{font-size:11px;font-weight:600;color:#5a6a60}
  .dashboard_part .dashboard_card h4{font-size:16.5px;margin-top:2px}

  /* section cards (badge carousel, noticeboard) share .dashboard_card;
     their heads get app-style compact type */
  .dashboard_part .dashboard_card .head{margin-bottom:8px}
  .dashboard_part .dashboard_card .head h4,
  .dashboard_part .dashboard_card .head h3{font-size:15.5px}
  .dashboard_part .dashboard_badge_item{padding:10px 6px}

  /* generic dashboard headings + course cards on the page */
  .dashboard_part .course-item{border-radius:14px;overflow:hidden}
  .dashboard_part .section_title h3,
  .dashboard_part .section_title h2{font-size:17px}
}

/* ============================================================
   DASHBOARD PAGES - UNIVERSAL PHONE LAYER (2026-08-10)
   Every left-pane dashboard page (My Courses, Purchases, Profile,
   Certificates, Q&A, Settings...) gets the same app treatment
   without touching desktop: panels become cards, tables scroll
   inside their card, controls become thumb-sized.
   ============================================================ */
@media (max-width: 767.98px){
  /* any white panel on a dashboard page reads as an app card */
  .dashboard_part .white_box,
  .dashboard_part .white-box,
  .dashboard_part .QA_section,
  .dashboard_part .my_courses_wrapper,
  .dashboard_part .student_profile_content,
  .dashboard_part .box_wrapper{
    border-radius:14px !important;
    border:1px solid #eee7d7 !important;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.3) !important;
    padding:14px 12px !important;
  }

  /* tables never break the page: they scroll inside their card */
  .dashboard_part table{
    display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;
    border-radius:10px}
  .dashboard_part table th{font-size:11px !important;white-space:nowrap;letter-spacing:.4px}
  .dashboard_part table td{font-size:12.5px !important;white-space:nowrap}

  /* type scale: phone headings */
  .dashboard_part h1{font-size:20px}
  .dashboard_part h2{font-size:18px}
  .dashboard_part h3{font-size:16.5px}
  .dashboard_part h4{font-size:15px}

  /* controls: pills and 44px fields */
  .dashboard_part .theme_btn{
    border-radius:24px !important;padding:10px 18px !important;
    font-size:13px !important;-webkit-tap-highlight-color:transparent}
  .dashboard_part .theme_btn:active{transform:scale(.96)}
  .dashboard_part input.form-control,
  .dashboard_part select.form-control,
  .dashboard_part .primary_input_field,
  .dashboard_part .nice-select{
    min-height:44px;border-radius:12px !important;font-size:13.5px !important}
  .dashboard_part textarea{border-radius:12px !important}

  /* pagination + misc chrome */
  .dashboard_part .pagination{flex-wrap:wrap;gap:4px}
  .dashboard_part a{-webkit-tap-highlight-color:transparent}
}

/* ============================================================
   DASHBOARD PHONE LAYER v2 (2026-08-10) - spacing pass.
   Fixes: uneven tile gutters, clipped tables with no scroll
   affordance, giant reward-table rows, bare deposit form.
   ============================================================ */
@media (max-width: 767.98px){
  /* the page behind everything is brand cream, not gray */
  .main_content.dashboard_part,
  .dashboard_part .main_content_iner{background:#f6f1e5 !important}

  /* uniform 12px gutters: bootstrap gutter var + matching card margin */
  .dashboard_part .main_content_iner .row{--bs-gutter-x:12px}
  .dashboard_part .dashboard_card{margin-bottom:12px !important}

  /* page-level white shells become app cards with equal padding.
     my-program (.ipm-pg) and my-subscription (.ipm-sb) bring their own
     card-less phone layouts - leave them alone. */
  .dashboard_part .dashboard_lg_card:not(.ipm-pg):not(.ipm-sb){
    border-radius:16px !important;
    border:1px solid #eee7d7 !important;
    box-shadow:0 6px 18px -14px rgba(15,61,44,.35) !important;
    padding:16px 14px !important;
  }
  .dashboard_part .dashboard_lg_card > h3,
  .dashboard_part .dashboard_lg_card h3.m-0,
  .dashboard_part .dashboard_lg_card .box_header h3{
    font-size:16.5px !important;margin-bottom:12px !important}

  /* tables: card-contained horizontal scroll WITH a visible affordance */
  .dashboard_part table{
    display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;
    border:1px solid #f0ead9;border-radius:12px;
    scrollbar-width:thin;scrollbar-color:#d4a437 #f6f1e5}
  .dashboard_part table::-webkit-scrollbar{height:5px}
  .dashboard_part table::-webkit-scrollbar-thumb{background:#d4a437;border-radius:4px}
  .dashboard_part table::-webkit-scrollbar-track{background:#f6f1e5}
  .dashboard_part table thead th{
    background:#faf6ea !important;font-size:10.5px !important;
    letter-spacing:.8px;text-transform:uppercase;color:#8a8265 !important;
    padding:10px 14px !important;white-space:nowrap;border-bottom:1px solid #f0ead9 !important}
  .dashboard_part table td{
    font-size:13px !important;padding:12px 14px !important;
    white-space:nowrap;vertical-align:middle !important;
    border-bottom:1px solid #f6f1e5 !important}
  .dashboard_part table tbody tr:last-child td{border-bottom:0 !important}

  /* forms (deposit etc.): stacked, thumb-sized, full-width action */
  .dashboard_part .dashboard_lg_card form .primary_input_field,
  .dashboard_part .dashboard_lg_card form input.form-control{
    width:100%;min-height:46px;border-radius:12px !important}
  .dashboard_part .dashboard_lg_card form .theme_btn,
  .dashboard_part .dashboard_lg_card form button[type="submit"]{
    width:100%;justify-content:center;display:inline-flex;align-items:center;
    min-height:46px;border-radius:24px !important;margin-top:10px}

  /* filter/search rows stack cleanly */
  .dashboard_part .dashboard_lg_card select,
  .dashboard_part .dashboard_lg_card .nice-select{width:100% !important}
}

/* ============================================================
   PHONE LAYER v3 (2026-08-10) - sidebar active-state clarity,
   tile geometry, back-to-top placement, my-courses + reward
   card polish.
   ============================================================ */

/* the program row is a PROMOTED link, not the active tab: it now rests
   in cream with a gold outline, and only fills dark when it IS active */
.ipm-nav-program > a{
  background:#f6f1e5 !important;
  border:1.5px solid rgba(212,164,55,.5) !important;
  box-shadow:none !important;
}
.ipm-nav-program > a span{color:#0f3d2c !important}
.ipm-nav-program > a .menu_icon,
.ipm-nav-program > a .menu_icon svg{color:#b3861f !important}
.ipm-nav-program > a:before{opacity:.45}
.ipm-nav-program > a.active{
  background:linear-gradient(135deg,#0f3d2c 0%,#15653f 100%) !important;
  border-color:transparent !important;
  box-shadow:0 5px 16px rgba(15,61,44,.3) !important;
}
.ipm-nav-program > a.active span{color:#fff !important}
.ipm-nav-program > a.active .menu_icon,
.ipm-nav-program > a.active .menu_icon svg{color:#d4a437 !important}

/* back-to-top: never under the bottom tab bar; never on dashboard pages */
@media (max-width: 991.98px){
  #back-top{bottom:calc(96px + env(safe-area-inset-bottom)) !important;right:12px !important}
  #back-top a{width:40px !important;height:40px !important;line-height:40px !important;border-radius:14px !important}
}
.main_content.dashboard_part ~ #back-top,
.main_content.dashboard_part ~ * #back-top{display:none !important}

@media (max-width: 767.98px){
  /* dashboard stat tiles: identical geometry, centered stack */
  .dashboard_part .dashboard_card{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    min-height:118px;gap:1px;text-align:center}
  .dashboard_part .dashboard_card .icon{margin:0 0 7px}
  .dashboard_part .dashboard_card > span{font-size:11px;line-height:1.35}
  .dashboard_part .dashboard_card h4{font-size:16px;margin:1px 0 0}

  /* my-courses (and any dashboard course grid): app cards */
  .dashboard_part .course-item{
    border:1px solid #eee7d7 !important;border-radius:14px !important;
    overflow:hidden;box-shadow:0 2px 10px -8px rgba(15,61,44,.3) !important;
    margin-bottom:12px}
  .dashboard_part .course-item .course-item-details,
  .dashboard_part .course-item .course-content{padding:12px 12px 14px !important}
  .dashboard_part .course-item h4,
  .dashboard_part .course-item h5{font-size:14px !important;line-height:1.4 !important}
  .dashboard_part .course-item .progress{height:6px !important;border-radius:6px}

  /* reward page: equal tiles, tidy icons */
  .dashboard_part .reward-card{
    background:#fff;border:1px solid #eee7d7;border-radius:14px;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.3);
    padding:13px 14px;min-height:84px;display:flex;align-items:center;
    margin-bottom:12px}
  .dashboard_part .reward-card .reward-card-points{gap:12px;width:100%}
  .dashboard_part .reward-card .img img{width:42px;height:42px;object-fit:contain}
  .dashboard_part .reward-card h4{font-size:17px;margin:0 0 2px}
  .dashboard_part .reward-card p{font-size:11.5px;color:#5a6a60;margin:0;line-height:1.3}
}

/* ============================================================
   BATCH-8 (Aug 2026)
   1. FAQ accordion: label click must not scroll the page
   2. Online-courses cards: premium chrome + tamed typography
      - homepage "Top Online Courses" band  (.course  + _single_course_v2)
      - courses/quizzes listing pages       (.courses_area + _single_topic)
      Dashboard cards are deliberately NOT touched.
   ============================================================ */

/* -- 1. The accordion's hidden radio/checkbox inputs were
      position:absolute; clicking their label focuses them and the
      browser scrolls to wherever they resolve (page bottom).
      Fixed 0x0 inputs are always "in view", so focus never scrolls. */
.ipm-faq .ipm-faq-acc,
.ipm-faq .ipm-faq-radio{
  position:fixed !important;
  top:0 !important;left:0 !important;
  width:0 !important;height:0 !important;
  opacity:0 !important;pointer-events:none !important;
}

/* -- 2a. Shared card chrome -- */
.course .course-item,
.courses_area .course-item{
  border:1px solid #e9e0cc !important;
  border-radius:16px !important;
  background:#fff;
  overflow:hidden;
  box-shadow:0 4px 18px -12px rgba(15,61,44,.35);
  transition:transform .25s cubic-bezier(.22,.61,.36,1),
             box-shadow .25s cubic-bezier(.22,.61,.36,1);
}
@media (hover:hover){
  .course .course-item:hover,
  .courses_area .course-item:hover{
    transform:translateY(-4px);
    box-shadow:0 14px 30px -14px rgba(15,61,44,.4);
  }
}
/* the theme's 1.2x image zoom looks dated — keep it subtle */
.course .course-item:hover img,
.courses_area .course-item:hover img{transform:scale(1.05) !important}

/* -- 2b. Homepage band cards: the DB block inlines 22px titles,
      20px instructor names and 24px prices — scale them back -- */
.course .course-item{padding:12px !important;top:auto}
.course .course-item-img{border-radius:10px !important}
.course .course-item-content{padding:14px 6px 6px !important}
.course .course-item-content p.fs-13{font-size:12px !important;color:#8a8f7e;margin-bottom:8px !important}
.course .course-item-rating{margin-bottom:12px !important}
.course .course-item-rating span{font-size:13px !important;font-weight:600}
.course .course-item-rating i{font-size:10.5px !important}
.course .course-item-rating .user{--rating-user:32px !important;border-color:#e9e0cc !important}
.course .course-item-title{
  font-size:16.5px !important;line-height:1.45 !important;font-weight:700 !important;
  min-height:0 !important;margin-bottom:14px !important;color:#14261d;
}
.course .course-item-price strong{font-size:18px !important;line-height:1.3 !important}
.course .course-item-price del{font-size:13px !important;opacity:.55}
.course .course-item-content .theme-btn{
  --btn-padding-y:9px;--btn-padding-x:20px;
  font-size:13.5px !important;font-weight:600;
}

/* -- 2c. Listing-page cards: tidy spacing, calmer footer -- */
.courses_area .course-item-info .meta{margin-bottom:14px !important}
.courses_area .course-item-info-description{margin-bottom:14px !important;line-height:1.55 !important}
.courses_area .course-item-footer:before{display:none !important}
.courses_area .course-item-footer{border-top:1px dashed #eadfc8;margin-top:auto;align-items:center}
.courses_area .course-tag{
  background:rgba(15,61,44,.92) !important;
  border-radius:30px !important;padding:5px 14px !important;
  top:12px !important;right:12px !important;
  left:auto !important;width:max-content;
}
.courses_area .course-tag span{color:#f4d23f !important;font-size:11px;font-weight:600;letter-spacing:.3px}

/* -- 2d. Phone: app-feel — compact type, press feedback, no clutter -- */
@media (max-width: 767.98px){
  .course .course-item:active,
  .courses_area .course-item:active{transform:scale(.98)}
  .course .course-item,
  .courses_area .course-item{-webkit-tap-highlight-color:transparent}

  /* homepage band cards */
  .course .course-item{padding:10px !important;margin-top:16px !important}
  .course .course-item-content{padding:12px 4px 4px !important}
  .course .course-item-title{font-size:15.5px !important;margin-bottom:12px !important}
  .course .course-item-price strong{font-size:16px !important}
  .course .course-item-price del{font-size:12px !important}
  .course .course-item-content .theme-btn{--btn-padding-y:8px;--btn-padding-x:16px;font-size:12.5px !important}

  /* listing cards */
  .courses_area .course-item-img{height:auto !important;aspect-ratio:16/9}
  .courses_area .course-item-info{padding:13px 14px 14px !important}
  .courses_area .course-item-info .title{
    font-size:15px !important;height:auto !important;max-height:44px;
    margin-bottom:8px !important;
  }
  .courses_area .course-item-info .meta{margin-bottom:10px !important;font-size:12px !important}
  .courses_area .course-item-info-description{display:none}
  .courses_area .course-item-footer{padding-top:10px !important}
  .courses_area .course-item-footer .price .current{font-size:16px !important}
}

/* ============================================================
   BATCH-13
   1. No more page-open "blink": the theme's .preloader overlay
      used to pop over already-painted content and fade out on
      every navigation. Pages now just render.
   2. Back-to-top hidden on course / program detail pages.
   3. Cart + checkout: app-grade phone layout.
   ============================================================ */

/* -- 1. instant pages --
   Hidden by STYLESHEET (deliberately no !important): the page-load
   overlay never paints, so navigations stop blinking, but the two
   places that explicitly .fadeIn() the preloader as a busy signal
   (register submit, course-list pagination) still work because
   jQuery's inline display:block outranks this rule. */
html{background:#f6f1e5}
.preloader{display:none}

/* -- 2. body class set by ipm-app.js on courses-details / bundle-details,
      and .ipm-dash-nav marks dashboard pages (no floating arrow there) -- */
body.ipm-no-backtop #back-top,
body.ipm-dash-nav #back-top{display:none !important}

/* -- 3a. guest cart (.cart_wrapper table layout) -- */
.cart_wrapper{font-family:'Inter','Segoe UI',system-ui,sans-serif}
.cart-summery{
  border:1px solid #e7e2d4 !important;
  border-radius:16px;
  background:#fff;
  box-shadow:0 2px 12px -10px rgba(15,61,44,.35);
}
.cart-summery h4{font-size:16px !important;font-weight:700 !important;color:#14261d !important}
.theme_btn.checkout{
  border-radius:30px !important;
  font-weight:600;
  padding-top:12px;padding-bottom:12px;
}
.cart-table table tfoot td a{border-radius:30px !important;font-size:13px;font-weight:600}

@media (max-width: 767.98px){
  /* the cart table reflows into app cards */
  .cart-table table,
  .cart-table tbody,
  .cart-table tfoot,
  .cart-table tr,
  .cart-table td{display:block;width:100%}
  .cart-table thead{display:none}
  .cart-table table{border:0 !important}
  .cart-table tr.single_cart{
    position:relative;
    background:#fff;
    border:1px solid #e9e0cc !important;
    border-radius:14px;
    padding:12px 44px 12px 12px;
    margin-bottom:10px;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.3);
  }
  .cart-table tr.single_cart td{border:0 !important;padding:0 !important}
  .cart-table tr.single_cart td + td{margin-top:8px}
  .single_cart .thumb img{
    height:56px !important;width:76px !important;
    border-radius:10px;
  }
  .cart-table tr.single_cart td:first-child p{
    font-size:13.5px;font-weight:600;color:#1a2b20;
    margin:0;line-height:1.4;
    overflow:hidden;text-overflow:ellipsis;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  }
  .cart-table tr.single_cart .f_w_400{
    font-size:14px;font-weight:700 !important;color:#15653f;
    padding-left:88px !important;margin-top:-6px;
  }
  .cart-table tr.single_cart .cart-item-remove{
    position:absolute;top:10px;right:10px;
    width:28px;height:28px;
    background:#faf8f1;border:1px solid #e7e2d4;
  }
  .cart-table tfoot tr{border:0 !important}
  .cart-table tfoot td{padding:4px 0 !important}
  .cart-table tfoot td .d-flex{gap:10px}
  .cart-table tfoot td a{flex:1 1 0;height:42px !important;padding:6px 10px !important}
  .cart-summery{margin-top:14px;padding:16px !important}
}

/* -- 3b. logged-in cart (.new_cart_wrapper rows) -- */
.new_cart_wrapper .single_cart{
  background:#fff;
  border:1px solid #e9e0cc;
  border-radius:14px;
  padding:12px 14px;
  margin-bottom:10px;
  box-shadow:0 2px 10px -8px rgba(15,61,44,.3);
}
.new_cart_wrapper .single_cart .thumb img{
  width:76px;height:56px;object-fit:cover;border-radius:10px;
}
.new_cart_wrapper .single_cart h5{
  font-size:13.5px !important;font-weight:600 !important;
  color:#1a2b20 !important;line-height:1.4;margin:0;
}
.new_cart_wrapper .single_cart .product_name{gap:10px}
.new_cart_wrapper .single_cart .f_w_400{
  font-size:14px;font-weight:700 !important;color:#15653f;
}

/* -- 3c. checkout page -- */
.checkout_wrapper{font-family:'Inter','Segoe UI',system-ui,sans-serif}
.checkout_wrapper .billing_details,
.checkout_wrapper .order_wrapper{
  background:#fff;
  border:1px solid #e7e2d4;
  border-radius:16px;
  padding:18px 16px;
  box-shadow:0 2px 12px -10px rgba(15,61,44,.35);
}
.checkout_wrapper .billing_heading h3,
.checkout_wrapper .billing_heading h4{font-size:16px !important;font-weight:700 !important;color:#14261d}
.checkout_wrapper .order_wrapper .single_ordered_product{
  padding:10px 0;
  border-bottom:1px solid #f0ece0;
}
.checkout_wrapper .order_wrapper .single_ordered_product:last-child{border-bottom:0}
.checkout_wrapper .order_wrapper .thumb img{border-radius:10px}
.checkout_wrapper .primary_input3,
.checkout_wrapper .primary_textarea3{
  border-radius:12px !important;
  border:1px solid #ddd6c1 !important;
}
.checkout_wrapper .primary_input3:focus,
.checkout_wrapper .primary_textarea3:focus{
  border-color:#15653f !important;
  box-shadow:0 0 0 3px rgba(21,101,63,.12) !important;
}
.checkout_wrapper .theme_btn{
  border-radius:30px !important;
  font-weight:600 !important;
}
.checkout_wrapper .coupon_wrapper input{
  border-radius:12px !important;
  border:1px solid #ddd6c1 !important;
}

@media (max-width: 767.98px){
  .checkout_wrapper .billing_details,
  .checkout_wrapper .order_wrapper{padding:14px 12px;border-radius:14px}
  .checkout_wrapper .order_wrapper{margin-top:14px}
  .checkout_wrapper .theme_btn{
    width:100%;
    display:flex;align-items:center;justify-content:center;
    padding-top:12px !important;padding-bottom:12px !important;
  }
  .checkout_wrapper .font_22{font-size:16px !important}
  .checkout_wrapper .order_prise{font-size:15px !important;font-weight:700 !important;color:#15653f !important}
  .checkout_wrapper .single_ordered_product .product_name h5,
  .checkout_wrapper .single_ordered_product .product_name p{
    font-size:13px !important;line-height:1.4;
  }
}
/* ============================================================
   BATCH-14b
   1. "Website" chip in the dashboard header - the way back to the
      public site (bottom bar + sidebar only navigate the dashboard).
   2. My-program hero chips: one tidy scrollable row on phones,
      never stacked raggedly.
   ============================================================ */
.dashboard_part .ipm-site-link a{
  display:inline-flex;align-items:center;gap:6px;
  height:34px;padding:0 13px;
  background:#fff;
  border:1px solid #cfdcd2;
  border-radius:30px;
  color:#15653f !important;
  font-size:12.5px;font-weight:600;line-height:1;
  white-space:nowrap;
  transition:background .15s ease,border-color .15s ease;
}
.dashboard_part .ipm-site-link a i{font-size:12px;color:inherit}
@media (hover:hover){
  .dashboard_part .ipm-site-link a:hover{background:#eef4ee;border-color:#a9c9b2;color:#0f3d2c !important}
}
.dashboard_part .ipm-site-link a:active{transform:scale(.96)}
@media (max-width: 575.98px){
  /* the label stays - an icon alone wasn't understood */
  .dashboard_part .ipm-site-link a{font-size:11px;padding:0 10px;height:32px}
  .dashboard_part .ipm-site-link a i{font-size:10px}
}

@media (max-width: 767.98px){
  .ipm-pg-meta{
    flex-wrap:nowrap !important;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:2px;
  }
  .ipm-pg-meta::-webkit-scrollbar{display:none}
  .ipm-pg-chip{white-space:nowrap;flex:0 0 auto}
}
/* ============================================================
   BATCH-15 - dashboard mobile: app-grade top bar + sidebar,
   no duplicate menu entries, explore CTA
   ============================================================ */

/* explore CTA on My Courses (all sizes) */
.ipm-explore-cta{
  display:inline-flex;align-items:center;gap:7px;
  background:#fff;border:1px solid #cfdcd2;border-radius:30px;
  color:#15653f !important;font-size:12.5px;font-weight:600;line-height:1;
  padding:9px 16px;white-space:nowrap;text-decoration:none;
  transition:background .15s ease,border-color .15s ease;
}
.ipm-explore-cta i{font-size:12px}
@media (hover:hover){
  .ipm-explore-cta:hover{background:#eef4ee;border-color:#a9c9b2;color:#0f3d2c !important}
}
.ipm-explore-cta:active{transform:scale(.96)}

@media (max-width: 991.98px){

  /* items already in the bottom tab bar disappear from the drawer */
  .sidebar .ipm-tab-dup{display:none !important}

  /* (the earlier custom top-bar restyle broke icons/spacing on real
      devices - removed; the theme's own header is back untouched) */

  /* ---- sidebar drawer: native-app menu ---- */
  nav.sidebar{
    border-radius:0 20px 20px 0;
    box-shadow:24px 0 60px -30px rgba(9,32,22,.5);
  }
  .sidebar .sidebar-user{
    padding:14px 12px 16px;
  }
  .sidebar .sidebar-user h4{font-size:15px !important;font-weight:700}
  .sidebar .sidebar_iner ul.list-unstyled > li > a{
    display:flex;align-items:center;
    font-size:13.5px !important;
    font-weight:600 !important;
    color:#33413a !important;
    padding:10px 12px !important;
    margin:2px 10px !important;
    border-radius:12px !important;
    -webkit-tap-highlight-color:transparent;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a .menu_icon{
    flex:0 0 auto;
    width:34px;height:34px;
    border-radius:10px;
    background:#f4f1e8;
    color:#15653f;
    display:flex;align-items:center;justify-content:center;
    margin-right:11px;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a .menu_icon svg{
    width:17px;height:17px;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a span{
    line-height:1.35;
  }
  /* selected item: solid deep green, white text - unmissable
     (a light-on-light active state was unreadable with the theme's
     own white active text) */
  .sidebar .sidebar_iner ul.list-unstyled > li > a.active{
    background:linear-gradient(120deg,#0f3d2c,#156036) !important;
    color:#fff !important;
    box-shadow:0 6px 16px -8px rgba(15,61,44,.5);
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a.active span{
    color:#fff !important;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a.active .menu_icon{
    background:rgba(255,255,255,.16);color:#fff;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a:active{
    background:#f6f4ec;
  }
}
/* ============================================================
   BATCH-15b - header un-broken
   The "Back to Website" chip inside the icon strip squeezed the
   other icons off-screen and stretched the page. The chip is gone;
   the way back is now a slim full-width strip UNDER the top bar
   (can't overflow by construction) - phones only.
   ============================================================ */
@media (max-width: 991.98px){
  .main_content.dashboard_part{overflow-x:clip}
  .dashboard_part .header_iner{max-width:100%}
  .dashboard_part .notification_wrapper ul{
    flex-wrap:nowrap;
    max-width:100%;
  }
}

.ipm-back-site{
  display:flex;align-items:center;gap:10px;
  margin:0;
  padding:11px 16px;
  background:#fff;
  border-bottom:1px solid #eee9dc;
  color:#0f3d2c !important;
  text-decoration:none !important;
  font-family:'Inter','Segoe UI',system-ui,sans-serif;
  -webkit-tap-highlight-color:transparent;
}
.ipm-back-site:active{background:#f6f4ec}
.ipm-back-site > i:first-child{
  flex:0 0 auto;
  width:30px;height:30px;border-radius:50%;
  background:#eef4ee;color:#15653f;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;
}
.ipm-back-site span{
  font-size:13px;font-weight:700;white-space:nowrap;
}
.ipm-back-site em{
  font-style:normal;
  font-size:11px;color:#8f978a;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  flex:1 1 auto;min-width:0;
}
.ipm-back-site .ipm-back-site-go{
  flex:0 0 auto;color:#a3ab9d;font-size:13px;
}
/* ============================================================
   BATCH-16
   1. Bottom bar can NEVER leave the screen: fixed !important +
      transform-proof (also appended to <html> by ipm-app.js).
   2. Home bottom-sheet: Dashboard / Website chooser.
   ============================================================ */
@media (max-width:991.98px){
  .ipm-bottnav{
    position:fixed !important;
    transform:none !important;
    top:auto !important;
  }
}

/* the old strip is gone */
.ipm-back-site{display:none !important}

.ipm-sheet{
  position:fixed;inset:0;z-index:99995;
  display:none;
  font-family:'Inter','Segoe UI',system-ui,sans-serif;
}
.ipm-sheet.show{display:block}
.ipm-sheet-bg{
  position:absolute;inset:0;
  background:rgba(9,32,22,.55);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  animation:ipmSheetFade .2s ease both;
}
.ipm-sheet-card{
  position:absolute;left:0;right:0;bottom:0;
  background:#fff;
  border-radius:20px 20px 0 0;
  padding:8px 16px calc(18px + env(safe-area-inset-bottom));
  box-shadow:0 -18px 50px -20px rgba(9,32,22,.5);
  animation:ipmSheetUp .28s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes ipmSheetFade{from{opacity:0}to{opacity:1}}
@keyframes ipmSheetUp{from{transform:translateY(60px);opacity:.4}to{transform:none;opacity:1}}
.ipm-sheet-grab{
  width:40px;height:4px;border-radius:4px;
  background:#e2ddcf;margin:6px auto 10px;
}
.ipm-sheet-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:2px 0 10px;
  border-bottom:1px solid #f0ece0;
  margin-bottom:12px;
}
.ipm-sheet-title{
  display:inline-flex;align-items:center;gap:9px;
  font-size:15.5px;font-weight:700;color:#14261d;
}
.ipm-sheet-title i{color:#15653f;font-size:14px}
.ipm-sheet-x{
  width:32px;height:32px;border:0;border-radius:50%;
  background:#f4f1e8;color:#3c4a41;
  font-size:17px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
}
.ipm-sheet-x:active{transform:scale(.92)}
.ipm-sheet-sec{
  font-size:10.5px;font-weight:700;letter-spacing:1.2px;
  text-transform:uppercase;color:#98a094;
  margin:2px 2px 8px;
}
.ipm-sheet-item{
  display:flex;align-items:center;gap:13px;
  padding:12px 12px;
  border:1px solid #eee9dc;
  border-radius:14px;
  margin-bottom:10px;
  text-decoration:none !important;
  background:#fff;
  -webkit-tap-highlight-color:transparent;
  transition:background .15s ease;
}
.ipm-sheet-item:active{background:#f6f4ec;transform:scale(.99)}
.ipm-sheet-ic{
  flex:0 0 auto;
  width:42px;height:42px;border-radius:12px;
  background:#eef4ee;color:#15653f;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;
}
.ipm-sheet-ic--gold{background:rgba(212,164,55,.16);color:#a87f22}
.ipm-sheet-txt{flex:1 1 auto;min-width:0}
.ipm-sheet-txt b{
  display:block;font-size:14px;font-weight:700;color:#1a2b20;
}
.ipm-sheet-txt small{
  display:block;font-size:11.5px;color:#8f978a;margin-top:2px;
}
.ipm-sheet-go{color:#c2bda9;font-size:14px}
/* ============================================================
   BATCH-17 - site footer is website-only
   Dashboard pages share the footer include (its scripts and the
   cart drawer live there), but the visual footer band belongs to
   the public site alone.
   ============================================================ */
.dashboard_main_wrapper ~ .aoraeditor-footer > footer,
.dashboard_main_wrapper ~ .aoraeditor-footer footer{
  display:none !important;
}
/* ============================================================
   BATCH-18 - dashboard phone polish
   1. No more card-inside-card: the OUTER .dashboard_lg_card is the
      card; inner panels go flat. (Earlier both were styled, which
      is what made My Courses / Live / Help look boxed-in-boxed.)
   2. Tables fill their card - no dead space on the right.
   3. Sidebar drawer type/icons scaled down.
   ============================================================ */
@media (max-width: 767.98px){

  /* ---- 1. inner panels: flat inside the page card ---- */
  .dashboard_part .dashboard_lg_card .my_courses_wrapper,
  .dashboard_part .dashboard_lg_card .white_box,
  .dashboard_part .dashboard_lg_card .white-box,
  .dashboard_part .dashboard_lg_card .QA_section,
  .dashboard_part .dashboard_lg_card .student_profile_content,
  .dashboard_part .dashboard_lg_card .box_wrapper{
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    padding:0 !important;
    background:transparent !important;
  }

  /* pages whose content is already a stack of cards keep a flat shell */
  .dashboard_part .dashboard_lg_card.ipm-flat{
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    padding:0 !important;
    background:transparent !important;
  }

  /* course tiles inside My Courses / Live: single clean card each */
  .dashboard_part .my_courses_wrapper .course-item,
  .dashboard_part .my_courses_wrapper .single_course{
    border:1px solid #eee7d7 !important;
    border-radius:14px !important;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.3) !important;
    overflow:hidden;
    margin-bottom:12px !important;
  }
  .dashboard_part .my_courses_wrapper .course-item-img img,
  .dashboard_part .my_courses_wrapper .course-item img{
    width:100%;aspect-ratio:16/9;object-fit:cover;
  }
  .dashboard_part .my_courses_wrapper .course-item-info,
  .dashboard_part .my_courses_wrapper .course-item-content{
    padding:12px 13px 13px !important;
  }
  .dashboard_part .my_courses_wrapper .course-item .title,
  .dashboard_part .my_courses_wrapper .course-item h4,
  .dashboard_part .my_courses_wrapper .course-item h5{
    font-size:13.5px !important;font-weight:600 !important;
    line-height:1.4 !important;color:#1a2b20 !important;
    height:auto !important;margin-bottom:8px !important;
  }

  /* empty states read as a calm note, not a bare line */
  .dashboard_part .my_courses_wrapper h3.text-center,
  .dashboard_part .my_courses_wrapper .text-center h3{
    font-size:13.5px !important;color:#8f978a !important;
    padding:26px 10px !important;margin:0 !important;
  }

  /* ---- 2. tables: fill the card, wrap instead of dead space ---- */
  .dashboard_part table{
    width:100% !important;
    min-width:0 !important;
    display:table !important;
    table-layout:auto;
    overflow:hidden !important;
  }
  .dashboard_part table td{
    white-space:normal !important;
    word-break:break-word;
    padding:10px 12px !important;
    font-size:12.5px !important;
  }
  .dashboard_part table th{
    white-space:normal !important;
    padding:9px 12px !important;
  }
  /* wide tables that genuinely need it still scroll, inside a wrapper */
  .dashboard_part .table-responsive{
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    border-radius:12px;border:1px solid #f0ead9;
  }
  .dashboard_part .table-responsive > table{border:0 !important;border-radius:0 !important}

  /* reward page: .reward-card is a flex row, so its single child never
     grew - that's the dead strip on the right of the points table */
  .dashboard_part .reward-card{display:block !important}
  .dashboard_part .reward-card > .reward-table,
  .dashboard_part .reward-card > .reward-leader,
  .dashboard_part .reward-card > .reward-card-points{
    width:100% !important;
    min-width:0 !important;
    flex:1 1 auto !important;
  }
  .dashboard_part .reward-table{overflow:visible !important}
  .dashboard_part .reward-leader{min-height:0 !important}
  .dashboard_part .reward-card.leader{padding:14px !important}
}

/* ---- 3. sidebar drawer: smaller, tighter, app-like ---- */
@media (max-width: 991.98px){
  .sidebar .sidebar-user{padding:12px 12px 14px !important}
  .sidebar .sidebar-profile{width:64px !important;height:64px !important}
  .sidebar .sidebar-user h4{font-size:13.5px !important;margin-top:8px}
  .sidebar .sidebar_iner ul.list-unstyled > li > a{
    font-size:12.5px !important;
    padding:8px 10px !important;
    margin:1px 9px !important;
    border-radius:10px !important;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a .menu_icon{
    width:28px !important;height:28px !important;
    border-radius:9px !important;
    margin-right:9px !important;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a .menu_icon svg{
    width:14px !important;height:14px !important;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a .menu_icon img{
    width:14px !important;height:14px !important;
  }
  /* the label carries the theme's own 14px - the <a> rule alone
     never reached it, which is why the drawer still read large */
  .sidebar .sidebar_iner ul.list-unstyled > li > a span{
    font-size:12.5px !important;
    line-height:1.35 !important;
    font-weight:600 !important;
  }
  .sidebar .sidebar_iner ul.list-unstyled > li > a .menu_icon{
    flex:0 0 28px !important;
  }
}
/* ============================================================
   BATCH-19
   1. Dashboard tables read as stacked app rows on phones
      (labels injected by ipm-app.js as data-label).
   2. Help FAQ: no card inside a card on small screens.
   ============================================================ */
@media (max-width: 767.98px){

  /* words must never break mid-letter again */
  .dashboard_part table td,
  .dashboard_part table th{
    word-break:normal !important;
    overflow-wrap:break-word;
  }

  /* --- stacked rows --- */
  .dashboard_part table.ipm-stack-table{
    border:0 !important;
    background:transparent !important;
    border-radius:0 !important;
  }
  .dashboard_part .ipm-stack-table thead{display:none !important}
  .dashboard_part .ipm-stack-table,
  .dashboard_part .ipm-stack-table tbody,
  .dashboard_part .ipm-stack-table tr,
  .dashboard_part .ipm-stack-table td{
    display:block !important;
    width:100% !important;
  }
  .dashboard_part .ipm-stack-table tr{
    background:#fff !important;
    border:1px solid #eee7d7 !important;
    border-radius:12px !important;
    padding:4px 13px !important;
    margin-bottom:10px !important;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.3);
  }
  .dashboard_part .ipm-stack-table td{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    text-align:right;
    padding:9px 0 !important;
    border:0 !important;
    border-bottom:1px solid #f4f0e4 !important;
    font-size:12.5px !important;
    color:#24332a;
    min-height:0;
  }
  .dashboard_part .ipm-stack-table td:last-child{border-bottom:0 !important}
  .dashboard_part .ipm-stack-table td::before{
    content:attr(data-label);
    flex:0 0 auto;
    font-size:10px;
    font-weight:700;
    letter-spacing:.7px;
    text-transform:uppercase;
    color:#98a094;
    text-align:left;
    white-space:nowrap;
  }
  /* cells the theme leaves empty (spacers) add nothing on a phone */
  .dashboard_part .ipm-stack-table td:empty{display:none !important}
  /* inner markup shouldn't fight the flex row */
  .dashboard_part .ipm-stack-table td p,
  .dashboard_part .ipm-stack-table td span,
  .dashboard_part .ipm-stack-table td h4,
  .dashboard_part .ipm-stack-table td h5{
    margin:0 !important;
    font-size:12.5px !important;
    line-height:1.4 !important;
  }
  /* action buttons get room instead of stacking one letter per line */
  .dashboard_part .ipm-stack-table td a.theme_btn,
  .dashboard_part .ipm-stack-table td button,
  .dashboard_part .ipm-stack-table td .theme_btn{
    display:inline-flex !important;
    align-items:center;justify-content:center;
    width:auto !important;
    min-width:96px;
    height:auto !important;
    padding:8px 16px !important;
    border-radius:24px !important;
    font-size:12px !important;
    line-height:1 !important;
    white-space:nowrap !important;
    writing-mode:horizontal-tb !important;
  }
  .dashboard_part .ipm-stack-table td img{max-width:38px;height:auto;border-radius:8px}

  /* --- 2. help FAQ: items are the cards, the wrapper isn't --- */
  .ipm-help-wrap .ipm-faq{
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    padding:14px 0 0 !important;
  }
  .ipm-help-wrap .ipm-faq .ipm-wrap{padding:0 !important}
  .ipm-help-wrap .ipm-faq .ipm-faq-item{
    border:1px solid #e9e0cc !important;
    border-radius:12px !important;
  }
}
/* ============================================================
   BATCH-20 - one list, not boxes inside boxes
   ipm-app.js marks every wrapper around a stacked table with
   .ipm-flat-wrap (up to and including the page shell) and the
   reward stat tiles' columns with .ipm-col-half.
   ============================================================ */
@media (max-width: 767.98px){

  /* repeated class = enough specificity to beat the page-card rule
     (.dashboard_part .dashboard_lg_card:not(.ipm-pg):not(.ipm-sb)) */
  .dashboard_part .ipm-flat-wrap.ipm-flat-wrap.ipm-flat-wrap,
  .dashboard_part .dashboard_lg_card.ipm-flat-wrap{
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    padding:0 !important;
    overflow:visible !important;
    min-height:0 !important;
    max-width:100% !important;
  }
  /* nothing on a dashboard page may push past the viewport */
  .main_content.dashboard_part{overflow-x:clip}
  /* the page title now sits on the cream page, so give it room */
  .dashboard_part .ipm-flat-wrap > h3,
  .dashboard_part .ipm-flat-wrap > .section__title3,
  .dashboard_part .ipm-flat-wrap > .box_header{
    margin:2px 2px 12px !important;
  }

  /* even, non-touching row cards */
  .dashboard_part .ipm-stack-table{
    border-spacing:0 !important;
    border-collapse:separate !important;
  }
  .dashboard_part .ipm-stack-table tr{
    margin:0 0 12px !important;
    overflow:hidden;
  }
  .dashboard_part .ipm-stack-table tr:last-child{margin-bottom:0 !important}
  .dashboard_part .ipm-stack-table td{padding:10px 0 !important}

  /* reward tiles: 2-up, compact */
  .dashboard_part .ipm-col-half{
    width:50% !important;
    flex:0 0 50% !important;
    max-width:50% !important;
  }
  .dashboard_part .ipm-col-half .reward-card{
    min-height:0 !important;
    padding:12px 10px !important;
    margin-bottom:12px !important;
  }
  .dashboard_part .ipm-col-half .reward-card-points{gap:10px !important}
  .dashboard_part .ipm-col-half .reward-card .img img{width:34px !important;height:34px !important}
  .dashboard_part .ipm-col-half .reward-card h4{font-size:16px !important;margin:0 !important}
  .dashboard_part .ipm-col-half .reward-card p{font-size:11px !important;line-height:1.3 !important}
}
/* ============================================================
   BATCH-21 - invoice page on phones
   The invoice uses <table> for LAYOUT (logo | number, then two
   50% info columns). At 400px those columns are ~180px wide and
   the address runs off the screen. On phones the layout tables
   stack into full-width blocks; the Order List table (the only
   real data table) keeps the stacked-card treatment.
   ============================================================ */
@media (max-width: 767.98px){
  .invoice_part_iner,
  .invoice_print{overflow-x:hidden}

  /* header row: title + print/download buttons */
  .dashboard_part .box_header.common_table_header,
  .invoice_print ~ .box_header{gap:10px}
  .dashboard_part .table_btn_wrap{display:flex;gap:8px;flex-wrap:wrap}
  .dashboard_part .table_btn_wrap .primary_btn{
    padding:9px 16px !important;
    font-size:12.5px !important;
    border-radius:24px !important;
  }

  /* layout tables (no thead) stack */
  .invoice_part_iner table:not(.ipm-stack-table),
  .invoice_part_iner table:not(.ipm-stack-table) tbody,
  .invoice_part_iner table:not(.ipm-stack-table) tr,
  .invoice_part_iner table:not(.ipm-stack-table) td{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
  }
  .invoice_part_iner table:not(.ipm-stack-table) td{
    border:0 !important;
    padding:0 0 4px !important;
    text-align:left !important;
  }
  .invoice_part_iner table:not(.ipm-stack-table){
    margin-bottom:16px !important;
    border:0 !important;
    background:transparent !important;
  }

  /* logo + invoice number read as a header block */
  .invoice_part_iner img{max-width:96px !important;height:auto}
  .invoice_part_iner .invoice_no{
    font-size:17px !important;
    margin:10px 0 0 !important;
    text-align:left !important;
  }

  /* label/value lines wrap instead of running off-screen */
  .invoice_part_iner .invoice_grid{
    font-size:12.5px !important;
    line-height:1.6 !important;
    margin:0 0 6px !important;
    word-break:break-word;
    overflow-wrap:anywhere;
  }
  .invoice_part_iner .invoice_grid .black_color{font-weight:600}
  .invoice_part_iner h4{font-size:14px !important;margin-bottom:8px !important}

  /* the info blocks become cards so the page reads as sections */
  .invoice_part_iner{
    background:#fff;
    border:1px solid #e7e2d4;
    border-radius:16px;
    padding:16px 14px !important;
    box-shadow:0 2px 12px -10px rgba(15,61,44,.35);
  }
}
/* ---- BATCH-21b: totals row of a stacked table (invoice, orders) ----
   tfoot cells use colspan, so they carry no data-label; render the
   whole footer as one summary card of label/value lines. */
@media (max-width: 767.98px){
  .dashboard_part .ipm-stack-table tfoot{
    display:block !important;
    background:#fff;
    border:1px solid #eee7d7;
    border-radius:12px;
    padding:2px 13px;
    margin-top:2px;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.3);
  }
  .dashboard_part .ipm-stack-table tfoot tr{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    background:transparent !important;
    border:0 !important;
    border-bottom:1px solid #f4f0e4 !important;
    border-radius:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-shadow:none !important;
  }
  .dashboard_part .ipm-stack-table tfoot tr:last-child{border-bottom:0 !important}
  .dashboard_part .ipm-stack-table tfoot td{
    display:block !important;
    width:auto !important;
    flex:0 0 auto;
    border:0 !important;
    padding:11px 0 !important;
    text-align:left !important;
    font-size:12.5px !important;
  }
  .dashboard_part .ipm-stack-table tfoot td:first-child{
    flex:1 1 auto;color:#7d8779;font-weight:600;
  }
  .dashboard_part .ipm-stack-table tfoot td:last-child{
    text-align:right !important;font-weight:700;color:#15653f;
  }
  .dashboard_part .ipm-stack-table tfoot td::before{content:none !important}
  .dashboard_part .ipm-stack-table td[colspan]::before{content:none !important}
}
/* ---- BATCH-21c: summary rows inside a stacked table ---- */
@media (max-width: 767.98px){
  .dashboard_part .ipm-stack-table tr.ipm-sum-row{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    background:#fff !important;
    border:1px solid #eee7d7 !important;
    border-radius:12px !important;
    padding:2px 13px !important;
    margin-bottom:8px !important;
  }
  .dashboard_part .ipm-stack-table tr.ipm-sum-row td{
    display:block !important;
    width:auto !important;
    flex:0 0 auto;
    border:0 !important;
    padding:11px 0 !important;
    text-align:left !important;
    font-size:12.5px !important;
  }
  .dashboard_part .ipm-stack-table tr.ipm-sum-row td:first-child{
    flex:1 1 auto;color:#7d8779;font-weight:600;
  }
  .dashboard_part .ipm-stack-table tr.ipm-sum-row td:last-child{
    text-align:right !important;font-weight:700;color:#15653f;
  }
  .dashboard_part .ipm-stack-table tr.ipm-sum-row td::before{content:none !important}
}
/* ============================================================
   BATCH-22
   1. Dashboard top bar stays on screen while scrolling (app feel)
   2. Leaderboard "View all" becomes a full-screen sheet on phones
   3. Reward pagination returns the reader to the points table
      instead of dumping them at the top of the page
   ============================================================ */
@media (max-width: 991.98px){
  .dashboard_part .header_iner{
    position:sticky !important;
    top:0;
    z-index:9990;
    background:var(--system_primery_color, #0f3d2c);
    box-shadow:0 6px 18px -14px rgba(9,32,22,.7);
  }
}

@media (max-width: 767.98px){
  /* --- leaderboard as a native-app sheet --- */
  #myLeaderBoard .modal-dialog{
    margin:0 !important;
    width:100% !important;
    max-width:100% !important;
    height:100dvh;
    min-height:100dvh;
    align-items:stretch !important;
  }
  #myLeaderBoard .modal-content{
    height:100dvh;
    max-height:100dvh !important;
    border:0 !important;
    border-radius:0 !important;
  }
  #myLeaderBoard.fade .modal-dialog{
    transform:translateY(48px);
    transition:transform .28s cubic-bezier(.22,.61,.36,1);
  }
  #myLeaderBoard.show .modal-dialog{transform:none}
  #myLeaderBoard .modal-header{
    position:sticky;top:0;z-index:5;
    background:#fff;
    border-bottom:1px solid #eee9dc !important;
    padding:14px 16px !important;
    padding-top:max(14px, env(safe-area-inset-top)) !important;
  }
  #myLeaderBoard .modal-body{
    padding:14px 14px calc(24px + env(safe-area-inset-bottom)) !important;
    background:#fbfaf6;
    overflow-y:auto;
  }
  #myLeaderBoard .modal-title,
  #myLeaderBoard h4{font-size:16px !important;font-weight:700 !important;color:#14261d !important}
  #myLeaderBoard .btn-close{
    width:34px;height:34px;border-radius:50%;
    background:#f4f1e8 !important;opacity:1;border:0;
    display:flex;align-items:center;justify-content:center;
  }
  /* leaderboard rows read as clean cards */
  #myLeaderBoard .reward-leader-item,
  .dashboard_part .reward-leader-item{
    background:#fff;
    border:1px solid #eee7d7;
    border-radius:12px;
    padding:10px 12px !important;
    margin-bottom:0;
  }
  #myLeaderBoard .reward-leader li,
  .dashboard_part .reward-leader li{gap:8px;margin-bottom:9px !important}
  #myLeaderBoard .reward-leader-profile p,
  .dashboard_part .reward-leader-profile p{
    font-size:12.5px !important;margin:0 !important;line-height:1.35;
  }
  #myLeaderBoard .reward-leader-content h4,
  .dashboard_part .reward-leader-content h4{font-size:14px !important;margin:0 !important}
  #myLeaderBoard .reward-leader-position,
  .dashboard_part .reward-leader-position{
    min-width:42px;border-radius:10px;font-size:14px;
  }
  /* the tab strip inside the sheet */
  #myLeaderBoard .nav-tabs{gap:6px;border:0 !important;flex-wrap:nowrap;overflow-x:auto}
  #myLeaderBoard .nav-tabs .nav-link{
    border-radius:24px !important;
    border:1px solid #ddd6c1 !important;
    font-size:12.5px !important;
    padding:8px 16px !important;
    white-space:nowrap;
  }

  /* --- pagination: thumb-sized, centred --- */
  .dashboard_part .reward-paginations .paginations{
    gap:6px;flex-wrap:wrap;
  }
  .dashboard_part .reward-paginations .paginations-links{
    min-width:40px;height:40px;
    display:flex;align-items:center;justify-content:center;
    border-radius:12px;
    font-size:13px;font-weight:600;
  }
}
/* ============================================================
   BATCH-25 - admission countdown (closes 5 Sept 2026)
   Injected by ipm-app.js into the homepage enroll card, the
   program-page hero and the mobile sticky bar.
   ============================================================ */
.ipm-cd{
  margin:18px 0 16px;
  text-align:center;
  font-family:'Inter','Segoe UI',system-ui,sans-serif;
}
.ipm-cd-kick{
  display:flex;align-items:center;justify-content:center;gap:7px;
  font-size:11px;font-weight:700;letter-spacing:1.6px;
  text-transform:uppercase;color:#d4a437;
  margin-bottom:10px;
}
.ipm-cd-kick i{font-size:11px;animation:ipmCdFlip 3s ease-in-out infinite}
@keyframes ipmCdFlip{0%,88%,100%{transform:rotate(0)}92%,96%{transform:rotate(180deg)}}
.ipm-cd-tiles{
  display:flex;align-items:stretch;justify-content:center;gap:6px;
}
.ipm-cd-t{
  min-width:60px;
  padding:10px 4px 8px;
  border-radius:12px;
  background:#fff;
  border:1px solid #e7e2d4;
  box-shadow:0 2px 10px -8px rgba(15,61,44,.35);
}
.ipm-cd-t b{
  display:block;
  font-size:24px;font-weight:800;line-height:1;
  color:#0f3d2c;
  font-variant-numeric:tabular-nums;
}
.ipm-cd-t span{
  display:block;
  font-size:9.5px;font-weight:700;letter-spacing:1.1px;
  text-transform:uppercase;color:#98a094;
  margin-top:5px;
}
.ipm-cd-sep{
  align-self:center;
  font-weight:800;color:#d4a437;font-size:17px;
  padding-bottom:14px;
}
.ipm-cd-note{margin-top:10px;font-size:12px;color:#8f978a;line-height:1.5}
.ipm-cd-note b{color:#a87f22;font-weight:700}

/* dark variant: rides the deep-green cards / hero */
.ipm-cd--dark .ipm-cd-t{
  background:rgba(255,255,255,.09);
  border-color:rgba(212,164,55,.38);
  box-shadow:none;
}
.ipm-cd--dark .ipm-cd-t b{color:#fff}
.ipm-cd--dark .ipm-cd-t--sec b{color:#f4d23f}
.ipm-cd--dark .ipm-cd-t span{color:rgba(255,255,255,.55)}
.ipm-cd--dark .ipm-cd-note{color:rgba(255,255,255,.62)}
.ipm-cd--dark .ipm-cd-note b{color:#f4d23f}

/* program-page hero placement */
.ipm-cd--hero{max-width:460px;margin:26px auto 0}

/* after the deadline */
.ipm-cd-closed{
  display:inline-flex;align-items:center;gap:9px;
  background:rgba(180,67,42,.12);
  border:1px solid rgba(180,67,42,.4);
  color:#e08b76;
  font-size:13px;font-weight:700;
  padding:10px 18px;border-radius:30px;
}

/* gold strip riding the mobile sticky enroll bar */
.ipm-cd-mini{
  position:absolute;left:10px;right:10px;top:-36px;
  background:linear-gradient(90deg,#d4a437,#f4d23f);
  color:#0f3d2c;
  font-size:12px;font-weight:700;letter-spacing:.2px;
  padding:8px 12px;border-radius:10px;
  text-align:center;
  box-shadow:0 8px 20px -10px rgba(0,0,0,.4);
  font-family:'Inter','Segoe UI',system-ui,sans-serif;
}
.ipm-cd-mini i{margin-right:5px;font-size:11px}

@media (max-width: 575.98px){
  .ipm-cd-t{min-width:52px;padding:9px 3px 7px}
  .ipm-cd-t b{font-size:20px}
  .ipm-cd-sep{font-size:15px}
}
@media (prefers-reduced-motion: reduce){
  .ipm-cd-kick i{animation:none}
}
/* ---- BATCH-25b: one sticky element on the program page ----
   The countdown lives inside the sticky bar's price block; the
   public bottom nav steps aside on this conversion page. */
.ipm-cd-inline{
  display:block;
  font-style:normal;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.2px;
  color:#f4d23f;
  margin-top:3px;
  white-space:nowrap;
}
.ipm-cd-inline i{font-size:9.5px;margin-right:3px}
/* the sticky bar styles its own <b> at 19px - ours stays small */
.ipm-cd-inline b{font-size:inherit !important;font-weight:800;color:inherit}

@media (max-width: 991.98px){
  body.ipm-hide-bottnav .ipm-bottnav{display:none !important}
  body.ipm-hide-bottnav.ipm-has-bottnav{padding-bottom:0 !important}
}
/* ============================================================
   BATCH-25c - program page sticky bar, rebuilt edge-to-edge
   Flush to left/right/bottom, integrated gold urgency strip on
   its top edge, safe-area padding so no dead gap under it.
   ============================================================ */
@media (max-width: 991.98px){
  .ipm-bp-sticky{
    position:fixed !important;
    left:0 !important;right:0 !important;bottom:0 !important;
    margin:0 !important;
    display:flex !important;
    align-items:center;
    gap:12px;
    border-radius:0 !important;
    border:0 !important;
    border-top:1px solid rgba(212,164,55,.45) !important;
    background:
      radial-gradient(120% 160% at 90% 0%, rgba(212,164,55,.14) 0%, transparent 50%),
      linear-gradient(135deg,#15653f 0%,#0d3626 55%,#071f14 100%) !important;
    box-shadow:0 -14px 40px -16px rgba(0,0,0,.55) !important;
    padding:40px 16px calc(13px + env(safe-area-inset-bottom)) !important;
    z-index:99991 !important;
  }

  /* the urgency strip fused into the bar's top edge */
  .ipm-bp-sticky .ipm-cd-inline{
    position:absolute;top:0;left:0;right:0;
    display:flex;align-items:center;justify-content:center;
    height:30px;
    margin:0;
    background:rgba(212,164,55,.16);
    border-bottom:1px solid rgba(212,164,55,.28);
    border-radius:0;
    color:#f4d23f;
    font-size:11.5px;font-weight:700;letter-spacing:.3px;
    white-space:nowrap;overflow:hidden;
  }
  .ipm-bp-sticky .ipm-cd-inline b{
    font-size:inherit !important;font-weight:800;color:#fff;
    font-variant-numeric:tabular-nums;
    margin:0 3px;
  }
  .ipm-bp-sticky .ipm-cd-inline i{font-size:10px;color:#f4d23f}

  /* price block */
  .ipm-bp-sticky__price{
    flex:1 1 auto !important;min-width:0;
    color:#fff !important;line-height:1.1 !important;
  }
  .ipm-bp-sticky__price b{
    font-size:21px !important;font-weight:800 !important;letter-spacing:-.3px;
  }
  .ipm-bp-sticky__price span{
    font-size:11px !important;color:rgba(255,255,255,.6) !important;
    display:block !important;margin-top:2px;
  }

  /* the button is the hero: gold gradient, big tap target */
  .ipm-bp-sticky__btn{
    flex:0 0 auto !important;
    display:inline-flex !important;align-items:center;justify-content:center;gap:8px;
    background:linear-gradient(120deg,#d4a437,#f4d23f) !important;
    color:#0f3d2c !important;
    font-size:15px !important;font-weight:800 !important;letter-spacing:.2px;
    padding:14px 24px !important;
    border-radius:14px !important;
    border:0 !important;
    box-shadow:0 8px 22px -8px rgba(212,164,55,.55) !important;
    -webkit-tap-highlight-color:transparent;
    text-decoration:none !important;
  }
  .ipm-bp-sticky__btn:active{transform:scale(.96)}

  /* content never hides under the fixed bar */
  body.ipm-hide-bottnav{padding-bottom:calc(104px + env(safe-area-inset-bottom)) !important}
}
/* ============================================================
   BATCH-26
   1. Sidebar drawer: avatar was clipped (base kept --width:110px
      + padding:5px while the override shrank the box to 64px).
   2. Bell dropdown becomes a full-screen notification sheet on
      phones (Facebook-style), with a header injected by ipm-app.js.
   ============================================================ */
@media (max-width: 991.98px){
  .sidebar .sidebar-profile{
    --width:64px !important;
    width:64px !important;height:64px !important;
    padding:3px !important;
  }
  .sidebar .sidebar-user{padding:20px 12px 14px !important}
  .sidebar .sidebar_iner{
    height:100% !important;
    overflow-y:auto !important;
    padding-bottom:110px !important;
  }
}
@media (max-width: 767.98px){
  .header_iner .notification_wrapper ul li .notification_area{
    position:fixed !important;
    top:0 !important;left:0 !important;right:0 !important;bottom:0 !important;
    width:100vw !important;max-width:none !important;height:100dvh !important;
    margin:0 !important;border-radius:0 !important;border:0 !important;
    background:#f6f1e5 !important;
    z-index:100000 !important;
    display:flex;flex-direction:column;
    box-shadow:none !important;
  }
  .header_iner .notification_wrapper ul li .notification_area .ipm-ntf-top{
    flex:0 0 auto;
    display:flex;align-items:center;gap:12px;
    padding:14px 16px 12px;
    padding-top:calc(14px + env(safe-area-inset-top));
    background:linear-gradient(120deg,#0f3d2c,#15653f);
  }
  .header_iner .notification_wrapper ul li .notification_area .ipm-ntf-top h4{
    flex:1 1 auto;margin:0;
    color:#fff;font-size:16.5px;font-weight:700;
  }
  .header_iner .notification_wrapper ul li .notification_area .ipm-ntf-close{
    flex:0 0 auto;width:36px;height:36px;border-radius:50%;
    border:0;background:rgba(255,255,255,.14);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:15px;
    -webkit-tap-highlight-color:transparent;
  }
  .header_iner .notification_wrapper ul li .notification_area .ipm-ntf-close:active{transform:scale(.92)}
  .header_iner .notification_wrapper ul li .notification_area .notification_body{
    flex:1 1 auto;
    height:auto !important;max-height:none !important;
    overflow-y:auto !important;
    padding:14px 14px 20px !important;
  }
  .header_iner .notification_wrapper ul li .notification_area .notification_body .single_nofy{
    display:flex;align-items:flex-start;gap:12px;
    background:#fff;border:1px solid #eee9dc;border-radius:14px;
    padding:13px 14px !important;margin-bottom:8px;
    text-decoration:none !important;
  }
  .header_iner .notification_wrapper ul li .notification_area .notification_body .single_nofy.unread_notification{
    background:#f0f7f1;border-color:#cfe3d2;
  }
  .header_iner .notification_wrapper ul li .notification_area .notification_body .single_nofy:active{transform:scale(.985)}
  .header_iner .notification_wrapper ul li .notification_area .notyfy_content h4{
    font-size:13.5px !important;line-height:1.5 !important;color:#14261d !important;
    font-weight:600 !important;margin:0 0 3px !important;word-break:break-word;
  }
  .header_iner .notification_wrapper ul li .notification_area .notyfy_content p{
    font-size:11.5px !important;color:#15653f !important;font-weight:600;margin:0 !important;
  }
  .header_iner .notification_wrapper ul li .notification_area .notification_footer{
    flex:0 0 auto;
    background:#fff;border-top:1px solid #eee9dc;
    padding:10px 6px calc(10px + env(safe-area-inset-bottom)) !important;
  }
  .header_iner .notification_wrapper ul li .notification_area .notification_footer a{
    font-size:13px !important;font-weight:700 !important;color:#15653f !important;
    text-align:center;
  }
}

/* ============================================================
   BATCH-27
   1. Drawer: avatar sat under the fixed header - push content
      below it (this was the real clip, not the circle sizing).
   2. Bell sheet: kill the dropdown's pointer triangle.
   3. Leaderboard (widget + modal + badge popup): app-style rows,
      medal top-3, clean tabs, badge grid.
   ============================================================ */
@media (max-width: 991.98px){
  nav.sidebar{padding-top:72px !important}
  .sidebar .sidebar_iner{height:auto !important;max-height:calc(100dvh - 72px) !important}
}

/* the little polygon/triangle the theme draws above the dropdown */
.header_iner .notification_wrapper ul li .notification_area::before,
.header_iner .notification_wrapper ul li .notification_area::after,
.header_iner .notification_wrapper ul li .notification_area .notification_body::before,
.header_iner .notification_wrapper ul li .notification_area .notification_body::after{
  display:none !important;
  content:none !important;
}

/* ---- leaderboard rows (reward page widget + View-all modal) ---- */
.reward-leader-content > ul,
.point-table .reward-leader-content ul{
  display:flex;flex-direction:column;gap:8px;
  list-style:none;margin:0;padding:0;
}
.reward-leader-content ul > li.position-relative{
  background:#faf8f1;
  border:1px solid #eee9dc;
  border-radius:14px;
  padding:9px 12px;
  margin:0 !important;
  align-items:center;
}
.reward-leader-content .reward-leader-item{flex:1 1 auto;min-width:0;gap:10px}
.reward-leader-content .reward-leader-profile{display:flex;align-items:center;gap:10px;min-width:0}
.reward-leader-content .reward-leader-profile .img img{
  width:38px !important;height:38px !important;
  border-radius:50% !important;object-fit:cover;
  border:2px solid #fff;
  box-shadow:0 2px 8px -3px rgba(15,61,44,.4);
}
.reward-leader-content .reward-leader-profile .content p{
  font-size:12.5px !important;font-weight:700 !important;color:#1a2b20 !important;
  margin:0 !important;line-height:1.3 !important;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
  word-break:break-all;
}
.reward-leader-content .reward-leader-item > .reward-leader-content{
  flex:0 0 auto;text-align:right;
}
.reward-leader-content .reward-leader-item > .reward-leader-content h4{
  font-size:14px !important;font-weight:800 !important;color:#15653f !important;
  margin:0 !important;line-height:1.2 !important;
}
.reward-leader-content .reward-leader-item > .reward-leader-content p{
  font-size:10px !important;font-weight:600;color:#98a094 !important;margin:0 !important;
}
/* rank chip: medal colors for 1-2-3, quiet for the rest */
.reward-leader-position{
  position:static !important;
  flex:0 0 auto;
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#eef0ea;color:#7d8779;
  font-size:11.5px;font-weight:800;
  order:-1;margin-right:2px;
}
.reward-leader-position.one{
  background:linear-gradient(135deg,#f4d23f,#d4a437);color:#3d2c05;
  box-shadow:0 3px 10px -3px rgba(212,164,55,.7);
}
.reward-leader-position.two{
  background:linear-gradient(135deg,#e8e8e8,#bdbdbd);color:#4a4a4a;
}
.reward-leader-position.three{
  background:linear-gradient(135deg,#e8b27d,#c07c3c);color:#4a2c0d;
}
/* leaderboard tab strip */
.reward-leader .nav{gap:6px;border:0 !important;flex-wrap:wrap;margin-bottom:12px}
.reward-leader .nav .nav-link{
  border:1px solid #e2ddcf !important;border-radius:30px !important;
  background:#fff !important;color:#5a6a60 !important;
  font-size:11.5px !important;font-weight:700 !important;
  padding:7px 13px !important;line-height:1 !important;
  -webkit-tap-highlight-color:transparent;
}
.reward-leader .nav .nav-link.active{
  background:linear-gradient(120deg,#0f3d2c,#15653f) !important;
  border-color:#0f3d2c !important;color:#fff !important;
}
/* badge popup grid inside the modal */
.point-table .point-table-inner{gap:10px;padding:6px 0 2px}
.point-table .point-table-inner .badge-img{
  width:52px;height:52px;object-fit:contain;
  background:#faf8f1;border:1px solid #eee9dc;border-radius:14px;
  padding:7px;
}
/* "how to collect points / level up" lists */
.point-table > ul{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:7px}
.point-table > ul li{
  background:#faf8f1;border:1px solid #eee9dc;border-radius:12px;
  padding:10px 13px;font-size:12.5px;font-weight:600;color:#33413a;line-height:1.5;
}

/* ============================================================
   BATCH-28
   1. Drawer: no logo band inside (main header already has one);
      close X floats on its own.
   2. Header profile menu -> full-screen app sheet (mobile), rows
      with icons injected by ipm-app.js.
   3. Mini-cart offcanvas: card rows + stacked full-width buttons
      (they used to overlap the divider line).
   4. Guest cart page: mobile spacing/summary fixes.
   5. Profile page (mobile): app-style header, stat chips.
   6. Profile Settings: insta-style scrollable pill tabs + softer
      inputs on mobile.
   ============================================================ */
@media (max-width: 991.98px){
  /* 1 ── drawer logo band off; keep the close X floating */
  .sidebar .logo{
    background:none !important;border:0 !important;box-shadow:none !important;
    position:absolute !important;top:78px;right:10px;z-index:6;
    padding:0 !important;margin:0 !important;width:auto !important;height:auto !important;
  }
  .sidebar .logo a{display:none !important}
  .sidebar .logo .sidebar_close_icon{
    width:32px;height:32px;border-radius:50%;
    background:#eef0ea;color:#15653f;
    display:flex;align-items:center;justify-content:center;font-size:13px;
  }
  .sidebar .sidebar_iner{height:100% !important}

  /* 2 ── profile menu sheet */
  .header_iner .profile_info .profile_info_iner.collaps_part_content{
    position:fixed !important;
    top:0 !important;left:0 !important;right:0 !important;bottom:0 !important;
    width:100vw !important;height:100dvh !important;max-height:none !important;
    transform:none !important;margin:0 !important;
    border-radius:0 !important;border:0 !important;
    background:#f6f1e5 !important;
    z-index:100000 !important;
    padding:0 14px calc(20px + env(safe-area-inset-bottom)) !important;
    overflow-y:auto !important;
    box-shadow:none !important;
    text-align:left !important;
  }
  .header_iner .profile_info .profile_info_iner .ipm-ps-top{
    display:flex;flex-direction:column;align-items:center;
    padding:calc(18px + env(safe-area-inset-top)) 0 18px;
    margin:0 -14px 14px;
    background:linear-gradient(120deg,#0f3d2c,#15653f);
    position:relative;
  }
  .header_iner .profile_info .profile_info_iner .ipm-ps-top img{
    width:66px;height:66px;border-radius:50%;object-fit:cover;
    border:3px solid rgba(244,210,63,.7);margin-bottom:9px;
  }
  .header_iner .profile_info .profile_info_iner .ipm-ps-top h4{
    color:#fff;font-size:15px;font-weight:700;margin:0;
  }
  .header_iner .profile_info .profile_info_iner .ipm-ps-close{
    position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;
    width:34px;height:34px;border-radius:50%;border:0;
    background:rgba(255,255,255,.14);color:#fff;font-size:14px;
    display:flex;align-items:center;justify-content:center;
    -webkit-tap-highlight-color:transparent;
  }
  .header_iner .profile_info .profile_info_iner > a{
    display:flex !important;align-items:center;gap:12px;
    background:#fff;border:1px solid #eee9dc;border-radius:14px;
    padding:14px !important;margin:0 0 8px !important;
    font-size:13.5px !important;font-weight:700 !important;color:#14261d !important;
    text-decoration:none !important;
    -webkit-tap-highlight-color:transparent;
  }
  .header_iner .profile_info .profile_info_iner > a:active{transform:scale(.985)}
  .header_iner .profile_info .profile_info_iner > a > i:first-child{
    flex:0 0 auto;width:34px;height:34px;border-radius:10px;
    background:#eef4ee;color:#15653f;
    display:flex;align-items:center;justify-content:center;font-size:14px;
  }
  .header_iner .profile_info .profile_info_iner > a .ipm-ps-arrow{
    margin-left:auto;color:#c4cabf;font-size:13px;
    width:auto;height:auto;background:none;
  }

  /* 5 ── profile page, app feel */
  .profile-wrapper{gap:14px}
  .profile-left{width:100%;flex-direction:column;text-align:center;gap:6px}
  .profile-left .profile-info{width:100%}
  .profile-left .profile-info h4{font-size:19px;margin-top:6px}
  .profile-right{width:100%}
  .profile-right ul{
    display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
    margin:0;padding:0;list-style:none;
  }
  .profile-right ul li{
    background:#fff;border:1px solid #eee9dc;border-radius:14px;
    padding:12px 10px !important;margin:0 !important;
    font-size:12px !important;font-weight:700;color:#33413a;
    display:flex;align-items:center;gap:8px;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.35);
  }
  .profile-right ul li svg{width:20px;height:20px;flex:0 0 auto;color:#15653f}
  .profile-right ul li.ipm-profile-program{
    grid-column:1 / -1;
    background:linear-gradient(120deg,#0f3d2c,#15653f);
    border:0;color:#fff;font-size:12.5px !important;
  }
  .profile-right ul li.ipm-profile-program i{color:#f4d23f}
  .profile .nav-pills{
    flex-wrap:nowrap !important;overflow-x:auto;gap:6px;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;
  }
  .profile .nav-pills::-webkit-scrollbar{display:none}
  .profile .nav-pills .nav-link{
    white-space:nowrap;border-radius:30px !important;
    font-size:12.5px !important;font-weight:700 !important;padding:8px 15px !important;
  }

  /* 6 ── settings: insta-style pill tabs + soft fields */
  .dashboard_part .profile ul.nav-tabs{
    flex-wrap:nowrap !important;overflow-x:auto;gap:6px;border:0 !important;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    padding:2px 2px 8px;margin:0 0 4px !important;
  }
  .dashboard_part .profile ul.nav-tabs::-webkit-scrollbar{display:none}
  .dashboard_part .profile ul.nav-tabs .nav-link{
    white-space:nowrap;
    border:1px solid #e2ddcf !important;border-radius:30px !important;
    background:#fff !important;color:#5a6a60 !important;
    font-size:12px !important;font-weight:700 !important;
    padding:8px 14px !important;line-height:1 !important;
  }
  .dashboard_part .profile ul.nav-tabs .nav-link.active{
    background:linear-gradient(120deg,#0f3d2c,#15653f) !important;
    border-color:#0f3d2c !important;color:#fff !important;
  }
  .dashboard_part .white-box .primary_input,
  .dashboard_part .white-box input.primary_input,
  .dashboard_part .white-box select,
  .dashboard_part .white-box textarea{
    border-radius:12px !important;
    border:1px solid #ddd6c1 !important;
    min-height:44px;
    font-size:13.5px !important;
  }
  .dashboard_part .white-box .primary_label2,
  .dashboard_part .white-box label{
    font-size:12px !important;font-weight:700 !important;color:#5a6a60 !important;
  }
  .dashboard_part .white-box .theme_btn{
    border-radius:12px !important;font-weight:800 !important;
  }
}

/* 3 ── mini-cart offcanvas (all widths - it's a narrow panel anyway) */
.shoping_wrapper .shoping_cart .single_cart{
  background:#fff;border:1px solid #eee9dc;border-radius:14px;
  padding:10px !important;margin-bottom:8px;
  display:flex;align-items:center;gap:10px;
}
.shoping_wrapper .shoping_cart .single_cart .thumb{
  flex:0 0 auto;width:56px;height:44px;border-radius:10px;
  background-size:cover;background-position:center;background-color:#eef4ee;
}
.shoping_wrapper .shoping_cart .single_cart .cart_content{flex:1 1 auto;min-width:0}
.shoping_wrapper .shoping_cart .single_cart .cart_content h5{
  font-size:12.5px !important;font-weight:700 !important;color:#1a2b20 !important;
  margin:0 0 3px !important;line-height:1.35 !important;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.shoping_wrapper .shoping_cart .single_cart .prise{
  font-size:12.5px !important;font-weight:800 !important;color:#15653f !important;
}
.shoping_wrapper .shoping_cart .remove_cart{
  flex:0 0 auto;width:30px;height:30px;border-radius:50%;
  background:#fdf1f1;border:1px solid #eecfcf;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.shoping_wrapper .shoping_cart .remove_cart svg path{fill:#b84848 !important}
.shoping_wrapper .view_checkout_btn{
  flex-direction:column !important;gap:8px !important;
  border:0 !important;padding-top:6px;
}
.shoping_wrapper .view_checkout_btn .theme_btn{
  width:100% !important;flex:0 0 auto !important;
  border-radius:12px !important;
  font-size:13px !important;font-weight:800 !important;
  padding:12px 10px !important;line-height:1.2 !important;
  border:0 !important;
}
.shoping_wrapper .view_checkout_btn .theme_btn:last-child{
  background:linear-gradient(120deg,#d4a437,#f4d23f) !important;
  color:#0f3d2c !important;
}

/* 4 ── guest cart page, phones */
@media (max-width: 767.98px){
  .cart_wrapper .cart-table .row > [class*="col-"]{width:100%}
  .cart_wrapper .cart-summery{margin-top:16px;border-radius:16px}
  .cart_wrapper .cart-summery .theme_btn.checkout{
    display:flex;align-items:center;justify-content:center;
    width:100%;border-radius:12px !important;font-weight:800 !important;
  }
  .cart_wrapper tfoot .d-flex{gap:10px;flex-wrap:wrap}
}

/* ============================================================
   BATCH-29
   1. Invoice page: real invoice look on phones - the Order List
      keeps true table layout in a side-scrolling card, layout
      tables stay flattened, headings become section labels.
   2. Reward pagination: green pills, real spacing, no theme
      purple anywhere.
   3. Leaderboard View-all modal: full sheet with sticky header
      above the navbar; single scroll, no row overlap.
   4. Drawer close X: one clean circle (theme was drawing its own
      shadow circle behind the icon).
   ============================================================ */

/* ---- 1. invoice ---- */
@media (max-width: 767.98px){
  /* the data table goes back to being a real table that scrolls
     inside the card - flattened it read as a broken jumble */
  .invoice_part_iner table.custom_table3{
    display:block !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
    width:100% !important;
    border:1px solid #eee9dc;border-radius:12px;
  }
  .invoice_part_iner table.custom_table3 thead{display:table-header-group !important;width:auto !important}
  .invoice_part_iner table.custom_table3 tbody{display:table-row-group !important;width:auto !important}
  .invoice_part_iner table.custom_table3 tr{display:table-row !important;width:auto !important}
  .invoice_part_iner table.custom_table3 th,
  .invoice_part_iner table.custom_table3 td{
    display:table-cell !important;
    width:auto !important;
    white-space:nowrap;
    font-size:12px !important;
    padding:9px 10px !important;
    vertical-align:middle;
  }
  .invoice_part_iner table.custom_table3 thead th{
    font-size:10px !important;
    letter-spacing:.8px;text-transform:uppercase;
    color:#98a094 !important;background:#faf8f1;
  }
  .invoice_part_iner table.custom_table3 h5{
    font-size:12.5px !important;margin:0 !important;white-space:normal;min-width:140px;
  }
  /* right-aligned print styles pull flattened rows apart on screen */
  .invoice_part_iner .text_alignment{text-align:left !important}
  .invoice_part_iner table.custom_table3 td.text_alignment,
  .invoice_part_iner table.custom_table3 td.text-end{text-align:right !important}

  /* section labels: Billed To / Order List read as invoice sections */
  .invoice_part_iner h2.black_color,
  .invoice_part_iner h4.black_color{
    font-size:11px !important;
    font-weight:800 !important;
    letter-spacing:1.4px;text-transform:uppercase;
    color:#98a094 !important;
    border-top:1px dashed #e5ddc8;
    padding-top:14px;margin:16px 0 10px !important;
  }
  .invoice_part_iner .invoice_no{
    display:inline-block;
    background:#eef4ee;color:#15653f !important;
    font-size:13px !important;font-weight:800 !important;
    border-radius:30px;padding:7px 14px;margin-top:10px;
  }
  .invoice_part_iner .invoice_grid{
    grid-template-columns:96px auto !important;
    grid-gap:10px !important;
    padding:3px 0;
  }
}

/* ---- 2. reward pagination (and anywhere _new_pagination renders) ---- */
.dashboard_part .reward-paginations{
  margin-top:20px !important;
  padding-top:14px !important;
  border-top:1px solid #eee9dc;
}
.dashboard_part .reward-paginations p{
  font-size:12px !important;color:#98a094 !important;margin:0 !important;
}
.dashboard_part .reward-paginations .paginations{
  display:flex;align-items:center;gap:7px;
  list-style:none;margin:0;padding:0;flex-wrap:wrap;
}
.dashboard_part .reward-paginations .paginations-list{margin:0 !important}
.dashboard_part .reward-paginations .paginations-links{
  width:38px !important;height:38px !important;min-width:38px !important;
  border-radius:50% !important;
  display:flex !important;align-items:center;justify-content:center;
  background:#fff !important;
  border:1px solid #e2ddcf !important;
  color:#5a6a60 !important;
  font-size:12.5px !important;font-weight:800 !important;
  text-decoration:none !important;
  -webkit-tap-highlight-color:transparent;
}
.dashboard_part .reward-paginations .paginations-links:active{transform:scale(.92)}
.dashboard_part .reward-paginations .paginations-links.active{
  background:linear-gradient(120deg,#0f3d2c,#15653f) !important;
  border-color:#0f3d2c !important;
  color:#fff !important;
  box-shadow:0 4px 12px -5px rgba(15,61,44,.6);
}
.dashboard_part .reward-paginations .paginations-list.disabled .paginations-links{opacity:.35}
.dashboard_part .reward-paginations .paginations-links img{width:12px}

/* ---- 3. leaderboard View-all sheet ---- */
@media (max-width: 991.98px){
  #myLeaderBoard{
    z-index:100001 !important;
    padding:0 !important;
  }
  #myLeaderBoard + .modal-backdrop,
  .modal-backdrop.show{z-index:100000 !important}
  #myLeaderBoard .modal-dialog{
    margin:0 !important;max-width:100vw !important;width:100vw !important;
    height:100dvh !important;
  }
  #myLeaderBoard .modal-content{
    height:100dvh !important;
    border:0 !important;border-radius:0 !important;
    background:#f6f1e5 !important;
    display:flex !important;flex-direction:column !important;
    overflow:hidden !important;
  }
  #myLeaderBoard .modal-header{
    position:sticky;top:0;z-index:10;
    flex:0 0 auto;
    background:linear-gradient(120deg,#0f3d2c,#15653f) !important;
    border:0 !important;border-radius:0 !important;
    padding:calc(12px + env(safe-area-inset-top)) 14px 12px !important;
  }
  #myLeaderBoard .modal-header .modal-title,
  #myLeaderBoard .modal-header h5{color:#fff !important;font-size:16px !important;font-weight:700 !important}
  #myLeaderBoard .modal-header .ipm-levels-explainer{color:#f4d23f !important}
  #myLeaderBoard .modal-header .btn-close,
  #myLeaderBoard .modal-header .close{
    background-color:rgba(255,255,255,.14) !important;
    border-radius:50%;width:34px;height:34px;
    opacity:1 !important;
    filter:invert(1) grayscale(1) brightness(1.6);
  }
  #myLeaderBoard .modal-body{
    flex:1 1 auto !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    padding:14px 14px calc(20px + env(safe-area-inset-bottom)) !important;
  }
  /* one scroll only - the inner body must never scroll on its own,
     that's what made rows slide over the boxes */
  #myLeaderBoard .point-table-body{
    overflow:visible !important;
    max-height:none !important;
    height:auto !important;
  }
  #myLeaderBoard .nav-tabs,
  #myLeaderBoard .nav{
    position:sticky;top:0;z-index:5;
    background:#f6f1e5;
    padding:4px 0 8px;margin:0 0 8px !important;
  }
}

/* ---- 4. drawer close X: single clean circle ---- */
.sidebar .logo .sidebar_close_icon{
  width:34px !important;height:34px !important;
  border-radius:50% !important;
  background:#fff !important;
  border:1px solid #e2ddcf !important;
  box-shadow:0 4px 12px -6px rgba(15,61,44,.35) !important;
  display:flex !important;align-items:center;justify-content:center;
  padding:0 !important;margin:0 !important;
  -webkit-tap-highlight-color:transparent;
}
.sidebar .logo .sidebar_close_icon i{
  font-size:12px !important;
  line-height:1 !important;
  color:#15653f !important;
  background:none !important;
  box-shadow:none !important;
  border:0 !important;
  width:auto !important;height:auto !important;
  margin:0 !important;padding:0 !important;
  display:block !important;
}
.sidebar .logo .sidebar_close_icon:active{transform:scale(.92)}

/* ============================================================
   BATCH-30
   1. Sidebar identity: compact premium row (46px avatar + name +
      gold level chip + small badges) instead of the tall stack.
   2. Drawer close X: single pinned circle (node moved onto the
      drawer root by ipm-app.js).
   3. Reward page: game-HUD stat tiles (deep green + gold numbers).
   4. Leaderboard: game podium for top-3, flattened sheet (no box
      in box), explainer link out of the modal header.
   5. Profile page (mobile): white identity card + dark text (the
      theme's white-on-cover text was invisible after stacking).
   ============================================================ */

/* ---- 1. compact sidebar identity (all widths) ---- */
.sidebar .sidebar-user.ipm-su{
  padding:14px 14px 10px !important;
  text-align:left !important;
}
.ipm-su-row{display:flex;align-items:center;gap:11px}
.sidebar .ipm-su .sidebar-profile{
  --width:46px !important;
  width:46px !important;height:46px !important;
  padding:2px !important;margin:0 !important;
  flex:0 0 auto;
}
.ipm-su-info{flex:1 1 auto;min-width:0}
.sidebar .ipm-su h4{
  font-size:14px !important;font-weight:700 !important;
  margin:0 0 4px !important;line-height:1.2 !important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ipm-su-level{
  display:inline-flex;align-items:center;gap:5px;
  background:linear-gradient(120deg,rgba(212,164,55,.14),rgba(244,210,63,.22));
  border:1px solid rgba(212,164,55,.45);
  color:#8a6a14;
  font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;
  padding:3px 9px;border-radius:20px;
  white-space:nowrap;
}
.ipm-su-level i{font-size:9px;color:#d4a437}
.ipm-su-group{font-size:10.5px;color:#98a094;margin:4px 0 0 !important}
.sidebar .ipm-su .sidebar-badge{
  display:flex;gap:5px;margin-top:9px;flex-wrap:wrap;justify-content:flex-start;
}
.sidebar .ipm-su .sidebar-badge .sidebar-badge-list{
  width:24px !important;height:24px !important;margin:0 !important;padding:0 !important;
}
.sidebar .ipm-su .sidebar-badge .sidebar-badge-list img{
  width:100% !important;height:100% !important;object-fit:contain;
}

/* ---- 2. drawer close X ---- */
@media (max-width: 991.98px){
  .sidebar .logo{display:none !important}
  .ipm-drawer-x{
    position:absolute !important;
    top:14px !important;right:12px !important;
    width:30px !important;height:30px !important;
    border-radius:50% !important;
    background:#eef0ea !important;
    border:0 !important;box-shadow:none !important;
    display:flex !important;align-items:center;justify-content:center;
    z-index:8;padding:0 !important;margin:0 !important;
    -webkit-tap-highlight-color:transparent;
  }
  .ipm-drawer-x i{
    font-size:11px !important;line-height:1 !important;
    color:#15653f !important;
    background:none !important;box-shadow:none !important;border:0 !important;
    width:auto !important;height:auto !important;margin:0 !important;padding:0 !important;
    display:block !important;
  }
  .ipm-drawer-x:active{transform:scale(.9)}
  /* logo band gone -> content starts right at the top of the drawer */
  nav.sidebar{padding-top:60px !important}
}

/* ---- 3. reward page: game HUD tiles (phones) ---- */
@media (max-width: 991.98px){
  .reward_page .ipm-col-half .reward-card{
    background:transparent !important;border:0 !important;
    box-shadow:none !important;padding:0 !important;
  }
  .reward_page .reward-card-points{
    background:
      radial-gradient(120% 160% at 90% 0%, rgba(212,164,55,.18) 0%, transparent 55%),
      linear-gradient(135deg,#15653f 0%,#0d3626 100%) !important;
    border-radius:16px;
    padding:13px 12px !important;
    gap:10px;
    box-shadow:0 8px 20px -12px rgba(15,61,44,.7);
  }
  .reward_page .reward-card-points .img{
    flex:0 0 auto;width:40px;height:40px;
    background:rgba(212,164,55,.18);
    border:1px solid rgba(212,164,55,.35);
    border-radius:12px;
    display:flex;align-items:center;justify-content:center;
    padding:6px;margin:0 !important;
  }
  .reward_page .reward-card-points .img img{width:100%;height:auto}
  .reward_page .reward-card-points .content h4{
    color:#f4d23f !important;font-size:20px !important;font-weight:800 !important;
    margin:0 !important;letter-spacing:-.3px;
  }
  .reward_page .reward-card-points .content p{
    color:rgba(255,255,255,.7) !important;
    font-size:10.5px !important;font-weight:600 !important;
    margin:2px 0 0 !important;line-height:1.3 !important;
  }
  .reward_page .reward-blance .theme_btn{
    background:linear-gradient(120deg,#d4a437,#f4d23f) !important;
    color:#0f3d2c !important;font-weight:800 !important;border:0 !important;
  }
}

/* ---- 4. leaderboard podium + flat sheet ---- */
.ipm-lb-podium{
  display:flex;align-items:flex-end;justify-content:center;gap:10px;
  padding:16px 4px 0;margin-bottom:14px;
}
.ipm-lb-pod{
  flex:1 1 0;max-width:112px;min-width:0;
  display:flex;flex-direction:column;align-items:center;
  -webkit-tap-highlight-color:transparent;
}
.ipm-lb-pod-img{
  border-radius:50%;overflow:hidden;background:#fff;
  border:3px solid #c9c9c9;
  box-shadow:0 6px 16px -8px rgba(15,61,44,.6);
}
.ipm-lb-pod--1 .ipm-lb-pod-img{width:66px;height:66px;border-color:#f4d23f}
.ipm-lb-pod--2 .ipm-lb-pod-img{width:52px;height:52px}
.ipm-lb-pod--3 .ipm-lb-pod-img{width:52px;height:52px;border-color:#c07c3c}
.ipm-lb-pod-img img{width:100%;height:100%;object-fit:cover;display:block}
.ipm-lb-crown{
  color:#d4a437;font-size:16px;margin-bottom:4px;
  animation:ipmCrown 2.4s cubic-bezier(.22,.61,.36,1) infinite;
}
@keyframes ipmCrown{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.ipm-lb-pod-name{
  font-size:11px;font-weight:700;color:#1a2b20;margin-top:6px;
  max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ipm-lb-pod-val{
  font-size:10.5px;font-weight:800;color:#15653f;
  background:#eef4ee;border-radius:20px;padding:2px 9px;margin-top:3px;
  white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;
}
.ipm-lb-pod-base{
  width:100%;margin-top:8px;
  border-radius:10px 10px 0 0;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:800;font-size:15px;
}
.ipm-lb-pod--1 .ipm-lb-pod-base{height:54px;background:linear-gradient(180deg,#d4a437,#a9781a)}
.ipm-lb-pod--2 .ipm-lb-pod-base{height:40px;background:linear-gradient(180deg,#9aa39c,#6e776f)}
.ipm-lb-pod--3 .ipm-lb-pod-base{height:32px;background:linear-gradient(180deg,#c07c3c,#8a4f1d)}
@media (prefers-reduced-motion: reduce){.ipm-lb-crown{animation:none}}

/* the sheet is the box - nothing inside it needs its own box */
#myLeaderBoard .point-table,
#myLeaderBoard .point-table-body{
  background:transparent !important;border:0 !important;
  box-shadow:none !important;padding:0 !important;margin:0 !important;
}
/* the explainer lives under the list now, never in the header */
#myLeaderBoard .modal-header .ipm-levels-explainer{display:none !important}

/* ---- 5. profile page text rescue (phones) ---- */
@media (max-width: 991.98px){
  .profile .profile-wrapper{
    background:#fff !important;
    border:1px solid #eee9dc;border-radius:16px;
    padding:16px 14px !important;
    margin-top:-28px;position:relative;z-index:2;
    box-shadow:0 8px 24px -18px rgba(15,61,44,.5);
  }
  .profile .profile-wrapper h4,
  .profile .profile-info h4{color:#14261d !important}
  .profile .profile-wrapper p,
  .profile .profile-info p{color:#5a6a60 !important}
  .profile .profile-info blockquote,
  .profile .profile-info blockquote span{color:#14261d !important}
  .profile .profile-left .profile-img p{color:#5a6a60 !important}
  .profile .profile-wrapper a:not(.theme_btn){color:#15653f}
}

/* ============================================================
   BATCH-31
   1. Drawer identity -> its own rounded green banner CARD with
      margins on every side, so nothing can ever clip against the
      drawer edge again. Gold-ring avatar, white name, gold level
      chip, badges on the banner.
   2. Leaderboard rows: the <li> is the ONLY box - the theme's
      inner .reward-leader-item box is flattened everywhere.
   3. View-all sheet: every wrapper transparent + a slim branded
      scrollbar instead of the fat default one.
   ============================================================ */

/* ---- 1. identity banner (all widths) ---- */
.sidebar .sidebar-user.ipm-su{
  margin:0 10px 10px !important;
  padding:14px !important;
  background:
    radial-gradient(120% 160% at 90% 0%, rgba(212,164,55,.18) 0%, transparent 55%),
    linear-gradient(120deg,#0f3d2c,#15653f) !important;
  border-radius:16px !important;
  text-align:left !important;
  box-shadow:0 8px 20px -12px rgba(15,61,44,.6);
  overflow:hidden;
}
.sidebar .ipm-su .sidebar-profile{
  --width:48px !important;
  width:48px !important;height:48px !important;
  padding:2px !important;margin:0 !important;
  border:2px solid rgba(244,210,63,.85) !important;
  background:#fff;
  flex:0 0 auto;
  overflow:hidden;
}
.sidebar .ipm-su h4{
  color:#fff !important;
  font-size:14px !important;font-weight:700 !important;
  margin:0 0 4px !important;line-height:1.2 !important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sidebar .ipm-su .ipm-su-level{
  background:rgba(244,210,63,.16);
  border-color:rgba(244,210,63,.5);
  color:#f4d23f;
}
.sidebar .ipm-su .ipm-su-level i{color:#f4d23f}
.sidebar .ipm-su .ipm-su-group{color:rgba(255,255,255,.6)}
.sidebar .ipm-su .sidebar-badge{margin-top:10px}
.sidebar .ipm-su .sidebar-badge .sidebar-badge-list{
  background:rgba(255,255,255,.1);
  border-radius:7px;padding:2px !important;
}

@media (max-width: 991.98px){
  /* clear the fixed header fully, then the banner card starts */
  nav.sidebar{padding-top:78px !important}
  /* close X sits on the banner's top-right corner, ghost-white */
  .ipm-drawer-x{
    top:88px !important;right:22px !important;
    background:rgba(255,255,255,.16) !important;
    z-index:9;
  }
  .ipm-drawer-x i{color:#fff !important}
}

/* ---- 2. one box per row, everywhere the leaderboard renders ---- */
.reward-leader-content ul > li .reward-leader-item{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
}
.reward-leader-content ul > li .reward-leader-item .img,
.reward-leader-content ul > li .reward-leader-item .content{
  background:transparent !important;
  box-shadow:none !important;
}

/* ---- 3. sheet: no leftover white panels + slim scrollbar ---- */
@media (max-width: 991.98px){
  #myLeaderBoard .modal-body,
  #myLeaderBoard .modal-body > div,
  #myLeaderBoard .tab-content,
  #myLeaderBoard .tab-pane,
  #myLeaderBoard .reward-leader,
  #myLeaderBoard .reward-leader-content{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
  }
  #myLeaderBoard .modal-body{
    scrollbar-width:thin;
    scrollbar-color:rgba(21,101,63,.35) transparent;
  }
  #myLeaderBoard .modal-body::-webkit-scrollbar{width:4px}
  #myLeaderBoard .modal-body::-webkit-scrollbar-track{background:transparent}
  #myLeaderBoard .modal-body::-webkit-scrollbar-thumb{
    background:rgba(21,101,63,.35);
    border-radius:4px;
  }
  /* the inner list must never grow its own scroller */
  #myLeaderBoard .point-table-body,
  #myLeaderBoard .reward-leader-content{
    overflow:visible !important;
    max-height:none !important;height:auto !important;
  }
}

/* podium avatars: white ground behind transparent/partial images */
.ipm-lb-pod-img{background:#fff !important}
.ipm-lb-pod-img img{background:#fff}

/* ============================================================
   BATCH-32
   1. Drawer rides ABOVE the navbar (full-height overlay, app
      style). Identity banner is the first thing at the top, and
      the close X lives INSIDE the banner (moved there by
      ipm-app.js) so circle + icon are always one piece.
   2. Leaderboard rows: right side is one gold score pill with a
      tiny label - no more loose number + floating label + dead
      space. Game-style polish everywhere.
   ============================================================ */

/* ---- 1. drawer over the navbar ---- */
@media (max-width: 991.98px){
  nav.sidebar{
    z-index:100005 !important;
    top:0 !important;
    height:100dvh !important;
    min-height:100dvh !important;
    padding-top:calc(10px + env(safe-area-inset-top)) !important;
    border-radius:0 20px 20px 0 !important;
    box-shadow:24px 0 60px -20px rgba(9,32,22,.6) !important;
  }
  .sidebar .sidebar_iner{
    height:100% !important;
    max-height:none !important;
    overflow-y:auto !important;
    padding-bottom:130px !important;
    scrollbar-width:thin;
    scrollbar-color:rgba(21,101,63,.3) transparent;
  }
  .sidebar .sidebar_iner::-webkit-scrollbar{width:4px}
  .sidebar .sidebar_iner::-webkit-scrollbar-track{background:transparent}
  .sidebar .sidebar_iner::-webkit-scrollbar-thumb{background:rgba(21,101,63,.3);border-radius:4px}

  /* X pinned to the banner itself */
  .sidebar .sidebar-user.ipm-su{position:relative}
  .ipm-drawer-x{
    position:absolute !important;
    top:10px !important;right:10px !important;left:auto !important;
    width:28px !important;height:28px !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.16) !important;
    border:0 !important;box-shadow:none !important;
    display:flex !important;align-items:center !important;justify-content:center !important;
    z-index:5;padding:0 !important;margin:0 !important;
    -webkit-tap-highlight-color:transparent;
  }
  .ipm-drawer-x i{
    font-size:11px !important;line-height:1 !important;
    color:#fff !important;
    background:none !important;box-shadow:none !important;border:0 !important;
    width:auto !important;height:auto !important;
    margin:0 !important;padding:0 !important;
    display:block !important;
  }
  .ipm-drawer-x:active{transform:scale(.9)}
  /* room for the X so the name never runs under it */
  .sidebar .ipm-su h4{padding-right:30px}
}

/* ---- 2. leaderboard rows: score pill, zero dead space ---- */
.reward-leader-content ul > li.position-relative{
  padding:10px 12px !important;
  gap:10px !important;
  align-items:center !important;
  transition:transform .15s cubic-bezier(.22,.61,.36,1);
}
.reward-leader-content ul > li.position-relative:active{transform:scale(.985)}
.reward-leader-content ul > li .reward-leader-item{
  gap:10px !important;
  width:auto !important;
  flex:1 1 auto !important;
  min-width:0 !important;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content{
  flex:0 0 auto !important;
  width:auto !important;min-width:0 !important;
  display:flex !important;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  text-align:right;
  margin:0 !important;padding:0 !important;
}
/* the score itself: one gold-on-green pill */
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content h4{
  display:inline-flex !important;
  align-items:center;
  background:linear-gradient(120deg,#0f3d2c,#15653f) !important;
  color:#f4d23f !important;
  font-size:12.5px !important;font-weight:800 !important;
  line-height:1 !important;
  padding:6px 12px !important;
  border-radius:20px !important;
  margin:0 !important;
  white-space:nowrap;
  box-shadow:0 3px 10px -5px rgba(15,61,44,.7);
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content p{
  font-size:9px !important;font-weight:800 !important;
  letter-spacing:.8px;text-transform:uppercase;
  color:#a3ab9d !important;
  margin:0 !important;line-height:1 !important;
}
/* names: allow two lines instead of chopping */
.reward-leader-content ul > li .reward-leader-profile .content p{
  white-space:normal !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  word-break:break-word !important;
  line-height:1.3 !important;
}

/* podium: names wrap to 2 lines, #1 score pill goes full gold */
.ipm-lb-pod-name{
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:clip;
  text-align:center;
  line-height:1.25;
}
.ipm-lb-pod--1 .ipm-lb-pod-val{
  background:linear-gradient(120deg,#d4a437,#f4d23f);
  color:#3d2c05;
  box-shadow:0 3px 10px -4px rgba(212,164,55,.8);
}

/* ============================================================
   BATCH-33
   1. Drawer X: the theme's ti-close glyph kept escaping its
      circle (own positioning rules) - drop the icon entirely and
      paint the glyph on the circle itself with a FontAwesome
      ::after. One element, one glyph, mathematically centered.
   2. Leaderboard score chips: dark-pill-with-gold-text was
      unreadable at that size. Now a light gold chip with deep
      ink text - premium, readable, game-like.
   ============================================================ */

/* ---- 1. the X ---- */
@media (max-width: 991.98px){
  .ipm-drawer-x i{display:none !important}
  .ipm-drawer-x::after{
    content:"\f00d";
    font-family:"Font Awesome 5 Free","FontAwesome";
    font-weight:900;
    font-size:12px;
    line-height:1;
    color:#fff;
  }
}

/* ---- 2. score chips ---- */
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content h4{
  background:linear-gradient(120deg,rgba(212,164,55,.16),rgba(244,210,63,.28)) !important;
  border:1px solid rgba(212,164,55,.55) !important;
  color:#6b4e0d !important;
  font-size:14px !important;font-weight:800 !important;
  padding:7px 14px !important;
  border-radius:12px !important;
  box-shadow:0 2px 8px -4px rgba(212,164,55,.6);
  min-width:44px;
  justify-content:center;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content p{
  color:#b09155 !important;
  font-size:8.5px !important;
  letter-spacing:.7px;
}
/* rank chips: slightly bigger, medal look kept */
.reward-leader-position{
  width:30px !important;height:30px !important;
  font-size:12.5px !important;
  border-radius:10px !important;
}
/* row cards: a touch more premium */
.reward-leader-content ul > li.position-relative{
  background:#fff !important;
  border:1px solid #eee9dc !important;
  border-radius:16px !important;
  box-shadow:0 3px 14px -10px rgba(15,61,44,.4) !important;
}
/* podium value chips match the new readable style */
.ipm-lb-pod-val{
  background:linear-gradient(120deg,rgba(212,164,55,.16),rgba(244,210,63,.28));
  border:1px solid rgba(212,164,55,.55);
  color:#6b4e0d;
  font-size:11px;
  padding:3px 10px;
}
.ipm-lb-pod--1 .ipm-lb-pod-val{
  background:linear-gradient(120deg,#d4a437,#f4d23f);
  border:0;
  color:#3d2c05;
}

/* ============================================================
   BATCH-34 - leaderboard list goes full esports panel.
   ONE dark-green glass panel holds all the rows; rows are flat
   (no card borders, no chips-in-cards - zero box-in-box), split
   by hairlines. Rank plain bold (gold/silver/bronze for 1-3),
   white names, big gold score on the right. The podium sits on
   cream above it - the contrast IS the design.
   ============================================================ */
.reward-leader-content > ul{
  background:
    radial-gradient(140% 180% at 90% 0%, rgba(212,164,55,.14) 0%, transparent 55%),
    linear-gradient(160deg,#15653f 0%,#0d3626 60%,#071f14 100%) !important;
  border-radius:18px !important;
  padding:4px 2px !important;
  gap:0 !important;
  box-shadow:0 14px 34px -18px rgba(7,31,20,.8);
  overflow:hidden;
}
.reward-leader-content ul > li.position-relative{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:12px 14px !important;
  border-bottom:1px solid rgba(255,255,255,.07) !important;
}
.reward-leader-content ul > li.position-relative:last-child{border-bottom:0 !important}
.reward-leader-content ul > li.position-relative:active{transform:none;background:rgba(255,255,255,.05) !important}

/* rank: plain bold number, medal-colored for the top three */
.reward-leader-content ul > li .reward-leader-position{
  background:transparent !important;
  border:0 !important;box-shadow:none !important;
  width:26px !important;height:auto !important;
  min-width:26px;
  font-size:14px !important;font-weight:800 !important;
  color:rgba(255,255,255,.5) !important;
  border-radius:0 !important;
  justify-content:flex-start !important;
}
.reward-leader-content ul > li .reward-leader-position.one{color:#f4d23f !important}
.reward-leader-content ul > li .reward-leader-position.two{color:#d8d8d8 !important}
.reward-leader-content ul > li .reward-leader-position.three{color:#e08b4a !important}

/* avatar with a soft gold ring */
.reward-leader-content ul > li .reward-leader-profile .img img{
  width:36px !important;height:36px !important;
  border:2px solid rgba(244,210,63,.4) !important;
  box-shadow:none !important;
  background:#fff;
}

/* white names on the dark panel */
.reward-leader-content ul > li .reward-leader-profile .content p{
  color:#fff !important;
  font-size:12.5px !important;
}

/* score: no chip, no box - just a big gold number + whisper label */
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content h4{
  background:none !important;
  border:0 !important;box-shadow:none !important;
  color:#f4d23f !important;
  font-size:17px !important;font-weight:800 !important;
  padding:0 !important;
  letter-spacing:-.3px;
  min-width:0 !important;
  font-variant-numeric:tabular-nums;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content p{
  color:rgba(255,255,255,.45) !important;
  font-size:8px !important;
  letter-spacing:1px;
}

/* the badge-tab tap target keeps its affordance subtly */
.reward-leader-content ul > li .reward-click-btn{cursor:pointer}

/* ============================================================
   BATCH-35
   1. Profile sheet: theme paints the link text transparent/white
      - labels forced visible + rows polished.
   2. Drawer banner: badge tiles OFF (the stray blue circle) -
      the level chip carries the status.
   3. Leaderboard panel: real-DOM hardening. The theme's own
      .reward-leader-* rules (heights, paddings, dark h4 colors)
      made rows tower and scores unreadable on device - every
      metric is pinned here, scores get -webkit-text-fill-color
      so NOTHING can darken them. Ranking-board typography.
   ============================================================ */

/* ---- 1. profile sheet labels ---- */
@media (max-width: 991.98px){
  .header_iner .profile_info .profile_info_iner > a{
    font-size:13.5px !important;
    color:#14261d !important;
    -webkit-text-fill-color:#14261d !important;
    text-indent:0 !important;
    line-height:1.35 !important;
    opacity:1 !important;visibility:visible !important;
    overflow:visible !important;
  }
  .header_iner .profile_info .profile_info_iner > a span{
    display:inline-block !important;
    font-size:13.5px !important;font-weight:700 !important;
    color:#14261d !important;
    -webkit-text-fill-color:#14261d !important;
    text-indent:0 !important;
    width:auto !important;height:auto !important;
    opacity:1 !important;visibility:visible !important;
    white-space:nowrap;
  }
  .header_iner .profile_info .profile_info_iner > a > i:first-child{
    color:#15653f !important;
    -webkit-text-fill-color:#15653f !important;
  }
}

/* ---- 2. no badge tiles on the drawer banner ---- */
.sidebar .ipm-su .sidebar-badge{display:none !important}

/* ---- 3. leaderboard: pin every metric ---- */
.reward-leader-content > ul{
  padding:2px 0 !important;
  margin:0 0 14px !important;
}
.reward-leader-content ul > li.position-relative{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  padding:11px 16px !important;
  margin:0 !important;
  min-height:0 !important;height:auto !important;
}
.reward-leader-content ul > li .reward-leader-item{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  flex:1 1 auto !important;
  gap:10px !important;
  background:none !important;border:0 !important;box-shadow:none !important;
  padding:0 !important;margin:0 !important;
  min-height:0 !important;height:auto !important;
  width:auto !important;
}
.reward-leader-content ul > li .reward-leader-profile{
  display:flex !important;align-items:center !important;gap:11px !important;
  padding:0 !important;margin:0 !important;
  min-width:0;flex:1 1 auto !important;
}
.reward-leader-content ul > li .reward-leader-profile .img{
  width:36px !important;height:36px !important;
  flex:0 0 36px !important;
  padding:0 !important;margin:0 !important;
  background:none !important;
}
/* ranking-board typography */
.reward-leader-content ul > li .reward-leader-position{
  font-size:15px !important;
  font-style:italic;
  min-width:24px !important;width:24px !important;
}
.reward-leader-content ul > li .reward-leader-profile .content p{
  font-size:13px !important;
  font-weight:600 !important;
  letter-spacing:.1px;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  margin:0 !important;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content{
  flex:0 0 auto !important;
  display:flex !important;flex-direction:column !important;
  align-items:flex-end !important;
  gap:2px !important;
  padding:0 !important;margin:0 !important;
  background:none !important;min-height:0 !important;height:auto !important;
  width:auto !important;min-width:0 !important;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content h4{
  color:#f4d23f !important;
  -webkit-text-fill-color:#f4d23f !important;
  font-size:18px !important;
  font-weight:900 !important;
  text-shadow:0 0 14px rgba(244,210,63,.35);
  line-height:1 !important;
  margin:0 !important;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content p{
  color:rgba(255,255,255,.5) !important;
  -webkit-text-fill-color:rgba(255,255,255,.5) !important;
  font-size:8px !important;
  font-weight:800 !important;
  letter-spacing:1.4px !important;
  line-height:1 !important;
  margin:0 !important;
}

/* ============================================================
   BATCH-36
   1. Leaderboard rows -> strict 4-column GRID. display:contents
      dissolves the theme's wrapper divs, so rank | avatar | name
      | score line up pixel-perfect and the phantom right-side gap
      is gone for good. Faint geometric pattern on the panel,
      esports typography.
   2. Public profile (students, phones): Instagram-style - round
      gold-ring avatar, centered identity, clean white stat pills,
      full-width gold "Taalib-e-Ilm" band.
   ============================================================ */

/* ---- 1. leaderboard grid ---- */
.reward-leader-content > ul{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23d4a437' stroke-opacity='0.05'%3E%3Cpath d='M36 6l8 22 22 8-22 8-8 22-8-22-22-8 22-8z'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(140% 180% at 90% 0%, rgba(212,164,55,.14) 0%, transparent 55%),
    linear-gradient(160deg,#15653f 0%,#0d3626 60%,#071f14 100%) !important;
  border:1px solid rgba(212,164,55,.25) !important;
}
.reward-leader-content ul > li.position-relative{
  display:grid !important;
  grid-template-columns:26px 40px minmax(0,1fr) auto;
  column-gap:10px;
  align-items:center !important;
  padding:11px 14px !important;
}
/* dissolve the wrappers so grid sees the real cells */
.reward-leader-content ul > li .reward-leader-item,
.reward-leader-content ul > li .reward-leader-profile{
  display:contents !important;
}
.reward-leader-content ul > li .reward-leader-position{
  grid-column:1;
  order:0 !important;
  margin:0 !important;
  justify-content:center !important;
  text-align:center;
  width:auto !important;min-width:0 !important;
}
.reward-leader-content ul > li .reward-leader-profile .img{
  grid-column:2;
  width:38px !important;height:38px !important;
  flex:none !important;
}
.reward-leader-content ul > li .reward-leader-profile .img img{
  width:38px !important;height:38px !important;
}
.reward-leader-content ul > li .reward-leader-profile .content{
  grid-column:3;
  min-width:0;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content{
  grid-column:4;
  justify-self:end;
}
/* esports numerals */
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content h4{
  font-size:19px !important;
  font-style:italic;
  letter-spacing:-.5px;
}
.reward-leader-content ul > li .reward-leader-position{
  font-size:14px !important;
  color:rgba(255,255,255,.4) !important;
  -webkit-text-fill-color:rgba(255,255,255,.4) !important;
}
.reward-leader-content ul > li .reward-leader-position.one{
  color:#f4d23f !important;-webkit-text-fill-color:#f4d23f !important;
}
.reward-leader-content ul > li .reward-leader-position.two{
  color:#d8d8d8 !important;-webkit-text-fill-color:#d8d8d8 !important;
}
.reward-leader-content ul > li .reward-leader-position.three{
  color:#e08b4a !important;-webkit-text-fill-color:#e08b4a !important;
}

/* ---- 2. public profile: insta look (phones) ---- */
@media (max-width: 991.98px){
  .profile .profile-wrapper{
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:10px;
    padding:20px 16px 16px !important;
  }
  .profile .profile-left{justify-content:center}
  .profile .profile-img-container{margin:0 auto}
  .profile .profile-img .img,
  .profile .profile-img .img img{
    width:96px !important;height:96px !important;
    border-radius:50% !important;
    object-fit:cover;
  }
  .profile .profile-img .img img{
    border:3px solid #f4d23f !important;
    box-shadow:0 8px 22px -10px rgba(212,164,55,.7);
    background:#fff;
  }
  .profile .profile-badge{
    width:26px !important;height:26px !important;
    right:2px !important;top:66px !important;
  }
  .profile .profile-badge svg{width:16px;height:16px}
  .profile .profile-info{width:100%}
  .profile .profile-info h4{
    font-size:19px !important;font-weight:800 !important;
    margin:6px 0 2px !important;
  }
  .profile .profile-info > p{font-size:12.5px !important;margin:0 0 6px !important}

  /* stat pills: clean white, centered, wrap */
  .profile .profile-right{
    background:none !important;border:0 !important;
    box-shadow:none !important;padding:0 !important;margin:0 !important;
  }
  .profile .profile-right ul{
    display:flex !important;flex-wrap:wrap;justify-content:center;
    gap:8px;margin:4px 0 0;padding:0;
  }
  .profile .profile-right ul li{
    flex:0 1 auto;
    display:inline-flex;align-items:center;gap:8px;
    background:#faf8f1 !important;
    border:1px solid #eee9dc !important;
    border-radius:30px !important;
    padding:9px 15px !important;margin:0 !important;
    font-size:12px !important;font-weight:700 !important;color:#33413a !important;
    box-shadow:none !important;
  }
  .profile .profile-right ul li svg{width:17px;height:17px;color:#15653f}
  /* the Taalib-e-Ilm band: full width, gold on deep green */
  .profile .profile-right ul li.ipm-profile-program{
    flex:1 1 100% !important;
    justify-content:center;
    background:
      radial-gradient(120% 160% at 90% 0%, rgba(212,164,55,.2) 0%, transparent 55%),
      linear-gradient(120deg,#0f3d2c,#15653f) !important;
    border:1px solid rgba(212,164,55,.4) !important;
    border-radius:14px !important;
    color:#fff !important;
    font-size:13px !important;font-weight:800 !important;
    padding:13px 15px !important;
    box-shadow:0 8px 20px -12px rgba(15,61,44,.7) !important;
  }
  .profile .profile-right ul li.ipm-profile-program i{color:#f4d23f}
}

/* BATCH-36b: theme absolutely-positions the rank bubble; static so it
   takes grid column 1 (this is also what made rows tall). */
.reward-leader-content ul > li .reward-leader-position{
  position:static !important;
  inset:auto !important;
  transform:none !important;
  height:auto !important;
}
/* BATCH-36c: the rank div is LAST in the DOM, and sparse grid
   auto-placement won't backfill row 1's empty first column - every
   cell is pinned to row 1 explicitly. */
.reward-leader-content ul > li .reward-leader-position,
.reward-leader-content ul > li .reward-leader-profile .img,
.reward-leader-content ul > li .reward-leader-profile .content,
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content{
  grid-row:1 !important;
}
/* ============================================================
   BATCH-37
   1. .ipm-pub — Instagram-style public student profile header.
   2. Desktop drawer identity: back to a calm, classic look (the
      green banner is a MOBILE design; desktop reverts).
   3. Leaderboard rows: hard min-height + smaller avatars so no
      overlap at any width; desktop View-all = full-screen sheet.
   4. Wishlist empty-state alignment.
   ============================================================ */

/* ---- 1. public student profile ---- */
.ipm-pub{
  width:100%;
  max-width:520px;
  margin:0 auto;
  background:#fff;
  border:1px solid #eee9dc;
  border-radius:20px;
  padding:26px 18px 20px;
  text-align:center;
  position:relative;
  z-index:2;
  margin-top:-34px;
  box-shadow:0 14px 34px -22px rgba(15,61,44,.55);
}
.ipm-pub-ava{position:relative;display:inline-block;margin-bottom:10px}
.ipm-pub-ava img{
  width:96px;height:96px;border-radius:50%;object-fit:cover;
  border:3px solid #f4d23f;background:#fff;
  box-shadow:0 8px 22px -10px rgba(212,164,55,.7);
}
.ipm-pub-check{
  position:absolute;right:2px;bottom:4px;
  width:24px;height:24px;border-radius:50%;
  background:#15653f;border:2px solid #fff;
  color:#fff;font-size:10px;
  display:flex;align-items:center;justify-content:center;
}
.ipm-pub-name{
  font-size:20px;font-weight:800;color:#14261d;
  margin:0 0 6px;letter-spacing:-.2px;
}
.ipm-pub-level{
  display:inline-flex;align-items:center;gap:6px;
  background:linear-gradient(120deg,rgba(212,164,55,.14),rgba(244,210,63,.22));
  border:1px solid rgba(212,164,55,.5);
  color:#8a6a14;
  font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  padding:5px 12px;border-radius:20px;
  margin-bottom:8px;
}
.ipm-pub-level i{color:#d4a437;font-size:10px}
.ipm-pub-bio{font-size:12.5px;color:#5a6a60;margin:2px 0 8px;line-height:1.55}
.ipm-pub-stats{
  display:flex;justify-content:center;gap:0;
  margin:10px 0 12px;
}
.ipm-pub-stat{
  flex:0 0 auto;
  min-width:96px;
  padding:0 18px;
  text-align:center;
}
.ipm-pub-stat + .ipm-pub-stat{border-left:1px solid #eee9dc}
.ipm-pub-stat b{
  display:block;
  font-size:19px;font-weight:800;color:#14261d;line-height:1.1;
}
.ipm-pub-stat span{
  font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;
  color:#98a094;
}
.ipm-pub-program{
  display:flex;align-items:center;justify-content:center;gap:9px;
  background:
    radial-gradient(120% 160% at 90% 0%, rgba(212,164,55,.2) 0%, transparent 55%),
    linear-gradient(120deg,#0f3d2c,#15653f);
  border:1px solid rgba(212,164,55,.4);
  border-radius:14px;
  color:#fff;
  font-size:13px;font-weight:800;
  padding:13px 15px;
  box-shadow:0 8px 20px -12px rgba(15,61,44,.7);
}
.ipm-pub-program i{color:#f4d23f}
@media (max-width: 575.98px){
  .ipm-pub{margin-left:4px;margin-right:4px;max-width:none}
}

/* ---- 2. desktop drawer identity: classic ---- */
@media (min-width: 992px){
  .sidebar .sidebar-user.ipm-su{
    background:none !important;
    box-shadow:none !important;
    margin:0 !important;
    padding:22px 12px 12px !important;
    border-radius:0 !important;
  }
  .ipm-su-row{flex-direction:column;text-align:center;gap:8px}
  .sidebar .ipm-su .sidebar-profile{
    --width:84px !important;
    width:84px !important;height:84px !important;
    padding:3px !important;
    border:2px solid var(--system_primery_color,#15653f) !important;
    margin:0 auto !important;
  }
  .sidebar .ipm-su h4{
    color:#14261d !important;
    font-size:16px !important;
    white-space:normal;
    padding-right:0;
  }
  .ipm-su-info{text-align:center}
  .sidebar .ipm-su .ipm-su-level{
    background:linear-gradient(120deg,rgba(212,164,55,.14),rgba(244,210,63,.22));
    border-color:rgba(212,164,55,.5);
    color:#8a6a14;
  }
  .sidebar .ipm-su .ipm-su-level i{color:#d4a437}
}

/* ---- 3. leaderboard rows: no-overlap guarantees (all widths) ---- */
.reward-leader-content ul > li.position-relative{
  min-height:56px !important;
  padding:10px 16px !important;
  overflow:hidden;
}
.reward-leader-content ul > li .reward-leader-profile .img,
.reward-leader-content ul > li .reward-leader-profile .img img{
  width:34px !important;height:34px !important;
  max-width:34px !important;max-height:34px !important;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content h4{
  font-size:17px !important;
  padding-right:2px !important;
}
.reward-leader-content ul > li .reward-leader-item > .reward-leader-content p{
  font-size:7.5px !important;
}
.reward-leader-content ul > li .reward-leader-profile .content p{
  font-size:12.5px !important;
}

/* desktop View-all: full-screen sheet, content in a centered column */
@media (min-width: 992px){
  #myLeaderBoard{z-index:100001 !important;padding:0 !important}
  #myLeaderBoard .modal-dialog{
    margin:0 !important;
    max-width:100vw !important;width:100vw !important;
    height:100vh !important;
  }
  #myLeaderBoard .modal-content{
    height:100vh !important;
    border:0 !important;border-radius:0 !important;
    background:#f6f1e5 !important;
    display:flex !important;flex-direction:column !important;
    overflow:hidden !important;
  }
  #myLeaderBoard .modal-header{
    flex:0 0 auto;
    background:linear-gradient(120deg,#0f3d2c,#15653f) !important;
    border:0 !important;border-radius:0 !important;
    padding:16px 0 !important;
    justify-content:center !important;
  }
  #myLeaderBoard .modal-header > *{
    width:100%;max-width:720px;margin:0 auto !important;
    display:flex;align-items:center;justify-content:space-between;
  }
  #myLeaderBoard .modal-header .modal-title,
  #myLeaderBoard .modal-header h5{
    color:#fff !important;font-size:19px !important;font-weight:700 !important;
    margin:0 auto 0 0 !important;
  }
  #myLeaderBoard .modal-header .btn-close,
  #myLeaderBoard .modal-header .close{
    background-color:rgba(255,255,255,.14) !important;
    border-radius:50%;width:38px;height:38px;
    opacity:1 !important;
    filter:invert(1) grayscale(1) brightness(1.6);
    margin:0 !important;
  }
  #myLeaderBoard .modal-header .ipm-levels-explainer{display:none !important}
  #myLeaderBoard .modal-body{
    flex:1 1 auto !important;
    overflow-y:auto !important;
    padding:22px 16px 40px !important;
    background:transparent !important;
    scrollbar-width:thin;
    scrollbar-color:rgba(21,101,63,.35) transparent;
  }
  #myLeaderBoard .modal-body::-webkit-scrollbar{width:5px}
  #myLeaderBoard .modal-body::-webkit-scrollbar-track{background:transparent}
  #myLeaderBoard .modal-body::-webkit-scrollbar-thumb{background:rgba(21,101,63,.35);border-radius:4px}
  #myLeaderBoard .modal-body > *,
  #myLeaderBoard .point-table{
    max-width:720px;margin-left:auto !important;margin-right:auto !important;
  }
  #myLeaderBoard .point-table,
  #myLeaderBoard .point-table-body,
  #myLeaderBoard .tab-content,
  #myLeaderBoard .tab-pane,
  #myLeaderBoard .reward-leader-content{
    background:transparent !important;border:0 !important;box-shadow:none !important;
  }
  #myLeaderBoard .point-table-body,
  #myLeaderBoard .reward-leader-content{
    overflow:visible !important;max-height:none !important;height:auto !important;
  }
}

/* ---- 4. wishlist empty state ---- */
.ipm-wl-empty{
  display:flex !important;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
.ipm-wl-empty i{margin:0 !important}
.ipm-wl-empty h4{margin:0 !important}

/* BATCH-37b: Core / Optional section headers on the program curriculum */
.ipm-cur-group{
  display:flex;align-items:center;gap:9px;
  margin:22px 2px 10px;
  font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
  color:#15653f;
}
.ipm-cur-group i{
  width:30px;height:30px;border-radius:10px;
  background:#eef4ee;color:#15653f;
  display:flex;align-items:center;justify-content:center;font-size:12px;
}
.ipm-cur-group span{
  background:#15653f;color:#fff;
  font-size:10.5px;font-weight:800;border-radius:20px;padding:3px 9px;
}
.ipm-cur-group.is-optional{color:#8a6a14}
.ipm-cur-group.is-optional i{background:rgba(212,164,55,.15);color:#b3861f}
.ipm-cur-group.is-optional span{
  background:linear-gradient(120deg,#d4a437,#f4d23f);color:#3d2c05;
}
.ipm-cur-group em{
  font-style:normal;font-size:10px;font-weight:600;
  letter-spacing:.2px;text-transform:none;color:#98a094;
  margin-left:auto;text-align:right;
}
/* ============================================================
   BATCH-38
   1. Dashboard phones: the marketing footer (arch-pattern band +
      subscribe form) is what showed as a floating 'clipart strip'
      on short pages - dashboards don't need it, bottom-nav rules.
   2. Desktop: the drawer close circle leaked next to the logo
      (an unscoped BATCH-29 display:flex beat d-lg-none).
   3. Pagination arrows are FA glyphs now (theme SVG was purple).
   4. Leaderboard 'View all' = proper gold CTA button.
   ============================================================ */
@media (max-width: 991.98px){
  .dashboard_part footer.footer{display:none !important}
}
@media (min-width: 992px){
  .sidebar .logo .sidebar_close_icon,
  .ipm-drawer-x{display:none !important}
}
.dashboard_part .reward-paginations .paginations-links i{
  font-size:11px !important;
  color:inherit !important;
  line-height:1 !important;
}
.ipm-viewall{
  display:flex !important;
  align-items:center;justify-content:center;gap:9px;
  width:100%;
  height:46px;
  border-radius:13px;
  background:linear-gradient(120deg,#d4a437,#f4d23f) !important;
  color:#0f3d2c !important;
  font-size:13.5px !important;font-weight:800 !important;
  text-decoration:none !important;
  box-shadow:0 8px 20px -10px rgba(212,164,55,.6);
  -webkit-tap-highlight-color:transparent;
}
.ipm-viewall:active{transform:scale(.98)}
.ipm-viewall i{font-size:12px}
/* BATCH-38b: the marketing footer sits OUTSIDE .dashboard_part (an
   .aoraeditor-footer wrapper appended near body end) - hide it on any
   page that carries the dashboard shell. */
@media (max-width: 991.98px){
  body:has(.dashboard_part) .aoraeditor-footer,
  body:has(.dashboard_part) footer.footer{display:none !important}
}
/* BATCH-38c (CRITICAL): the profile dropdown may NEVER render unless
   explicitly opened. It was computing display:block as an invisible
   page-colored full-screen overlay - its Home/Log Out links swallowed
   taps anywhere on the page (the phantom 'random logout' bug). */
.profile_info .profile_info_iner.collaps_part_content{display:none !important}
.profile_info .profile_info_iner.collaps_part_content.ipm-open{display:block !important}
/* BATCH-38d: the 'floating clipart strip' on short pages was the BODY's
   own pattern background ending where the content ends (body is only as
   tall as its content; below it the html's plain cream shows). Dashboard
   pages get a flat, uniform cream - no pattern, no seam, ever. */
body.ipm-dash-nav{
  background-image:none !important;
  background-color:#f6f1e5 !important;
  min-height:100dvh;
}
html{background-color:#f6f1e5}
/* ============================================================
   BATCH-39
   1. ALL collapse popups (profile, reward points, ...) closed by
      default, opened only via .ipm-open (JS controller). This
      replaces the profile-only 38c rules and un-breaks the
      popups 38c had frozen shut.
   2. Invoice Order List -> clean stacked cards (uses the
      data-labels the stack-table JS already injects).
   3. Mini-cart offcanvas: professional compact rows + icons.
   4. Checkout / payment page: app-style polish, no cart FAB, no
      marketing footer, compact hero.
   5. Program hero: optional-subjects chip hidden on phones.
   ============================================================ */

/* ---- 1. collapse popups ---- */
.collaps_part .collaps_part_content{display:none !important}
.collaps_part .collaps_part_content.ipm-open{display:block !important}

/* ---- 5. program hero chip ---- */
@media (max-width: 991.98px){
  .ipm-pg-chip.ipm-chip-opt{display:none !important}
}

/* ---- 2. invoice: stacked cards ---- */
@media (max-width: 767.98px){
  .invoice_part_iner table.custom_table3{
    display:block !important;
    overflow:visible !important;
    border:0 !important;
    background:none !important;
    width:100% !important;
  }
  .invoice_part_iner table.custom_table3 thead{display:none !important}
  .invoice_part_iner table.custom_table3 tbody{display:block !important;width:100% !important}
  .invoice_part_iner table.custom_table3 tr{
    display:block !important;
    width:100% !important;
    background:#fff;
    border:1px solid #eee9dc;
    border-radius:14px;
    padding:8px 14px !important;
    margin:0 0 8px !important;
  }
  .invoice_part_iner table.custom_table3 td{
    display:flex !important;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    width:100% !important;
    border:0 !important;
    padding:7px 0 !important;
    font-size:13px !important;
    white-space:normal !important;
    text-align:right !important;
  }
  .invoice_part_iner table.custom_table3 td::before{
    content:attr(data-label);
    flex:0 0 auto;
    font-size:9.5px;
    font-weight:800;
    letter-spacing:.8px;
    text-transform:uppercase;
    color:#98a094;
    text-align:left;
  }
  .invoice_part_iner table.custom_table3 td:not([data-label])::before{content:none}
  .invoice_part_iner table.custom_table3 h5{
    font-size:13px !important;
    margin:0 !important;
    min-width:0;
    text-align:right;
  }
  /* totals rows: the labeler skips them and tags .ipm-sum-row */
  .invoice_part_iner table.custom_table3 tr.ipm-sum-row{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    background:#faf8f1;
    padding:11px 14px !important;
  }
  .invoice_part_iner table.custom_table3 tr.ipm-sum-row td{
    display:block !important;
    width:auto !important;
    padding:0 !important;
    font-weight:700 !important;
  }
  .invoice_part_iner table.custom_table3 tr.ipm-sum-row td::before{content:none !important}
  .invoice_part_iner table.custom_table3 tr.ipm-sum-row:last-child{
    background:linear-gradient(120deg,rgba(212,164,55,.15),rgba(244,210,63,.28));
    border-color:rgba(212,164,55,.5);
  }
  .invoice_part_iner table.custom_table3 tr.ipm-sum-row:last-child td{
    font-weight:800 !important;
    color:#0f3d2c !important;
    font-size:14.5px !important;
  }
}

/* ---- 3. mini-cart offcanvas ---- */
.shoping_wrapper .shoping_cart{
  width:min(400px, 92vw) !important;
  padding:16px 14px 20px !important;
}
.shoping_wrapper .cart_header{
  align-items:center;
  padding:4px 2px 12px;
  border-bottom:1px solid #eee9dc;
  margin-bottom:12px;
}
.shoping_wrapper .cart_header h4{
  font-size:17px !important;font-weight:800 !important;color:#14261d !important;margin:0 !important;
}
.shoping_wrapper .cart_header .chart_close{
  width:32px;height:32px;border-radius:50%;
  background:#eef0ea;color:#15653f;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.shoping_wrapper .cart_header .chart_close:active{transform:scale(.92)}
.shoping_wrapper .shoping_cart .single_cart .thumb{
  width:64px !important;height:48px !important;
  border-radius:10px !important;
}
.shoping_wrapper .shoping_cart .remove_cart{
  width:28px !important;height:28px !important;
}
.shoping_wrapper .shoping_cart .remove_cart svg{display:none !important}
.shoping_wrapper .shoping_cart .remove_cart::before{
  content:"\f2ed";
  font-family:"Font Awesome 5 Free";
  font-weight:900;
  font-size:11px;
  color:#b84848;
}

/* ---- 4. checkout / payment page (phones) ---- */
@media (max-width: 991.98px){
  /* the floating cart bubble duplicated the header cart and sat on
     top of content everywhere - gone on phones */
  a.float.cart_icon{display:none !important}

  body:has(.payment_area) .breadcrumb_area{
    padding:24px 0 26px !important;
    min-height:0 !important;
  }
  body:has(.payment_area) .breadcam_wrap h3{
    font-size:21px !important;
    font-weight:800 !important;
    margin-bottom:4px !important;
  }
  body:has(.payment_area) .breadcam_wrap p,
  body:has(.payment_area) .breadcam_wrap a{
    font-size:12px !important;
  }
  body:has(.payment_area) footer.footer,
  body:has(.payment_area) .aoraeditor-footer{display:none !important}

  /* one card per section, flat rows inside */
  .payment_area .order_wrapper,
  .payment_area .billing_details_wrapper{
    background:#fff !important;
    border:1px solid #eee9dc !important;
    border-radius:16px !important;
    padding:14px !important;
    box-shadow:0 2px 12px -10px rgba(15,61,44,.35) !important;
  }
  .payment_area .order_wrapper .ordered_products,
  .payment_area .ordered_products_lists{
    background:none !important;
    border:0 !important;
    box-shadow:none !important;
    padding:0 !important;
    margin:0 !important;
  }
  .payment_area .single_ordered_product{
    display:flex !important;
    align-items:center;
    gap:11px;
    background:none !important;
    border:0 !important;
    border-bottom:1px solid #f2eee2 !important;
    border-radius:0 !important;
    padding:10px 0 !important;
    margin:0 !important;
  }
  .payment_area .single_ordered_product img{
    width:48px !important;height:40px !important;
    border-radius:9px !important;object-fit:cover;
    flex:0 0 auto;
  }
  .payment_area .payment_method_single{
    background:#fff !important;
    border:1px solid #eee9dc !important;
    border-radius:14px !important;
    box-shadow:0 2px 10px -8px rgba(15,61,44,.3) !important;
    margin-bottom:10px !important;
  }
}

/* BATCH-39b: the theme hides these panels with opacity/visibility too
   (its .active mechanism) - .ipm-open must force every hiding channel. */
.collaps_part .collaps_part_content.ipm-open{
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:none !important;
}
/* ============================================================
   BATCH-40
   1. Invoice header: centered identity (logo + INV pill), info
      rows as tight uppercase-label lines - real invoice rhythm.
   2. Wishlist: page card dissolves, item cards sit on the page.
   3. Public profile: cover strip capped - the huge blank gap on
      top of the card is gone.
   ============================================================ */
@media (max-width: 767.98px){
  .invoice_part_iner{padding:18px 14px 14px !important}
  .invoice_part_iner table:not(.custom_table3) td img{
    display:block !important;
    margin:0 auto 10px !important;
    max-width:74px !important;
  }
  .invoice_part_iner .invoice_no{
    display:block !important;
    width:max-content;
    margin:0 auto 16px !important;
    text-align:center !important;
  }
  .invoice_part_iner .invoice_grid{
    grid-template-columns:96px 1fr !important;
    grid-gap:2px 12px !important;
    align-items:baseline;
    padding:8px 0 !important;
    margin:0 !important;
    border-bottom:1px dashed #f0ebdd;
    font-size:13px !important;
    line-height:1.5 !important;
    color:#14261d;
  }
  .invoice_part_iner .invoice_grid .black_color{
    font-size:9.5px !important;
    font-weight:800 !important;
    letter-spacing:.8px;
    text-transform:uppercase;
    color:#98a094 !important;
  }
}

@media (max-width: 991.98px){
  /* 2 ── wishlist: no box-in-box */
  body:has(.ipm-wl-head) .dashboard_part .dashboard_lg_card{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    padding:0 !important;
  }
  .ipm-wl-item{padding:13px !important}
  .ipm-wl-thumb{width:84px !important;height:62px !important}
  .ipm-wl-info h5{font-size:14px !important}

  /* 3 ── profile: cap the cover strip */
  .profile .profile-cover,
  .profile .profile-cover img{
    height:110px !important;
    max-height:110px !important;
    object-fit:cover;
  }
  .ipm-pub{margin-top:-44px}
}
/* ============================================================
   BATCH-41
   1. Bootstrap modals were losing the z-war: my full-screen
      sheets sit at ~100003 and an old rule pushed the backdrop to
      100000, so modals (z 1055) rendered BEHIND the black shadow
      (leaderboard) or behind the settings sheet (education form).
      New law: every shown modal rides above everything at 100010,
      its backdrop right underneath at 100009.
   2. Invoice rows: proper side breathing room.
   ============================================================ */
.modal.show{z-index:100010 !important}
.modal-backdrop.show{z-index:100009 !important}

@media (max-width: 767.98px){
  .invoice_part_iner table.custom_table3 tr{padding:10px 16px !important}
  .invoice_part_iner table.custom_table3 tr.ipm-sum-row{padding:12px 16px !important}
  .invoice_part_iner .invoice_grid{padding:8px 4px !important}
  .invoice_part_iner h2.black_color,
  .invoice_part_iner h4.black_color{padding-left:2px}
}
/* BATCH-41b (CRITICAL): 38b hid the whole .aoraeditor-footer wrapper -
   but the LEADERBOARD MODAL (and friends) live inside it, so the modal
   opened 0x0-invisible behind its backdrop. Only the marketing <footer>
   inside the wrapper may hide; the wrapper itself stays. */
@media (max-width: 991.98px){
  body:has(.dashboard_part) .aoraeditor-footer,
  body:has(.payment_area) .aoraeditor-footer{
    display:block !important;
  }
  body:has(.dashboard_part) .aoraeditor-footer footer.footer,
  body:has(.payment_area) .aoraeditor-footer footer.footer{
    display:none !important;
  }
}
/* BATCH-41c: the old #myLeaderBoard z (100001) outranked .modal.show by
   ID specificity and fell UNDER the new backdrop (100009). Pin it top. */
#myLeaderBoard.modal.show{z-index:100011 !important}
/* ============================================================
   FEES BANNER - jaise Google/Microsoft billing par dikhata hai.
   Har page ke sabse ooper, sirf un students ko jinki fees ka waqt
   nikal chuka hai. Teen darje, teen rang.
   Header khud sticky hai, is liye ye banner sticky NAHI - wo dono
   ek doosre ke ooper chadh jate. Ye page ke bilkul shuru me ek baar
   dikhta hai aur scroll ke saath ooper chala jata hai.
   ============================================================ */
.ipm-fees-bar{
    position:relative;z-index:9000;width:100%;
    font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
    border-bottom:1px solid rgba(0,0,0,.10);
}
.ipm-fees-in{
    max-width:1180px;margin:0 auto;padding:10px 16px;
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.ipm-fees-ic{flex:0 0 auto;font-size:15px;line-height:1;opacity:.9}
.ipm-fees-tx{
    flex:1 1 260px;min-width:0;font-size:13.5px;line-height:1.5;
}
.ipm-fees-tx b{font-weight:700}
.ipm-fees-days{
    display:inline-block;margin-left:8px;padding:1px 8px;border-radius:20px;
    font-size:11px;font-weight:700;letter-spacing:.02em;
    background:rgba(0,0,0,.10);white-space:nowrap;
}
.ipm-fees-btn{
    flex:0 0 auto;display:inline-block;text-decoration:none;white-space:nowrap;
    font-size:13px;font-weight:700;padding:8px 16px;border-radius:24px;
    transition:transform .15s cubic-bezier(.22,.61,.36,1),filter .15s;
    -webkit-tap-highlight-color:transparent;
}
.ipm-fees-btn:hover{text-decoration:none;filter:brightness(1.06)}
.ipm-fees-btn:active{transform:scale(.96)}
.ipm-fees-x{
    flex:0 0 auto;border:0;background:none;cursor:pointer;padding:6px 8px;
    font-size:13px;line-height:1;opacity:.55;border-radius:6px;
    -webkit-tap-highlight-color:transparent;
}
.ipm-fees-x:hover{opacity:1}

/* grace - narm. Kuch ruka nahi hai, sirf yaad dilana hai. */
.ipm-fees-grace{background:#fdf6e3;color:#5c4813}
.ipm-fees-grace .ipm-fees-ic{color:#9c7c19}
.ipm-fees-grace .ipm-fees-btn{background:#9c7c19;color:#fff}

/* limited - padhai ruki hui hai */
.ipm-fees-limited{background:#fbeee9;color:#6b3a24}
.ipm-fees-limited .ipm-fees-ic{color:#b3541e}
.ipm-fees-limited .ipm-fees-btn{background:#b3541e;color:#fff}

/* band - sab band */
.ipm-fees-band{background:#f7e7e4;color:#5f2119}
.ipm-fees-band .ipm-fees-ic{color:#8d3b2f}
.ipm-fees-band .ipm-fees-btn{background:#8d3b2f;color:#fff}

@media (max-width:575px){
    .ipm-fees-in{padding:9px 13px;gap:9px}
    .ipm-fees-tx{flex:1 1 100%;font-size:13px}
    .ipm-fees-btn{flex:1 1 auto;text-align:center;padding:9px 14px}
}
@media print{.ipm-fees-bar{display:none}}
