/* =========================================================================
   G Value Capital Returns — unified design system (EMERALD / premium)
   Loaded AFTER legacy stylesheets on every page so it governs the final look.

   Palette: a single deep-emerald + ink system applied site-wide — public
   pages, auth pages, the dashboard shell (sidebar included) and all
   dashboard content/cards. Tokens are defined in :root below.
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Sora:wght@600;700;800&display=swap');

:root{
  /* ---- brand palette: deep emerald + ink ---- */
  --gv-ink-950:#04140f;
  --gv-ink-900:#06201a;
  --gv-ink-800:#0a2c24;
  --gv-ink-700:#0f3a30;
  --gv-ink-600:#15483b;
  --gv-green-800:#0b6b4f;
  --gv-green-700:#0e8560;
  --gv-green-600:#12a374;
  --gv-green-500:#18c48c;
  --gv-green-400:#3ddba4;
  --gv-green-300:#8fe9c8;
  --gv-cream:#e8f7f0;

  --gv-bg:#f5faf8;
  --gv-surface:#ffffff;
  --gv-surface-alt:#f0f8f4;
  --gv-border:#dcece4;
  --gv-text:#0c1a16;
  --gv-text-muted:#5a7a6f;
  --gv-text-soft:#8fa9a0;

  --gv-success:#039855;
  --gv-success-bg:#d5f5e3;
  --gv-danger:#d92d20;
  --gv-danger-bg:#fee4e2;
  --gv-warning:#f79009;
  --gv-warning-bg:#fef3e2;
  --gv-info:#2e90fa;
  --gv-info-bg:#eaf4ff;

  --gv-radius-sm:8px;
  --gv-radius-md:14px;
  --gv-radius-lg:22px;
  --gv-shadow-sm:0 1px 2px rgba(4,20,15,.06);
  --gv-shadow-md:0 10px 30px rgba(4,20,15,.12);
  --gv-shadow-lg:0 28px 70px rgba(4,20,15,.35);
  --gv-font-body:'Plus Jakarta Sans','Segoe UI',sans-serif;
  --gv-font-display:'Sora','Plus Jakarta Sans',sans-serif;

  /* ---- dashboard-sidebar palette (ink + emerald accent) ---- */
  --gv-side-950:#04140f;
  --gv-side-900:#072a20;
  --gv-accent-400:#3ddba4;
  --gv-accent-500:#18c48c;
}

/* ---------- base ---------- */
body{ font-family:var(--gv-font-body) !important; color:var(--gv-text); background:var(--gv-bg); }
h1,h2,h3,h4,h5,h6{ font-family:var(--gv-font-display); font-weight:700; letter-spacing:-.01em; }
a{ transition:color .15s ease, background-color .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
::selection{ background:var(--gv-green-500); color:#fff; }

/* ---------- buttons ---------- */
.btn-but,
.btn-brand{
  background:linear-gradient(135deg,var(--gv-green-600),var(--gv-green-700)) !important;
  color:#ffffff !important;
  border:none !important;
  font-weight:700;
  padding:.7rem 1.6rem;
  box-shadow:0 10px 24px rgba(18,163,116,.28);
}
.btn-but:hover,
.btn-brand:hover{
  transform:translateY(-2px);
  background:linear-gradient(135deg,var(--gv-green-500),var(--gv-green-600)) !important;
  box-shadow:0 14px 30px rgba(18,163,116,.38);
  color:#fff !important;
}
.btn-brand-outline{
  background:transparent !important;
  color:#fff !important;
  border:1.5px solid rgba(255,255,255,.55) !important;
  font-weight:600;
  padding:.65rem 1.5rem;
  border-radius:999px;
}
.btn-brand-outline:hover{ background:rgba(255,255,255,.12) !important; border-color:#fff !important; }
.btn-brand-ink{
  background:var(--gv-ink-900) !important;
  color:#fff !important;
  border:none !important;
  font-weight:700;
  border-radius:999px;
  padding:.65rem 1.5rem;
}
.btn-brand-ink:hover{ background:var(--gv-ink-800) !important; transform:translateY(-2px); }

.banks button, .gv-plan-card button{
  background:var(--gv-ink-900);
  color:#fff;
  border:none;
  padding:.65rem 1.5rem;
  border-radius:999px;
  font-weight:700;
  margin-top:.75rem;
}
.banks button:hover{ background:linear-gradient(135deg,var(--gv-green-600),var(--gv-green-700)); }

/* =========================================================================
   PUBLIC SITE — nav / footer / sections
   ========================================================================= */
nav.navbar{
  background:linear-gradient(180deg,var(--gv-ink-950),var(--gv-ink-900)) !important;
  height:auto !important;
  padding:.6rem 1.5rem !important;
  box-shadow:0 2px 24px rgba(0,0,0,.45);
  border-bottom:1px solid rgba(24,196,140,.18);
}
nav.navbar .navbar-brand img{ filter:drop-shadow(0 2px 6px rgba(0,0,0,.4)); }
nav.navbar .nav-link{ color:rgba(255,255,255,.85) !important; font-weight:600; padding:.6rem 1rem !important; }
nav.navbar .nav-link:hover, nav.navbar .nav-link:focus{ color:var(--gv-green-400) !important; }
nav.navbar .dropdown-menu{
  background:var(--gv-ink-900); border:1px solid rgba(24,196,140,.2);
  border-radius:var(--gv-radius-md); box-shadow:var(--gv-shadow-lg);
}
nav.navbar .dropdown-item{ color:rgba(255,255,255,.85); border-radius:8px; }
nav.navbar .dropdown-item:hover{ background:rgba(18,163,116,.22); color:var(--gv-green-400); }
nav.navbar .navbar-toggler{ background:var(--gv-green-600) !important; border-radius:8px; }
#google_translate_element{ filter:invert(1) grayscale(1) contrast(1.4); opacity:.85; }

.footer{
  background:var(--gv-ink-950) !important;
  color:rgba(255,255,255,.7);
  padding:3rem 2rem 1.5rem;
}
.footer p{ color:rgba(255,255,255,.65); }
.footer a{ color:var(--gv-green-400); }
.gv-footer-heading{ color:var(--gv-green-400); letter-spacing:.08em; font-size:.8rem; }
.gv-footer-social{ display:flex; gap:.6rem; margin-top:1rem; }
.gv-footer-social a{
  width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.75) !important; font-size:.95rem;
}
.gv-footer-social a:hover{ background:var(--gv-green-600); border-color:var(--gv-green-600); color:#fff !important; }

/* ---------- mega-menu (desktop) ---------- */
.gv-mega-nav{ gap:.25rem; }
.gv-mega-menu{
  min-width:340px; background:var(--gv-ink-900); border:1px solid rgba(24,196,140,.2);
  border-radius:var(--gv-radius-md); box-shadow:var(--gv-shadow-lg); padding:.75rem;
}
.gv-mega-item{
  display:flex; align-items:center; gap:.85rem; padding:.7rem .75rem; border-radius:var(--gv-radius-sm);
  text-decoration:none; color:rgba(255,255,255,.85);
}
.gv-mega-item:hover{ background:rgba(18,163,116,.18); }
.gv-mega-icon{
  flex:0 0 auto; width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--gv-green-600),var(--gv-green-800)); color:#fff; font-size:1.15rem;
}
.gv-mega-item strong{ display:block; font-size:.92rem; color:#fff; }
.gv-mega-item small{ display:block; font-size:.76rem; color:rgba(255,255,255,.55); margin-top:.1rem; }

/* ---------- mobile off-canvas nav ---------- */
.gv-mobile-nav{ background:var(--gv-ink-950); color:#fff; width:300px; }
.gv-mobile-nav .offcanvas-header{ border-bottom:1px solid rgba(255,255,255,.08); }
.gv-mobile-nav .btn-close{ filter:invert(1); }
.gv-mobile-nav-label{
  font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gv-green-400);
  font-weight:800; margin:1.25rem 0 .5rem;
}
.gv-mobile-nav-link{
  display:flex; align-items:center; gap:.6rem; padding:.65rem .5rem; border-radius:var(--gv-radius-sm);
  color:rgba(255,255,255,.85); text-decoration:none; font-weight:600; font-size:.92rem;
}
.gv-mobile-nav-link:hover{ background:rgba(18,163,116,.18); color:var(--gv-green-400); }

/* =========================================================================
   NEW PREMIUM HERO (homepage) — full-bleed CSS crossfade, no JS carousel
   ========================================================================= */
.gv-hero{
  position:relative;
  height:94vh;
  min-height:640px;
  max-height:920px;
  overflow:hidden;
  display:flex;
  align-items:center;
  background:var(--gv-ink-950);
}
.gv-hero-bg{ position:absolute; inset:0; }
.gv-hero-slide{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0;
  animation:gv-hero-fade 25s infinite;
}
.gv-hero-slide:nth-child(1){ animation-delay:0s; }
.gv-hero-slide:nth-child(2){ animation-delay:5s; }
.gv-hero-slide:nth-child(3){ animation-delay:10s; }
.gv-hero-slide:nth-child(4){ animation-delay:15s; }
.gv-hero-slide:nth-child(5){ animation-delay:20s; }
@keyframes gv-hero-fade{
  0%{ opacity:0; }
  4%{ opacity:1; }
  20%{ opacity:1; }
  26%{ opacity:0; }
  100%{ opacity:0; }
}
.gv-hero-overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(900px 500px at 15% 15%, rgba(18,163,116,.38), transparent 60%),
    radial-gradient(900px 600px at 90% 100%, rgba(18,163,116,.22), transparent 55%),
    linear-gradient(180deg, rgba(4,20,15,.72) 0%, rgba(4,20,15,.6) 40%, rgba(4,20,15,.92) 100%);
}
.gv-hero-content{
  position:relative; z-index:2; max-width:760px; margin:0 auto; text-align:center;
  padding:0 1.5rem; color:#fff;
}
.gv-hero-eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.45rem 1.1rem; border:1px solid rgba(24,196,140,.55); border-radius:999px;
  color:var(--gv-green-400); font-size:.75rem; letter-spacing:.18em; text-transform:uppercase;
  margin-bottom:1.5rem; font-weight:700; background:rgba(18,163,116,.08);
}
.gv-hero-content h1{
  font-size:3.4rem; line-height:1.08; margin-bottom:1.1rem; color:#fff; font-weight:800;
}
.gv-hero-content h1 span{ color:var(--gv-green-500); }
.gv-hero-content p{ font-size:1.15rem; color:rgba(255,255,255,.8); margin-bottom:2.25rem; }
.gv-hero-cta{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-bottom:3rem; }
.gv-hero-stats{
  display:flex; gap:2.75rem; justify-content:center; flex-wrap:wrap;
  padding-top:2rem; border-top:1px solid rgba(255,255,255,.14);
}
.gv-hero-stats strong{ display:block; font-size:1.7rem; color:#fff; font-family:var(--gv-font-display); }
.gv-hero-stats span{ font-size:.75rem; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:.08em; }
.gv-hero-scroll{
  position:absolute; bottom:1.75rem; left:50%; transform:translateX(-50%); z-index:2;
  color:rgba(255,255,255,.55); font-size:1.4rem; animation:gv-hero-bounce 2s infinite;
}
@keyframes gv-hero-bounce{ 0%,100%{ transform:translate(-50%,0); } 50%{ transform:translate(-50%,8px); } }

@media (max-width:767px){
  .gv-hero{ height:auto; min-height:0; padding:6.5rem 0 3.5rem; }
  .gv-hero-content h1{ font-size:2.1rem; }
  .gv-hero-content p{ font-size:1rem; }
  .gv-hero-stats{ gap:1.5rem; }
}

/* =========================================================================
   PUBLIC SITE — content sections
   ========================================================================= */
.statistics-container{ padding-top:2.75rem !important; padding-bottom:1.75rem; }
.statistics-container h2{ color:var(--gv-ink-950); font-size:2.1rem; }
.statistics-container h6{ color:var(--gv-green-600); text-transform:uppercase; letter-spacing:.1em; font-size:.82rem; font-weight:800; margin-bottom:1rem; }
.statistics-container > .row > h3, .statistics-container > h3, .banks > h3{
  text-align:center; width:100%; color:var(--gv-ink-950); font-size:2.1rem; margin-bottom:.5rem;
}

.gv-section-eyebrow{
  display:block; text-align:center; color:var(--gv-green-600); text-transform:uppercase;
  letter-spacing:.14em; font-size:.78rem; font-weight:800; margin-bottom:.5rem;
}

.banking-statistics section,
.gv-feature-card{
  background:var(--gv-surface);
  border:1px solid var(--gv-border);
  border-radius:var(--gv-radius-lg);
  padding:1.5rem 1.25rem;
  margin:.75rem;
  box-shadow:var(--gv-shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative;
}
.banking-statistics section::before{
  content:""; position:absolute; top:0; left:2rem; right:2rem; height:3px; border-radius:0 0 4px 4px;
  background:linear-gradient(90deg,var(--gv-green-500),var(--gv-green-700)); transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.banking-statistics section:hover{ transform:translateY(-8px); box-shadow:var(--gv-shadow-md); border-color:var(--gv-green-300); }
.banking-statistics section:hover::before{ transform:scaleX(1); }
.banking-statistics section img{ width:60px; height:60px; object-fit:contain; margin-bottom:1.1rem; }
.banking-statistics section h5{ color:var(--gv-ink-950); font-size:1.2rem; }
.banking-statistics section p{ color:var(--gv-text-muted); font-size:.95rem; }

.contents-img{ display:flex; align-items:center; justify-content:center; }
.contents-img img{ border-radius:var(--gv-radius-lg); box-shadow:var(--gv-shadow-md); }
.contents-img iframe{ border-radius:var(--gv-radius-lg); box-shadow:var(--gv-shadow-md); min-height:280px; }

.banks{ background:var(--gv-surface-alt) !important; padding:2.75rem 1rem; }
.banks section{
  background:var(--gv-surface);
  border:1.5px solid var(--gv-border);
  border-radius:var(--gv-radius-lg);
  padding:1.5rem 1.25rem;
  box-shadow:var(--gv-shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative;
}
.banks section:hover{ transform:translateY(-8px); box-shadow:var(--gv-shadow-lg); border-color:var(--gv-green-500); }
.banks section img{ width:52px; height:52px; object-fit:contain; }
.banks section h3{ color:var(--gv-ink-950); font-size:1.3rem; margin:.85rem 0; }
.banks section p{ color:var(--gv-text-muted); font-size:.92rem; margin:.4rem 0; }
.banks section i{ color:var(--gv-green-600); }
#plans section:nth-child(2){ border-color:var(--gv-green-600); box-shadow:0 18px 45px rgba(18,163,116,.18); }
#plans section:nth-child(2)::after{
  content:"Most Popular"; position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background:linear-gradient(135deg,var(--gv-green-600),var(--gv-green-700)); color:#fff; font-size:.68rem;
  font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:.35rem .9rem; border-radius:999px;
  box-shadow:0 6px 16px rgba(18,163,116,.4);
}

.accordion-button{ font-weight:700; color:var(--gv-ink-950); }
.accordion-button:not(.collapsed){ background:var(--gv-ink-950); color:var(--gv-green-400); }
.accordion-button:focus{ box-shadow:0 0 0 3px rgba(18,163,116,.2); }
.accordion-item{ border-radius:var(--gv-radius-md) !important; overflow:hidden; margin-bottom:.75rem; border:1px solid var(--gv-border) !important; }

.testimony{ background:linear-gradient(180deg,var(--gv-ink-950),var(--gv-ink-900)); }
.testimony article{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(24,196,140,.28);
  border-radius:var(--gv-radius-lg);
  padding:1.5rem 1.15rem;
  text-align:center;
  height:100%;
}
.testimony article img{ width:64px; height:64px; border-radius:50%; object-fit:cover; margin-bottom:.75rem; border:2px solid var(--gv-green-500); }
.testimony article h5{ color:#fff; }
.testimony article p{ color:rgba(255,255,255,.75); }
.testimony article p[style]{ color:var(--gv-green-400) !important; }

.leadership-stat section{
  background:var(--gv-surface); border:1px solid var(--gv-border); border-radius:var(--gv-radius-lg);
  padding:1.35rem; box-shadow:var(--gv-shadow-sm); text-align:center;
}
.leadership-stat section img{ width:120px; height:120px; object-fit:cover; border-radius:50%; margin-bottom:1rem; border:3px solid var(--gv-green-500); }

/* ---------- CTA banner (reused across subpages) ---------- */
.gv-cta-banner{
  background:
    radial-gradient(700px 400px at 85% 0%, rgba(24,196,140,.35), transparent 60%),
    linear-gradient(135deg,var(--gv-ink-950),var(--gv-ink-900));
  border-radius:var(--gv-radius-lg);
  margin:2rem auto; max-width:1200px; padding:2.5rem 1.5rem;
}
.gv-cta-banner h2{ color:#fff; font-size:2rem; margin-bottom:.75rem; }
.gv-cta-banner p{ color:rgba(255,255,255,.75); font-size:1.05rem; margin-bottom:1.75rem; }

/* ---------- process step numbers on light bg ---------- */
.banks section i.bi-1-circle, .banks section i.bi-2-circle, .banks section i.bi-3-circle, .banks section i.bi-4-circle{ color:var(--gv-green-600); }

/* ---------- subpage hero banners (.afternavigation + .transparent) ---------- */
.afternavigation{ position:relative; overflow:hidden; height:400px; }
.afternavigation > img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:brightness(.55) saturate(1.05);
}
.afternavigation::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(700px 400px at 15% 10%, rgba(18,163,116,.4), transparent 60%),
    linear-gradient(180deg, rgba(4,20,15,.55), rgba(4,20,15,.9));
}
.afternavigation .transparent{
  position:relative !important; inset:auto !important; background:transparent !important;
  height:100%; padding:0 1.5rem !important; display:flex; flex-direction:column;
  align-items:center; justify-content:center; z-index:2; max-width:760px; margin:0 auto;
}
.afternavigation .transparent .transparent{ position:static !important; background:transparent !important; padding:0 !important; height:auto; }
.transparent h1{ font-size:2.5rem !important; margin-bottom:.75rem !important; }
.transparent p{ font-size:1.05rem !important; opacity:.85; }

@media (max-width:767px){
  .afternavigation{ height:320px; }
  .transparent h1{ font-size:1.9rem !important; }
}

/* =========================================================================
   AUTH PAGES (client + admin)
   ========================================================================= */
.gv-auth-body{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem 1rem;
  background:
    radial-gradient(1100px 550px at 10% -10%, rgba(18,163,116,.32), transparent 60%),
    radial-gradient(900px 550px at 110% 110%, rgba(18,163,116,.2), transparent 55%),
    linear-gradient(180deg,var(--gv-ink-950),var(--gv-ink-900));
}
.gv-auth-card{
  width:100%;
  max-width:440px;
  background:var(--gv-surface);
  border-radius:var(--gv-radius-lg);
  box-shadow:var(--gv-shadow-lg);
  padding:2.5rem 2.25rem;
  position:relative;
  overflow:hidden;
}
.gv-auth-card--wide{ max-width:560px; }
.gv-auth-logo{ display:flex; justify-content:center; margin-bottom:1.25rem; }
.gv-auth-logo img{ width:120px; height:auto; object-fit:contain; }
.gv-auth-title{ text-align:center; color:var(--gv-ink-950); font-size:1.5rem; margin-bottom:.25rem; }
.gv-auth-subtitle{ text-align:center; color:var(--gv-text-muted); font-size:.9rem; margin-bottom:1.75rem; }
.gv-auth-card label{ font-weight:600; font-size:.85rem; color:var(--gv-ink-900); margin-bottom:.35rem; }
.gv-auth-card .form-control,
.gv-auth-card .form-select{
  border:1.5px solid var(--gv-border);
  border-radius:var(--gv-radius-sm);
  padding:.7rem .9rem;
  font-size:.95rem;
  background:var(--gv-surface-alt);
}
.gv-auth-card .form-control:focus,
.gv-auth-card .form-select:focus{
  border-color:var(--gv-green-500);
  box-shadow:0 0 0 3px rgba(18,163,116,.16);
  background:#fff;
}
.gv-auth-card .btn-but,
.gv-auth-card .btn-brand{ width:100%; border-radius:var(--gv-radius-sm); padding:.8rem; font-size:1rem; margin-top:.5rem; }
.gv-auth-links{ text-align:center; margin-top:1.25rem; font-size:.88rem; color:var(--gv-text-muted); }
.gv-auth-links a{ color:var(--gv-green-600); font-weight:700; text-decoration:none; }
.gv-auth-links a:hover{ color:var(--gv-green-700); }
.gv-auth-back{ position:fixed; top:1.5rem; left:1.5rem; z-index:10; }
.gv-auth-back a{ color:rgba(255,255,255,.8); text-decoration:none; font-weight:600; font-size:.9rem; }
.gv-auth-back a:hover{ color:var(--gv-green-400); }

/* =========================================================================
   DASHBOARD SHELL
   Sidebar / mobile-nav use the darkest ink tones with an emerald accent.
   ========================================================================= */
body:has(.nav-dashboard){ background:var(--gv-bg); }
.nav-dashboard{
  background:linear-gradient(180deg,var(--gv-side-950),var(--gv-side-900)) !important;
  min-height:100vh;
  padding:0 !important;
  box-shadow:2px 0 20px rgba(0,0,0,.15);
}
.nav-dashboard aside{
  background:transparent !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
  padding:1.5rem 1.25rem !important;
}
.nav-dashboard aside img{ filter:brightness(0) invert(1); }
.main-nav-list{ padding:1rem .75rem; }
.main-nav-list li{
  background:transparent !important;
  border:none !important;
  color:rgba(255,255,255,.72);
  border-radius:var(--gv-radius-sm);
  margin-bottom:.2rem;
  font-weight:600;
  font-size:.92rem;
  transition:background .15s ease, color .15s ease;
}
.main-nav-list a:hover li{ background:rgba(24,196,140,.14); color:var(--gv-accent-400); }
.main-nav-list a.active li{ background:rgba(24,196,140,.18); color:var(--gv-accent-400); }
.main-nav-list a[href*="logout"] li,
.main-nav-list a[data-bs-target*="staticBackdrop"] li{ color:rgba(255,255,255,.5); margin-top:.75rem; border-top:1px solid rgba(255,255,255,.08) !important; padding-top:1rem !important; border-radius:0 !important; }

.offcanvas{ background:var(--gv-side-950) !important; }
.offcanvas-header{ background:var(--gv-side-950) !important; border-bottom:1px solid rgba(255,255,255,.08); }
.offcanvas-header img{ filter:brightness(0) invert(1); }
.offcanvas .btn-close{ filter:invert(1); }

/* ---------- dashboard CONTENT area ---------- */
.dashboard-container{ background:var(--gv-bg); padding:0 0 3rem; }
.header-content{
  background:var(--gv-surface) !important;
  border-bottom:1px solid var(--gv-border);
  padding:1rem 1.5rem !important;
  align-items:center;
  box-shadow:var(--gv-shadow-sm);
  position:sticky; top:0; z-index:20;
}
.header-content article{ color:var(--gv-ink-950) !important; font-size:1rem !important; font-weight:600; }
.header-content article .fw-bold{ color:var(--gv-green-600); }
.header-content .img-thumbnail{ border-color:var(--gv-green-500) !important; }

.gv-card, .card{
  border:1px solid var(--gv-border) !important;
  border-radius:var(--gv-radius-md) !important;
  box-shadow:var(--gv-shadow-sm);
}
.gv-page-title{ font-size:1.35rem; color:var(--gv-ink-950); margin:1.5rem 1.5rem .25rem; font-weight:800; }
.gv-page-subtitle{ margin:0 1.5rem 1.5rem; color:var(--gv-text-muted); font-size:.92rem; }

.gv-stat-row{ display:flex; flex-wrap:wrap; gap:1rem; padding:0 1.5rem; margin-bottom:1.5rem; }
.gv-stat-card{
  flex:1 1 200px;
  background:var(--gv-surface);
  border:1px solid var(--gv-border);
  border-radius:var(--gv-radius-md);
  padding:1.25rem 1.4rem;
  box-shadow:var(--gv-shadow-sm);
  position:relative;
  overflow:hidden;
}
.gv-stat-card::after{
  content:""; position:absolute; right:-20px; top:-20px; width:70px; height:70px; border-radius:50%;
  background:linear-gradient(135deg,var(--gv-green-500),var(--gv-green-700)); opacity:.14;
}
.gv-stat-card .gv-stat-label{ font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gv-text-muted); font-weight:700; }
.gv-stat-card .gv-stat-value{ font-size:1.6rem; font-weight:800; color:var(--gv-ink-950); margin-top:.35rem; }
.gv-stat-card i{ font-size:1.4rem; color:var(--gv-green-600); }

/* dashboard stat tiles — admin: .statistics-content (white card, emerald accent) */
.statistics-data, .statistics-data2{ padding:1.5rem 1rem; gap:1rem; }
.statistics-content{
  background:var(--gv-surface) !important;
  background-image:none !important;
  border:1px solid var(--gv-border);
  border-left:4px solid var(--gv-green-600);
  border-radius:var(--gv-radius-md);
  padding:1.25rem 1.4rem !important;
  margin:.5rem !important;
  box-shadow:var(--gv-shadow-sm);
  color:var(--gv-text) !important;
}
.statistics-content h3{
  font-size:.8rem !important; text-transform:uppercase; letter-spacing:.05em;
  color:var(--gv-text-muted) !important; font-weight:700; margin-bottom:.5rem;
}
.statistics-content h5{ color:var(--gv-ink-950) !important; font-weight:800; }
.statistics-content p{ color:var(--gv-text-soft) !important; font-size:.78rem; margin-bottom:0; }
.statistics-content i{ color:var(--gv-green-600); }

/* client (Userdashboard): .statistics-content2 — solid emerald card */
.statistics-content2{
  background:linear-gradient(140deg,var(--gv-green-500),var(--gv-green-700)) !important;
  background-image:linear-gradient(140deg,var(--gv-green-500),var(--gv-green-700)) !important;
  border:none !important;
  border-radius:var(--gv-radius-md);
  padding:1.25rem 1.4rem !important;
  margin:.5rem !important;
  box-shadow:0 10px 26px rgba(18,163,116,.25);
  color:#fff !important;
}
.statistics-content2 h3{
  font-size:.8rem !important; text-transform:uppercase; letter-spacing:.05em;
  color:rgba(255,255,255,.8) !important; font-weight:700; margin-bottom:.5rem;
}
.statistics-content2 h5{ color:#fff !important; font-weight:800; }
.statistics-content2 p{ color:rgba(255,255,255,.78) !important; font-size:.78rem; margin-bottom:0; }
.statistics-content2 i{ color:#fff; }

/* product / balance cards used across Insurance, Shares, ETFs, Account Manager, Referral (client + admin) */
.insurance-stat section aside{
  background-image:linear-gradient(140deg,var(--gv-green-500),var(--gv-green-700)) !important;
  border:none !important;
  box-shadow:0 8px 22px rgba(18,163,116,.2);
}

.recent-transaction, .shareMarket, .shareHistory{
  background:var(--gv-surface);
  border-radius:var(--gv-radius-md);
  padding:1.25rem;
  margin:0 1rem 1.5rem;
  box-shadow:var(--gv-shadow-sm);
  border:1px solid var(--gv-border);
}
.recent-transaction h4, .shareMarket h4, .shareHistory h4{ color:var(--gv-ink-950); font-size:1.1rem; }
.sorter{
  border:1.5px solid var(--gv-border); border-radius:var(--gv-radius-sm);
  padding:.5rem .75rem; margin-bottom:1rem; background:var(--gv-surface-alt);
}

/* popups — emerald gradient; buttons inside are left completely untouched */
.modal-content{
  background:linear-gradient(150deg,var(--gv-green-700),var(--gv-ink-900)) !important;
  border-radius:var(--gv-radius-md);
  border:none;
  box-shadow:var(--gv-shadow-lg);
  color:#fff;
}
.modal-header{
  background:transparent !important;
  border-bottom:1px solid rgba(255,255,255,.18) !important;
}
.modal-header h5, .modal-header .modal-title{ color:#fff !important; font-weight:700; }
.modal-body{ color:rgba(255,255,255,.85); }
.modal-body h5{ color:#fff; }
.modal-body p{ color:rgba(255,255,255,.8); }
.modal-body label{ color:rgba(255,255,255,.92) !important; font-weight:600; }
.modal-body .form-control, .modal-body .form-select,
.modal-body select, .modal-body input:not([type=hidden]){
  background:#fff !important; color:var(--gv-text) !important; border:1px solid rgba(255,255,255,.5) !important;
}
.modal-body .alert{ color:var(--gv-text); }
.modal-footer{ border-top:1px solid rgba(255,255,255,.18); }
.modal .btn-close{ filter:invert(1); }

/* tables */
.table{ background:var(--gv-surface); border-radius:var(--gv-radius-md); overflow:hidden; }
.table thead th{
  background:var(--gv-ink-950); color:#fff; border:none; font-size:.78rem;
  text-transform:uppercase; letter-spacing:.05em; padding:.9rem 1rem;
}
.table tbody td{ padding:.85rem 1rem; vertical-align:middle; border-color:var(--gv-border); font-size:.9rem; }
.table tbody tr:hover{ background:var(--gv-surface-alt); }

/* status badges — matches paystatus/shareStatus/insuranceStatus/account_status strings */
.gv-badge, .badge{ border-radius:999px; padding:.35em .85em; font-weight:700; font-size:.72rem; letter-spacing:.02em; }
.gv-badge-pending, .badge-pending{ background:var(--gv-warning-bg); color:var(--gv-warning); }
.gv-badge-completed, .badge-completed, .gv-badge-active, .badge-active{ background:var(--gv-success-bg); color:var(--gv-success); }
.gv-badge-cancelled, .badge-cancelled, .gv-badge-disabled, .badge-disabled{ background:var(--gv-danger-bg); color:var(--gv-danger); }
.gv-badge-unconfirmed, .badge-unconfirmed{ background:var(--gv-info-bg); color:var(--gv-info); }

/* forms inside dashboard cards */
.dashboard-container .form-control,
.dashboard-container .form-select{
  border:1.5px solid var(--gv-border);
  border-radius:var(--gv-radius-sm);
  padding:.65rem .85rem;
}
.dashboard-container .form-control:focus,
.dashboard-container .form-select:focus{
  border-color:var(--gv-green-500);
  box-shadow:0 0 0 3px rgba(18,163,116,.14);
}
.dashboard-container .btn-primary{
  background:linear-gradient(135deg,var(--gv-green-600),var(--gv-green-700));
  border:none;
}
.dashboard-container .btn-primary:hover{ background:linear-gradient(135deg,var(--gv-green-500),var(--gv-green-600)); }
.dashboard-container .btn-success{ background:var(--gv-success); border:none; }
.dashboard-container .btn-danger{ background:var(--gv-danger); border:none; }
.dashboard-container .btn-info{ background:var(--gv-info); border:none; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:767px){
  .gv-auth-card{ padding:1.75rem 1.25rem; }
  .gv-page-title, .gv-page-subtitle, .gv-stat-row{ margin-left:1rem; margin-right:1rem; padding-left:0; padding-right:0; }
}

/* =========================================================================
   HOMEPAGE — photo cards, asset-class grid, track record, advisor band
   ========================================================================= */

/* photo-topped offer cards (beats .banking-statistics section img, 0-2-2 > 0-1-2) */
.banking-statistics section img.gv-offer-img{
  width:100%; height:190px; object-fit:cover;
  border-radius:var(--gv-radius-md);
  margin-bottom:1.15rem;
}

/* ---------- asset-class grid ---------- */
.gv-asset-grid{ display:grid; grid-template-columns:1fr; gap:1.25rem; padding:1.25rem 0 0; }
@media (min-width:768px){ .gv-asset-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:992px){ .gv-asset-grid{ grid-template-columns:repeat(3,1fr); } }
.gv-asset-card{
  background:var(--gv-surface);
  border:1px solid var(--gv-border);
  border-radius:var(--gv-radius-md);
  padding:1.15rem 1.15rem;
  box-shadow:var(--gv-shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease;
}
.gv-asset-card:hover{ transform:translateY(-6px); box-shadow:var(--gv-shadow-md); }
.gv-asset-card i{ font-size:1.7rem; color:var(--gv-green-600); }
.gv-asset-card h5{ font-size:1.05rem; color:var(--gv-ink-950); margin:.7rem 0 .4rem; }
.gv-asset-card p{ color:var(--gv-text-muted); font-size:.9rem; margin-bottom:.75rem; }
.gv-asset-tag{
  display:inline-block; font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:var(--gv-green-700); background:var(--gv-surface-alt);
  border:1px solid var(--gv-border); border-radius:999px; padding:.25rem .7rem;
}

/* ---------- track-record band ---------- */
.gv-track{ position:relative; overflow:hidden; padding:3rem 1.25rem; background:var(--gv-ink-950); }
.gv-track-bg{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:.28; }
.gv-track::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(760px 420px at 12% 12%, rgba(18,163,116,.42), transparent 62%),
    linear-gradient(180deg, rgba(4,20,15,.82), rgba(4,20,15,.94));
}
.gv-track-inner{ position:relative; z-index:2; max-width:1140px; margin:0 auto; }
.gv-track h3{ color:#fff; font-size:2rem; margin-bottom:.6rem; text-align:center; }
.gv-track > .gv-track-inner > p{ color:rgba(255,255,255,.75); text-align:center; max-width:720px; margin:0 auto 2.5rem; }
.gv-track-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1rem; }
.gv-track-stat{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(24,196,140,.28);
  border-radius:var(--gv-radius-lg);
  padding:1.1rem 1rem; text-align:center;
}
.gv-track-stat strong{ display:block; font-family:var(--gv-font-display); font-size:2rem; color:var(--gv-green-400); }
.gv-track-stat span{ display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.6); margin-top:.35rem; }
.gv-track-note{ color:rgba(255,255,255,.45) !important; font-size:.78rem; text-align:center; margin:2rem auto 0; max-width:760px; }

/* ---------- advisor band ---------- */
.gv-advisor{ background:var(--gv-surface-alt); padding:2.75rem 1.25rem; }
.gv-advisor-inner{ max-width:1140px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.gv-advisor img{ width:100%; border-radius:var(--gv-radius-lg); box-shadow:var(--gv-shadow-md); }
.gv-advisor h3{ color:var(--gv-ink-950); font-size:1.9rem; margin-bottom:.9rem; }
.gv-advisor p{ color:var(--gv-text-muted); }
.gv-advisor-list{ list-style:none; padding:0; margin:1.25rem 0 0; }
.gv-advisor-list li{ display:flex; gap:.7rem; align-items:flex-start; margin-bottom:.8rem; color:var(--gv-text); font-size:.95rem; }
.gv-advisor-list i{ color:var(--gv-green-600); font-size:1.1rem; flex:0 0 auto; margin-top:.1rem; }

@media (max-width:767px){
  .gv-advisor-inner{ grid-template-columns:1fr; gap:2rem; }
  .gv-track h3{ font-size:1.6rem; }
  .banking-statistics section img.gv-offer-img{ height:170px; }
}

/* ---------- card-row geometry ----------
   .banking-statistics is a flex row whose children are BOTH the bootstrap
   column and the card. The card's .75rem margin pushed 4x col-md-3 past
   100%, so four-card rows wrapped 3+1. Use a gap and subtract it from the
   column width instead. Scoped to >=768px, where col-md-* applies. */
@media (min-width:768px){
  .banking-statistics{ gap:1.5rem; }
  .banking-statistics > section{ margin:.75rem 0 !important; }
  .banking-statistics > section.col-md-3{ width:calc(25% - 1.125rem); }
  .banking-statistics > section.col-md-4{ width:calc(33.3333% - 1rem); }
  .banking-statistics > section.col-md-6{ width:calc(50% - .75rem); }
}

/* offer cards: keep the CTA on a common baseline regardless of copy length */
.banking-statistics > section:has(> .gv-offer-img){ display:flex; flex-direction:column; }
.banking-statistics > section:has(> .gv-offer-img) > p{ flex:1 1 auto; }
.banking-statistics > section:has(> .gv-offer-img) > a{ margin-top:auto; }

/* AOS was removed from this project entirely (assets, init and all 151
   data-aos attributes). It only ever revealed the elements already in view
   at init, leaving the rest at opacity:0 or rotated edge-on, which rendered
   whole sections blank below the fold. Nothing here depends on it now. */

/* =========================================================================
   CLIENT DASHBOARD — stat tiles with a watermark icon
   Scoped to .gv-stat-tile (not every .statistics-content2) so the
   full-width TradingView panel keeps its plain white card and is not
   clipped by overflow:hidden.
   ========================================================================= */
.statistics-content2.gv-stat-tile{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  min-height:132px;
  background:
    radial-gradient(420px 220px at 115% -25%, rgba(255,255,255,.22), transparent 62%),
    linear-gradient(140deg,var(--gv-green-500),var(--gv-green-700)) !important;
  background-image:
    radial-gradient(420px 220px at 115% -25%, rgba(255,255,255,.22), transparent 62%),
    linear-gradient(140deg,var(--gv-green-500),var(--gv-green-700)) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  transition:transform .2s ease, box-shadow .2s ease;
}
.statistics-content2.gv-stat-tile:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 36px rgba(18,163,116,.34);
}

/* the watermark itself */
.gv-stat-tile-bg{
  position:absolute;
  right:-.65rem;
  bottom:-1.35rem;
  z-index:-1;
  font-size:6.5rem;
  line-height:1;
  color:#fff !important;
  opacity:.16;
  transform:rotate(-10deg);
  pointer-events:none;
}

/* keep the real content above the watermark and pinned to a common baseline */
.statistics-content2.gv-stat-tile > h3{ position:relative; z-index:1; }
.statistics-content2.gv-stat-tile > h5{ position:relative; z-index:1; margin-bottom:.35rem; }
.statistics-content2.gv-stat-tile > p{
  position:relative; z-index:1; margin-top:auto;
  padding-top:.75rem;
  border-top:1px solid rgba(255,255,255,.18);
}

@media (max-width:767px){
  .statistics-content2.gv-stat-tile{ min-height:150px; }
  .gv-stat-tile-bg{ font-size:5.25rem; }
}

/* Even out the tile row: the markup mixes col-md-4 / col-md-3 / mx-md-3,
   which left a narrow orphan on a second line. Let the tiles share the
   row equally and rely on the container gap for spacing. */
/* .statistics-data2 is a bootstrap .row, so it carries negative side
   margins for gutters. Those make it wider than its container and push the
   last tile off-screen once the tiles are sized in %. Spacing comes from
   the flex gap here, so zero the gutters out. */
.statistics-data2{ margin-left:0 !important; margin-right:0 !important; }
/* spacing comes from the container's flex gap at every width, so the tile's
   own .5rem margin has to go: stacked at <768px it sat on top of width:100%
   and pushed each tile past the right edge. */
.statistics-data2 > .statistics-content2.gv-stat-tile{ margin:0 !important; }
@media (min-width:768px){
  .statistics-data2 > .statistics-content2.gv-stat-tile{
    flex:1 1 calc(25% - .75rem);
    width:auto;
    max-width:none;
  }
}

/* =========================================================================
   CLIENT DASHBOARD — buttons, alerts, panels, popups
   Bootstrap defaults (blue .btn-outline-primary, grey .btn-secondary, pale
   stock alerts) were showing through on every dashboard page. Bring them
   onto the brand.
   ========================================================================= */

/* ---------- action buttons ---------- */
.dashboard-container .btn-outline-primary,
.modal .btn-outline-primary{
  color:var(--gv-green-700) !important;
  border:1.5px solid var(--gv-green-600) !important;
  background:transparent !important;
  font-weight:700;
  border-radius:999px;
  padding:.55rem 1.3rem;
}
.dashboard-container .btn-outline-primary:hover,
.dashboard-container .btn-check:checked + .btn-outline-primary,
.modal .btn-outline-primary:hover{
  color:#fff !important;
  background:linear-gradient(135deg,var(--gv-green-600),var(--gv-green-700)) !important;
  border-color:var(--gv-green-700) !important;
}
.dashboard-container .btn-secondary{
  background:var(--gv-surface-alt) !important;
  color:var(--gv-text) !important;
  border:1px solid var(--gv-border) !important;
  font-weight:600;
}
.dashboard-container .btn-secondary:hover{ background:var(--gv-border) !important; }

/* ---------- alerts ---------- */
.dashboard-container .alert{
  border:1px solid transparent;
  border-left-width:4px;
  border-radius:var(--gv-radius-sm);
  font-size:.92rem;
  box-shadow:var(--gv-shadow-sm);
}
.dashboard-container .alert-success{
  background:var(--gv-success-bg) !important; border-color:var(--gv-success) !important; color:#05603a !important;
}
.dashboard-container .alert-danger{
  background:var(--gv-danger-bg) !important; border-color:var(--gv-danger) !important; color:#912018 !important;
}
.dashboard-container .alert-warning{
  background:var(--gv-warning-bg) !important; border-color:var(--gv-warning) !important; color:#93370d !important;
}
.dashboard-container .alert-info,
.dashboard-container .alert-primary{
  background:var(--gv-info-bg) !important; border-color:var(--gv-info) !important; color:#0b4a6f !important;
}
.dashboard-container .alert-secondary{
  background:var(--gv-surface-alt) !important; border-color:var(--gv-green-600) !important; color:var(--gv-text) !important;
}

/* ---------- balance cards (Insurance / Shares / ETFs / Referral) ---------- */
.insurance-stat section aside{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border-radius:var(--gv-radius-md);
  padding:1.1rem 1.25rem !important;
  margin-bottom:.85rem;
  color:#fff !important;
  background-image:
    radial-gradient(420px 220px at 115% -25%, rgba(255,255,255,.22), transparent 62%),
    linear-gradient(140deg,var(--gv-green-500),var(--gv-green-700)) !important;
  box-shadow:0 10px 26px rgba(18,163,116,.25);
  transition:transform .2s ease, box-shadow .2s ease;
}
.insurance-stat section aside:hover{ transform:translateY(-4px); box-shadow:0 16px 36px rgba(18,163,116,.34); }
.insurance-stat section aside h3{
  font-size:.8rem !important; text-transform:uppercase; letter-spacing:.05em;
  color:rgba(255,255,255,.82) !important; font-weight:700; margin-bottom:.4rem;
}
.insurance-stat section aside h5{ color:#fff !important; font-weight:800; }
.insurance-stat section aside p{
  color:rgba(255,255,255,.8) !important; font-size:.78rem; margin-bottom:0;
  padding-top:.7rem; border-top:1px solid rgba(255,255,255,.18);
}
.insurance-stat section aside i{ color:#fff; }

/* chart panel next to the balance cards was a bare canvas on the page bg */
.insurance-stat canvas{
  background:var(--gv-surface);
  border:1px solid var(--gv-border);
  border-radius:var(--gv-radius-md);
  box-shadow:var(--gv-shadow-sm);
}

/* ---------- popups / modals ---------- */
.modal-content{ overflow:hidden; }
.modal-header.popup-header{
  background:linear-gradient(135deg,var(--gv-green-700),var(--gv-ink-800)) !important;
  color:#fff !important;
}
.modal-footer.popup-footer{ background:rgba(0,0,0,.14); }
/* stock alerts sit on a dark gradient inside popups — make them translucent */
.modal .alert{
  border:1px solid transparent; border-left-width:4px;
  border-radius:var(--gv-radius-sm); font-size:.9rem;
}
.modal .alert-success{ background:rgba(3,102,58,.72) !important; border-color:var(--gv-green-400) !important; color:#dcfaee !important; }
.modal .alert-danger{ background:rgba(145,32,24,.82) !important; border-color:#fda29b !important; color:#fee4e2 !important; }
.modal .alert-warning{ background:rgba(147,55,13,.8) !important; border-color:#fec84b !important; color:#fef0c7 !important; }
.modal .alert-info,
.modal .alert-primary{ background:rgba(11,74,111,.8) !important; border-color:#84caff !important; color:#e0f2fe !important; }
.modal .btn-secondary{
  background:rgba(255,255,255,.14) !important;
  border:1px solid rgba(255,255,255,.3) !important;
  color:#fff !important; font-weight:600;
}
.modal .btn-secondary:hover{ background:rgba(255,255,255,.24) !important; }
.modal .btn-primary{
  background:linear-gradient(135deg,var(--gv-green-500),var(--gv-green-700)) !important;
  border:none !important; font-weight:700;
}
.modal .form-label{ color:rgba(255,255,255,.92) !important; font-weight:600; font-size:.85rem; }

/* ---------- tighter rhythm on phones ----------
   At 390px the homepage was 14,566px tall: section padding written for a
   desktop grid was stacking up once every card became full width. */
@media (max-width:767px){
  .gv-hero{ padding:5rem 0 2.5rem; }
  .statistics-container{ padding-top:1.85rem !important; padding-bottom:1.15rem; }
  .statistics-container h2, .statistics-container h3, .banks > h3{ font-size:1.5rem; }
  .banks{ padding:1.85rem .75rem; }
  .banking-statistics section,
  .banks section,
  .gv-feature-card{ padding:1.15rem 1rem; margin:.4rem 0; }
  .gv-asset-card{ padding:1rem; }
  .gv-asset-grid{ gap:.75rem; padding-top:.75rem; }
  .gv-track{ padding:2.25rem 1rem; }
  .gv-track-stats{ gap:.6rem; }
  .gv-track-stat{ padding:.9rem .75rem; }
  .gv-track-stat strong{ font-size:1.45rem; }
  .gv-advisor{ padding:2rem 1rem; }
  .gv-cta-banner{ margin:1.5rem auto; padding:2rem 1.25rem; }
  .gv-cta-banner h2{ font-size:1.5rem; }
  .testimony{ padding:2rem 1rem !important; }
  .leadership-stat section{ padding:1.15rem; }
  .footer{ padding:2rem 1.25rem 1rem; }
  .statistics-content2.gv-stat-tile{ min-height:0; padding:1rem 1.15rem !important; }
  .insurance-stat section aside{ padding:1rem 1.15rem !important; }
}

/* =========================================================================
   DASHBOARD TABLES — horizontal scroll on small screens
   All 22 dashboard tables sit directly inside .recent-transaction /
   .shareMarket / .shareHistory with no .table-responsive wrapper, so on a
   phone the columns were being crushed. Let the panel scroll sideways and
   hold the table at a readable minimum width. !important is needed because
   several of these panels carry inline overflow/scrollbar styles.
   ========================================================================= */
.dashboard-container .recent-transaction,
.dashboard-container .shareMarket,
.dashboard-container .shareHistory,
.dashboard-container .transfer-cointainer{
  overflow-x:auto !important;
  scrollbar-width:thin !important;
  -webkit-overflow-scrolling:touch;
}
.dashboard-container .recent-transaction::-webkit-scrollbar,
.dashboard-container .shareMarket::-webkit-scrollbar,
.dashboard-container .shareHistory::-webkit-scrollbar{ height:8px; }
.dashboard-container .recent-transaction::-webkit-scrollbar-thumb,
.dashboard-container .shareMarket::-webkit-scrollbar-thumb,
.dashboard-container .shareHistory::-webkit-scrollbar-thumb{
  background:var(--gv-green-300); border-radius:999px;
}

@media (max-width:991px){
  .dashboard-container .table{ min-width:660px; }
  .dashboard-container .table thead th{ font-size:.72rem; padding:.7rem .75rem; white-space:nowrap; }
  .dashboard-container .table tbody td{ font-size:.84rem; padding:.65rem .75rem; white-space:nowrap; }
}

/* the dashboard shell itself must never scroll sideways */
@media (max-width:767px){
  .dashboard-container{ max-width:100%; overflow-x:hidden; }
  .dashboard-container .recent-transaction,
  .dashboard-container .shareMarket,
  .dashboard-container .shareHistory{ margin-left:.5rem; margin-right:.5rem; padding:1rem .85rem; }
}

/* =========================================================================
   PASSWORD FIELDS — show / hide toggle
   .gv-pass is either a wrapper added around the input, or the existing
   bootstrap .form-floating (whose label has to stay a sibling of the input).
   ========================================================================= */
.gv-pass{ position:relative; }
.gv-pass > input{ padding-right:2.9rem !important; }
.gv-pass-btn{
  position:absolute;
  top:50%;
  right:.55rem;
  transform:translateY(-50%);
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:center;
  width:2rem;
  height:2rem;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--gv-text-muted);
  font-size:1rem;
  line-height:1;
  cursor:pointer;
}
.gv-pass-btn:hover{ background:var(--gv-surface-alt); color:var(--gv-green-700); }
.gv-pass-btn:focus-visible{ outline:2px solid var(--gv-green-500); outline-offset:2px; }
/* inside a dark popup the muted grey disappears */
.modal .gv-pass-btn{ color:rgba(255,255,255,.75); }
.modal .gv-pass-btn:hover{ background:rgba(255,255,255,.16); color:#fff; }
/* bootstrap floating labels animate over the field — keep clear of the button */
.gv-pass.form-floating > label{ padding-right:2.9rem; }

/* =========================================================================
   CARD TYPOGRAPHY — normalise the legacy 18px body copy
   stylescss.css carries `div.banking-statistics section p{font-size:18px;
   font-family:'Source Sans Pro'}` (specificity 0-1-3), which outranked the
   theme's `.banking-statistics section p` (0-1-2). Result: the offer cards
   and pricing cards rendered 18px/27px body text while the asset cards next
   to them rendered 14.4px — cards of wildly different heights on the same
   page, and a very tall mobile layout. Match the specificity and set one
   scale for every card.
   ========================================================================= */
div.banking-statistics section p,
div.leadership-stat section p{
  font-family:var(--gv-font-body);
  font-size:.94rem;
  line-height:1.55;
  color:var(--gv-text-muted);
}
div.leadership-stat section h4{
  font-family:var(--gv-font-display);
  font-size:1.05rem;
  color:var(--gv-ink-950);
}
div.banking-statistics section h2,
div.banking-statistics section h4,
div.banking-statistics section h6{
  font-family:var(--gv-font-display);
}
div.banking-statistics section h2{ font-size:1.6rem; color:var(--gv-ink-950); }
div.banking-statistics section h6{ font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; }
.statistics-container section h5{ font-size:1.12rem; }

@media (max-width:767px){
  div.banking-statistics section p,
  div.leadership-stat section p{ font-size:.9rem; line-height:1.5; }
  div.banking-statistics section h2{ font-size:1.35rem; }
  .statistics-container section h5{ font-size:1.05rem; }
  div.transparent h1{ font-size:1.65rem !important; }
  div.banks h3{ font-size:1.5rem; }
}

/* =========================================================================
   DASHBOARD SHELL — kill the stray 12px of horizontal scroll
   The shell is <div class="container-fluid"><div class="row">…, but this
   build's container-fluid contributes no side padding, so the row's
   bootstrap gutter margins (-12px each side) made the document 402px wide
   in a 390px viewport. Zero them on the shell only, so other .row layouts
   on the site are untouched.
   ========================================================================= */
.gv-dash-shell{ padding-left:0 !important; padding-right:0 !important; overflow-x:hidden; }
.gv-dash-shell > .row{ margin-left:0 !important; margin-right:0 !important; }
