/* Calculators Listing Hub Styles */
/* ============ CALCULATORS PAGE ============ */
.pkm-calc-hero { background: var(--pkm-gradient) !important; padding: 72px 0 60px !important; text-align: center !important; position: relative !important; overflow: hidden !important; }
.pkm-calc-hero::before { content: '' !important; position: absolute !important; inset: 0 !important; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") !important; opacity: 0.5 !important; pointer-events: none !important; }
.pkm-calc-hero-inner { position: relative !important; z-index: 1 !important; max-width: 800px !important; margin: 0 auto !important; padding: 0 24px !important; }
.pkm-calc-hero h1 { font-size: clamp(2rem,5vw,3rem) !important; color: #fff !important; margin-bottom: 16px !important; }
.pkm-calc-hero p { font-size: 1.125rem !important; color: rgba(255,255,255,0.85) !important; margin-bottom: 32px !important; }
/* Search bar */
.pkm-search-wrap { position: relative !important; max-width: 600px !important; margin: 0 auto !important; }
.pkm-search-input { width: 100% !important; padding: 18px 56px 18px 20px !important; font-size: 1rem !important; border: none !important; border-radius: 14px !important; background: #fff !important; color: #1A1F2E !important; box-shadow: 0 8px 32px rgba(0,0,0,0.2) !important; outline: none !important; font-family: var(--pkm-font-body) !important; }
.pkm-search-icon { position: absolute !important; right: 18px !important; top: 50% !important; transform: translateY(-50%) !important; color: var(--pkm-primary) !important; pointer-events: none !important; }
.pkm-search-icon svg { width: 22px !important; height: 22px !important; }
.pkm-search-count { margin-top: 12px !important; font-size: 0.875rem !important; color: rgba(255,255,255,0.7) !important; }
/* Category filter */
.pkm-calc-filters { background: var(--pkm-bg-2) !important; border-bottom: 1px solid var(--pkm-border) !important; position: sticky !important; top: 72px !important; z-index: 100 !important; }
.pkm-calc-filters-inner { max-width: 1280px !important; margin: 0 auto !important; padding: 0 24px !important; display: flex !important; align-items: center !important; gap: 8px !important; overflow-x: auto !important; scrollbar-width: none !important; }
.pkm-calc-filters-inner::-webkit-scrollbar { display: none !important; }
.pkm-filter-tab { padding: 16px 20px !important; font-family: var(--pkm-font-heading) !important; font-size: 0.875rem !important; font-weight: 600 !important; color: var(--pkm-text-muted) !important; border: none !important; background: none !important; cursor: pointer !important; white-space: nowrap !important; border-bottom: 3px solid transparent !important; transition: var(--pkm-transition) !important; }
.pkm-filter-tab:hover { color: var(--pkm-primary) !important; }
.pkm-filter-tab.active { color: var(--pkm-primary) !important; border-bottom-color: var(--pkm-primary) !important; }
/* Tools listing */
.pkm-calc-listing { padding: 60px 0 !important; background: var(--pkm-bg) !important; }
.pkm-calc-listing-inner { max-width: 1280px !important; margin: 0 auto !important; padding: 0 24px !important; }
/* Category group */
.pkm-calc-group { margin-bottom: 56px !important; }
.pkm-calc-group-header { display: flex !important; align-items: center !important; gap: 16px !important; margin-bottom: 24px !important; padding-bottom: 16px !important; border-bottom: 2px solid var(--pkm-border) !important; }
.pkm-calc-group-icon { width: 48px !important; height: 48px !important; border-radius: 12px !important; display: flex !important; align-items: center !important; justify-content: center !important; background: var(--pkm-primary-light) !important; color: var(--pkm-primary) !important; flex-shrink: 0 !important; }
.pkm-calc-group-icon svg { width: 24px !important; height: 24px !important; }
.pkm-calc-group-title { font-size: 1.375rem !important; font-weight: 800 !important; color: var(--pkm-text) !important; }
.pkm-calc-group-count { font-size: 0.875rem !important; color: var(--pkm-text-muted) !important; background: var(--pkm-bg-3) !important; padding: 4px 10px !important; border-radius: 100px !important; }
.pkm-calc-grid { display: grid !important; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)) !important; gap: 20px !important; }
/* Tool card in listing */
.pkm-calc-card { display: flex !important; align-items: flex-start !important; gap: 14px !important; padding: 20px !important; background: var(--pkm-bg-2) !important; border: 1px solid var(--pkm-border) !important; border-radius: var(--pkm-radius) !important; text-decoration: none !important; color: var(--pkm-text) !important; transition: var(--pkm-transition) !important; position: relative !important; overflow: hidden !important; }
.pkm-calc-card::before { content: '' !important; position: absolute !important; left: 0 !important; top: 0 !important; bottom: 0 !important; width: 3px !important; background: var(--pkm-primary) !important; transform: scaleY(0) !important; transition: transform 0.3s ease !important; }
.pkm-calc-card:hover { transform: translateY(-3px) !important; border-color: var(--pkm-primary) !important; box-shadow: var(--pkm-shadow) !important; color: var(--pkm-text) !important; }
.pkm-calc-card:hover::before { transform: scaleY(1) !important; }
.pkm-calc-card-icon { width: 44px !important; height: 44px !important; flex-shrink: 0 !important; background: var(--pkm-primary-light) !important; border-radius: var(--pkm-radius-sm) !important; display: flex !important; align-items: center !important; justify-content: center !important; color: var(--pkm-primary) !important; }
.pkm-calc-card-icon svg { width: 22px !important; height: 22px !important; }
.pkm-calc-card-body { flex: 1 !important; min-width: 0 !important; }
.pkm-calc-card-title { font-size: 0.9375rem !important; font-weight: 700 !important; color: var(--pkm-text) !important; margin-bottom: 4px !important; display: block !important; }
.pkm-calc-card-desc { font-size: 0.8125rem !important; color: var(--pkm-text-muted) !important; line-height: 1.4 !important; }
.pkm-calc-card-arrow { color: var(--pkm-primary) !important; opacity: 0 !important; transform: translateX(-4px) !important; transition: var(--pkm-transition) !important; flex-shrink: 0 !important; }
.pkm-calc-card:hover .pkm-calc-card-arrow { opacity: 1 !important; transform: translateX(0) !important; }
/* No results / hidden states */
.pkm-calc-card.pkm-hidden { display: none !important; }
.pkm-calc-group.pkm-hidden { display: none !important; }
.pkm-no-results { text-align: center !important; padding: 60px 24px !important; color: var(--pkm-text-muted) !important; }
.pkm-no-results svg { width: 64px !important; height: 64px !important; color: var(--pkm-text-subtle) !important; margin-bottom: 16px !important; }
.pkm-no-results h3 { color: var(--pkm-text) !important; margin-bottom: 8px !important; }
/* Empty state */
.pkm-calc-empty { grid-column: 1/-1 !important; text-align: center !important; padding: 60px 24px !important; }
.pkm-calc-empty svg { width: 64px !important; height: 64px !important; color: var(--pkm-text-subtle) !important; margin: 0 auto 16px !important; display: block !important; }

/* ── RESPONSIVE: Tablet & below ── */
@media (max-width: 768px) {
    .pkm-calc-hero { padding: 48px 0 40px !important; }
    .pkm-calc-hero h1 { font-size: clamp(1.5rem, 6vw, 2rem) !important; }
    .pkm-calc-hero p { font-size: 1rem !important; margin-bottom: 24px !important; }
    .pkm-calc-hero-inner { padding: 0 16px !important; }
    .pkm-search-input { padding: 14px 48px 14px 16px !important; font-size: 0.9375rem !important; }
    .pkm-calc-filters-inner { padding: 0 12px !important; gap: 4px !important; }
    .pkm-filter-tab { padding: 12px 14px !important; font-size: 0.8125rem !important; }
    .pkm-calc-listing-inner { padding: 0 16px !important; }
    .pkm-calc-listing { padding: 40px 0 !important; }
    .pkm-calc-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
    .pkm-calc-group { margin-bottom: 40px !important; }
    .pkm-calc-group-header { gap: 12px !important; }
    .pkm-calc-group-icon { width: 40px !important; height: 40px !important; }
    .pkm-calc-group-title { font-size: 1.125rem !important; }
    .pkm-calc-card { padding: 16px !important; }
    .pkm-calc-card-icon { width: 38px !important; height: 38px !important; }
}

/* ── RESPONSIVE: Small mobile ── */
@media (max-width: 480px) {
    .pkm-calc-hero { padding: 36px 0 28px !important; }
    .pkm-calc-hero h1 { font-size: 1.375rem !important; }
    .pkm-filter-tab { padding: 10px 12px !important; font-size: 0.75rem !important; }
    .pkm-calc-grid { gap: 10px !important; }
    .pkm-calc-card-title { font-size: 0.875rem !important; }
    .pkm-calc-card-desc { font-size: 0.75rem !important; }
}

/* ── RESPONSIVE: 2-col on medium screens ── */
@media (min-width: 500px) and (max-width: 899px) {
    .pkm-calc-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── ERROR STATES ── */
.pkm-error-banner {
    background: #FFF3CD !important; border: 1px solid #FFD700 !important; border-radius: 10px !important;
    padding: 16px 20px !important; margin: 16px 0 !important; color: #856404 !important;
    font-size: 0.9rem !important; display: flex !important; align-items: center !important; gap: 12px !important;
}
.pkm-error-banner.is-error { background: #FFE9E9 !important; border-color: #0D9488 !important; color: #9B1926 !important; }
.pkm-error-banner svg { flex-shrink: 0 !important; width: 20px !important; height: 20px !important; }

/* ── ACCESSIBILITY FOCUS ── */
.pkm-calc-card:focus-visible, .pkm-filter-tab:focus-visible, .pkm-search-input:focus {
    outline: 3px solid var(--pkm-primary) !important; outline-offset: 2px !important;
}

/* ── SKELETON LOADING ── */
.pkm-skeleton { animation: pkm-skeleton-pulse 1.6s ease-in-out infinite !important; background: var(--pkm-bg-3) !important; border-radius: 8px !important; }
@keyframes pkm-skeleton-pulse { 0%,100% { opacity: 1 } 50% { opacity: 0.4 } }