/*
 * JSmart Tax Consultant – Brand Override
 * Ganti palet template (biru #4B58FF / cyan #00C7D4) dengan
 * Navy #2c4a7c dan Gold #b5a06b sesuai Company Profile.
 */

/* ====================================================
   1. CSS CUSTOM PROPERTIES (global vars)
   ==================================================== */
:root {
    --jsmart-navy:      #2c4a7c;
    --jsmart-navy-dark: #1a2e50;
    --jsmart-gold:      #b5a06b;
    --jsmart-gold-dark: #957f54;
    --jsmart-white:     #ffffff;
}

/* ====================================================
   2. HEADER & NAVIGATION
   ==================================================== */
.header-layout1 .main-header,
.header-layout1 .top-bar,
.site-header {
    background-color: var(--jsmart-navy-dark) !important;
}

.header-layout1 .main-header .main-menu > li > a,
.header-layout1 .main-menu > li > a {
    color: #ffffff !important;
}

.header-layout1 .main-menu > li > a:hover,
.header-layout1 .main-menu > li.current-menu-item > a,
.header-layout1 .main-menu > li.current-menu-ancestor > a,
.header-layout1 .main-menu > li > a:focus {
    color: var(--jsmart-gold) !important;
}

/* Sub-menu */
.main-menu .sub-menu {
    background-color: var(--jsmart-navy-dark) !important;
}
.main-menu .sub-menu li a:hover {
    color: var(--jsmart-gold) !important;
}

/* Sticky / scrolled header */
.is-sticky .main-header,
.sticky-wrapper.is-sticky .main-header {
    background-color: var(--jsmart-navy-dark) !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}

/* Top bar info text & links */
.top-bar a,
.top-bar .info-label {
    color: var(--jsmart-gold) !important;
}

/* ====================================================
   3. BUTTONS
   ==================================================== */
.ct-btn,
a.ct-btn,
.ct-btn:visited,
button.ct-btn,
.elementor-button,
.wp-block-button .wp-block-button__link {
    background-color: var(--jsmart-navy) !important;
    border-color: var(--jsmart-navy) !important;
    color: #fff !important;
}

.ct-btn:hover,
a.ct-btn:hover,
.elementor-button:hover {
    background-color: var(--jsmart-gold) !important;
    border-color: var(--jsmart-gold) !important;
    color: #fff !important;
}

/* Outline button */
.ct-btn.ct-btn-outline,
a.ct-btn.ct-btn-outline {
    background-color: transparent !important;
    border-color: var(--jsmart-navy) !important;
    color: var(--jsmart-navy) !important;
}
.ct-btn.ct-btn-outline:hover {
    background-color: var(--jsmart-navy) !important;
    color: #fff !important;
}

/* ====================================================
   4. HEADINGS WIDGET – sub-title & decorative lines
   ==================================================== */
.ct-heading .item--subtitle .sub-title,
.ct-heading .sub-title {
    color: var(--jsmart-navy) !important;
}

/* Accent line di bawah sub-title */
.ct-heading .st-line-color,
.ct-heading .item--subtitle::after,
.item-st-line-left2 .item--subtitle::after {
    background-color: var(--jsmart-gold) !important;
    border-color: var(--jsmart-gold) !important;
}

/* ====================================================
   5. ICON BOX / FANCY BOX / FEATURE
   ==================================================== */
.ct-fancy-box .item--icon-wrap,
.ct-icon-box .item--icon-wrap,
.ct-feature .item--icon,
.ct-service-grid .item--icon {
    color: var(--jsmart-navy) !important;
}

.ct-fancy-box:hover .item--icon-wrap,
.ct-icon-box:hover .item--icon-wrap {
    background-color: var(--jsmart-navy) !important;
}

.ct-fancy-box .item--btn,
.ct-icon-box .item--btn {
    color: var(--jsmart-navy) !important;
}
.ct-fancy-box .item--btn:hover,
.ct-icon-box .item--btn:hover {
    color: var(--jsmart-gold) !important;
}

/* ====================================================
   6. COUNTER STATS
   ==================================================== */
.ct-counter.layout-4 .item--number,
.ct-counter .item--number {
    color: var(--jsmart-gold) !important;
}

/* ====================================================
   7. DARK SECTION (navy background)
   ==================================================== */
/* Background warna navy gelap (menggantikan #151D85) */
section[style*="background-color: #151D85"],
section[style*="background-color:#151D85"],
div[style*="background-color: #151D85"],
div[style*="background-color:#151D85"],
.elementor-section[style*="background-color: #151D85"],
.elementor-section[style*="background-color:#151D85"] {
    background-color: var(--jsmart-navy-dark) !important;
}

/* Accent warna emas/gold di section gelap */
.elementor-section .ct-heading[style*="#00C7D4"] .sub-title,
.ct-heading .sub-title[style*="#00C7D4"] {
    color: var(--jsmart-gold) !important;
}

/* ====================================================
   8. PAGE TITLE BAR
   ==================================================== */
.ct-page-title-wrap,
.page-title-area {
    background-color: var(--jsmart-navy) !important;
}

.ct-page-title h1,
.page-title-area h1,
.ct-page-title-wrap .page-title {
    color: #fff !important;
}

/* Breadcrumb */
.breadcrumb a,
.breadcrumb-item a {
    color: var(--jsmart-gold) !important;
}

/* ====================================================
   9. LINKS & HIGHLIGHTS
   ==================================================== */
a {
    color: var(--jsmart-navy);
}
a:hover {
    color: var(--jsmart-gold);
}

/* ====================================================
   10. FOOTER
   ==================================================== */
.site-footer,
footer.site-footer {
    background-color: var(--jsmart-navy-dark) !important;
}

.site-footer h4,
.site-footer h5,
.site-footer .widget-title {
    color: var(--jsmart-gold) !important;
}

.site-footer a:hover {
    color: var(--jsmart-gold) !important;
}

/* Footer bottom bar */
.footer-bottom {
    background-color: rgba(0, 0, 0, 0.3) !important;
}

/* ====================================================
   11. LOADING INDICATOR
   ==================================================== */
.page-loading .loader,
.page-loading .loader::before,
.page-loading .loader::after {
    border-top-color: var(--jsmart-navy) !important;
}

/* ====================================================
   12. FORM ELEMENTS
   ==================================================== */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus,
select:focus {
    border-color: var(--jsmart-navy) !important;
    box-shadow: 0 0 0 2px rgba(44, 74, 124, 0.15) !important;
}

.wpcf7-submit,
input[type="submit"],
button[type="submit"] {
    background-color: var(--jsmart-navy) !important;
    border-color: var(--jsmart-navy) !important;
}
.wpcf7-submit:hover,
input[type="submit"]:hover {
    background-color: var(--jsmart-gold) !important;
    border-color: var(--jsmart-gold) !important;
}

/* ====================================================
   13. MISC ACCENTS
   ==================================================== */
/* Border kiri aksen gold pada blockquote / kutipan */
blockquote,
.wp-block-quote {
    border-left-color: var(--jsmart-gold) !important;
}

/* Tag / badge */
.ct-tag,
.entry-tag,
.post-tag {
    background-color: var(--jsmart-navy) !important;
}

/* Progress bar */
.ct-progress-bar .item--bar-active {
    background-color: var(--jsmart-navy) !important;
}

/* Social icons di header */
.ct-social a:hover {
    color: var(--jsmart-gold) !important;
    border-color: var(--jsmart-gold) !important;
}

/* Cart / search icon hover */
.header-cart:hover,
.header-search:hover {
    color: var(--jsmart-gold) !important;
}

/* ====================================================
   14. OVERRIDE ELEMENTOR INLINE STYLE COLOR #4B58FF
       (Elementor menghasilkan .elementor-element-xxxxx
        dengan color inline – override via widget class)
   ==================================================== */
.elementor-widget-ct_heading .sub-title { color: var(--jsmart-navy) !important; }
.elementor-widget-ct_heading .st-line-left2::after { background: var(--jsmart-gold) !important; }
.elementor-widget-ct_icon_box .item--icon { color: var(--jsmart-navy) !important; }
.elementor-widget-ct_feature .item--icon { color: var(--jsmart-navy) !important; }
.elementor-widget-ct_counter .item--number { color: var(--jsmart-gold) !important; }
.elementor-widget-ct_text_editor a { color: var(--jsmart-navy) !important; }
.elementor-widget-ct_button .ct-btn { background: var(--jsmart-navy) !important; border-color: var(--jsmart-navy) !important; }
.elementor-widget-ct_button .ct-btn:hover { background: var(--jsmart-gold) !important; border-color: var(--jsmart-gold) !important; }

/* ====================================================
   15. HOMEPAGE – TIPOGRAFI JUDUL SECTION (besar & tegas)
   ==================================================== */
/* Sub-title kecil (label emas, uppercase) */
.ct-heading .item--sub-title {
    font-family: 'Roboto', sans-serif;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--jsmart-gold) !important;
    margin-bottom: 14px !important;
    display: inline-block;
}

/* Judul utama section (besar, bold, navy) */
.ct-heading .item--title {
    font-family: 'Poppins', sans-serif;
    font-size: 38px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    color: var(--jsmart-navy-dark) !important;
    margin: 0 0 8px !important;
}

/* Section gelap (CTA) – judul putih, sub-title emas */
.elementor-section[style*="#1a2e50"] .ct-heading .item--title,
.elementor-element[style*="#1a2e50"] .ct-heading .item--title {
    color: #ffffff !important;
}

/* Paragraf pengantar di bawah judul – lebih lega & terbaca */
.elementor-widget-ct_text_editor { line-height: 1.8; }
.elementor-widget-ct_text_editor p { max-width: 780px; margin-left: auto; margin-right: auto; }

/* Responsif judul */
@media (max-width: 1024px) {
    .ct-heading .item--title { font-size: 30px !important; }
}
@media (max-width: 767px) {
    .ct-heading .item--title { font-size: 25px !important; }
    .ct-heading .item--sub-title { font-size: 13px !important; }
}

/* ====================================================
   16. HOMEPAGE – COUNTER BAND (navy, angka emas)
   ==================================================== */
.jsmart-stats { overflow: hidden; }
.jsmart-stats .ct-counter { text-align: center; }
/* Sembunyikan ikon PNG teal bawaan */
.jsmart-stats .ct-counter-icon { display: none !important; }
.jsmart-stats .ct-counter-number,
.jsmart-stats .ct-counter-number-value,
.jsmart-stats .ct-counter-number-prefix,
.jsmart-stats .ct-counter-number-suffix {
    color: var(--jsmart-gold) !important;
    font-family: 'Poppins', sans-serif;
    font-weight: 700 !important;
    font-size: 52px !important;
    line-height: 1.05 !important;
}
.jsmart-stats .ct-counter-title {
    color: #ffffff !important;
    font-family: 'Poppins', sans-serif;
    font-weight: 500 !important;
    font-size: 16px !important;
    margin-top: 10px;
    line-height: 1.45;
    letter-spacing: .2px;
}
/* Garis pemisah tipis antar counter (desktop) */
@media (min-width: 768px) {
    .jsmart-stats .elementor-column:not(:last-child) .ct-counter { border-right: 1px solid rgba(255,255,255,.12); }
}
@media (max-width: 767px) {
    .jsmart-stats .ct-counter-number,
    .jsmart-stats .ct-counter-number-value,
    .jsmart-stats .ct-counter-number-prefix,
    .jsmart-stats .ct-counter-number-suffix { font-size: 40px !important; }
    .jsmart-stats .ct-counter { margin-bottom: 26px; }
    .jsmart-stats .elementor-column:last-child .ct-counter { margin-bottom: 0; }
}

/* ====================================================
   17. HOMEPAGE – FANCY BOX GRID (kartu rapi & seragam)
   ==================================================== */
.ct-fancy-box-grid .grid-item { margin-bottom: 30px; display: flex; }
.ct-fancy-box-grid .item--inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 40px 30px;
    background: #ffffff;
    border: 1px solid #edeff3;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(26,46,80,.05);
    transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.ct-fancy-box-grid .item--inner:hover {
    box-shadow: 0 16px 38px rgba(26, 46, 80, 0.13);
    transform: translateY(-6px);
    border-color: transparent;
}
/* Ikon dalam lingkaran lembut */
.ct-fancy-box-grid .item--icon {
    width: 84px; height: 84px;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 22px;
    border-radius: 50%;
    background: rgba(44, 74, 124, 0.08);
    transition: background .25s ease;
}
.ct-fancy-box-grid .item--icon i {
    font-size: 34px !important;
    line-height: 1 !important;
    color: var(--jsmart-navy) !important;
    transition: color .25s ease;
}
.ct-fancy-box-grid .item--inner:hover .item--icon { background: var(--jsmart-navy); }
.ct-fancy-box-grid .item--inner:hover .item--icon i { color: #ffffff !important; }
.ct-fancy-box-grid .item--title {
    font-family: 'Poppins', sans-serif;
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: var(--jsmart-navy-dark) !important;
    margin: 0 0 12px !important;
    min-height: 52px;
    display: flex; align-items: center; justify-content: center;
}
.ct-fancy-box-grid .item--desc {
    color: #5f6b7a !important;
    line-height: 1.7;
    font-size: 15px;
    margin: 0;
}
/* Item link menutupi seluruh kartu */
.ct-fancy-box-grid .item-link { position: absolute; inset: 0; z-index: 3; }
.ct-fancy-box-grid .item--inner { position: relative; }

@media (max-width: 767px) {
    .ct-fancy-box-grid .item--title { min-height: 0; }
    .ct-fancy-box-grid .item--inner { padding: 32px 24px; }
}

/* Section headings jarak bawah lebih lega */
.ct-heading + .elementor-widget-ct_text_editor,
.elementor-widget-ct_heading { margin-bottom: 0; }

/* ====================================================
   18. REFINEMENT PASS (masukan juri) — WAJIB
   ==================================================== */

/* ---- 18a. Section GELAP (CTA & Stats): teks terbaca ---- */
.jsmart-cta .ct-heading .item--title,
.jsmart-stats .ct-heading .item--title {
    color: #ffffff !important;
}
.jsmart-cta .ct-heading .item--sub-title,
.jsmart-stats .ct-heading .item--sub-title {
    color: var(--jsmart-gold) !important;
}
.jsmart-cta .elementor-widget-ct_text_editor,
.jsmart-cta .elementor-widget-ct_text_editor p {
    color: #d9dee8 !important;
}

/* ---- 18b. BODY TEXT netral & terbaca ---- */
.elementor-widget-ct_text_editor p,
.ct-fancy-box-grid .item--desc {
    color: #4a5568 !important;
    line-height: 1.75 !important;
}

/* ---- 18c. KARTU EQUAL-HEIGHT (netralkan masonry -> pakai flex .row) ---- */
/* Masonry memposisikan item absolute; kita matikan agar .row (flex) yang jalan */
.ct-fancy-box-grid .ct-grid-masonry {
    height: auto !important;
    align-items: stretch !important;
}
.ct-fancy-box-grid .ct-grid-masonry > .grid-item {
    position: static !important;
    left: auto !important;
    top: auto !important;
    display: flex !important;
    margin-bottom: 30px !important;
}
.ct-fancy-box-grid .grid-sizer { display: none !important; }
.ct-fancy-box-grid .item--inner {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
/* deskripsi mengisi ruang → bottom kartu rata */
.ct-fancy-box-grid .item--desc {
    flex: 1 1 auto !important;
    margin: 0 !important;
}
.ct-fancy-box-grid .item--title {
    min-height: 0 !important;
    margin: 0 0 14px !important;
}
/* lingkaran ikon seragam 76px */
.ct-fancy-box-grid .item--icon {
    width: 76px !important; height: 76px !important;
    flex: 0 0 76px !important;
}

/* ---- 18d. TOMBOL: solid oranye, rata, shadow halus ---- */
.ct-btn, a.ct-btn, button.ct-btn,
.elementor-widget-ct_button .ct-btn,
.elementor-button {
    background-image: none !important;
    background-color: #d1651a !important;
    border: none !important;
    border-radius: 6px !important;
    box-shadow: 0 6px 18px rgba(209, 101, 26, .22) !important;
    padding: 15px 38px !important;
    font-weight: 600 !important;
    letter-spacing: .3px;
    transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
.ct-btn:hover, a.ct-btn:hover,
.elementor-widget-ct_button .ct-btn:hover,
.elementor-button:hover {
    background-image: none !important;
    background-color: #b9540f !important;
    box-shadow: 0 10px 24px rgba(209, 101, 26, .30) !important;
    transform: translateY(-2px);
}

/* ---- 18e. STATS band: pemisah lebih halus & padding ---- */
.jsmart-stats .ct-counter-number,
.jsmart-stats .ct-counter-number-value,
.jsmart-stats .ct-counter-number-prefix,
.jsmart-stats .ct-counter-number-suffix { font-size: 48px !important; }

/* ---- 18f. MOBILE: counter 2x2, hero & padding ---- */
@media (max-width: 767px) {
    .jsmart-stats .elementor-row,
    .jsmart-stats > .elementor-container { flex-wrap: wrap !important; }
    .jsmart-stats .elementor-column.elementor-col-25 {
        width: 50% !important;
    }
    .jsmart-stats .ct-counter { margin-bottom: 30px !important; border-right: none !important; }
    .jsmart-stats .elementor-column:nth-last-child(-n+2) .ct-counter { margin-bottom: 4px !important; }

    /* padding samping konten mobile */
    .elementor-section.elementor-section-stretched > .elementor-container { padding-left: 18px; padding-right: 18px; }
}

/* ---- 18g. Section pertama: kurangi jarak dari hero ---- */
/* (diatur juga via padding JSON) */
