/*==================================================
 RAITA HTML FRAMEWORK
 Version : 1.0
==================================================*/


*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    background:#eef2f7;
    color:#222;
    line-height:1.8;
    font-size:17px;
}

a{
text-decoration:none;
color:inherit;
}

img{
display:block;
max-width:100%;
height:auto;
}

.container{
    width:900px;
    max-width:1010px;
    margin:0 auto;
    padding:20px;
}

.content-container{
    background:#fff;
    border:1px solid #d9d9d9;
}

.header .container{
    outline:none !important;
}



/*==============================
HEADER
==============================*/

.header{
position:sticky;
top:0;
z-index:9999;
background:#ffffff;
box-shadow:0 2px 15px rgba(0,0,0,.06);
}

.header .container{
    display:flex;
    align-items:center;
    height:75px;
}

.logo a{
font-size:32px;
font-weight:800;
color:#2563eb;
letter-spacing:1px;
margin-right:40px;
}

.menu{
    display:flex;
    gap:35px;
    margin-left:auto;
    margin-right:25px;
}


.menu a{
font-weight:600;
color:#444;
transition:.3s;
}

.menu a:hover{
color:#2563eb;
}

.search input{
width:250px;
height:42px;
padding:0 15px;
border:1px solid #ddd;
border-radius:30px;
outline:none;
transition:.3s;
}

.search input:focus{
border-color:#2563eb;
}

.search{
    flex-shrink:0;
}
/*==============================
HERO
==============================*/

.hero{
padding:15px 0;
}

.hero-grid{
display:grid;
grid-template-columns:1.2fr 1fr;
gap:40px;
align-items:center;
}

.hero-image img{
border-radius:18px;
box-shadow:0 15px 40px rgba(0,0,0,.12);
}

.badge{
display:inline-block;
background:#2563eb;
color:#fff;
padding:7px 18px;
border-radius:30px;
font-size:14px;
margin-bottom:20px;
}

.hero h1{
font-size:42px;
line-height:1.2;
margin-bottom:20px;
font-weight:800;
}

.hero p{
color:#666;
margin-bottom:25px;
}

.btn{
display:inline-block;
padding:14px 28px;
background:#2563eb;
color:#fff;
border-radius:8px;
font-weight:700;
transition:.3s;
}

.btn:hover{
background:#174ac9;
}

/*==============================
SECTION
==============================*/

.section{
padding:10px 0;
}

.section-title{
margin-bottom:10px;
}

.section-title h2{
font-size:34px;
font-weight:800;
}

/*==============================
LAYOUT
==============================*/

.content-grid{
    display:block;
    width:100%;
}

/*==============================
POST GRID
==============================*/

.posts{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:5px;
margin-bottom:20px;
}

.card{
background:#fff;
border-radius:16px;
overflow:hidden;
box-shadow:0 10px 25px rgba(0,0,0,.08);
transition:.35s;
}

.card:hover{
transform:translateY(-8px);
box-shadow:0 20px 45px rgba(0,0,0,.15);
}

.card img{
height:220px;
width:100%;
object-fit:cover;
}

.card-body{
padding:20px;
}

.category{
display:inline-block;
background:#eef4ff;
color:#2563eb;
padding:6px 12px;
font-size:13px;
border-radius:30px;
margin-bottom:12px;
font-weight:700;
}

.card h3{
font-size:22px;
line-height:1.4;
margin-bottom:15px;
}

.card h3 a:hover{
color:#2563eb;
}

.card p{
color:#666;
margin-bottom:18px;
}

.meta{
font-size:14px;
color:#999;
}

/*==============================
SIDEBAR
==============================*/

.widget{
background:#fff;
padding:25px;
margin-bottom:25px;
border-radius:15px;
box-shadow:0 10px 25px rgba(0,0,0,.08);
}

.widget h3{
margin-bottom:20px;
font-size:22px;
}

.widget input{
width:100%;
height:45px;
padding:0 15px;
border:1px solid #ddd;
border-radius:8px;
outline:none;
}

.widget ul{
list-style:none;
}

.widget li{
padding:10px 0;
border-bottom:1px solid #eee;
}

.widget li:last-child{
border:none;
}

.widget a{
transition:.3s;
}

.widget a:hover{
color:#2563eb;
padding-left:8px;
}


/*=====================================
FOOTER
=====================================*/

footer{
    margin-top:50px;
    background:#0f172a;
    color:#fff;
    border-top:1px solid rgba(255,255,255,.08);
    padding:12px 0;
}

footer .container{
    padding:0 20px;
}

.footer-grid{
    display:flex;
    justify-content:center;
    align-items:center;
    margin:0;
    padding:0;
    border:none;
}

.footer-copy,
.copyright{
    margin:0;
    padding:0;
    border:none;
    color:#9aa5b5;
    text-align:center;
}

/*==============================
SCROLLBAR
==============================*/

::-webkit-scrollbar{
width:10px;
}

::-webkit-scrollbar-thumb{
background:#2563eb;
border-radius:20px;
}

::-webkit-scrollbar-track{
background:#e8edf6;
}

/*======================================
 APP.JS SUPPORT
======================================*/

.hidden{

opacity:0;

transform:translateY(40px);

transition:.7s;

}

.show{

opacity:1;

transform:translateY(0);

}

#backTop{

position:fixed;

right:25px;

bottom:25px;

width:48px;

height:48px;

border:none;

border-radius:50%;

background:#2563eb;

color:#fff;

font-size:22px;

cursor:pointer;

opacity:0;

visibility:hidden;

transition:.3s;

z-index:99999;

}

#backTop.show{

opacity:1;

visibility:visible;

}

#backTop:hover{

transform:translateY(-5px);

}

#progressBar{

position:fixed;

top:0;

left:0;

height:4px;

width:0;

background:#2563eb;

z-index:999999;

}

#darkToggle{

position:fixed;

left:25px;

bottom:25px;

width:48px;

height:48px;

border:none;

border-radius:50%;

background:#0f172a;

color:#fff;

font-size:20px;

cursor:pointer;

z-index:99999;

}

/*======================================
 DARK MODE 2.0
======================================*/

body.dark{
    background:#111827;
    color:#e5e7eb;
}

/* Header */
body.dark .header{
    background:#0f172a;
    border-bottom:1px solid #374151;
}

/* Logo */
body.dark .logo a{
    color:#60a5fa;
}

/* Body Container */
body.dark .content-container{
    background:#1f2937;
    border:1px solid #374151;
}

/* Card */
body.dark .card,
body.dark .widget,
body.dark .article-card{
    background:#1f2937;
    border:1px solid #374151;
    box-shadow:none;
}

/* Article */
body.dark .article-main,
body.dark .article-content,
body.dark .article-content p,
body.dark .article-content li{
    color:#d1d5db;
}

/* Heading */
body.dark h1,
body.dark h2,
body.dark h3,
body.dark h4,
body.dark h5,
body.dark h6{
    color:#ffffff;
}

/* Meta */
body.dark .meta,
body.dark .article-meta,
body.dark .breadcrumb,
body.dark .copyright{
    color:#9ca3af;
}

/* Link */
body.dark a{
    color:#60a5fa;
}

body.dark a:hover{
    color:#93c5fd;
}

/* Search */
body.dark .search input,
body.dark .widget input{
    background:#111827;
    color:#fff;
    border:1px solid #374151;
}

body.dark .search input::placeholder,
body.dark .widget input::placeholder{
    color:#9ca3af;
}

/* TOC */
body.dark .toc-card{
    background:#111827;
    border:1px solid #374151;
    border-left:5px solid #3b82f6;
}

body.dark .toc-card h3{
    color:#fff;
}

body.dark .toc a{
    color:#93c5fd;
}

/* Blockquote */
body.dark .article-content blockquote{
    background:#111827;
    border-left:5px solid #3b82f6;
    color:#d1d5db;
}

/* Table */
body.dark .article-content table td{
    background:#1f2937;
    border-color:#374151;
}

body.dark .article-content table th{
    background:#2563eb;
}

/* Tags */
body.dark .article-tags .tag{
    background:#374151;
    color:#e5e7eb;
}

body.dark .article-tags .tag:hover{
    background:#2563eb;
}

/* Share */
body.dark .share-box{
    background:#1f2937;
}

/* Footer */
body.dark footer{
    background:#030712;
}


/*======================================
 ARTICLE PAGE
======================================*/

.article-wrap{
max-width:900px;
margin:40px auto;
background:#fff;
padding:45px;
border-radius:18px;
box-shadow:0 15px 35px rgba(0,0,0,.08);
}

.article-title{
font-size:42px;
font-weight:800;
line-height:1.3;
margin-bottom:20px;
}

.article-meta{
display:flex;
gap:20px;
font-size:14px;
color:#777;
margin-bottom:25px;
flex-wrap:wrap;
}

.article-featured{
margin-bottom:30px;
}

.article-featured img{
width:100%;
border-radius:15px;
}

.article-content{
font-size:18px;
line-height:1.9;
color:#333;
}


.article-main h1,
.article-wrap h1{

    margin:5px 0 15px;

    font-size:38px;

    line-height:1.2;

    font-weight:800;

}

.article-content h2{
margin-top:45px;
margin-bottom:18px;
font-size:32px;
font-weight:800;
}

.article-content h3{
margin-top:35px;
margin-bottom:15px;
font-size:26px;
}

.article-content p{
margin-bottom:22px;
}

.article-main ul,
.article-main ol{
    margin:20px 0;
    padding-left:18px;
}

.article-main li{
    margin:10px 0;
}

.article-content img{
margin:35px auto;
display:block;
border-radius:12px;
max-width:100%;
}

.article-content blockquote{
border-left:5px solid #2563eb;
background:#f6f8fc;
padding:18px 25px;
margin:30px 0;
font-style:italic;
border-radius:8px;
}

.article-content table{
width:100%;
border-collapse:collapse;
margin:30px 0;
}

.article-content table th,
.article-content table td{
border:1px solid #ddd;
padding:12px;
}

.article-content table th{
background:#2563eb;
color:#fff;
}

.article-content a{
color:#2563eb;
font-weight:600;
}

.article-content a:hover{
text-decoration:underline;
}


/*======================================
TABLE OF CONTENTS
======================================*/

/*=============================
 TABLE OF CONTENTS
=============================*/

.toc-card{
    background:#f8fbff;
    border:1px solid #dbeafe;
    border-left:5px solid #2563eb;
    border-radius:14px;
    padding:25px 28px;
    margin:40px 0;
}

.toc-card h3{
    margin:0 0 18px;
    font-size:24px;
    font-weight:700;
    color:#111827;
}

.toc ul{
    margin:0;
    padding-left:22px;
    list-style:disc;
}

.toc li{
    margin:10px 0;
    line-height:1.7;
}

.toc li::marker{
    color:#2563eb;
}

.toc li.h3{
    margin-left:20px;
    list-style:circle;
}

.toc a{
    color:#2563eb;
    font-weight:600;
    text-decoration:none;
    transition:.25s;
}

.toc a:hover{
    color:#ef4444;
    text-decoration:underline;
}


/*======================================
BREADCRUMB
======================================*/

.breadcrumb{

display:flex;

flex-wrap:wrap;

gap:10px;

margin-bottom:20px;

font-size:14px;

color:#777;

}

.breadcrumb a{

color:#2563eb;

font-weight:600;

}

.breadcrumb span{

color:#888;

}


/*======================================
SHARE
======================================*/

.share-box{

margin-top:50px;

padding:25px;

background:#f8f9fc;

border-radius:15px;

}

.share-buttons{

display:flex;

gap:12px;

flex-wrap:wrap;

margin-top:15px;

}

.share-buttons a{

padding:12px 18px;

background:#2563eb;

color:#fff;

border-radius:8px;

transition:.3s;

}

.share-buttons a:hover{

transform:translateY(-3px);

}


.article-tags{
    margin:30px 0;
}

.article-tags .tag{
    display:inline-block;
    padding:6px 12px;
    margin:5px;
    background:#f5f5f5;
    border-radius:30px;
    text-decoration:none;
    color:#333;
    transition:.2s;
}

.article-tags .tag:hover{
    background:#0d6efd;
    color:#fff;
}


.related-grid{

display:grid;

grid-template-columns:repeat(auto-fill,minmax(260px,1fr));

gap:20px;

}

.article-card{

background:#fff;

border-radius:12px;

overflow:hidden;

border:1px solid #eee;

transition:.25s;

}

.article-card:hover{

transform:translateY(-4px);

box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.article-thumb img{

width:100%;

aspect-ratio:16/9;

object-fit:cover;

display:block;

}

.article-body{

padding:15px;

}

.article-body h3{

margin:0 0 10px;

font-size:18px;

line-height:1.45;

}

.article-body p{

margin:0;

color:#666;

font-size:14px;

line-height:1.7;

}


.search form{
    display:flex;
}

.search input{

width:260px;

height:42px;

padding:0 18px;

border:1px solid #ddd;

border-radius:30px;

outline:none;

transition:.25s;

}

.search input:focus{

border-color:#2563eb;

box-shadow:0 0 0 3px rgba(37,99,235,.15);

}


.page-404{

padding:80px 0;

}

.error-box{

text-align:center;

margin-bottom:50px;

}

.error-code{

font-size:90px;

font-weight:800;

color:#2563eb;

}

.search-404{

max-width:650px;

margin:40px auto;

}

.search-404 form{

display:flex;

gap:10px;

}

.search-404 input{

flex:1;

padding:14px;

border:1px solid #ddd;

border-radius:8px;

}

.search-404 button{

padding:14px 25px;

border:0;

background:#2563eb;

color:#fff;

border-radius:8px;

cursor:pointer;

}

.btn-home{

display:inline-block;

margin-top:20px;

padding:14px 25px;

background:#2563eb;

color:#fff;

border-radius:8px;

text-decoration:none;

}


.search-empty{
    text-align:center;
    margin:10px auto 40px;
}

.search-empty h3{
    font-size:36px;
    margin-bottom:15px;
}

.search-empty p{
    color:#666;
    margin-bottom:25px;
}

.search-empty{
    max-width:720px;
    margin:0 auto 45px;
    text-align:center;
}

.search-empty-icon{
    font-size:56px;
    margin-bottom:15px;
}

.search-empty h3{
    font-size:32px;
    margin-bottom:12px;
    color:#222;
}

.search-empty p{
    color:#666;
    line-height:1.8;
    margin-bottom:30px;
}

.latest-title{
    margin-top:45px;
    font-size:26px;
}

.latest-title{
    margin-top:10px;
    margin-bottom:30px;
    font-size:30px;
}


.search-title{
    text-align:center;
    margin-bottom:35px;
}

.search-title h2{
    margin-bottom:12px;
}


.search{
    position:relative;
}

.search input{
    padding-right:48px;
}

.search-btn{
    position:absolute;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    border:none;
    background:transparent;
    padding:0;
    width:24px;
    height:24px;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    color:#555;
    transition:.2s;
}

.menu-toggle{
    display:none;
    border:none;
    background:none;
    font-size:30px;
    line-height:1;
    cursor:pointer;
    padding:0;
    color:#222;
}

.search-btn:hover{
    color:#2563eb;
}

.search-btn svg{
    display:block;
}


/*=====================================
PAGINATION
=====================================*/

.pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}

.pagination a,
.pagination span{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    flex:0 0 auto;      /* penting */
    flex-shrink:0;       /* penting */

    height:42px;
    min-width:42px;
    padding:0 18px;

    border:1px solid #ddd;
    border-radius:8px;
    background:#fff;
    white-space:nowrap;
}

.pagination .prev,
.pagination .next{
    min-width:110px;
}

.pagination a:hover{

    background:#2563eb;

    border-color:#2563eb;

    color:#fff;

}

.pagination .current{

    background:#2563eb;

    color:#fff;

    border-color:#2563eb;

}

.pagination .dots{

    border:none;

    min-width:auto;

    padding:0 6px;

}


/*=========================================
 SEARCH PAGE
=========================================*/

.header-search{

    max-width:520px;

    margin:30px auto;

    position:relative;

}

.header-search input{

    width:100%;

    height:54px;

    padding:0 60px 0 22px;

    border:1px solid #ddd;

    border-radius:999px;

    font-size:16px;

    background:#fff;

    outline:none;

    transition:.25s;

}

.header-search input:focus{

    border-color:#2563eb;

    box-shadow:0 0 0 4px rgba(37,99,235,.08);

}

.header-search button{

    position:absolute;

    right:18px;

    top:50%;

    transform:translateY(-50%);

    border:none;

    background:none;

    cursor:pointer;

    color:#666;

    display:flex;

    align-items:center;

    justify-content:center;

}

.header-search button:hover{

    color:#2563eb;

}

.card-placeholder{
    visibility:hidden;
    pointer-events:none;
    box-shadow:none;
    background:transparent;
    border:none;
}


/* Artikel */
.article-content p,
.article-body p,
article p{

margin:0 0 22px;

line-height:1.9;

}

.article-content h2,
.article-body h2,
article h2{

margin:50px 0 20px;

}

.article-content h3,
.article-body h3,
article h3{

margin:10px 0 15px;

}

.article-content ul,
.article-content ol,
.article-body ul,
.article-body ol{

margin:0 0 22px 25px;

}

.article-content img,
.article-body img{

display:block;

margin:30px auto;

}


.footer-grid{
    border-top:1px solid rgba(255,255,255,.1);
    padding:10px 0;
}

footer{
    border-top:1px solid rgba(255,255,255,.08);
    padding:12px 0;
}

footer .container{
    padding:12px 20px;
}

.footer-grid{
    display:flex;
    justify-content:center;
    align-items:center;
}

.footer-copy{
    margin:0;
}

.featured-image{
    margin:30px auto;
    text-align:center;
}

/* Semua gambar di dalam artikel */

.article-main img{

    display:block;

    margin:30px auto;

    max-width:100%;

    height:auto;

}


.logo a{
    display:flex;
    align-items:center;
    text-decoration:none;
    color:inherit;
}

.logo img{
    display:block;
    max-height:50px;
    width:auto;
}

@media (max-width:768px){

.logo img{
    max-height:40px;
}

}

@media (max-width:768px){

.header .container{

    display:grid;

    grid-template-columns:1fr auto;

    grid-template-areas:
        "logo toggle"
        "search search";

    align-items:center;

    gap:12px;

    height:auto;

    padding:12px 20px;

}

.logo{

    grid-area:logo;

}

.menu{

    display:none;

}

.menu-toggle{

    grid-area:toggle;

    display:flex;

    align-items:center;

    justify-content:center;

    width:42px;

    height:42px;

    font-size:32px;

}

.search{

    grid-area:search;

    width:100%;

}

.search form{

    width:100%;

}

.search input{

    width:100%;

}

.logo img{

    max-height:38px;

}

}

/*==============================
 MOBILE MENU
==============================*/

.mobile-overlay{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.45);

    opacity:0;

    visibility:hidden;

    transition:.25s;

    z-index:9998;

}

.mobile-overlay.show{

    opacity:1;

    visibility:visible;

}

.mobile-menu{

    position:fixed;

    top:-40px;

    right:-280px;

    width:250px;

    height:100vh;

    background:#fff;

    box-shadow:-5px 0 25px rgba(0,0,0,.12);

    transition:.3s;

    z-index:9999;

    padding:20px;

}

.mobile-menu.show{

    right:0;

}

.mobile-close{

    border:none;

    background:none;

    font-size:30px;

    cursor:pointer;

    margin-bottom:25px;

}

.mobile-menu nav{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.mobile-menu nav a{

    font-size:18px;

    font-weight:600;

    color:#333;

}