.elementor-143 .elementor-element.elementor-element-a3deff2{--display:flex;--z-index:999;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS for shortcode, class: .elementor-element-f743808 *//* =========================================
   1. GLOBAL RESET (WAJIB ADA)
   ========================================= */
/* Matikan highlight pink & outline default */
.ib-master-header *, 
.ib-search-overlay *, 
.ib-mobile-drawer * {
    box-sizing: border-box;
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important; 
    outline: none !important;
}

/* HAPUS BULLET POINTS / TITIK-TITIK MENU */
.ib-master-header ul, 
.ib-master-header li, 
.ib-mobile-drawer ul, 
.ib-mobile-drawer li {
    list-style: none !important; 
    margin: 0 !important; 
    padding: 0 !important;
}
/* Hapus elemen semu bawaan tema yang bikin titik */
li::before, li::after, li::marker { 
    content: none !important; 
    display: none !important; 
}

/* =========================================
   2. HEADER CONTAINER
   ========================================= */
.ib-master-header {
    background: #ffffff; 
    width: 100%; 
    position: relative; 
    z-index: 999;
    font-family: 'Sora', sans-serif;
    border-bottom: 2px solid #000; /* Garis bawah hitam tegas */
    height: 82px; /* Tinggi fix */
}

.ib-inner-wrap {
    max-width: 1200px; 
    margin: 0 auto; 
    height: 80px; 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    padding: 0 20px;
}

/* Logo */
.ib-logo-area img { 
    height: 42px; 
    width: auto; 
    display: block; 
}

/* =========================================
   3. MENU DESKTOP
   ========================================= */
.ib-desktop-nav-area { 
    flex: 1; 
    display: flex; 
    justify-content: center; 
}

ul.ib-desktop-menu { 
    display: flex !important; 
    gap: 30px !important; 
}

ul.ib-desktop-menu > li > a {
    text-decoration: none; 
    color: #001639; 
    font-weight: 600; 
    font-size: 15px; 
    padding: 10px 0; 
    display: block;
}

ul.ib-desktop-menu > li > a:hover { 
    color: #00bf63; 
}

/* Submenu Desktop */
ul.ib-desktop-menu li { position: relative; }
ul.ib-desktop-menu .sub-menu {
    display: none; 
    position: absolute; 
    top: 100%; left: 0; 
    background: #fff; 
    min-width: 220px;
    border: 2px solid #000; 
    box-shadow: 4px 4px 0px #000; 
    z-index: 1000;
}
ul.ib-desktop-menu li:hover .sub-menu { display: block !important; }
ul.ib-desktop-menu .sub-menu li { border-bottom: 1px solid #eee; display: block !important; }
ul.ib-desktop-menu .sub-menu li a {
    display: block; padding: 12px 15px; 
    color: #333; text-decoration: none; font-size: 14px;
}
ul.ib-desktop-menu .sub-menu li a:hover { 
    background: #ffde00; color: #000; 
}

/* =========================================
   4. BUTTONS & ICONS (FIX PROPORSIONAL)
   ========================================= */
.ib-actions-area { 
    display: flex; 
    align-items: center; 
    gap: 15px; 
}

/* Icon Search */
.ib-icon-btn {
    background: transparent; border: none; cursor: pointer; padding: 5px; 
    display: flex; align-items: center;
}
.ib-icon-btn svg { stroke: #000; transition: 0.2s; }
.ib-icon-btn:hover svg { stroke: #00bf63; }

/* TOMBOL KONTAK BARU (LEBIH RAMPING) */
.ib-cta-final {
    display: inline-block;
    background-color: #00bf63; /* Hijau */
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
    padding: 8px 18px; /* Padding dikecilkan biar ramping */
    border-radius: 6px;
    border: 2px solid #000; 
    box-shadow: 3px 3px 0px #000; /* Shadow diperhalus */
    font-size: 14px; /* Font disesuaikan */
    line-height: 1.2;
    transition: all 0.1s ease;
}
.ib-cta-final:hover {
    background-color: #ffde00; /* Kuning */
    color: #000 !important;
    box-shadow: 1px 1px 0px #000; /* Shadow mengecil */
    transform: translate(2px, 2px);
}

/* Hamburger Mobile */
.ib-mobile-toggle-btn {
    display: none; background: transparent; border: none; cursor: pointer;
    flex-direction: column; gap: 5px; width: 30px; padding: 0;
}
.ib-mobile-toggle-btn span { 
    width: 100%; height: 3px; background: #000; display: block; transition: 0.3s; 
}
.ib-mobile-toggle-btn.is-open span:nth-child(1) { transform: rotate(45deg) translate(5px, 6px); }
.ib-mobile-toggle-btn.is-open span:nth-child(2) { opacity: 0; }
.ib-mobile-toggle-btn.is-open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -6px); }

/* =========================================
   5. SEARCH OVERLAY (FIX POSISI)
   ========================================= */
.ib-search-overlay {
    position: fixed; left: 0; width: 100%; 
    background: #fff; z-index: 999999;
    height: 82px; /* Tinggi sama dengan header */
    border-bottom: 2px solid #000; 
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);

    /* LOGIKA SEMBUNYI (PENTING) */
    top: 0; 
    transform: translateY(-100%); 
    visibility: hidden; 
    opacity: 0;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
                visibility 0s linear 0.3s, 
                opacity 0.3s ease, top 0s;
}

.ib-search-overlay.active { 
    transform: translateY(0); 
    visibility: visible; 
    opacity: 1; 
    transition-delay: 0s;
}

/* FIX ADMIN BAR WORDPRESS */
body.admin-bar .ib-search-overlay.active { top: 32px !important; }
@media screen and (max-width: 782px) {
    body.admin-bar .ib-search-overlay.active { top: 46px !important; }
}

.ib-search-bar-wrap {
    max-width: 1200px; margin: 0 auto; height: 100%;
    display: flex; align-items: center; justify-content: space-between; 
    padding: 0 20px; gap: 20px;
}
.ib-search-logo-img { height: 40px; width: auto; flex-shrink: 0; }

.ib-search-input-box { flex-grow: 1; position: relative; height: 100%; display: flex; align-items: center; }
#ib-input-field {
    width: 100%; border: none; background: transparent;
    font-size: 20px; font-weight: 600; font-family: 'Sora', sans-serif;
    color: #333; padding: 0; height: auto; margin: 0; line-height: normal;
}
.ib-close-btn { 
    background: transparent; border: none; font-size: 32px; 
    cursor: pointer; line-height: 1; color: #000; flex-shrink: 0; padding: 0; 
}
.ib-close-btn:hover { color: #00bf63; }
.ib-loader-spin {
    position: absolute; right: 0; width: 20px; height: 20px;
    border: 3px solid #f3f3f3; border-top: 3px solid #00bf63; border-radius: 50%;
    animation: ibspin 0.8s linear infinite; display: none;
}
@keyframes ibspin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* =========================================
   6. HASIL SEARCH (AJAX)
   ========================================= */
#ib-search-output-container { 
    position: absolute; top: 82px; left: 0; width: 100%; background: transparent; pointer-events: none; 
}
#ib-search-output {
    max-width: 1200px; margin: 0 auto; background: #fff;
    border: 2px solid #000; border-top: none; 
    padding: 20px; display: none; pointer-events: auto;
    max-height: 70vh; overflow-y: auto; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.ib-results-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }

/* Style Card Standard */
.ib-search-card {
    display: flex; align-items: center; text-decoration: none;
    border: 1px solid #eee; padding: 12px; border-radius: 8px; 
    transition: 0.2s; background: #fff; min-height: 80px;
}
.ib-search-card:hover { border-color: #00bf63; background: #fafafa; }
.ib-card-img { 
    width: 60px; height: 60px; border-radius: 6px; 
    background-size: cover; background-position: center;
    margin-right: 15px; flex-shrink: 0; 
}

/* Style Card Text-Only (Kamus) */
.ib-search-card.ib-is-text-only { padding: 15px; }
.ib-search-card.ib-is-text-only .ib-card-info { width: 100%; }

.ib-card-info h5 { margin: 0 0 5px 0; font-size: 15px; color: #001639; font-weight: 700; line-height: 1.3; }
.ib-meta-row { display: flex; align-items: center; gap: 8px; }
.ib-meta-row span { font-size: 11px; color: #888; }
.ib-type-badge { 
    background: #00bf63; color: #fff !important; padding: 2px 6px; border-radius: 4px;
    font-size: 10px !important; font-weight: 700; text-transform: uppercase; 
}
.ib-view-all { display: block; margin-top: 15px; text-align: center; color: #00bf63; font-weight: 700; text-decoration: none; }
.ib-no-res { text-align: center; color: #666; padding: 20px; }

/* =========================================
   7. MOBILE RESPONSIVE
   ========================================= */
.ib-mobile-drawer {
    display: none; position: absolute; top: 82px; left: 0; width: 100%;
    background: #fff; border-bottom: 2px solid #000; box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}
.ib-mobile-drawer.is-visible { display: block; }
.ib-mobile-menu-ul li { border-top: 1px solid #f0f0f0; }
.ib-mobile-menu-ul li a {
    display: flex; justify-content: space-between; align-items: center;
    padding: 15px 20px; color: #001639; text-decoration: none; font-weight: 600;
}
.ib-arrow { font-size: 10px; color: #999; transition: transform 0.3s; }
.ib-arrow.rotate { transform: rotate(180deg); }
.ib-mobile-menu-ul .sub-menu { display: none; background: #f9f9f9; }
.ib-mobile-menu-ul .sub-menu li a { padding-left: 40px; font-weight: 400; font-size: 14px; color: #555; }

@media (max-width: 900px) {
    .ib-desktop-nav-area { display: none; }
    .ib-cta-final { display: none; }
    .ib-mobile-toggle-btn { display: flex; }
    .ib-results-grid { grid-template-columns: 1fr; }
    .ib-search-logo-img { height: 30px; } 
    #ib-input-field { font-size: 16px; }
    .ib-search-bar-wrap { padding: 0 15px; gap: 10px; }
}/* End custom CSS */