/**
 * Veritas Lustitia Store — Premium CSS Customizations
 * Versi: 2.0 - Corrected selectors based on WooCommerce Blocks FSE HTML analysis
 * Tema: Navy & Gold | Font: Inter + Outfit
 */

/* ==========================================
   IMPORT FONTS
   ========================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');

/* ==========================================
   CSS DESIGN TOKENS
   ========================================== */
:root {
    --vl-navy-darkest: #050C1A;
    --vl-navy:         #0B192C;
    --vl-navy-light:   #1E3E62;
    --vl-gold:         #C9880A;
    --vl-gold-bright:  #D97706;
    --vl-gold-glow:    rgba(217, 119, 6, 0.22);
    --vl-bg:           #F7F8FA;
    --vl-white:        #FFFFFF;
    --vl-text:         #0F172A;
    --vl-muted:        #64748B;
    --vl-border:       rgba(11, 25, 44, 0.12);
    --vl-card-bg:      rgba(255, 255, 255, 0.94);
    --vl-radius-card:  18px;
    --vl-radius-btn:   12px;
    --vl-shadow-card:  0 2px 16px rgba(11, 25, 44, 0.06);
    --vl-shadow-hover: 0 18px 40px rgba(11, 25, 44, 0.10), 0 0 24px var(--vl-gold-glow);
    --vl-transition:   all 0.38s cubic-bezier(0.165, 0.84, 0.44, 1);
}

/* ==========================================
   TIPOGRAFI GLOBAL
   ========================================== */
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    background-color: var(--vl-bg) !important;
    color: var(--vl-text) !important;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Outfit', sans-serif !important;
    font-weight: 700 !important;
}

/* ==========================================
   HEADER & NAVIGASI
   ========================================== */
.wp-site-blocks > header,
header.wp-block-template-part {
    background: var(--vl-navy) !important;
    color: white !important;
    box-shadow: 0 2px 20px rgba(0,0,0,0.15) !important;
}

header .wp-block-site-title a,
header .wp-block-site-title {
    color: white !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 800 !important;
    font-size: 1.4rem !important;
    text-decoration: none !important;
}

header .wp-block-navigation a,
header .wp-block-navigation__container a {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 0.92rem !important;
    font-weight: 500 !important;
    transition: color 0.25s ease !important;
    text-decoration: none !important;
}

header .wp-block-navigation a:hover {
    color: var(--vl-gold-bright) !important;
}

/* ==========================================
   HALAMAN TOKO - GRID PRODUK
   Selector akurat berdasarkan analisis HTML
   ========================================== */

/* Wrapper grid produk (versi blocks) */
.wc-block-product-template__responsive {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 28px !important;
    padding: 0 !important;
    margin: 32px 0 !important;
    list-style: none !important;
}

/* Fallback grid untuk columns-3, columns-4 */
.wc-block-product-template__responsive.columns-3,
.wc-block-product-template__responsive.columns-4 {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
}

/* KARTU PRODUK — Elemen <li> */
.wc-block-product-template__responsive > li,
.wc-block-product {
    background: var(--vl-card-bg) !important;
    border: 1px solid var(--vl-border) !important;
    border-radius: var(--vl-radius-card) !important;
    padding: 16px !important;
    margin: 0 !important;
    width: auto !important;
    float: none !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    transition: var(--vl-transition) !important;
    box-shadow: var(--vl-shadow-card) !important;
    overflow: hidden !important;
    position: relative !important;
    height: auto !important;
}

/* Efek hover premium */
.wc-block-product-template__responsive > li:hover,
.wc-block-product:hover {
    transform: translateY(-6px) !important;
    border-color: rgba(217, 119, 6, 0.35) !important;
    box-shadow: var(--vl-shadow-hover) !important;
}

/* ==========================================
   GAMBAR COVER BUKU (FIT LEBAR & UTUH 100%)
   ========================================== */
.wc-block-components-product-image,
.wc-block-grid__product-image,
.wp-block-woocommerce-product-image {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    aspect-ratio: 3 / 4 !important; /* Rasio cover buku portrait */
    max-height: 320px !important;    /* Mencegah kartu melar panjang */
    border-radius: 10px !important;
    overflow: hidden !important;
    margin-bottom: 12px !important;
    flex-shrink: 0 !important;
    background: #f8fafc !important;
    position: relative !important;
}

.wc-block-components-product-image a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    text-decoration: none !important;
}

.wc-block-components-product-image img,
.wc-block-grid__product-image img,
.wp-block-woocommerce-product-image img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important; /* Menampilkan seluruh cover tanpa terpotong */
    aspect-ratio: unset !important; /* Menimpa inline 1/1 dari WooCommerce */
    border-radius: 6px !important;
    box-shadow: 0 4px 14px rgba(11, 25, 44, 0.08) !important;
    transition: transform 0.38s ease, box-shadow 0.38s ease !important;
    display: block !important;
}

/* Kontainer overlay (badge sale dsb) */
.wc-block-components-product-image__inner-container {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    left: auto !important;
    bottom: auto !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    z-index: 5 !important;
    pointer-events: none !important;
}

.wc-block-components-product-image .wp-block-woocommerce-product-sale-badge {
    position: static !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
}

.wc-block-product:hover .wc-block-components-product-image img,
.wc-block-product-template__responsive > li:hover .wc-block-components-product-image img {
    transform: translateY(-3px) scale(1.02) !important;
    box-shadow: 0 10px 20px rgba(11, 25, 44, 0.14) !important;
}

/* Gambar placeholder (produk tanpa cover) */
.wc-block-components-product-image img[src*="placeholder"] {
    opacity: 0.4 !important;
    object-fit: contain !important;
    padding: 20px !important;
}

/* ==========================================
   BADGE SALE
   ========================================== */
.wc-block-components-product-sale-badge,
.wc-block-components-product-sale-badge__text,
.wc-block-grid__product-onsale {
    background: var(--vl-gold-bright) !important;
    color: white !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.74rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    padding: 4px 10px !important;
    border-radius: 6px !important;
    box-shadow: 0 2px 8px rgba(217, 119, 6, 0.35) !important;
    min-height: auto !important;
    min-width: auto !important;
    line-height: 1 !important;
    border: none !important;
}

.wc-block-components-product-sale-badge {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* ==========================================
   JUDUL BUKU
   Selector akurat: h2.wp-block-post-title dalam kartu
   ========================================== */
.wc-block-product .wp-block-post-title,
.wc-block-product-template__responsive li .wp-block-post-title {
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.98rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    color: var(--vl-navy) !important;
    transition: color 0.25s ease !important;
    text-align: left !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    min-height: 2.7em !important;
}

.wc-block-product .wp-block-post-title a {
    color: inherit !important;
    text-decoration: none !important;
    transition: color 0.25s ease !important;
}

.wc-block-product:hover .wp-block-post-title a {
    color: var(--vl-gold-bright) !important;
}

/* ==========================================
   HARGA
   ========================================== */
.wc-block-product .wc-block-components-product-price,
.wc-block-product-template__responsive li .wc-block-components-product-price,
.wc-block-product .wc-block-grid__product-price {
    font-size: 1rem !important;
    font-weight: 600 !important;
    margin: 0 0 14px 0 !important;
    display: block !important;
    text-align: left !important;
    color: var(--vl-text) !important;
}

/* Harga normal (coret) */
.wc-block-product .wc-block-components-product-price del,
.wc-block-product-template__responsive li .wc-block-components-product-price del {
    color: var(--vl-muted) !important;
    font-size: 0.85rem !important;
    font-weight: 400 !important;
    margin-right: 4px !important;
    opacity: 0.8 !important;
}

/* Harga sale (tebal, emas) */
.wc-block-product .wc-block-components-product-price ins,
.wc-block-product-template__responsive li .wc-block-components-product-price ins {
    text-decoration: none !important;
    color: var(--vl-gold-bright) !important;
    font-weight: 700 !important;
    font-size: 1.1rem !important;
}

/* ==========================================
   TOMBOL ADD TO CART
   Selector akurat: button.wp-block-button__link dalam .wc-block-product
   ========================================== */
.wc-block-product .wp-block-button__link,
.wc-block-product-template__responsive li .wp-block-button__link,
.wc-block-components-product-button .wp-block-button__link {
    background: var(--vl-navy) !important;
    color: white !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    padding: 11px 18px !important;
    border-radius: var(--vl-radius-btn) !important;
    border: none !important;
    cursor: pointer !important;
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    transition: var(--vl-transition) !important;
    box-shadow: 0 3px 12px rgba(11, 25, 44, 0.12) !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    margin-top: auto !important;
}

.wc-block-product .wp-block-button__link:hover,
.wc-block-product-template__responsive li .wp-block-button__link:hover {
    background: var(--vl-gold-bright) !important;
    color: white !important;
    box-shadow: 0 6px 20px var(--vl-gold-glow) !important;
    transform: translateY(-1px) !important;
}

/* Tombol "View cart" setelah add to cart */
.wc-block-product .added_to_cart,
.wc-block-product-template__responsive li .added_to_cart {
    color: var(--vl-gold-bright) !important;
    font-size: 0.82rem !important;
    text-decoration: none !important;
    text-align: center !important;
    display: block !important;
    margin-top: 6px !important;
}

/* ==========================================
   WRAPPER BLOCK TOMBOL (margin fix)
   ========================================== */
.wc-block-product .wc-block-components-product-button,
.wc-block-product-template__responsive li .wc-block-components-product-button {
    margin-top: auto !important;
    padding-top: 8px !important;
}

/* ==========================================
   HALAMAN TOKO - HEADER AREA
   ========================================== */
/* Judul "Shop" */
.wp-block-query-title,
h1.wp-block-query-title {
    font-family: 'Outfit', sans-serif !important;
    font-weight: 800 !important;
    color: var(--vl-navy) !important;
    font-size: 2.5rem !important;
    margin-bottom: 6px !important;
}

/* Teks "Showing 1–16 of 20 results" */
.woocommerce-result-count,
.wp-block-woocommerce-product-results-count p {
    color: var(--vl-muted) !important;
    font-size: 0.9rem !important;
    font-style: italic !important;
}

/* Dropdown sorting */
.woocommerce-ordering select,
.wp-block-woocommerce-catalog-sorting select {
    font-family: 'Inter', sans-serif !important;
    border: 1px solid var(--vl-border) !important;
    border-radius: 8px !important;
    padding: 8px 14px !important;
    background: white !important;
    color: var(--vl-text) !important;
    font-size: 0.88rem !important;
}

/* ==========================================
   HALAMAN DETAIL PRODUK (SINGLE PRODUCT)
   ========================================== */
.woocommerce div.product .product_title {
    color: var(--vl-navy) !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 2.2rem !important;
    font-weight: 800 !important;
    margin-bottom: 12px !important;
}

.woocommerce div.product p.price {
    font-size: 1.8rem !important;
    color: var(--vl-gold-bright) !important;
    font-weight: 700 !important;
}

.woocommerce div.product p.price del {
    font-size: 1.2rem !important;
    color: var(--vl-muted) !important;
    font-weight: 400 !important;
}

.woocommerce div.product p.price ins {
    text-decoration: none !important;
}

/* Tombol Add to Cart - halaman detail */
.woocommerce div.product .single_add_to_cart_button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
    background: var(--vl-navy) !important;
    color: white !important;
    border-radius: var(--vl-radius-btn) !important;
    padding: 14px 32px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    border: none !important;
    transition: var(--vl-transition) !important;
}

.woocommerce div.product .single_add_to_cart_button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
    background: var(--vl-gold-bright) !important;
    box-shadow: 0 6px 20px var(--vl-gold-glow) !important;
}

/* ==========================================
   CLASSIC WOOCOMMERCE CATALOG (fallback)
   ========================================== */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 28px !important;
    margin: 32px 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }

.woocommerce ul.products li.product {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    background: var(--vl-card-bg) !important;
    border: 1px solid var(--vl-border) !important;
    border-radius: var(--vl-radius-card) !important;
    padding: 18px !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: var(--vl-shadow-card) !important;
    transition: var(--vl-transition) !important;
}

.woocommerce ul.products li.product:hover {
    transform: translateY(-8px) !important;
    border-color: rgba(217, 119, 6, 0.35) !important;
    box-shadow: var(--vl-shadow-hover) !important;
}

.woocommerce ul.products li.product .button {
    background: var(--vl-navy) !important;
    color: white !important;
    border-radius: var(--vl-radius-btn) !important;
    padding: 11px 18px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    border: none !important;
    display: block !important;
    text-align: center !important;
    transition: var(--vl-transition) !important;
}

.woocommerce ul.products li.product .button:hover {
    background: var(--vl-gold-bright) !important;
    box-shadow: 0 6px 18px var(--vl-gold-glow) !important;
}

.woocommerce span.onsale {
    background: var(--vl-gold-bright) !important;
    color: white !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    text-transform: uppercase !important;
    padding: 5px 11px !important;
    min-height: auto !important;
    min-width: auto !important;
    border-radius: 7px !important;
}

/* ==========================================
   SHORTCODE: ALUR PUBLIKASI BUKU INTERAKTIF
   ========================================== */
.vj-timeline-wrapper {
    position: relative;
    max-width: 850px;
    margin: 48px auto;
    padding: 20px 0;
}

.vj-timeline-wrapper::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0; left: 40px;
    width: 3px;
    background: linear-gradient(180deg, var(--vl-navy) 0%, var(--vl-gold-bright) 100%);
    border-radius: 3px;
}

.vj-timeline-item {
    position: relative;
    margin-bottom: 40px;
    padding-left: 84px;
    transition: all 0.3s ease;
}

.vj-timeline-badge {
    position: absolute;
    left: 20px; top: 6px;
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--vl-navy);
    border: 3px solid white;
    box-shadow: 0 4px 12px rgba(11, 25, 44, 0.18);
    color: white;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Outfit', sans-serif;
    font-weight: 700; font-size: 1.1rem;
    z-index: 2;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.vj-timeline-item:hover .vj-timeline-badge {
    background: var(--vl-gold-bright);
    transform: scale(1.18);
    box-shadow: 0 4px 16px rgba(217, 119, 6, 0.45);
}

.vj-timeline-content {
    background: white;
    border: 1px solid var(--vl-border);
    border-radius: 16px;
    padding: 24px;
    box-shadow: var(--vl-shadow-card);
    position: relative;
    transition: all 0.3s ease;
}

.vj-timeline-content::before {
    content: '';
    position: absolute;
    top: 18px; left: -10px;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    border-right: 10px solid var(--vl-border);
    z-index: 1;
}

.vj-timeline-content::after {
    content: '';
    position: absolute;
    top: 18px; left: -9px;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    border-right: 10px solid white;
    z-index: 2;
}

.vj-timeline-item:hover .vj-timeline-content {
    transform: translateX(8px);
    border-color: rgba(217, 119, 6, 0.3);
    box-shadow: 0 10px 28px rgba(11, 25, 44, 0.06), 0 0 16px var(--vl-gold-glow);
}

.vj-timeline-title {
    color: var(--vl-navy);
    font-family: 'Outfit', sans-serif;
    font-size: 1.2rem; margin: 0 0 10px 0; font-weight: 700;
    transition: color 0.25s ease;
}

.vj-timeline-item:hover .vj-timeline-title { color: var(--vl-gold-bright); }

.vj-timeline-desc {
    color: var(--vl-muted);
    font-size: 0.97rem;
    line-height: 1.65; margin: 0;
}

/* ==========================================
   RESPONSIVE
   ========================================== */
@media (max-width: 768px) {
    .wc-block-product-template__responsive {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
    }
    .wp-block-query-title { font-size: 1.8rem !important; }
    .vj-timeline-wrapper::before { left: 20px; }
    .vj-timeline-badge { left: 0; width: 38px; height: 38px; font-size: 1rem; }
    .vj-timeline-item { padding-left: 56px; }
}

@media (max-width: 480px) {
    .wc-block-product-template__responsive {
        grid-template-columns: 1fr !important;
    }
}
