/* ==================================================
   DESIGN TOKENS (GLOBAL)
================================================== */

:root {
  /* Brand */
  --brand-primary: #6cc04a;
  --brand-primary-dark: #0f1d0a;
  --brand-accent: #f7f6f9;
  --brand-accent-dark: #0056b3;
  --brand-smart-bar: #ecffd6;

  /* Text */
  --text-primary: #111;
  --text-secondary: #3c4043;
  --text-muted: #777;
  --text-white: #fff;

  /* Backgrounds */
  --bg-page: #ffffff;
  --bg-soft: #f3f5f7;
  --bg-muted: #f5f5f5;
  --bg-blue: #d1e7ff;
  --bg-orange: #ffe0cb;
  --bg-green: #def0b4;
	

  /* Borders */
  --border-light: #eee;
  --border-default: #ddd;

  /* Spacing */
  --s-xxs: 4px;
  --s-xs: 8px;
  --s-sm: 12px;
  --s-md: 16px;
  --s-lg: 24px;
  --s-xl: 32px;
  --s-2xl: 40px;
  --s-3xl: 60px;

  /* Radius */
  --radius-sm: clamp(4px, 0.5vw, 6px);
  --radius-md: clamp(6px, 0.7vw, 10px);
  --radius-lg: clamp(8px, 0.9vw, 14px);

  /* Shadows */
  --shadow-sm: 0 2px 6px rgba(0,0,0,.06);
  --shadow-md: 0 8px 24px rgba(0,0,0,.08);

  /* Motion */
  --ease-fast: 0.2s ease;
  --ease-base: 0.25s ease;
}

/* ==================================================
   BASE / TYPOGRAPHY
================================================== */

body {
  font-family: "Roboto", sans-serif;
  font-weight: 400;
  font-size: clamp(1rem, 0.9vw + 0.2rem, 1.125rem);
  line-height: 1.6;
  color: var(--text-secondary);
  background: var(--bg-page);
}

h1 { font-size: clamp(2.6rem, 4.8vw, 4rem); }
h2 { font-size: clamp(2rem, 3.5vw, 2.6rem); }
h3 { font-size: clamp(1.3rem, 2.5vw, 2rem); }
h4 { font-size: clamp(1rem, 2vw, 1.3rem); }

h2, h3, h5, dl, ol, ul {
  font-weight: 500;
  margin: 0.5rem auto;
}

p { margin: 0 0 var(--s-md); }

img {
  max-width: 100%;
  height: auto;
  display: block;
}
a, button {
  text-decoration: none;
}
/* ==================================================
   LAYOUT / UTILITIES
================================================== */
main {
	padding: var(--s-lg) 0;
}
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--s-lg);
}

.border-radius15 { border-radius: var(--radius-lg); }
/* ==================================================
   PRE HEADER
================================================== */
.pre-header {
	display: flex;
	gap:0.50em;
	padding: var(--s-lg) 0;
}
.pre-header h2 {
	font-size: clamp(1.125rem, 1.6vw + 0.3rem, 1.5rem);
	font-weight: 400;
}
.pre-header .sm-txt {
	font-size: clamp(0.875rem, 0.7vw + 0.2rem, 1rem);
}
/* ==================================================
   HEADER
================================================== */

.site-header {
  background: #fff;
  border-bottom: 1px solid var(--border-light);
}

.site-header ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-header a {
  text-decoration: none;
  color: var(--text-primary);
}

.header-bar {
  max-width: 100%;
  margin: auto;
  padding: var(--s-md) var(--s-lg);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header-logo img,
.mobile-menu-logo img {
  max-width: 128px;
  margin: 5px 0;
  transition: var(--ease-base);
}

.header-primary-menu ul {
  display: flex;
  gap: var(--s-xl);
}

.header-primary-menu a {
  font-weight: 500;
  color: var(--text-secondary);
}

.mobile-menu-toggle {
  display: none;
  background: none;
  border: 0;
  font-size: 22px;
  cursor: pointer;
}
/* ==================================================
   MOBILE MENU
================================================== */
.mobile-menu-header {
	background: #FFF;
	border-bottom: 1px solid var(--border-light);
	padding: var(--s-md) var(--s-lg);
}
.mobile-primary-menu, .mobile-user-menu {
	padding: var(--s-md) 0;
}
.mobile-primary-menu li.menu-item, .mobile-user-menu li.menu-item {
	padding: var(--s-xs) var(--s-lg);
}
.mobile-primary-menu li.menu-item:hover, .mobile-user-menu li.menu-item:hover {
	background: var(--search-bg-mobile-hover);
}
.mobile-menu-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 9998;

    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.mobile-menu-panel {
    position: fixed;
    top: 0;
    left: 0;

    width: clamp(260px, 70vw, 300px);
    height: 100%;
	padding:0;

    background: #fff;
    z-index: 9999;

    transform: translateX(-100%);
    transition: transform 0.3s ease;
}
.mobile-menu-close {
	background: #FFF;
  	border: none;
  	position: absolute;
	top:20px;
  	right: -50px;
	border-radius: 50%;
  	width: 34px;
  	height: 34px;
  	line-height: 42px;
	cursor: pointer;
}
.mobile-menu-close svg {
	display: inline-block;
}

/* ✅ OPEN STATE (THIS WAS MISSING) */
body.menu-open .mobile-menu-overlay {
    opacity: 1;
    pointer-events: auto;
}

body.menu-open .mobile-menu-panel {
    transform: translateX(0);
}

/* Lock scroll */
body.menu-open {
    overflow: hidden;
}

/* ==================================================
   BUTTONS
================================================== */

.wp-block-buttons .wp-block-button__link, .btn-primary,
.btn-start-test {
  background: var(--brand-primary);
  color: #fff;
  font-size: clamp(0.95rem, 0.8vw + 0.25rem, 1.05rem);
  padding: var(--s-sm) var(--s-lg);
  border-radius: var(--radius-md);
  font-weight: 500;
  text-decoration: none;
  transition: var(--ease-base);
}

.btn-primary:hover,
.btn-start-test:hover {
  background: var(--brand-primary-dark);
}

.btn-select-test {
  background: #fff;
  border: 1px solid var(--brand-primary);
  color: var(--brand-primary);
  font-size: clamp(0.95rem, 0.8vw + 0.25rem, 1.05rem);
  padding: var(--s-sm) var(--s-lg);
  border-radius: var(--radius-md);
}
/* ==================================================
   HOME PAGE
================================================== */

.hero-img, .highlighter-bg {
	border-radius: var(--radius-lg);
	margin: var(--s-md) auto;
}
.highlighter-bg {
  background: var(--brand-accent);
  color: var(--text-secondary);
  max-width: 100%;
  margin: auto;
  padding: var(--s-2xl);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.highlighter-bg h2, .highlighter-bg ul { font-weight: 400;}
.highlighter-bg .sub-txt {
	font-size: clamp(1.125rem, 1.6vw + 0.3rem, 1.5rem);
}
.pill-group {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
	justify-content: center;
}
.feature-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: var(--s-xs) var(--s-md) var(--s-xs) var(--s-xs);
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.feature-pill .icon {
	padding: var(--s-xxs);
	width: clamp(16px, 4vw, 24px);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
}
.feature-pill .icon::before {
	position: relative;
	top:0;
	margin: auto;
}
.feature-pill .icon.lblue {
	background: var(--bg-blue);	
}
.feature-pill .icon.lorange {
	background: var(--bg-orange);	
}
.feature-pill .icon.lgreen {
	background: var(--bg-green);	
}
.sw-proof {
    padding: var(--s-2xl) var(--s-md);
    background: var(--color-bg, #ffffff);
}

.sw-proof-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

/* Cards */
.sw-proof-card {
    background: var(--brand-accent);
    border-radius: var(--radius-lg);
    padding: var(--s-lg);
    min-height: 260px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Numbers */
.sw-proof-number {
    font-size: 44px;
    font-weight: 400;
    color: var(--color-text);
    letter-spacing: -0.5px;
}

/* Labels */
.sw-proof-label {
    font-size: 15px;
	font-weight: 300;
    color: var(--color-text-muted);
    line-height: 1.4;
}

/* CTA card */
.sw-proof-text {
    font-size: 15px;
	font-weight: 300;
    color: var(--color-text);
    line-height: 1.6;
    margin-bottom: 24px;
}

/* CTA link */
.sw-proof-link {
    font-size: 20px;
    font-weight: 400;
    color: var(--color-primary);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.sw-proof-link span {
    font-size: 22px;
    transition: transform 0.2s ease;
}

.sw-proof-link:hover span {
    transform: translateX(4px);
}

/* ==================================================
   PAGE BANNERS
================================================== */

.page-banner {
  height: auto;
  max-height: 340px;
  margin: var(--s-md) auto;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.page-banner img,
.page-sub-banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-sub-banner {
  background: var(--bg-soft);
  border-radius: var(--radius-lg);
  display: flex;
  grid-template-columns: 1fr 1fr;
  padding: 0 0;
}
.page-sub-banner figure {
	margin: 0;
}
.page-sub-banner .left-content {
  padding: var(--s-2xl);
}

/* ==================================================
   BLOG
================================================== */

.blog-container {
  max-width: 820px;
  margin: var(--s-2xl) auto;
  padding: 0 var(--s-md);
}

.blog-title {
  font-size: 32px;
  color: var(--text-primary);
}

.blog-meta {
  font-size: 14px;
  color: var(--text-muted);
}

.blog-content {
  font-size: 17px;
  line-height: 1.8;
}

/* ==================================================
   BLOG CARDS
================================================== */

.blog-card {
  background: #fff;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  padding: var(--s-lg);
  box-shadow: var(--shadow-sm);
  transition: var(--ease-base);
}

.blog-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.blog-card-image img {
  height: 180px;
  object-fit: cover;
}

/* ==================================================
   CATEGORY HERO
================================================== */

.category-hero {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: var(--s-2xl);
}

.category-hero img {
  height: 260px;
  object-fit: cover;
}

.category-hero-overlay {
  position: absolute;
  inset: 0;
  padding: var(--s-xl);
  background: linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,.15));
  color: #fff;
}

/* ==================================================
   MOCK / TEST CARDS
================================================== */

.mock-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
  gap: var(--s-lg);
}

.mock-card a {
  color: var(--text-primary);
  height: 100%;
  max-height: 60px;
  display: grid;
  padding: var(--s-sm);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  transition: var(--ease-base);
  justify-content: space-between;
}

.mock-card a:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.mock-card p {
    margin-top: auto;
}
.mock-card p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.mock-test-card-modern {
  display: flex;
  justify-content: space-between;
  gap: var(--s-lg);
  padding: var(--s-xl);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
}
.mock-load-more-wrap {
	display: flex;
	justify-content:center;
	margin: var(--s-xl) 0;
}
/* ============================
   MOCK TEST META – FIXED
============================ */

.mock-test-meta {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 15px;
    color: #333;
    flex-wrap: nowrap; /* KEY FIX */
}

.mock-test-meta .meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    line-height: 1.3;
}

/* Icons consistency */
.mock-test-meta .meta-item svg,
.mock-test-meta .meta-item i {
    font-size: 16px;
    line-height: 1;
}


.mock-test-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.mock-test-users {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 15px 10px;
	font-size: 12px;
    font-weight: 400;
    color: #374151;
}
.mock-test-users svg {
    width: 18px;
    height: 18px;
    stroke: #16a34a; /* trending green */
}
/* ==================================================
   ICONS
================================================== */
.mock-icon {
    width: 28px;       /* 👈 adjust here */
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
	font-size: 22px;
    color: var(--text-primary);
    opacity: 0.9;
    transition: var(--ease-base);
}
svg {
    stroke-width: 1.5;
    display: block;
}

.mock-card:hover .mock-icon {
  opacity: 1;
  transform: scale(1.1);
}

/* ==================================================
   BADGES
================================================== */
.mock-test-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;              /* ← SPACE BETWEEN BADGES */
    margin-bottom: 8px;    /* space below badges */
}

.mock-test-badges > * {
    line-height: 1;
}
.badge {
  padding: var(--s-xxs) var(--s-sm);
  font-size: 12px;
  border-radius: var(var(--radius-lg));
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.badge-free { background:#e6f7ec; color:#117a37; }
.badge-premium { background:#fff0e6; color:#a84300; }
.badge-language { background:#eef7ff; color:#0a4ea3; }

/* ==================================================
   OVERLAY STATES
================================================== */

body.menu-open,
body.search-open {
  overflow: hidden;
}

/* ==================================================
   FOOTER
================================================== */
.site-footer {
	padding:  var(--s-md) var(--s-lg);	
	margin-top: var(--s-md);
}
.site-footer p {
	margin: 0 0;
}
.site-footer .container {
	max-width: 100%;
	padding: 0px;
	margin: auto;
}
.footer-container {
	background: var(--brand-primary-dark);
	border-radius: var(--radius-lg);
	padding:  var(--s-md) var(--s-2xl);
	color: var(--text-white);
}
.footer-columns {
	grid-template-columns: repeat(3, 1fr);
	display: grid;
	column-gap: var(--s-lg);
}
.footer-columns h4 {
	color: var(--brand-accent);
	font-size: clamp(0.875rem, 0.7vw + 0.2rem, 1rem);
	text-transform: uppercase;
	font-weight: 300;
	opacity: 0.5;
	margin: var(--s-xs) 0;
}
.footer-columns ul {
	list-style: none;
    margin: 0;
    padding: 0;
}
.footer-columns ul li a {
	color: var(--brand-accent);
	font-weight: 400;
	margin-bottom: var(--s-xs);
}
.exam-footer {
    margin-top: var(--s-md);
    padding-top: var(--s-sm);
    border-top: 1px solid rgba(255,255,255,.1);
}
/* ==================================================
   RESPONSIVE
================================================== */

@media (max-width: 991px) {

  .header-logo,
  .header-primary-menu,
  .header-user-menu {
    display: none;
  }
  .pre-header {
	padding: 0 0 var(--s-lg) 0;
}
  .mobile-menu-toggle {
    display: inline-block;
  }

  .mock-test-card-modern {
    flex-direction: column;
    align-items: flex-start;
  }
  .site-footer {
		padding:  var(--s-xs);	}
  .sw-proof-grid {
        grid-template-columns: 1fr;
    }

  .sw-proof-card {
        min-height: auto;
    }
}

@media (max-width: 768px) {
  main {
	padding: var(--s-sm) 0;
  }
  .container {
  padding: 0 var(--s-sm);
  }
	
  .header-bar {
	padding: var(--s-md) var(--s-sm);
	}
  h1 { font-size: 36px; 
  }

  .page-sub-banner {
	flex-direction: column-reverse;
    grid-template-columns: 1fr;
	gap: var(--s-sm);
  }
 .page-sub-banner .left-content {
  padding: var(--s-md) var(--s-md) var(--s-xl);
  }
  .mock-card a {
	display: flex;
	align-items: center;
	gap: var(--s-xs);
	justify-content: space-between;
	flex-direction: row-reverse;
	padding: var(--s-md);
	max-height: 36px;
	}
  .mock-card p {
	margin: 0 0;	
	}
  .blog-title {
    font-size: 26px;
  }
	.highlighter-bg, .sw-proof-card, .sw-proof {
     padding: var(--s-md);
	}
  .category-hero img {
    height: 200px;
  }
}

/* Mobile fallback (only if very tight) */
@media (max-width: 480px) {
    .mock-test-meta {
        gap: 12px;
        font-size: 14px;
    }
}