/*
Theme Name: UPBoardSolutions Premium
Theme URI: https://upboardssolutions.com
Author: Nitish Kushwaha
Author URI: https://upboardssolutions.com
Description: Premium Education WordPress Theme for UP Board Solutions
Version: 1.0.0
Requires at least: 6.8
Tested up to: 6.8
Requires PHP: 8.3
Text Domain: upboardsolutions
*/

/* ==========================
   ROOT VARIABLES
========================== */

:root{

--primary:#2563EB;
--secondary:#0F172A;
--accent:#F59E0B;
--success:#10B981;
--danger:#EF4444;

--bg:#F8FAFC;
--white:#FFFFFF;

--text:#475569;
--heading:#0F172A;

--radius-sm:10px;
--radius-md:16px;
--radius-lg:24px;

--shadow-sm:0 2px 8px rgba(0,0,0,.08);
--shadow-md:0 10px 25px rgba(0,0,0,.08);
--shadow-lg:0 15px 40px rgba(0,0,0,.12);

--container:1280px;

--transition:.3s ease;
}

/* ==========================
   RESET
========================== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{
font-family:'Inter',sans-serif;
background:var(--bg);
color:var(--text);
line-height:1.7;
overflow-x:hidden;
}

img{
max-width:100%;
height:auto;
display:block;
}

a{
text-decoration:none;
transition:var(--transition);
}

ul{
list-style:none;
}

.container{
width:min(100% - 40px,var(--container));
margin-inline:auto;
}

/* ==========================
   TYPOGRAPHY
========================== */

h1,h2,h3,h4,h5,h6{
color:var(--heading);
font-family:'Poppins',sans-serif;
font-weight:700;
line-height:1.2;
}

h1{
font-size:clamp(2.5rem,5vw,4.5rem);
}

h2{
font-size:clamp(2rem,4vw,3rem);
}

h3{
font-size:1.5rem;
}

p{
margin-bottom:15px;
}

/* ==========================
   BUTTONS
========================== */

.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:14px 28px;
border-radius:50px;
font-weight:700;
transition:.3s;
}

.btn-primary{
background:var(--primary);
color:#fff;
}

.btn-primary:hover{
transform:translateY(-3px);
}

.btn-accent{
background:var(--accent);
color:#fff;
}

/* ==========================
   UTILITIES
========================== */

.section{
padding:80px 0;
}

.text-center{
text-align:center;
}

.shadow{
box-shadow:var(--shadow-md);
}

.radius{
border-radius:var(--radius-lg);
}
/* ==========================
   HEADER
========================== */

.upbs-header{
background:#fff;
position:sticky;
top:0;
z-index:999;
box-shadow:0 4px 18px rgba(15,23,42,.08);
}

.upbs-topbar{
background:linear-gradient(90deg,var(--secondary),var(--primary));
color:#fff;
font-size:14px;
font-weight:700;
}

.upbs-topbar-inner{
display:flex;
gap:14px;
align-items:center;
padding:8px 0;
}

.upbs-topbar span{
white-space:nowrap;
color:var(--accent);
}

.upbs-nav-wrap{
display:flex;
align-items:center;
gap:22px;
padding:16px 0;
}

.upbs-logo a{
font-family:'Poppins',sans-serif;
font-size:26px;
font-weight:800;
color:var(--primary);
white-space:nowrap;
}

.upbs-logo img{
max-height:58px;
width:auto;
}

.upbs-search{
flex:1;
display:flex;
background:#F1F5F9;
border:1px solid #E2E8F0;
border-radius:50px;
overflow:hidden;
}

.upbs-search input{
width:100%;
border:0;
outline:0;
background:transparent;
padding:14px 18px;
font-size:15px;
}

.upbs-search button{
border:0;
background:var(--primary);
color:#fff;
padding:0 22px;
font-size:18px;
cursor:pointer;
}

.upbs-menu ul{
display:flex;
align-items:center;
gap:22px;
}

.upbs-menu a{
color:var(--secondary);
font-weight:700;
font-size:15px;
}

.upbs-menu a:hover{
color:var(--primary);
}

.upbs-menu-toggle{
display:none;
border:0;
background:var(--primary);
color:#fff;
width:44px;
height:44px;
border-radius:12px;
font-size:24px;
cursor:pointer;
}

/* ==========================
   MOBILE HEADER
========================== */

@media(max-width:992px){

.upbs-nav-wrap{
flex-wrap:wrap;
}

.upbs-search{
order:3;
flex-basis:100%;
}

.upbs-menu-toggle{
display:block;
margin-left:auto;
}

.upbs-menu{
display:none;
width:100%;
background:#fff;
border-top:1px solid #E2E8F0;
padding:15px 0;
}

.upbs-menu.active{
display:block;
}

.upbs-menu ul{
flex-direction:column;
align-items:flex-start;
gap:0;
}

.upbs-menu li{
width:100%;
}

.upbs-menu a{
display:block;
padding:12px 0;
border-bottom:1px solid #F1F5F9;
}

}
/* ==========================
   HERO SECTION
========================== */

.upbs-hero{
background:
radial-gradient(circle at top left,rgba(245,158,11,.25),transparent 35%),
linear-gradient(135deg,#EFF6FF,#F8FAFC 55%,#FFF7ED);
padding:85px 0;
overflow:hidden;
}

.upbs-hero-grid{
display:grid;
grid-template-columns:1.1fr .9fr;
align-items:center;
gap:45px;
}

.upbs-badge{
display:inline-flex;
align-items:center;
gap:8px;
background:#fff;
color:var(--primary);
font-weight:800;
padding:12px 22px;
border-radius:50px;
box-shadow:var(--shadow-sm);
margin-bottom:22px;
}

.upbs-hero h1{
margin-bottom:20px;
}

.upbs-hero p{
font-size:18px;
max-width:650px;
color:var(--text);
}

.upbs-hero-buttons{
display:flex;
gap:16px;
flex-wrap:wrap;
margin-top:28px;
}

.upbs-hero-image{
position:relative;
}

.upbs-hero-image img{
width:100%;
max-height:430px;
object-fit:contain;
animation:upbsFloat 4s ease-in-out infinite;
}

@keyframes upbsFloat{
0%,100%{transform:translateY(0)}
50%{transform:translateY(-14px)}
}

/* ==========================
   SECTION TITLE
========================== */

.upbs-section-title{
margin-bottom:42px;
}

.upbs-section-title span{
display:inline-block;
color:var(--accent);
font-weight:900;
margin-bottom:8px;
}

.upbs-section-title p{
max-width:650px;
margin:12px auto 0;
}

/* ==========================
   CLASS DASHBOARD
========================== */

.upbs-class-section{
background:#fff;
}

.upbs-class-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:22px;
}

.upbs-class-card{
background:linear-gradient(180deg,#fff,#F8FAFC);
border:1px solid #E2E8F0;
border-radius:24px;
padding:28px;
box-shadow:var(--shadow-sm);
transition:.3s;
color:var(--secondary);
}

.upbs-class-card:hover{
transform:translateY(-8px);
box-shadow:var(--shadow-md);
border-color:var(--primary);
}

.upbs-class-icon{
width:58px;
height:58px;
border-radius:18px;
background:#EFF6FF;
display:flex;
align-items:center;
justify-content:center;
font-size:30px;
margin-bottom:18px;
}

.upbs-class-card h3{
margin-bottom:8px;
}

.upbs-class-card p{
font-size:14px;
margin-bottom:14px;
color:var(--text);
}

.upbs-class-card span{
color:var(--primary);
font-weight:800;
}

/* ==========================
   LATEST UPDATES MINI
========================== */

.upbs-latest-mini{
background:var(--bg);
}

.upbs-update-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:22px;
}

.upbs-update-card{
background:#fff;
border:1px solid #E2E8F0;
border-radius:24px;
padding:26px;
box-shadow:var(--shadow-sm);
transition:.3s;
}

.upbs-update-card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-md);
}

.upbs-update-card small{
color:var(--accent);
font-weight:900;
}

.upbs-update-card h3{
margin:12px 0;
font-size:20px;
}

.upbs-update-card h3 a{
color:var(--secondary);
}

.upbs-update-card h3 a:hover{
color:var(--primary);
}

.upbs-read{
font-weight:800;
color:var(--primary);
}

/* ==========================
   RESPONSIVE
========================== */

@media(max-width:992px){

.upbs-hero{
padding:60px 0;
}

.upbs-hero-grid{
grid-template-columns:1fr;
text-align:center;
}

.upbs-hero p{
margin-inline:auto;
}

.upbs-hero-buttons{
justify-content:center;
}

.upbs-class-grid{
grid-template-columns:repeat(3,1fr);
}

.upbs-update-grid{
grid-template-columns:1fr;
}

}

@media(max-width:640px){

.container{
width:min(100% - 24px,var(--container));
}

.upbs-hero-image{
display:none;
}

.upbs-class-grid{
grid-template-columns:repeat(2,1fr);
gap:14px;
}

.upbs-class-card{
padding:20px;
border-radius:18px;
}

.upbs-class-icon{
width:48px;
height:48px;
font-size:24px;
}

}
/* ==========================
   WHAT WE PROVIDE
========================== */

.upbs-provide-section{
background:#fff;
}

.upbs-provide-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:22px;
}

.upbs-provide-card{
background:linear-gradient(180deg,#FFFFFF,#F8FAFC);
border:1px solid #E2E8F0;
border-radius:24px;
padding:30px;
box-shadow:var(--shadow-sm);
transition:.3s;
}

.upbs-provide-card:hover{
transform:translateY(-8px);
box-shadow:var(--shadow-md);
border-color:var(--primary);
}

.upbs-provide-icon{
width:64px;
height:64px;
border-radius:20px;
background:#EFF6FF;
display:flex;
align-items:center;
justify-content:center;
font-size:32px;
margin-bottom:18px;
}

.upbs-provide-card h3{
margin-bottom:10px;
}

.upbs-provide-card p{
font-size:15px;
margin-bottom:0;
}

/* ==========================
   STUDY RESOURCES
========================== */

.upbs-resource-section{
background:linear-gradient(135deg,#EFF6FF,#FFFBEB);
}

.upbs-resource-grid{
display:grid;
grid-template-columns:repeat(5,1fr);
gap:18px;
}

.upbs-resource-card{
background:#fff;
border:1px solid #E2E8F0;
border-radius:22px;
padding:26px 20px;
text-align:center;
box-shadow:var(--shadow-sm);
color:var(--secondary);
transition:.3s;
}

.upbs-resource-card:hover{
transform:translateY(-7px);
box-shadow:var(--shadow-md);
border-color:var(--accent);
}

.upbs-resource-card span{
display:block;
font-size:38px;
margin-bottom:12px;
}

.upbs-resource-card h3{
font-size:18px;
margin-bottom:8px;
}

.upbs-resource-card small{
color:var(--primary);
font-weight:900;
}

/* ==========================
   CTA SECTION
========================== */

.upbs-cta-section{
background:#fff;
padding:40px 0 90px;
}

.upbs-cta-box{
background:
radial-gradient(circle at right,rgba(245,158,11,.3),transparent 30%),
linear-gradient(135deg,var(--secondary),var(--primary));
border-radius:32px;
padding:45px;
display:flex;
align-items:center;
justify-content:space-between;
gap:28px;
box-shadow:var(--shadow-lg);
color:#fff;
}

.upbs-cta-box span{
color:var(--accent);
font-weight:900;
}

.upbs-cta-box h2{
color:#fff;
margin:10px 0;
}

.upbs-cta-box p{
color:#E2E8F0;
margin-bottom:0;
}

/* ==========================
   RESPONSIVE PART 1.4
========================== */

@media(max-width:992px){

.upbs-provide-grid{
grid-template-columns:repeat(2,1fr);
}

.upbs-resource-grid{
grid-template-columns:repeat(2,1fr);
}

.upbs-cta-box{
flex-direction:column;
text-align:center;
}

}

@media(max-width:640px){

.upbs-provide-grid{
grid-template-columns:1fr;
}

.upbs-resource-grid{
grid-template-columns:1fr;
}

.upbs-cta-box{
padding:30px 22px;
border-radius:24px;
}

}
/* ==========================
   PREMIUM FOOTER
========================== */

.upbs-footer{
background:#0F172A;
color:#CBD5E1;
padding:70px 0 24px;
}

.upbs-footer-grid{
display:grid;
grid-template-columns:1.4fr 1fr 1fr 1fr;
gap:32px;
}

.upbs-footer h3,
.upbs-footer h4{
color:#fff;
margin-bottom:16px;
}

.upbs-footer h3{
font-size:28px;
color:var(--accent);
}

.upbs-footer p{
font-size:15px;
color:#CBD5E1;
}

.upbs-footer li{
margin-bottom:10px;
}

.upbs-footer a{
color:#CBD5E1;
font-weight:600;
}

.upbs-footer a:hover{
color:var(--accent);
padding-left:5px;
}

.upbs-footer-bottom{
border-top:1px solid rgba(255,255,255,.12);
margin-top:36px;
padding-top:22px;
display:flex;
align-items:center;
justify-content:space-between;
gap:20px;
}

.upbs-footer-bottom p{
margin:0;
}

.upbs-footer-actions{
display:flex;
gap:12px;
}

.upbs-footer-actions button{
width:44px;
height:44px;
border:0;
border-radius:14px;
background:var(--primary);
color:#fff;
font-size:20px;
cursor:pointer;
box-shadow:0 10px 25px rgba(37,99,235,.35);
transition:.3s;
}

.upbs-footer-actions button:hover{
transform:translateY(-4px);
background:var(--accent);
}

/* ==========================
   DARK MODE
========================== */

body.upbs-dark{
--bg:#020617;
--white:#0F172A;
--text:#CBD5E1;
--heading:#F8FAFC;
background:#020617;
color:#CBD5E1;
}

body.upbs-dark .upbs-header,
body.upbs-dark .upbs-class-section,
body.upbs-dark .upbs-provide-section,
body.upbs-dark .upbs-cta-section,
body.upbs-dark .upbs-menu,
body.upbs-dark .upbs-update-card,
body.upbs-dark .upbs-class-card,
body.upbs-dark .upbs-provide-card,
body.upbs-dark .upbs-resource-card{
background:#0F172A;
border-color:#1E293B;
}

body.upbs-dark .upbs-search{
background:#020617;
border-color:#1E293B;
}

body.upbs-dark .upbs-search input{
color:#fff;
}

body.upbs-dark .upbs-menu a,
body.upbs-dark .upbs-class-card,
body.upbs-dark .upbs-resource-card,
body.upbs-dark .upbs-update-card h3 a{
color:#F8FAFC;
}

body.upbs-dark .upbs-hero{
background:linear-gradient(135deg,#020617,#0F172A);
}

body.upbs-dark .upbs-latest-mini{
background:#020617;
}

body.upbs-dark .upbs-resource-section{
background:linear-gradient(135deg,#020617,#111827);
}

/* ==========================
   FOOTER RESPONSIVE
========================== */

@media(max-width:992px){
.upbs-footer-grid{
grid-template-columns:repeat(2,1fr);
}

.upbs-footer-bottom{
flex-direction:column;
text-align:center;
}
}

@media(max-width:640px){
.upbs-footer-grid{
grid-template-columns:1fr;
}

.upbs-footer{
padding-top:50px;
}
}
/* ==========================
   LIVE SEARCH POPUP
========================== */

.upbs-search-open{
border:0;
background:#EFF6FF;
color:var(--primary);
width:44px;
height:44px;
border-radius:14px;
font-size:20px;
cursor:pointer;
display:none;
}

.upbs-search-popup{
position:fixed;
inset:0;
background:rgba(15,23,42,.75);
backdrop-filter:blur(8px);
z-index:9999;
display:none;
align-items:flex-start;
justify-content:center;
padding:90px 20px;
}

.upbs-search-popup.active{
display:flex;
}

.upbs-search-box{
background:#fff;
width:min(100%,720px);
border-radius:28px;
padding:28px;
box-shadow:0 30px 80px rgba(0,0,0,.25);
position:relative;
animation:upbsSearchIn .25s ease;
}

@keyframes upbsSearchIn{
from{
opacity:0;
transform:translateY(-20px);
}
to{
opacity:1;
transform:translateY(0);
}
}

.upbs-search-box h3{
margin-bottom:18px;
font-size:26px;
}

.upbs-search-box form{
background:#F1F5F9;
border:1px solid #E2E8F0;
border-radius:50px;
overflow:hidden;
}

.upbs-search-box input{
width:100%;
border:0;
outline:0;
background:transparent;
padding:16px 20px;
font-size:16px;
}

.upbs-search-close{
position:absolute;
right:20px;
top:18px;
border:0;
background:#F1F5F9;
width:40px;
height:40px;
border-radius:12px;
font-size:28px;
cursor:pointer;
color:var(--secondary);
}

.upbs-live-results{
margin-top:22px;
max-height:360px;
overflow:auto;
}

.upbs-live-results p{
margin:0;
color:var(--text);
}

.upbs-live-item{
display:block;
padding:16px 18px;
border:1px solid #E2E8F0;
border-radius:18px;
margin-bottom:12px;
background:#fff;
color:var(--secondary);
transition:.3s;
}

.upbs-live-item:hover{
border-color:var(--primary);
background:#EFF6FF;
transform:translateX(5px);
}

.upbs-live-item strong{
display:block;
font-size:16px;
margin-bottom:4px;
}

.upbs-live-item small{
color:var(--accent);
font-weight:800;
}

/* Dark Mode Search */

body.upbs-dark .upbs-search-box,
body.upbs-dark .upbs-live-item{
background:#0F172A;
border-color:#1E293B;
}

body.upbs-dark .upbs-search-box form,
body.upbs-dark .upbs-search-close{
background:#020617;
border-color:#1E293B;
}

body.upbs-dark .upbs-search-box input,
body.upbs-dark .upbs-live-item,
body.upbs-dark .upbs-search-close{
color:#fff;
}

body.upbs-dark .upbs-live-item:hover{
background:#111827;
}

/* Responsive */

@media(max-width:992px){
.upbs-search-open{
display:block;
}

.upbs-search{
display:none;
}
}
/* ==========================
   SEARCH PAGE
========================== */

.upbs-search-page{
background:var(--bg);
}

.upbs-page-head{
text-align:center;
margin-bottom:45px;
}

.upbs-page-head span{
color:var(--accent);
font-weight:900;
}

.upbs-page-head h1{
margin:10px 0;
font-size:clamp(32px,5vw,56px);
}

.upbs-page-head p{
max-width:650px;
margin-inline:auto;
}

.upbs-search-results-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;
}

.upbs-search-card{
background:#fff;
border:1px solid #E2E8F0;
border-radius:24px;
overflow:hidden;
box-shadow:var(--shadow-sm);
transition:.3s;
}

.upbs-search-card:hover{
transform:translateY(-7px);
box-shadow:var(--shadow-md);
border-color:var(--primary);
}

.upbs-search-thumb{
display:block;
height:210px;
overflow:hidden;
background:#EFF6FF;
}

.upbs-search-thumb img{
width:100%;
height:100%;
object-fit:cover;
transition:.4s;
}

.upbs-search-card:hover .upbs-search-thumb img{
transform:scale(1.06);
}

.upbs-search-content{
padding:24px;
}

.upbs-search-content small{
color:var(--accent);
font-weight:900;
}

.upbs-search-content h2{
font-size:21px;
margin:10px 0;
}

.upbs-search-content h2 a{
color:var(--secondary);
}

.upbs-search-content h2 a:hover{
color:var(--primary);
}

.upbs-search-content p{
font-size:15px;
}

/* Pagination */

.upbs-pagination{
margin-top:42px;
text-align:center;
}

.upbs-pagination .nav-links{
display:flex;
justify-content:center;
gap:10px;
flex-wrap:wrap;
}

.upbs-pagination a,
.upbs-pagination span{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:44px;
height:44px;
padding:0 14px;
border-radius:14px;
background:#fff;
border:1px solid #E2E8F0;
color:var(--secondary);
font-weight:800;
}

.upbs-pagination .current,
.upbs-pagination a:hover{
background:var(--primary);
color:#fff;
border-color:var(--primary);
}

/* No Result */

.upbs-no-result{
background:#fff;
border:1px solid #E2E8F0;
border-radius:28px;
padding:45px;
text-align:center;
box-shadow:var(--shadow-sm);
max-width:760px;
margin-inline:auto;
}

.upbs-no-result h2{
margin-bottom:10px;
}

.upbs-no-result-search{
margin-top:24px;
display:flex;
background:#F1F5F9;
border:1px solid #E2E8F0;
border-radius:50px;
overflow:hidden;
}

.upbs-no-result-search input{
flex:1;
border:0;
outline:0;
background:transparent;
padding:16px 20px;
font-size:16px;
}

.upbs-no-result-search button{
border:0;
background:var(--primary);
color:#fff;
padding:0 26px;
font-weight:800;
cursor:pointer;
}

/* Dark Mode */

body.upbs-dark .upbs-search-card,
body.upbs-dark .upbs-no-result,
body.upbs-dark .upbs-pagination a,
body.upbs-dark .upbs-pagination span{
background:#0F172A;
border-color:#1E293B;
}

body.upbs-dark .upbs-search-content h2 a,
body.upbs-dark .upbs-pagination a,
body.upbs-dark .upbs-pagination span{
color:#F8FAFC;
}

body.upbs-dark .upbs-no-result-search{
background:#020617;
border-color:#1E293B;
}

body.upbs-dark .upbs-no-result-search input{
color:#fff;
}

/* Responsive */

@media(max-width:992px){
.upbs-search-results-grid{
grid-template-columns:repeat(2,1fr);
}
}

@media(max-width:640px){
.upbs-search-results-grid{
grid-template-columns:1fr;
}

.upbs-no-result{
padding:28px 20px;
}

.upbs-no-result-search{
border-radius:18px;
flex-direction:column;
}

.upbs-no-result-search button{
padding:14px;
}
}
/* ==========================
   SINGLE POST
========================== */

.upbs-progress-wrap{
position:fixed;
top:0;
left:0;
width:100%;
height:4px;
background:transparent;
z-index:99999;
}

.upbs-progress-bar{
height:4px;
width:0;
background:var(--accent);
}

.upbs-single-layout{
display:grid;
grid-template-columns:minmax(0,1fr) 330px;
gap:32px;
align-items:start;
}

.upbs-single-content{
background:#fff;
border:1px solid #E2E8F0;
border-radius:28px;
padding:34px;
box-shadow:var(--shadow-sm);
}

.upbs-breadcrumb{
display:flex;
flex-wrap:wrap;
gap:8px;
font-size:14px;
margin-bottom:22px;
color:var(--text);
}

.upbs-breadcrumb a{
color:var(--primary);
font-weight:800;
}

.upbs-single-head small{
color:var(--accent);
font-weight:900;
}

.upbs-single-head h1{
margin:12px 0 16px;
font-size:clamp(32px,5vw,56px);
}

.upbs-post-meta{
display:flex;
gap:16px;
flex-wrap:wrap;
font-weight:700;
color:var(--text);
margin-bottom:24px;
}

.upbs-single-thumb{
border-radius:24px;
overflow:hidden;
margin-bottom:28px;
background:#EFF6FF;
}

.upbs-single-thumb img{
width:100%;
max-height:440px;
object-fit:cover;
}

.upbs-post-content{
font-size:17px;
color:var(--text);
}

.upbs-post-content h2,
.upbs-post-content h3{
margin:28px 0 14px;
}

.upbs-post-content p{
margin-bottom:18px;
}

.upbs-post-content ul,
.upbs-post-content ol{
margin:18px 0 18px 24px;
}

.upbs-post-content ul{
list-style:disc;
}

.upbs-post-content ol{
list-style:decimal;
}

.upbs-post-content a{
color:var(--primary);
font-weight:800;
}

.upbs-post-content img{
border-radius:18px;
margin:22px 0;
}

.upbs-share-box{
margin-top:34px;
padding:18px;
border-radius:20px;
background:#F8FAFC;
border:1px solid #E2E8F0;
display:flex;
gap:12px;
flex-wrap:wrap;
align-items:center;
}

.upbs-share-box a,
.upbs-share-box button{
border:0;
background:var(--primary);
color:#fff;
padding:10px 16px;
border-radius:14px;
font-weight:800;
cursor:pointer;
}

.upbs-post-nav{
margin-top:28px;
display:flex;
justify-content:space-between;
gap:16px;
}

.upbs-post-nav a{
display:inline-block;
background:#F1F5F9;
color:var(--secondary);
padding:12px 18px;
border-radius:16px;
font-weight:800;
}

/* Sidebar */

.upbs-sidebar{
position:sticky;
top:115px;
}

.widget{
background:#fff;
border:1px solid #E2E8F0;
border-radius:24px;
padding:24px;
box-shadow:var(--shadow-sm);
margin-bottom:22px;
}

.widget-title{
font-size:22px;
margin-bottom:16px;
}

.widget ul li{
margin-bottom:12px;
padding-bottom:12px;
border-bottom:1px solid #F1F5F9;
}

.widget ul li:last-child{
border-bottom:0;
margin-bottom:0;
padding-bottom:0;
}

.widget a{
color:var(--secondary);
font-weight:800;
}

.widget a:hover{
color:var(--primary);
}

/* Dark Mode */

body.upbs-dark .upbs-single-content,
body.upbs-dark .widget{
background:#0F172A;
border-color:#1E293B;
}

body.upbs-dark .upbs-share-box,
body.upbs-dark .upbs-post-nav a{
background:#020617;
border-color:#1E293B;
}

body.upbs-dark .widget a,
body.upbs-dark .upbs-post-nav a{
color:#F8FAFC;
}

/* Responsive */

@media(max-width:992px){
.upbs-single-layout{
grid-template-columns:1fr;
}

.upbs-sidebar{
position:static;
}
}

@media(max-width:640px){
.upbs-single-content{
padding:22px;
border-radius:22px;
}

.upbs-post-nav{
flex-direction:column;
}

.upbs-share-box{
align-items:flex-start;
}
}
/* ==========================
   AUTHOR BOX
========================== */

.upbs-author-box{
margin-top:32px;
padding:24px;
border-radius:24px;
background:#F8FAFC;
border:1px solid #E2E8F0;
display:flex;
gap:18px;
align-items:center;
}

.upbs-author-avatar img{
border-radius:50%;
}

.upbs-author-box h3{
margin-bottom:8px;
}

.upbs-author-box p{
margin:0;
}

/* ==========================
   FAQ BOX
========================== */

.upbs-faq-box{
margin-top:34px;
}

.upbs-faq-box h2{
margin-bottom:18px;
}

.upbs-faq-item{
border:1px solid #E2E8F0;
border-radius:18px;
margin-bottom:12px;
overflow:hidden;
background:#fff;
}

.upbs-faq-item button{
width:100%;
border:0;
background:#F8FAFC;
padding:16px 18px;
font-size:16px;
font-weight:800;
text-align:left;
cursor:pointer;
color:var(--secondary);
}

.upbs-faq-content{
display:none;
padding:16px 18px;
border-top:1px solid #E2E8F0;
}

.upbs-faq-content p{
margin:0;
}

.upbs-faq-item.active .upbs-faq-content{
display:block;
}

/* ==========================
   RELATED POSTS
========================== */

.upbs-related-posts{
margin-top:38px;
}

.upbs-related-posts h2{
margin-bottom:20px;
}

.upbs-related-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:18px;
}

.upbs-related-card{
border:1px solid #E2E8F0;
border-radius:20px;
overflow:hidden;
background:#fff;
box-shadow:var(--shadow-sm);
transition:.3s;
}

.upbs-related-card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-md);
border-color:var(--primary);
}

.upbs-related-thumb{
display:block;
height:140px;
background:#EFF6FF;
overflow:hidden;
}

.upbs-related-thumb img{
width:100%;
height:100%;
object-fit:cover;
}

.upbs-related-content{
padding:16px;
}

.upbs-related-content small{
color:var(--accent);
font-weight:900;
}

.upbs-related-content h3{
font-size:17px;
margin-top:8px;
}

.upbs-related-content h3 a{
color:var(--secondary);
}

.upbs-related-content h3 a:hover{
color:var(--primary);
}

/* Dark Mode */

body.upbs-dark .upbs-author-box,
body.upbs-dark .upbs-faq-item,
body.upbs-dark .upbs-related-card{
background:#0F172A;
border-color:#1E293B;
}

body.upbs-dark .upbs-faq-item button,
body.upbs-dark .upbs-faq-content{
background:#020617;
border-color:#1E293B;
color:#F8FAFC;
}

body.upbs-dark .upbs-related-content h3 a{
color:#F8FAFC;
}

/* Responsive */

@media(max-width:768px){

.upbs-author-box{
flex-direction:column;
text-align:center;
}

.upbs-related-grid{
grid-template-columns:1fr;
}

}
/* ==========================
   ARCHIVE / CATEGORY PAGE
========================== */

.upbs-archive-page{
background:var(--bg);
}

.upbs-archive-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;
}

.upbs-archive-card{
background:#fff;
border:1px solid #E2E8F0;
border-radius:24px;
overflow:hidden;
box-shadow:var(--shadow-sm);
transition:.3s;
}

.upbs-archive-card:hover{
transform:translateY(-7px);
box-shadow:var(--shadow-md);
border-color:var(--primary);
}

.upbs-archive-thumb{
display:block;
height:210px;
background:#EFF6FF;
overflow:hidden;
}

.upbs-archive-thumb img{
width:100%;
height:100%;
object-fit:cover;
transition:.4s;
}

.upbs-archive-card:hover .upbs-archive-thumb img{
transform:scale(1.06);
}

.upbs-archive-content{
padding:24px;
}

.upbs-archive-content small{
color:var(--accent);
font-weight:900;
}

.upbs-archive-content h2{
font-size:21px;
margin:10px 0;
}

.upbs-archive-content h2 a{
color:var(--secondary);
}

.upbs-archive-content h2 a:hover{
color:var(--primary);
}

.upbs-archive-content p{
font-size:15px;
}

/* Dark Mode */

body.upbs-dark .upbs-archive-card{
background:#0F172A;
border-color:#1E293B;
}

body.upbs-dark .upbs-archive-content h2 a{
color:#F8FAFC;
}

/* Responsive */

@media(max-width:992px){
.upbs-archive-grid{
grid-template-columns:repeat(2,1fr);
}
}

@media(max-width:640px){
.upbs-archive-grid{
grid-template-columns:1fr;
}
}
/* ==========================
   PAGE TEMPLATE
========================== */

.upbs-page{
background:var(--bg);
}

.upbs-page-box{
background:#fff;
border:1px solid #E2E8F0;
border-radius:28px;
padding:36px;
box-shadow:var(--shadow-sm);
max-width:1000px;
margin-inline:auto;
}

.upbs-page-title h1{
font-size:clamp(34px,5vw,58px);
margin-bottom:24px;
}

.upbs-page-thumb{
border-radius:24px;
overflow:hidden;
margin-bottom:28px;
background:#EFF6FF;
}

.upbs-page-thumb img{
width:100%;
max-height:420px;
object-fit:cover;
}

/* ==========================
   404 PAGE
========================== */

.upbs-error-page{
min-height:70vh;
display:flex;
align-items:center;
background:
radial-gradient(circle at top right,rgba(245,158,11,.25),transparent 30%),
linear-gradient(135deg,#EFF6FF,#F8FAFC);
}

.upbs-error-box{
background:#fff;
border:1px solid #E2E8F0;
border-radius:32px;
padding:50px;
text-align:center;
box-shadow:var(--shadow-lg);
max-width:760px;
margin-inline:auto;
}

.upbs-error-box span{
display:block;
font-size:110px;
line-height:1;
font-weight:900;
font-family:'Poppins',sans-serif;
color:var(--primary);
}

.upbs-error-box h1{
margin:10px 0 12px;
}

.upbs-error-box p{
max-width:560px;
margin:0 auto 24px;
}

.upbs-error-box .btn{
margin-top:22px;
}

/* Dark Mode */

body.upbs-dark .upbs-page-box,
body.upbs-dark .upbs-error-box{
background:#0F172A;
border-color:#1E293B;
}

body.upbs-dark .upbs-error-page{
background:linear-gradient(135deg,#020617,#0F172A);
}

/* Responsive */

@media(max-width:640px){

.upbs-page-box{
padding:24px 20px;
border-radius:22px;
}

.upbs-error-box{
padding:34px 22px;
border-radius:24px;
}

.upbs-error-box span{
font-size:78px;
}

}
/* ==========================
   CLASS DASHBOARD TEMPLATE
========================== */

.upbs-class-dashboard{
background:var(--bg);
}

.upbs-dashboard-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:24px;
}

.upbs-dashboard-card{
background:#fff;
border:1px solid #E2E8F0;
border-radius:26px;
padding:28px;
box-shadow:var(--shadow-sm);
transition:.3s;
}

.upbs-dashboard-card:hover{
transform:translateY(-8px);
box-shadow:var(--shadow-md);
border-color:var(--primary);
}

.upbs-dashboard-icon{
width:64px;
height:64px;
border-radius:20px;
background:#EFF6FF;
display:flex;
align-items:center;
justify-content:center;
font-size:34px;
margin-bottom:18px;
}

.upbs-dashboard-card h2{
font-size:26px;
margin-bottom:14px;
}

.upbs-subject-mini{
display:flex;
flex-wrap:wrap;
gap:8px;
margin-bottom:20px;
}

.upbs-subject-mini span{
background:#F1F5F9;
color:var(--secondary);
font-size:13px;
font-weight:800;
padding:7px 10px;
border-radius:50px;
}

.upbs-dashboard-btn{
display:inline-flex;
align-items:center;
justify-content:center;
width:100%;
background:var(--primary);
color:#fff;
padding:13px 18px;
border-radius:16px;
font-weight:900;
}

.upbs-dashboard-btn:hover{
background:var(--accent);
transform:translateY(-3px);
}

/* Dark Mode */

body.upbs-dark .upbs-dashboard-card{
background:#0F172A;
border-color:#1E293B;
}

body.upbs-dark .upbs-subject-mini span{
background:#020617;
color:#F8FAFC;
}

/* Responsive */

@media(max-width:992px){
.upbs-dashboard-grid{
grid-template-columns:repeat(2,1fr);
}
}

@media(max-width:640px){
.upbs-dashboard-grid{
grid-template-columns:1fr;
}
}