/* ==========================================
   THE BATTERY MAGAZINE - CALCULATOR HUB
   ========================================== */

:root{

--primary:#2563eb;
--primary-dark:#1d4ed8;
--secondary:#0f172a;
--accent:#4ade80;

--text:#1e293b;
--text-light:#64748b;

--white:#ffffff;
--border:#e2e8f0;
--bg:#f8fafc;

--radius:24px;

--shadow-sm:0 5px 15px rgba(0,0,0,.05);

--shadow-md:0 10px 30px rgba(0,0,0,.08);

--shadow-lg:0 25px 60px rgba(0,0,0,.12);

}

/* ==========================================
   GLOBAL
   ========================================== */

.tbm-container{

max-width:1400px;
margin:40px auto;
padding:0 15px;

}

.tbm-layout{

display:grid;
grid-template-columns:70% 30%;
gap:30px;

}

@media(max-width:991px){

.tbm-layout{

grid-template-columns:1fr;

}

}

/* ==========================================
   HERO
   ========================================== */

.tbm-hero{

position:relative;

background:
linear-gradient(
135deg,
#0f172a 0%,
#1e40af 50%,
#2563eb 100%
);

padding:80px 60px;

border-radius:30px;

overflow:hidden;

margin-bottom:35px;

box-shadow:
0 30px 80px rgba(37,99,235,.25);

}

.tbm-hero::before{

content:"";

position:absolute;

width:350px;
height:350px;

background:
rgba(255,255,255,.08);

border-radius:50%;

top:-120px;
right:-120px;

}

.tbm-hero::after{

content:"";

position:absolute;

width:220px;
height:220px;

background:
rgba(255,255,255,.05);

border-radius:50%;

bottom:-80px;
left:-80px;

}

.tbm-hero-content{

position:relative;
z-index:2;

}

.tbm-hero h1{

font-size:52px;
line-height:1.1;
color:#fff;
font-weight:800;
margin-bottom:15px;

}

.tbm-hero p{

font-size:18px;
color:rgba(255,255,255,.9);
max-width:700px;

}

@media(max-width:768px){

.tbm-hero{

padding:40px 25px;

}

.tbm-hero h1{

font-size:34px;

}

}

/* ==========================================
   3D BATTERY
   ========================================== */

.tbm-battery{

position:absolute;

right:60px;
top:50%;

transform:translateY(-50%);

width:130px;
height:240px;

background:
linear-gradient(
180deg,
#4ade80,
#16a34a
);

border-radius:20px;

box-shadow:
0 25px 50px rgba(74,222,128,.4);

animation:tbmFloat 4s ease-in-out infinite;

}

.tbm-battery::before{

content:"";

position:absolute;

top:-12px;
left:40px;

width:50px;
height:12px;

background:#e5e7eb;

border-radius:6px 6px 0 0;

}

.tbm-battery::after{

content:"⚡";

position:absolute;

top:50%;
left:50%;

transform:
translate(-50%,-50%);

font-size:50px;

color:#fff;

}

@keyframes tbmFloat{

0%,100%{
transform:translateY(-50%);
}

50%{
transform:translateY(-65%);
}

}

/* ==========================================
   CARD
   ========================================== */

.tbm-card{

background:
rgba(255,255,255,.95);

backdrop-filter:
blur(20px);

border-radius:24px;

padding:35px;

box-shadow:
0 25px 60px rgba(0,0,0,.08);

margin-bottom:30px;

}

.tbm-card h2{

font-size:30px;

margin-bottom:20px;

color:var(--secondary);

}

/* ==========================================
   FORM
   ========================================== */

.tbm-form-grid{

display:grid;
grid-template-columns:1fr 1fr;
gap:20px;

}

@media(max-width:768px){

.tbm-form-grid{

grid-template-columns:1fr;

}

}

.tbm-field{

margin-bottom:20px;

}

.tbm-label{

display:block;

font-weight:600;

margin-bottom:8px;

color:var(--secondary);

}

.tbm-input,
.tbm-select{

width:100%;

height:56px;

padding:0 16px;

border:1px solid var(--border);

border-radius:14px;

font-size:15px;

transition:.3s;

background:#fff;

}

.tbm-input:focus,
.tbm-select:focus{

outline:none;

border-color:var(--primary);

box-shadow:
0 0 0 4px rgba(37,99,235,.1);

}

/* ==========================================
   BUTTON
   ========================================== */

.tbm-btn{

width:100%;

height:58px;

border:none;

cursor:pointer;

font-size:18px;

font-weight:700;

border-radius:16px;

background:
linear-gradient(
135deg,
#2563eb,
#1d4ed8
);

color:#fff;

transition:.3s;

}

.tbm-btn:hover{

transform:translateY(-3px);

box-shadow:
0 20px 40px rgba(37,99,235,.3);

}

/* ==========================================
   RESULTS
   ========================================== */

.tbm-result{

display:none;

margin-top:30px;

}

.tbm-result-grid{

display:grid;

grid-template-columns:
repeat(3,1fr);

gap:20px;

}

@media(max-width:768px){

.tbm-result-grid{

grid-template-columns:1fr;

}

}

.tbm-result-card{

background:#fff;

padding:25px;

border-radius:20px;

text-align:center;

box-shadow:
0 15px 35px rgba(0,0,0,.08);

border-top:
4px solid var(--primary);

}

.tbm-result-card span{

display:block;

font-size:14px;

color:var(--text-light);

margin-bottom:10px;

}

.tbm-result-card h3{

font-size:34px;

font-weight:800;

color:var(--primary);

}

/* ==========================================
   CONTENT
   ========================================== */

.tbm-content h2{

font-size:32px;

margin:35px 0 15px;

}

.tbm-content p{

font-size:17px;

line-height:1.9;

margin-bottom:20px;

color:#475569;

}

.tbm-content ul{

padding-left:25px;

}

.tbm-content li{

margin-bottom:12px;

}

/* ==========================================
   FAQ
   ========================================== */

.tbm-faq{

margin-bottom:20px;

padding:20px;

background:#fff;

border-radius:18px;

box-shadow:
0 5px 20px rgba(0,0,0,.05);

}

.tbm-faq h3{

font-size:20px;

margin-bottom:10px;

}

/* ==========================================
   SIDEBAR
   ========================================== */

.tbm-sidebar{

position:sticky;

top:100px;

}

.tbm-widget{

background:#fff;

padding:25px;

border-radius:24px;

box-shadow:
0 15px 35px rgba(0,0,0,.08);

margin-bottom:25px;

}

.tbm-widget h3{

font-size:24px;

margin-bottom:20px;

}

.tbm-tools{

list-style:none;
padding:0;
margin:0;

}

.tbm-tools li{

margin-bottom:12px;

}

.tbm-tools a{

display:flex;

align-items:center;

gap:12px;

padding:14px 16px;

border-radius:14px;

background:#f8fafc;

text-decoration:none;

font-weight:600;

color:var(--secondary);

transition:.3s;

}

.tbm-tools a:hover{

background:var(--primary);

color:#fff;

transform:translateX(5px);

}

/* ==========================================
   ADSENSE BOX
   ========================================== */

.tbm-ad{

background:
linear-gradient(
135deg,
#f8fafc,
#e2e8f0
);

padding:25px;

text-align:center;

border-radius:20px;

min-height:280px;

display:flex;

align-items:center;

justify-content:center;

font-weight:700;

}

/* ==========================================
   TABLES
   ========================================== */

.tbm-table{

width:100%;

border-collapse:collapse;

margin:25px 0;

}

.tbm-table th{

background:var(--primary);

color:#fff;

padding:14px;

}

.tbm-table td{

padding:14px;

border:1px solid #e5e7eb;

}

/* ==========================================
   BREADCRUMB
   ========================================== */

.tbm-breadcrumb{

margin-bottom:20px;

font-size:14px;

color:#64748b;

}

.tbm-breadcrumb a{

color:var(--primary);

text-decoration:none;

}