/*
Theme Name: Govt Job Portal
Theme URI: https://digimug.in
Author: Mayank Kumar
Author URI: https://example.com
Description: A fast, SEO-friendly WordPress theme for government job / result / admit card portals (Sarkari-Result-style). Built with Custom Post Types for Jobs, Results, Admit Cards, Answer Keys, Syllabus and Admissions.
Version: 1.7
Requires PHP: 7.4
Text Domain: govtjobportal
*/

/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root{
  --color-primary:      #0b4f8a;   /* header / brand blue   */
  --color-primary-dark: #073a66;
  --color-accent:       #e8722c;   /* CTA orange            */
  --color-accent-dark:  #c85c1c;
  --color-success:      #1c8a4b;   /* Results               */
  --color-info:         #2c7be5;   /* Admit Card            */
  --color-warning:      #d69e00;   /* Answer Key            */
  --color-purple:       #7b4fbf;   /* Admission             */
  --color-teal:         #0e8f8f;   /* Syllabus              */
  --color-pink:         #c23b7a;   /* Sarkari Yojna         */
  --color-text:         #222629;
  --color-text-light:   #5b6470;
  --color-border:       #e3e7ec;
  --color-bg:           #f4f6f8;
  --color-card:         #ffffff;
  --radius:             8px;
  --shadow-sm:          0 1px 2px rgba(16,24,40,.06);
  --shadow-md:          0 4px 12px rgba(16,24,40,.08);
  --font-base: "Noto Sans", "Segoe UI", Arial, sans-serif;
  --max-width: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-base);
  color: var(--color-text);
  background: var(--color-bg);
  font-size: 15px;
  line-height: 1.55;
}
a{ color: var(--color-primary); text-decoration:none; }
a:hover{ color: var(--color-accent); }
img{ max-width:100%; height:auto; display:block; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0 0 .5em; line-height:1.25; }
.container{ max-width: var(--max-width); margin: 0 auto; padding: 0 16px; }
.screen-reader-text{ position:absolute; left:-9999px; }

/* =========================================================
   TOP UTILITY BAR
   ========================================================= */
.top-bar{
  background: var(--color-primary-dark);
  color:#fff;
  font-size:12.5px;
}
.top-bar .container{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:6px; padding-bottom:6px; flex-wrap:wrap; gap:6px;
}
.top-bar a{ color:#dbeafe; margin-right:14px; }
.top-bar a:hover{ color:#fff; }
.top-bar .social-links a{ margin-right:10px; }
.top-links{ display:flex; flex-wrap:wrap; align-items:center; }
.top-bar-menu{ display:flex; flex-wrap:wrap; align-items:center; list-style:none; margin:0; padding:0; }
.top-bar-menu li{ margin:0; padding:0; }
.top-bar-menu a{ display:inline-block; margin-right:14px; }
.social-links{ display:flex; flex-wrap:wrap; align-items:center; }

/* =========================================================
   SITE HEADER
   ========================================================= */
.site-header{
  background: var(--color-card);
  border-bottom: 3px solid var(--color-accent);
  box-shadow: var(--shadow-sm);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 0; gap: 20px; flex-wrap: wrap;
}
.branding{ display:flex; align-items:center; gap:12px; }
.branding img.logo{ height:56px; width:auto; }
.branding .site-title{ font-size:22px; font-weight:800; color: var(--color-primary); margin:0; }
.branding .site-tagline{ font-size:12px; color: var(--color-text-light); margin:0; letter-spacing:.03em; }

.header-search{ flex:1; max-width:340px; }
.header-search form{ display:flex; }
.header-search input[type="search"]{
  flex:1; padding:9px 12px; border:1px solid var(--color-border);
  border-radius: var(--radius) 0 0 var(--radius); font-size:14px;
}
.header-search button{
  background: var(--color-accent); border:none; color:#fff; padding:0 16px;
  border-radius:0 var(--radius) var(--radius) 0; cursor:pointer;
}
.header-search button:hover{ background: var(--color-accent-dark); }

/* =========================================================
   PRIMARY NAV
   ========================================================= */
.primary-nav{ background: var(--color-primary); }
.primary-nav .container{ display:flex; align-items:center; }
.primary-nav ul.menu{ display:flex; flex-wrap:wrap; }
.primary-nav ul.menu > li{ position:relative; }
.primary-nav ul.menu > li > a{
  display:block; color:#fff; padding:12px 16px; font-weight:600; font-size:14px;
  white-space:nowrap;
}
.primary-nav ul.menu > li > a:hover,
.primary-nav ul.menu > li.current-menu-item > a{ background: var(--color-primary-dark); color:#fff; }
.primary-nav ul.sub-menu{
  display:none; position:absolute; top:100%; left:0; background:#fff;
  min-width:220px; box-shadow: var(--shadow-md); border-radius:0 0 var(--radius) var(--radius);
  z-index:50;
}
.primary-nav li:hover > ul.sub-menu{ display:block; }
.primary-nav ul.sub-menu a{ color: var(--color-text); padding:10px 16px; border-bottom:1px solid var(--color-border); }
.primary-nav ul.sub-menu a:hover{ background: var(--color-bg); color: var(--color-accent); }
.nav-toggle{ display:none; }

/* =========================================================
   MARQUEE / IMPORTANT LINKS TICKER
   ========================================================= */
.marquee-bar{
  background:#fff4e9; border:1px solid #ffdcb8; border-radius: var(--radius);
  margin:16px 0; padding:10px 14px; display:flex; align-items:center; gap:12px;
  overflow:hidden;
}
.marquee-bar .marquee-label{
  background: var(--color-accent); color:#fff; font-size:12px; font-weight:700;
  padding:4px 10px; border-radius:4px; flex-shrink:0;
}
.marquee-track{ overflow:hidden; flex:1; }
.marquee-track ul{ display:flex; gap:40px; white-space:nowrap; animation: marquee 30s linear infinite; }
.marquee-track:hover ul{ animation-play-state: paused; }
.marquee-track li a{ font-size:13.5px; font-weight:600; color:var(--color-primary-dark); }
@keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* =========================================================
   LAYOUT GRID
   ========================================================= */
.site-content{ padding: 20px 0 40px; }
.content-layout{ display:grid; grid-template-columns: 1fr 300px; gap:24px; align-items:start; }
@media (max-width: 900px){ .content-layout{ grid-template-columns: 1fr; } }

/* =========================================================
   CATEGORY BOX (home page sections: Result, Admit Card, etc.)
   ========================================================= */
.category-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:18px; margin-bottom:20px; }
@media (max-width: 900px){ .category-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px){ .category-grid{ grid-template-columns: 1fr; } }

.cat-box{
  background: var(--color-card); border:1px solid var(--color-border); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column;
}
.cat-box-head{
  padding:12px 16px; color:#fff; font-weight:700; font-size:15px;
  display:flex; justify-content:space-between; align-items:center;
}
.cat-box-head a{ color:#fff; font-size:12px; font-weight:600; opacity:.9; }
.cat-box.result .cat-box-head{ background: var(--color-success); }
.cat-box.admitcard .cat-box-head{ background: var(--color-info); }
.cat-box.latestjob .cat-box-head{ background: var(--color-accent); }
.cat-box.answerkey .cat-box-head{ background: var(--color-warning); }
.cat-box.syllabus .cat-box-head{ background: var(--color-teal); }
.cat-box.admission .cat-box-head{ background: var(--color-purple); }
.cat-box.yojna .cat-box-head{ background: var(--color-pink); }

.cat-box-list{ padding:6px 0; flex:1; }
.cat-box-list li{ border-bottom:1px dashed var(--color-border); }
.cat-box-list li:last-child{ border-bottom:none; }
.cat-box-list a{
  display:block; padding:8px 16px; font-size:13.5px; color: var(--color-text);
  line-height:1.4;
}
.cat-box-list a::before{ content:"› "; color: var(--color-accent); font-weight:700; }
.cat-box-list a:hover{ color: var(--color-accent); background: var(--color-bg); }
.cat-box-more{ text-align:center; padding:10px; border-top:1px solid var(--color-border); }
.cat-box-more a{ font-size:13px; font-weight:700; color: var(--color-primary); }

/* =========================================================
   SIDEBAR WIDGETS
   ========================================================= */
.widget{
  background: var(--color-card); border:1px solid var(--color-border); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); margin-bottom:20px; overflow:hidden;
}
.widget-title{
  margin:0; background: var(--color-primary); color:#fff; padding:10px 14px; font-size:14px; font-weight:700;
}
.widget-body{ padding:10px 14px; }
.widget ul li{ padding:7px 0; border-bottom:1px dashed var(--color-border); font-size:13.5px; }
.widget ul li:last-child{ border-bottom:none; }
.widget-ad{ text-align:center; padding:10px; font-size:12px; color: var(--color-text-light); }

/* =========================================================
   SINGLE POST (job / result / admit card detail page)
   ========================================================= */
.post-header{
  background: var(--color-card); border:1px solid var(--color-border); border-radius: var(--radius);
  padding:18px 20px; margin-bottom:18px; box-shadow: var(--shadow-sm);
}
.post-header .breadcrumb{ font-size:12.5px; color: var(--color-text-light); margin-bottom:8px; }
.post-header h1{ font-size:22px; color: var(--color-primary-dark); }
.post-header .post-meta-line{ font-size:12.5px; color: var(--color-text-light); margin-top:6px; }

.post-featured-image{
  margin-bottom:18px; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-sm);
}
.post-featured-image img{
  display:block; width:100%; height:auto;
}

.info-table-wrap{
  background: var(--color-card); border:1px solid var(--color-border); border-radius: var(--radius);
  margin-bottom:18px; overflow:hidden; box-shadow: var(--shadow-sm);
}
.info-table-wrap h2{
  background: var(--color-accent); color:#fff; font-size:14px; padding:10px 16px; margin:0;
}
table.info-table{ width:100%; border-collapse:collapse; }
table.info-table th, table.info-table td{
  padding:10px 14px; border-bottom:1px solid var(--color-border); text-align:left; font-size:13.5px; vertical-align:top;
}
table.info-table th{ width:38%; background:#fafbfc; color: var(--color-text-light); font-weight:600; }

.important-dates ul li, .fee-list ul li{
  display:flex; justify-content:space-between; padding:8px 14px; border-bottom:1px dashed var(--color-border); font-size:13.5px;
}

.apply-links{ display:flex; flex-wrap:wrap; gap:10px; padding:14px 16px; }
.btn{
  display:inline-block; padding:10px 18px; border-radius:6px; font-weight:700; font-size:13.5px;
  color:#fff; background: var(--color-primary); text-align:center;
}
.btn:hover{ background: var(--color-primary-dark); color:#fff; }
.btn.btn-accent{ background: var(--color-accent); }
.btn.btn-accent:hover{ background: var(--color-accent-dark); }

.post-content-body{
  background: var(--color-card); border:1px solid var(--color-border); border-radius: var(--radius);
  padding:20px; box-shadow: var(--shadow-sm); margin-bottom:18px;
}
.post-content-body h2{ font-size:17px; color: var(--color-primary-dark); border-left:4px solid var(--color-accent); padding-left:10px; }
.post-content-body table{ width:100%; border-collapse:collapse; margin:14px 0; }
.post-content-body table td, .post-content-body table th{ border:1px solid var(--color-border); padding:8px 10px; font-size:13.5px; }

/* =========================================================
   ARCHIVE / LISTING PAGE (e.g. /latestjob/, /result/)
   ========================================================= */
.archive-header{
  background: var(--color-primary); color:#fff; padding:20px; border-radius: var(--radius); margin-bottom:18px;
}
.archive-header h1{ font-size:20px; margin:0 0 4px; }
.archive-header p{ margin:0; font-size:13px; color:#dbeafe; }

.post-list{ background: var(--color-card); border:1px solid var(--color-border); border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-sm); }
.post-list li{ border-bottom:1px dashed var(--color-border); }
.post-list li:last-child{ border-bottom:none; }
.post-list a{
  display:flex; justify-content:space-between; gap:10px; padding:12px 16px; font-size:14px; color: var(--color-text);
}
.post-list a:hover{ background: var(--color-bg); color: var(--color-accent); }
.post-list .post-date{ font-size:12px; color: var(--color-text-light); white-space:nowrap; }

.pagination{ display:flex; gap:8px; justify-content:center; margin:24px 0; }
.pagination a, .pagination span{
  padding:8px 13px; border:1px solid var(--color-border); border-radius:6px; font-size:13px; background:#fff;
}
.pagination .current{ background: var(--color-primary); color:#fff; border-color: var(--color-primary); }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background: var(--color-primary-dark); color:#cfe0f2; margin-top:24px; }
.footer-columns{ display:grid; grid-template-columns: repeat(4, 1fr); gap:24px; padding:36px 0 20px; }
@media (max-width: 800px){ .footer-columns{ grid-template-columns: repeat(2,1fr); } }
.footer-columns h4{ color:#fff; font-size:14px; margin-bottom:12px; text-transform:uppercase; letter-spacing:.04em; }
.footer-columns li{ padding:5px 0; font-size:13px; }
.footer-columns a{ color:#cfe0f2; }
.footer-columns a:hover{ color:#fff; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12); text-align:center; padding:16px 0; font-size:12.5px; color:#9db6d1;
}
.disclaimer-box{
  background: rgba(0,0,0,.15); font-size:11.5px; color:#a9c2dc; padding:14px 16px; line-height:1.6;
}

/* =========================================================
   RESPONSIVE NAV (mobile)
   ========================================================= */
@media (max-width: 860px){
  .nav-toggle{
    display:block; background: var(--color-accent); color:#fff; border:none; padding:10px 14px;
    font-weight:700; border-radius:6px; margin:10px 0; cursor:pointer;
  }
  .primary-nav .container{ flex-direction:column; align-items:flex-start; }
  .primary-nav ul.menu{ display:none; flex-direction:column; width:100%; padding-bottom:10px; }
  .primary-nav.nav-open ul.menu{ display:flex; }
  .primary-nav ul.menu > li{ width:100%; }
  .primary-nav ul.sub-menu{ position:static; box-shadow:none; display:block; }
}

/* =========================================================
   STATE / ORGANISATION DIRECTORY TABS
   Used on taxonomy-state.php and taxonomy-job_category.php.
   All panels exist in the HTML; CSS just hides inactive ones,
   so every linked post stays crawlable in the page source.
   ========================================================= */
.gjp-tabs-nav{
  display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; border-bottom:2px solid var(--color-border); padding-bottom:10px;
}
.gjp-tab-btn{
  background: var(--color-bg); border:1px solid var(--color-border); color: var(--color-text);
  padding:9px 16px; border-radius:20px; font-size:13.5px; font-weight:600; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px; transition: background .15s ease, color .15s ease;
}
.gjp-tab-btn:hover{ background:#eef2f6; }
.gjp-tab-btn.is-active{ background: var(--color-primary); border-color: var(--color-primary); color:#fff; }
.gjp-tab-count{
  background: rgba(0,0,0,.12); border-radius:10px; padding:1px 7px; font-size:11.5px; font-weight:700;
}
.gjp-tab-btn.is-active .gjp-tab-count{ background: rgba(255,255,255,.25); }
.gjp-tab-panel{ display:none; }
.gjp-tab-panel.is-active{ display:block; }
.gjp-tab-more{ margin-top:10px; }
.gjp-tab-more a{ font-weight:600; color: var(--color-accent); }
.gjp-tab-empty, .gjp-tab-empty-all{ color: var(--color-text-light); padding:16px 0; }

.gjp-tab-pagination{ margin:14px 0 4px; }
.gjp-tab-pagination ul.page-numbers{
  display:flex; flex-wrap:wrap; gap:6px; list-style:none; margin:0; padding:0;
}
.gjp-tab-pagination .page-numbers li{ margin:0; padding:0; border:none; }
.gjp-tab-pagination .page-numbers a,
.gjp-tab-pagination .page-numbers span{
  display:inline-block; padding:6px 12px; border:1px solid var(--color-border); border-radius:5px;
  font-size:13px; font-weight:600; color: var(--color-text); background: var(--color-card);
}
.gjp-tab-pagination .page-numbers a:hover{ background: var(--color-bg); }
.gjp-tab-pagination .page-numbers .current{ background: var(--color-primary); border-color: var(--color-primary); color:#fff; }
.gjp-tab-pagination .page-numbers .dots{ border:none; background:none; }

.gjp-paged-list-nav{
  display:flex; flex-wrap:wrap; gap:6px; padding:12px 16px 4px;
}
.gjp-plist-page{
  min-width:30px; padding:5px 9px; border:1px solid var(--color-border); border-radius:5px;
  background: var(--color-bg); color: var(--color-text); font-size:13px; font-weight:700; cursor:pointer;
}
.gjp-plist-page:hover{ background:#eef2f6; }
.gjp-plist-page.is-active{ background: var(--color-primary); border-color: var(--color-primary); color:#fff; }
