html, body { overflow-x: hidden; max-width: 100%; }
html{overflow-x:hidden;max-width:100%;}
/*
Theme Name: VKCalc Financial
Theme URI: https://vkcalc.in
Author: VK Tax & Law Chamber
Author URI: https://www.vktax.in
Description: Premium financial tools WordPress theme for VKCalc.in. Calc Ginni™ AI chatbot, 7-category calculator library, sticky right sidebar, light/dark mode, mega menu, Amazon affiliate widget, AdSense ready. © VK Tax & Law Chamber®.
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
License: Proprietary
License URI: https://vkcalc.in/ip-policy
Text Domain: vkcalc-financial
Tags: financial, calculator, tax, dark-mode, custom-menu, featured-images, translation-ready
*/

/* =====================================================
   VKCalc Financial Theme
   © 2025 VK Tax & Law Chamber®
   Calc Ginni™ | Legal Ginni™ | Tax Ginni™ | MyGinni™
   ===================================================== */

/* ── DARK MODE INSTANT APPLY — prevents flash ── */
/* Applied by JS before DOM ready */
html.dark { color-scheme: dark; }
/* Disable transitions on page load to prevent flash */
html.no-transition * { transition: none !important; }


/* ══════════════════════════════
   LIGHT THEME (DEFAULT)
══════════════════════════════ */
:root {
  --navy:        #dce8f5;
  --navy-mid:    #c8dced;
  --navy-card:   #f0f6fc;
  --navy-border: #b0c8e0;
  --gold:        #d4880a;
  --gold-light:  #f5a623;
  --gold-dim:    rgba(212,136,10,0.10);
  --white:       #0d1e35;
  --muted:       #4a6580;
  --text:        #1e3a55;
  --teal:        #0891b2;
  --rose:        #db2777;
  --purple:      #7c3aed;
  --green:       #16a34a;
  --sidebar-w:   240px;
  --right-w:     230px;
  /* light-specific extras */
  --page-bg:     #e8f1fa;
  --card-shadow: 0 2px 12px rgba(11,40,80,0.08);
  --hero-bg1:    #c8dced;
  --hero-bg2:    #d8eaf7;
}

/* ══════════════════════════════
   DARK THEME (toggled via .dark)
══════════════════════════════ */
html.dark {
  --navy:        #0b1628;
  --navy-mid:    #122040;
  --navy-card:   #162544;
  --navy-border: #1e3360;
  --gold:        #f5a623;
  --gold-light:  #ffc04a;
  --gold-dim:    rgba(245,166,35,0.12);
  --white:       #eef2ff;
  --muted:       #7a8fad;
  --text:        #cdd8f0;
  --teal:        #2cd4c4;
  --rose:        #f06292;
  --purple:      #a78bfa;
  --green:       #4ade80;
  --page-bg:     #0b1628;
  --card-shadow: 0 2px 12px rgba(0,0,0,0.4);
  --hero-bg1:    #122040;
  --hero-bg2:    #162544;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{transition:background .35s,color .35s;}
body{ overflow-x:clip; max-width:100%; position:relative;
  background:var(--page-bg);
  color:var(--text);
  font-family:'DM Sans',sans-serif;
  min-height:100vh;
  transition:background .35s,color .35s;
}

/* ── TOP SEARCH BAR ── */
.top-bar{
  background:var(--navy-mid);
  border-bottom:1px solid var(--navy-border);
  padding:10px 5%;
  display:flex;align-items:center;gap:12px;
  transition:background .35s,border-color .35s;
}
.search-wrap{
  flex:1;max-width:680px;margin:0 auto;
  position:relative;
}
.search-wrap input{
  width:100%;
  background:var(--navy-card);
  border:1px solid var(--navy-border);
  border-radius:8px;
  padding:10px 16px 10px 42px;
  color:var(--white);font-size:14px;
  outline:none;transition:border-color .2s;
}
.search-wrap input::placeholder{color:var(--muted);}
.search-wrap input:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px var(--gold-dim),0 0 18px rgba(245,166,35,.2);
  animation:goldPulse 1.8s ease infinite;
}
@keyframes goldPulse{
  0%,100%{box-shadow:0 0 0 3px var(--gold-dim),0 0 12px rgba(245,166,35,.15);}
  50%{box-shadow:0 0 0 5px var(--gold-dim),0 0 28px rgba(245,166,35,.35);}
}
.search-wrap .s-icon{
  position:absolute;left:14px;top:50%;transform:translateY(-50%);
  color:var(--muted);font-size:16px;pointer-events:none;
}
.dark-toggle{
  background:var(--navy-card);
  border:2px solid var(--navy-border);
  border-radius:20px;
  padding:5px 12px 5px 8px;
  color:var(--muted);
  cursor:pointer;
  font-size:13px;
  font-weight:700;
  font-family:'DM Sans',sans-serif;
  flex-shrink:0;
  display:flex;align-items:center;gap:6px;
  transition:background .2s,border-color .2s,box-shadow .2s;
  box-shadow:var(--card-shadow);
  letter-spacing:.3px;
  user-select:none;
}
.dark-toggle:hover{
  border-color:var(--gold);
  box-shadow:0 0 0 3px var(--gold-dim);
}
.dark-toggle .toggle-track{
  width:30px;height:16px;
  background:var(--navy-border);
  border-radius:20px;
  position:relative;
  transition:background .25s;
  flex-shrink:0;
}
html.dark .dark-toggle .toggle-track{background:var(--gold);}
.dark-toggle .toggle-thumb{
  width:12px;height:12px;
  background:#fff;
  border-radius:50%;
  position:absolute;top:2px;left:2px;
  transition:transform .25s;
  box-shadow:0 1px 4px rgba(0,0,0,.3);
}
html.dark .dark-toggle .toggle-thumb{transform:translateX(14px);}

/* ── MAIN NAV ── */
nav.main-nav{
  background:var(--navy-mid);
  border-bottom:2px solid var(--navy-border);
  padding:0 5%;
  display:flex;align-items:center;justify-content:space-between;
  height:62px;position:sticky;top:0;z-index:200;
  backdrop-filter:blur(16px);
}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;}
.logo-badge{
  width:38px;height:38px;border-radius:9px;
  background:var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-weight:700;font-size:17px;color:var(--navy);
}
.logo-text{font-weight:700;font-size:15px;color:var(--white);}
.logo-sub{font-size:10px;color:var(--muted);letter-spacing:.8px;text-transform:uppercase;}

.nav-menu{display:flex;align-items:center;gap:4px;height:100%;}
.nav-item{position:relative;height:100%;display:flex;align-items:center;}
.nav-item>a{
  color:var(--text);text-decoration:none;font-size:13.5px;font-weight:500;
  padding:0 14px;height:100%;display:flex;align-items:center;gap:5px;
  border-bottom:2px solid transparent;transition:color .2s,border-color .2s;
  white-space:nowrap;
}
.nav-item>a:hover,.nav-item.active>a{color:var(--white);border-bottom-color:var(--gold);}
.nav-item>a .arrow{font-size:10px;color:var(--muted);}

/* mega menu */
.mega-menu{
  display:none;position:absolute;top:100%;left:0;
  background:var(--navy-mid);
  border:1px solid var(--navy-border);
  border-radius:0 0 12px 12px;
  box-shadow:0 20px 48px rgba(0,0,0,.5);
  padding:28px 32px;
  min-width:min(640px, 95vw);
  grid-template-columns:repeat(3,1fr);
  gap:0 32px;
  z-index:300;
}
.nav-item:hover .mega-menu{display:grid;}
.mega-col h4{
  font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--gold);margin-bottom:14px;
  padding-bottom:8px;border-bottom:1px solid var(--navy-border);
  display:flex;align-items:center;gap:7px;
}
.mega-col a{
  display:block;color:var(--text);text-decoration:none;
  font-size:13px;padding:5px 0;transition:color .2s,padding-left .15s;
}
.mega-col a:hover{color:var(--white);padding-left:6px;}

.nav-right{display:flex;align-items:center;gap:8px;}
.btn-file-itr{
  background:#1aaf6b;color:#fff;
  padding:8px 16px;border-radius:7px;
  font-weight:700;font-size:13px;text-decoration:none;
  transition:background .2s;white-space:nowrap;
}
.btn-file-itr:hover{background:#17c97b;}
.btn-get-started{
  background:var(--gold);color:var(--navy);
  padding:8px 16px;border-radius:7px;
  font-weight:700;font-size:13px;text-decoration:none;
  transition:background .2s,transform .15s;white-space:nowrap;
}
.btn-get-started:hover{background:var(--gold-light);transform:translateY(-1px);}

/* ── BOOK CONSULTATION sticky strip ── */
.book-strip{
  position:fixed;right:0;top:40%;transform:translateY(-50%);
  writing-mode:vertical-rl;
  background:#c6f135;color:#0b1628;
  font-weight:800;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;
  padding:18px 7px;cursor:pointer;z-index:500;
  border-radius:6px 0 0 6px;
  box-shadow:-3px 0 14px rgba(0,0,0,.3);
  transition:background .2s;
}
.book-strip:hover{background:#d4ff3a;}

/* ── PAGE BODY: sidebar + main + right ── */
.page-body{
  display:grid;
  grid-template-columns:var(--sidebar-w) 1fr var(--right-w);
  gap:0;
  max-width:1440px;margin:0 auto;
  min-height:calc(100vh - 110px);
}

/* ── LEFT SIDEBAR ── */
.left-sidebar{
  background:var(--navy-card);
  border-right:1px solid var(--navy-border);
  padding:24px 0;
}
.sidebar-title{
  font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--gold);padding:0 20px;margin-bottom:16px;
}
.sidebar-cat{border-bottom:1px solid var(--navy-border);}
.sidebar-cat-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 20px;cursor:pointer;
  transition:background .15s;
}
.sidebar-cat-header:hover{background:rgba(255,255,255,.04);}
.sidebar-cat-header-left{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--white);}
.sidebar-cat-header-left span{font-size:17px;}
.sidebar-arrow{font-size:11px;color:var(--muted);transition:transform .2s;}
.sidebar-cat.open .sidebar-arrow{transform:rotate(180deg);}
.sidebar-sub{display:none;padding:4px 0 10px 46px;}
.sidebar-cat.open .sidebar-sub{display:block;}
.sidebar-sub a{
  display:block;color:var(--muted);text-decoration:none;
  font-size:12.5px;padding:5px 0;transition:color .15s;
}
.sidebar-sub a:hover{color:var(--gold);}

.pro-tip{
  margin:20px 14px 0;
  background:linear-gradient(135deg,rgba(245,166,35,.12),rgba(245,166,35,.05));
  border:1px solid rgba(245,166,35,.3);
  border-radius:10px;padding:14px;
}
.pro-tip-label{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--gold);margin-bottom:6px;}
.pro-tip p{font-size:12.5px;color:var(--text);line-height:1.55;}

/* ── MAIN CONTENT ── */
.main-content{padding:36px 32px;}

/* hero */
.hero{
  position:relative;
  background:linear-gradient(135deg,var(--hero-bg1) 0%,var(--hero-bg2) 100%);
  border:1px solid var(--navy-border);
  border-radius:16px;
  padding:52px 48px;
  margin-bottom:40px;
  overflow:hidden;
}
.hero::after{
  content:'';position:absolute;right:-80px;top:-80px;
  width:360px;height:360px;
  background:radial-gradient(circle,rgba(245,166,35,.1),transparent 68%);
  pointer-events:none;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:7px;
  background:var(--gold-dim);border:1px solid rgba(245,166,35,.3);
  padding:4px 13px;border-radius:100px;
  font-size:11px;font-weight:600;color:var(--gold);letter-spacing:1px;text-transform:uppercase;
  margin-bottom:18px;
  animation:fadeUp .6s ease both;
}
.hero h1{
  font-family:'Playfair Display',serif;
  font-size:clamp(28px,4vw,52px);font-weight:700;line-height:1.1;
  color:var(--white);margin-bottom:14px;
  animation:fadeUp .65s .08s ease both;
}
.hero h1 span{color:var(--gold);}
.hero p{
  font-size:15px;color:var(--muted);line-height:1.7;max-width:520px;margin-bottom:28px;
  animation:fadeUp .65s .16s ease both;
}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;animation:fadeUp .65s .22s ease both;}
.btn-gold{background:var(--gold);color:var(--navy);padding:11px 24px;border-radius:7px;font-weight:700;font-size:14px;text-decoration:none;transition:transform .15s,box-shadow .2s;box-shadow:0 4px 18px rgba(245,166,35,.3);}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(245,166,35,.4);}
.btn-ghost{background:transparent;color:var(--white);padding:11px 24px;border-radius:7px;font-weight:500;font-size:14px;text-decoration:none;border:1px solid var(--navy-border);transition:border-color .2s,background .2s;}
.btn-ghost:hover{border-color:var(--gold);background:var(--gold-dim);}

/* stats row */
.stats-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:40px;
}
.stat-card{
  background:var(--navy-card);border:1px solid var(--navy-border);
  border-radius:12px;padding:18px 20px;text-align:center;
  animation:fadeUp .6s ease both;
}
.stat-num{font-family:'Playfair Display',serif;font-size:26px;color:var(--gold);font-weight:700;}
.stat-label{font-size:11.5px;color:var(--muted);margin-top:3px;}

/* section header */
.sec-hd{margin-bottom:24px;}
.sec-tag{font-size:10.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.sec-title{font-family:'Playfair Display',serif;font-size:22px;color:var(--white);font-weight:700;}
.sec-line{width:36px;height:3px;background:var(--gold);border-radius:2px;margin-top:8px;}

/* 4-CATEGORY GRID */
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:44px;}

.cat-card{
  background:var(--navy-card);
  border:1px solid var(--navy-border);
  border-radius:14px;padding:26px 22px;
  cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s;
  position:relative;overflow:hidden;
}
.cat-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  border-radius:14px 14px 0 0;transition:opacity .2s;opacity:0;
  background:var(--clr,var(--gold));
}
.cat-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,0,0,.35);}
.cat-card:hover{border-color:var(--clr,var(--gold));}
.cat-card:hover::before{opacity:1;}
.cat-card.c1{--clr:var(--teal);}
.cat-card.c2{--clr:var(--rose);}
.cat-card.c3{--clr:var(--purple);}
.cat-card.c4{--clr:var(--green);}

.cat-icon{
  width:46px;height:46px;border-radius:10px;font-size:22px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);
  margin-bottom:14px;
}
.cat-name{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:var(--white);margin-bottom:5px;}
.cat-desc{font-size:12.5px;color:var(--muted);line-height:1.55;margin-bottom:16px;}
.cat-list{display:flex;flex-direction:column;gap:5px;margin-bottom:16px;}
.cat-list-item{
  display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text);
}
.cat-list-item::before{content:'→';font-size:10px;color:var(--clr,var(--gold));flex-shrink:0;}
.cat-badge{
  font-size:11px;font-weight:600;color:var(--clr,var(--gold));
  background:rgba(255,255,255,.05);border-radius:20px;
  padding:3px 10px;display:inline-block;
}

/* featured tools */
.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:44px;}
.tool-card{
  background:var(--navy-card);border:1px solid var(--navy-border);
  border-radius:11px;padding:18px;cursor:pointer;
  box-shadow:var(--card-shadow);
  transition:transform .18s,border-color .2s,box-shadow .2s;
  display:flex;flex-direction:column;gap:8px;
}
.tool-card:hover{transform:translateY(-3px);border-color:rgba(245,166,35,.4);}
.tool-emoji{font-size:20px;}
.tool-name{font-size:13.5px;font-weight:600;color:var(--white);line-height:1.3;}
.tool-desc{font-size:11.5px;color:var(--muted);line-height:1.5;}
.tool-cta{margin-top:auto;font-size:12px;font-weight:600;color:var(--gold);display:flex;align-items:center;gap:4px;}

/* expert banner */
.expert-banner{
  background:linear-gradient(135deg,var(--navy-mid),var(--navy-card));
  border:1px solid var(--navy-border);border-radius:14px;
  padding:36px 40px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin-bottom:40px;position:relative;overflow:hidden;
}
.expert-banner::after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;background:radial-gradient(circle,rgba(245,166,35,.07),transparent 70%);pointer-events:none;}
.expert-text h2{font-family:'Playfair Display',serif;font-size:22px;color:var(--white);margin-bottom:8px;}
.expert-text h2 em{font-style:normal;color:var(--gold);}
.expert-text p{font-size:13.5px;color:var(--muted);line-height:1.6;max-width:420px;}
.expert-btns{display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap;}
.btn-teal{background:#1aaf6b;color:#fff;padding:10px 20px;border-radius:7px;font-weight:700;font-size:13px;text-decoration:none;transition:background .2s;white-space:nowrap;}
.btn-teal:hover{background:#17c97b;}
.btn-outline{padding:10px 20px;border-radius:7px;border:1px solid var(--gold);color:var(--gold);font-weight:600;font-size:13px;text-decoration:none;transition:background .2s;white-space:nowrap;}
.btn-outline:hover{background:var(--gold-dim);}

/* ── RIGHT SIDEBAR ── */
.right-sidebar{
  border-left:1px solid var(--navy-border);
  padding:0;
  position:relative;
  min-width:0;       /* prevent grid blowout */
  overflow:hidden;   /* clip any content that tries to escape */
  width:var(--right-w);
  max-width:var(--right-w);
}
.right-sticky{
  position:sticky;
  top:72px;
  max-height:calc(100vh - 80px);
  overflow-y:auto;
  overflow-x:hidden;
  padding:20px 14px 24px;
  scrollbar-width:thin;
  scrollbar-color:var(--navy-border) transparent;
  /* Prevent content from spilling outside sidebar boundary */
  box-sizing:border-box;
  contain:layout;
}
.right-sticky::-webkit-scrollbar{width:4px;}
.right-sticky::-webkit-scrollbar-thumb{background:var(--navy-border);border-radius:4px;}

/* consultation form */
.consult-form{
  background:linear-gradient(135deg,var(--navy-card),var(--navy-mid));
  border:1px solid var(--navy-border);
  border-top:3px solid var(--gold);
  border-radius:12px;padding:18px 14px;margin-bottom:14px;
}
.consult-title{
  font-family:'Playfair Display',serif;
  font-size:14px;font-weight:700;color:var(--white);margin-bottom:3px;
  display:flex;align-items:center;gap:7px;
}
.consult-sub{font-size:11px;color:var(--muted);margin-bottom:14px;line-height:1.5;}
.form-field{
  width:100%;background:var(--navy);
  border:1px solid var(--navy-border);border-radius:7px;
  padding:9px 11px;color:var(--white);font-size:12px;
  outline:none;margin-bottom:8px;transition:border-color .2s,box-shadow .2s;
  font-family:'DM Sans',sans-serif;
}
.form-field::placeholder{color:var(--muted);}
.form-field:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(245,166,35,.1);}
select.form-field{cursor:pointer;}
.checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.checkbox-row input{accent-color:var(--gold);width:13px;height:13px;flex-shrink:0;}
.checkbox-row label{font-size:11px;color:var(--muted);line-height:1.4;}
.btn-submit{
  width:100%;background:var(--gold);color:var(--navy);
  padding:11px;border-radius:7px;font-weight:800;font-size:13px;
  border:none;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s;
  font-family:'DM Sans',sans-serif;letter-spacing:.3px;
  box-shadow:0 4px 14px rgba(245,166,35,.3);
}
.btn-submit:hover{background:var(--gold-light);transform:translateY(-1px);box-shadow:0 6px 20px rgba(245,166,35,.45);}

/* ad slots in sidebar */
.ad-slot-sidebar{
  background:var(--navy-card);
  border:2px dashed var(--navy-border);
  border-radius:10px;padding:0;margin-bottom:14px;
  text-align:center;overflow:hidden;
}
.ad-slot-label-bar{
  background:var(--navy-border);
  font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--muted);padding:4px 0;
}
.ad-slot-body{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:14px 8px;gap:4px;
}
.ad-slot-size{font-size:13px;font-weight:700;color:var(--muted);}
.ad-slot-text{font-size:10px;color:var(--navy-border);letter-spacing:.5px;}

/* quick links */
.quick-links{background:var(--navy-card);border:1px solid var(--navy-border);border-radius:12px;padding:14px;margin-bottom:14px;}
.quick-links h4{font-size:11.5px;font-weight:700;color:var(--white);margin-bottom:10px;letter-spacing:.5px;text-transform:uppercase;}
.quick-links a{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;text-decoration:none;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.04);transition:color .15s;}
.quick-links a:last-child{border-bottom:none;}
.quick-links a:hover{color:var(--gold);}
.quick-links a::before{content:'›';color:var(--gold);font-size:16px;}

/* recent blog posts widget */
.blog-widget{background:var(--navy-card);border:1px solid var(--navy-border);border-radius:12px;padding:14px;margin-bottom:14px;}
.blog-widget h4{font-size:11.5px;font-weight:700;color:var(--white);margin-bottom:12px;letter-spacing:.5px;text-transform:uppercase;}
.blog-post{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;}
.blog-post:last-child{border-bottom:none;padding-bottom:0;}
.blog-post-title{font-size:12px;font-weight:500;color:var(--text);line-height:1.4;transition:color .15s;}
.blog-post:hover .blog-post-title{color:var(--gold);}
.blog-post-date{font-size:10.5px;color:var(--muted);}

/* ── FOOTER ── */
footer{
  background:var(--navy-mid);
  border-top:1px solid var(--navy-border);
  padding:44px 5% 20px;
}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px;max-width:1200px;margin:0 auto 32px;}
.footer-brand p{color:var(--muted);font-size:12.5px;line-height:1.7;margin-top:12px;max-width:200px;}
.footer-col h4{color:var(--white);font-size:12.5px;font-weight:700;margin-bottom:14px;letter-spacing:.5px;}
.footer-col a{display:block;color:var(--muted);font-size:12.5px;text-decoration:none;margin-bottom:8px;transition:color .15s;}
.footer-col a:hover{color:var(--gold);}
.footer-bottom{max-width:1200px;margin:0 auto;border-top:1px solid var(--navy-border);padding-top:16px;display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);flex-wrap:wrap;gap:6px;}

/* animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.anim{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease;}
.anim.vis{opacity:1;transform:translateY(0);}

/* ── BOOK WIDGET ── */
.book-widget{
  margin:16px 12px 0;
  background:linear-gradient(135deg,var(--navy-mid),var(--navy-card));
  border:1px solid var(--navy-border);
  border-top:3px solid var(--gold);
  border-radius:10px;
  overflow:hidden;
}
.book-widget-header{
  padding:10px 14px 8px;
  display:flex;align-items:center;gap:7px;
}
.book-widget-title{
  font-size:10.5px;font-weight:800;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--gold);
}
.book-widget-sub{
  font-size:10px;color:var(--muted);
  padding:0 14px 10px;line-height:1.4;
  border-bottom:1px solid var(--navy-border);
}
.book-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,.04);
  cursor:pointer;text-decoration:none;
  transition:background .15s;
}
.book-item:last-child{border-bottom:none;}
.book-item:hover{background:rgba(255,255,255,.04);}
.book-thumb{
  width:38px;height:52px;border-radius:4px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;
  background:var(--navy-border);
  border:1px solid rgba(255,255,255,.1);
  position:relative;overflow:hidden;
}
.book-thumb-placeholder{
  background:linear-gradient(135deg,#1e3360,#2a4580);
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:18px;
}
.amazon-badge{
  position:absolute;bottom:0;left:0;right:0;
  background:#ff9900;
  font-size:7px;font-weight:800;text-align:center;
  color:#111;padding:1px 0;letter-spacing:.5px;
}
.book-info{flex:1;min-width:0;}
.book-name{
  font-size:11.5px;font-weight:600;color:var(--white);
  line-height:1.35;margin-bottom:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.book-author{font-size:10.5px;color:var(--muted);margin-bottom:4px;}
.book-price{
  display:flex;align-items:center;gap:6px;
}
.book-price-main{font-size:12px;font-weight:700;color:var(--gold);}
.book-price-old{font-size:10px;color:var(--muted);text-decoration:line-through;}
.book-cta{
  display:inline-flex;align-items:center;gap:4px;
  margin-top:5px;
  background:#ff9900;color:#111;
  font-size:9.5px;font-weight:800;letter-spacing:.4px;
  padding:3px 8px;border-radius:3px;
  text-transform:uppercase;
  transition:background .15s;
}
.book-item:hover .book-cta{background:#ffad33;}
.book-widget-footer{
  padding:10px 12px;background:rgba(0,0,0,.15);
  text-align:center;
  font-size:10px;color:var(--muted);line-height:1.5;
  border-top:1px solid var(--navy-border);
}

/* ── RESPONSIVE */
@media(max-width:1200px){
  :root{--right-w:200px;}
}
@media(max-width:1050px){
  .page-body{grid-template-columns:var(--sidebar-w) 1fr 0 !important;}
  .right-sidebar{display:none;width:0;min-width:0;overflow:hidden;}
  .book-strip{display:flex;}
}

/* ── MOBILE SIDEBAR STRIP ─────────────────────────────────────
   Hidden on desktop (right sidebar shows instead).
   Shown on mobile ≤780px where right sidebar is hidden.
──────────────────────────────────────────────────────────── */
.mobile-sidebar-strip {
  display: none;  /* hidden on desktop — shown via media query below */
  margin-bottom: 0;
  padding: 0 14px;  /* match main-content padding */
}
/* ══════════════════════════════════════
   MOBILE OPTIMIZATION — Full Responsive
   © VK Tax & Law Chamber® | VKCalc.in®
══════════════════════════════════════ */

/* Tablet: hide right sidebar — mobile strip NOT shown yet at this size */
@media(max-width:1100px){
  .page-body{ grid-template-columns: var(--sidebar-w) 1fr; }
  .right-sidebar{ display:none; }
  .mobile-sidebar-strip{ display:none !important; }
}

/* Tablet small: hide left sidebar too */

/* ── SIDEBAR WIDTH RESET FOR MOBILE ─────────────── */
@media(max-width:860px){
  :root{ --right-w: 0px; --sidebar-w: 0px; }
}
@media(max-width:1100px){
  :root{ --right-w: 0px; }
}
@media(max-width:860px){
  .page-body{ grid-template-columns: 1fr !important; width:100%; overflow-x:hidden; }
  /* Hide mega-menu on mobile completely — use hamburger instead */
  .mega-menu { display:none !important; }
  /* Topbar search full width */
  .topbar { gap:6px; flex-wrap:wrap; }
  .search-wrap { min-width:0; flex:1; }
  /* Nav logo text smaller */
  .logo-text { font-size:14px; }
  /* Budget banner no overflow */
  .budget-banner, .hero-banner { overflow:hidden; }
  .left-sidebar{ display:none; width:0; min-width:0; overflow:hidden; }
  .right-sidebar{ display:none; width:0; min-width:0; overflow:hidden; }
  /* Force grid to treat hidden sidebars as zero-width */
  .page-body{ grid-template-columns: 0 1fr 0 !important; }
  .main-content{ padding:20px 16px; }
  .mobile-sidebar-strip{ display:none; } /* only on mobile 780px */
  .cat-grid{ grid-template-columns:1fr; }
  .comparison-cards{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:20px; }
  .footer-ads-row{ grid-template-columns:1fr; }
}

/* Mobile: full single column */
@media(max-width:780px){
  body { overflow-x: hidden !important; }
  /* Prevent overflow without breaking fixed elements */
  img, video, iframe, table { max-width: 100%; }
  /* Show the mobile sidebar strip — right sidebar is hidden */
  .mobile-sidebar-strip { display: block; }

  /* Book Consultation strip — hide vertical on mobile, show as floating bottom bar */
  .book-strip {
    display: none !important; /* vertical strip doesn't work on mobile */
  }
  :root{ --sidebar-w:0px; }

  /* Navigation: show hamburger, hide menu links */
  .nav-menu{ display:none; }
  .nav-right .btn-file-itr{ display:none; }
  .vkc-hamburger{
    display:flex; flex-direction:column; gap:5px; cursor:pointer;
    padding:8px; background:transparent; border:none;
  }
  .vkc-hamburger span{
    display:block; width:22px; height:2px;
    background:var(--white); border-radius:2px; transition:transform .25s;
  }
  .nav-menu.mobile-open{
    display:flex; flex-direction:column; position:fixed;
    top:0; left:0; right:0; bottom:0; background:var(--navy-mid);
    z-index:9000; padding:80px 28px 28px; gap:6px; overflow-y:auto;
  }
  .nav-menu.mobile-open .nav-item{ height:auto; }
  .nav-menu.mobile-open .nav-item > a{
    font-size:18px; font-weight:600; padding:14px 0;
    border-bottom:1px solid var(--navy-border); height:auto; width:100%;
  }
  .nav-menu.mobile-open .mega-menu{
    display:block !important; position:static;
    background:var(--navy-card); border-radius:8px; padding:14px;
    margin-top:8px; min-width:unset; grid-template-columns:1fr;
  }
  .mobile-nav-close{
    position:absolute; top:18px; right:20px;
    background:transparent; border:none; font-size:26px;
    color:var(--white); cursor:pointer;
  }

  /* Layout — single column, no side gaps */
  .page-body{ grid-template-columns:1fr !important; width:100%; }
  .left-sidebar, .right-sidebar{ display:none !important; }
  .main-content{ padding:16px 14px; min-width:0; }
  .mobile-sidebar-strip{ display:block !important; padding:0 14px; margin-bottom:0; }

  /* Hero */
  .hero{ padding:28px 20px; }
  .hero h1{ font-size:clamp(22px,6vw,32px); }
  .hero-btns{ flex-direction:column; gap:10px; }
  .hero-btns a{ width:100%; text-align:center; }

  /* Stats */
  .stats-row{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .stat-num{ font-size:22px; }

  /* Tool categories */
  .cat-grid{ grid-template-columns:1fr; gap:12px; }
  .tool-grid{ grid-template-columns:1fr; }

  /* Expert banner */
  .expert-banner{ flex-direction:column; padding:22px 18px; gap:16px; }

  /* Blog grid */
  .blog-grid{ grid-template-columns:1fr; }

  /* Footer */
  .footer-grid{ grid-template-columns:1fr 1fr; gap:18px; padding:28px 0 22px; }
  .footer-ads-row{ grid-template-columns:1fr; }

  /* Topbar */
  .topbar{ padding:8px 14px; }
  .search-wrap{ flex:1; max-width:100%; }
  .dark-toggle span#toggleLabel{ display:none; }

  /* Budget banner */
  .budget-banner{ padding:0 14px; min-height:60px; }
  .budget-badge{ margin-right:8px; }

  /* Hero banner (main) */
  .hero-banner{ padding:24px 14px; }
  .hero-banner-title{ font-size:clamp(14px,4vw,22px); letter-spacing:1px; }

  /* Ginni mobile overrides → see CALC GINNI™ section below */
}

/* ══════════════════════════════════════════════════
   CALC GINNI™ — ORB, TRIGGER & ANIMATIONS
   Single source of truth — no duplicate rules
   Mobile view character preserved on desktop too
══════════════════════════════════════════════════ */

/* ── Trigger wrapper ── */
#ginni-trigger{
  position:fixed;
  bottom:28px;
  right:28px;
  left:auto;
  z-index:9999;
  cursor:pointer;
  width:72px;
  height:72px;
  overflow:visible;
  isolation:isolate;
  /* NO ::before/::after sparkles — they showed as second orb */
}

/* ── The gold circle orb ── */
.ginni-orb{
  width:72px;
  height:72px;
  border-radius:50%;
  /* 3D sphere gradient — matches mobile appearance */
  background:radial-gradient(circle at 35% 30%, #f0c96e, #BF953F 55%, #7a5210);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:38px;
  line-height:1;
  border:2.5px solid rgba(255,220,100,.5);
  will-change:transform,box-shadow;
  /* Emoji font stack — renders the blue genie character on all devices */
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji','Android Emoji',sans-serif;
  position:relative;
  overflow:hidden;
  /* All animations combined */
  animation:
    ginniPulse  2.5s ease-in-out infinite,
    ginniFloat  3.5s ease-in-out infinite,
    ginniShake  9s   ease-in-out infinite;
}

/* Shine sweep — makes it look 3D like mobile */
.ginni-orb::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:50%;
  background:linear-gradient(135deg,
    rgba(255,255,255,.38) 0%,
    rgba(255,255,255,.1)  40%,
    transparent 65%
  );
  pointer-events:none;
}

/* Hover — pause and enlarge */
#ginni-trigger:hover .ginni-orb{
  animation:none;
  transform:scale(1.14);
  box-shadow:0 0 0 10px rgba(191,149,63,.2), 0 12px 36px rgba(191,149,63,.5);
  transition:transform .2s ease, box-shadow .2s ease;
}

/* ── Animations ── */
@keyframes ginniPulse{
  0%  { box-shadow:0 0 0 0   rgba(191,149,63,.75), 0 0 0 0   rgba(191,149,63,.4); }
  40% { box-shadow:0 0 0 12px rgba(191,149,63,.2), 0 0 0 24px rgba(191,149,63,.07); }
  80% { box-shadow:0 0 0 18px rgba(191,149,63,0),  0 0 0 36px rgba(191,149,63,0); }
  100%{ box-shadow:0 0 0 0   rgba(191,149,63,0),   0 0 0 0   rgba(191,149,63,0); }
}
/* Gentle float — bobs like the genie is hovering */
@keyframes ginniFloat{
  0%,100%{ transform:translateY(0)   rotate(0deg); }
  30%    { transform:translateY(-7px) rotate(-3deg); }
  70%    { transform:translateY(-4px) rotate(2deg); }
}
/* Attention shake every 9s — makes users look */
@keyframes ginniShake{
  0%,88%,100%{ transform:rotate(0); }
  90%        { transform:rotate(-14deg) scale(1.08); }
  92%        { transform:rotate(14deg)  scale(1.08); }
  94%        { transform:rotate(-9deg); }
  96%        { transform:rotate(9deg); }
  98%        { transform:rotate(-4deg); }
}

/* ── Tooltip label ── */
.ginni-label{
  position:fixed;
  bottom:108px;
  right:16px;
  background:#fff;
  color:#0f172a;
  font-size:11.5px;
  font-weight:800;
  padding:5px 12px;
  border-radius:8px;
  box-shadow:0 4px 18px rgba(0,0,0,.2);
  white-space:nowrap;
  font-family:'DM Sans',sans-serif;
  border:1.5px solid #BF953F;
  animation:ginniLabelFloat 3s ease-in-out infinite;
  pointer-events:none;
  z-index:9998;
}
.ginni-label::after{
  content:'';
  position:absolute;
  bottom:-7px;
  right:20px;
  width:11px;height:11px;
  background:#fff;
  border-right:1.5px solid #BF953F;
  border-bottom:1.5px solid #BF953F;
  transform:rotate(45deg);
}
@keyframes ginniLabelFloat{
  0%,100%{ transform:translateY(0)   scale(1); }
  35%    { transform:translateY(-5px) scale(1.03); }
  70%    { transform:translateY(-2px) scale(1.01); }
}

/* ── Mobile overrides ── */
@media(max-width:780px){
  #ginni-trigger{ bottom:16px; right:14px; width:62px; height:62px; }
  .ginni-orb    { width:62px; height:62px; font-size:32px; }
  .ginni-label  { bottom:86px; right:10px; font-size:11px; }
  #ginni-box    { right:8px; left:8px; width:auto; bottom:88px; max-height:74vh; }
}

/* ── Chat Window ── */
#ginni-box{
  position:fixed;
  bottom:108px;
  right:28px;        /* always opens on RIGHT */
  left:auto;         /* never shifts left */
  width:360px;height:540px;
  background:#0f172a;
  border:2px solid #BF953F;
  border-radius:18px;
  display:none;flex-direction:column;
  overflow:hidden;
  box-shadow:0 12px 48px rgba(0,0,0,.6),0 0 0 1px rgba(191,149,63,.15);
  z-index:9998;
  font-family:'DM Sans',sans-serif;
  animation:ginniSlideIn .3s ease;
}
#ginni-box.open{display:flex;}
@keyframes ginniSlideIn{
  from{opacity:0;transform:translateY(20px) scale(.97);}
  to{opacity:1;transform:translateY(0) scale(1);}
}

/* Header */
.ginni-header{
  background:linear-gradient(90deg,#3a2c0f,#BF953F 60%,#AA771C);
  padding:14px 16px;
  display:flex;align-items:center;justify-content:space-between;
  flex-shrink:0;
}
.ginni-header-left{display:flex;align-items:center;gap:10px;}
.ginni-avatar{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;border:2px solid rgba(255,255,255,.3);
}
.ginni-name{font-weight:800;font-size:15px;color:#fff;line-height:1.1;}
.ginni-status{font-size:10px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:4px;}
.ginni-dot{width:6px;height:6px;background:#4ade80;border-radius:50%;animation:blink 1.5s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}
.ginni-close{
  background:rgba(255,255,255,.15);border:none;
  color:#fff;font-size:18px;width:28px;height:28px;
  border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s;font-weight:700;line-height:1;
}
.ginni-close:hover{background:rgba(255,255,255,.3);}

/* Messages */
.ginni-messages{
  flex:1;overflow-y:auto;padding:14px 12px;
  display:flex;flex-direction:column;gap:10px;
  scrollbar-width:thin;scrollbar-color:#BF953F #0f172a;
}
.ginni-messages::-webkit-scrollbar{width:4px;}
.ginni-messages::-webkit-scrollbar-thumb{background:#BF953F;border-radius:4px;}

.msg{display:flex;align-items:flex-end;gap:7px;max-width:88%;}
.msg.bot{align-self:flex-start;}
.msg.user{align-self:flex-end;flex-direction:row-reverse;}
.msg-avatar{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#BF953F,#AA771C);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;
}
.msg-bubble{
  padding:9px 13px;border-radius:14px;
  font-size:13px;line-height:1.55;
}
.msg.bot .msg-bubble{
  background:#1e293b;color:#e2e8f0;
  border:1px solid #BF953F22;
  border-radius:4px 14px 14px 14px;
}
.msg.user .msg-bubble{
  background:linear-gradient(135deg,#BF953F,#AA771C);
  color:#fff;
  border-radius:14px 4px 14px 14px;
}
.msg-bubble a{color:#fbbf24;text-decoration:underline;}
.msg-time{font-size:9.5px;color:#475569;margin-top:3px;text-align:right;}

/* Typing indicator */
.typing-indicator{display:flex;align-items:center;gap:4px;padding:10px 13px;}
.typing-dot{width:7px;height:7px;background:#BF953F;border-radius:50%;animation:typingBounce .9s infinite;}
.typing-dot:nth-child(2){animation-delay:.15s;}
.typing-dot:nth-child(3){animation-delay:.3s;}
@keyframes typingBounce{0%,80%,100%{transform:translateY(0);}40%{transform:translateY(-6px);}}

/* Quick Actions */
.ginni-quick{
  padding:8px 12px;
  display:flex;flex-wrap:wrap;gap:6px;
  border-top:1px solid #1e293b;
  flex-shrink:0;
}
.quick-btn{
  background:#1e293b;color:#BF953F;
  border:1px solid #BF953F44;
  border-radius:20px;padding:5px 11px;
  font-size:11.5px;font-weight:600;cursor:pointer;
  transition:background .15s,border-color .15s;
  font-family:'DM Sans',sans-serif;
}
.quick-btn:hover{background:#BF953F;color:#0f172a;border-color:#BF953F;}

/* Input bar */
.ginni-input-bar{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;
  border-top:1px solid #1e293b;
  background:#0d1526;
  flex-shrink:0;
}
.ginni-input{
  flex:1;background:#1e293b;border:1px solid #BF953F33;
  border-radius:20px;padding:9px 14px;
  color:#e2e8f0;font-size:13px;outline:none;
  font-family:'DM Sans',sans-serif;
  transition:border-color .2s;
}
.ginni-input:focus{border-color:#BF953F;}
.ginni-input::placeholder{color:#475569;}
.ginni-send{
  width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,#BF953F,#AA771C);
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  transition:transform .15s,box-shadow .2s;
  box-shadow:0 2px 8px rgba(191,149,63,.4);
}
.ginni-send:hover{transform:scale(1.1);box-shadow:0 4px 14px rgba(191,149,63,.6);}

/* Disclaimer in chat */
.ginni-disclaimer{
  font-size:10px;color:#475569;
  text-align:center;padding:6px 12px;
  border-top:1px solid #1e293b;
  line-height:1.5;flex-shrink:0;
}
.ginni-disclaimer span{color:#BF953F;}

/* Legal Ginni™ cross-link badge */
.legal-ginni-link{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(124,58,237,.15);
  border:1px solid rgba(124,58,237,.4);
  border-radius:8px;padding:6px 10px;
  color:#a78bfa;font-size:12px;font-weight:600;
  text-decoration:none;margin-top:6px;
  transition:background .2s;
}
.legal-ginni-link:hover{background:rgba(124,58,237,.3);}

/* ── WORDPRESS STANDARD ── */
.alignleft   { float:left;  margin-right:1.5em; margin-bottom:1em; }
.alignright  { float:right; margin-left:1.5em;  margin-bottom:1em; }
.aligncenter { display:block; text-align:center; margin:0 auto 1em; }
.screen-reader-text { border:0; clip:rect(1px,1px,1px,1px); height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; width:1px; }
img { max-width:100%; height:auto; }
.wp-block-image { margin:1.5em 0; }

/* ── ANIMATION UTIL ── */
.anim { opacity:0; transform:translateY(20px); transition:opacity .5s ease,transform .5s ease; }
.anim.vis { opacity:1; transform:translateY(0); }

/* ── WORDPRESS ADMIN BAR COMPENSATION ─────────────────────── */
/* When WP admin bar is visible (32px top), keep fixed elements clear */
.admin-bar #ginni-trigger { bottom: 28px; }
.admin-bar #ginni-box     { bottom: 108px; }
.admin-bar .book-strip    { top: calc(40% + 16px); }
@media screen and (max-width: 782px) {
  .admin-bar #ginni-trigger { bottom: 46px; }
  .admin-bar #ginni-box     { bottom: 126px; }
}

/* ── MOBILE CONSULTATION FAB (Floating Action Bar) ─── */
/* mobile-consult-fab removed — inline form used instead */


/* ══ MOBILE OVERFLOW SAFETY NET ══════════════════
   Belt-and-suspenders approach to kill the right strip
   across ALL screen sizes under 860px
═════════════════════════════════════════════════ */
@media(max-width:860px){
  html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .page-body {
    display: block !important;   /* fallback: block layout kills ALL grid columns */
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  .left-sidebar,
  .right-sidebar {
    display: none !important;
    width: 0 !important;
    max-width: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
  }
  .main-content {
    width: 100% !important;
    max-width: 100% !important;
    padding: 14px !important;
    box-sizing: border-box !important;
  }
}
