/* ============================================================
   TSW MODERN HOMEPAGE - FULL REINFORCED STYLES (FINAL)
============================================================ */
:root {
    --tsw-blue: #081a44;
    --tsw-orange: #f97316;
    --tsw-green: #15803d;
    --tsw-text: #4b5563;
    --tsw-heading: #111827;
}

/* Fix for mobile horizontal scroll */
body { overflow-x: hidden !important; }

#tsw-homepage { background-color: #fafafa !important; font-family: inherit !important; display: block !important; }
.tsw-homepage-wrap *, .tsw-homepage-wrap *::before, .tsw-homepage-wrap *::after { box-sizing: border-box !important; }
.tsw-container { max-width: 1200px !important; margin: 0 auto !important; padding: 0 20px !important; }
.tsw-section { padding: 60px 0 !important; width: 100% !important; }
.tsw-section-eyebrow { text-align: center !important; font-size: 11px !important; font-weight: 700 !important; color: var(--tsw-text) !important; text-transform: uppercase !important; letter-spacing: 1px !important; margin-bottom: 5px !important; }
.tsw-section-title { text-align: center !important; font-size: 24px !important; font-weight: 800 !important; color: var(--tsw-heading) !important; margin-bottom: 40px !important; }

/* 1. HERO SECTION (Reverted to your original perfectly working code) */
.tsw-hero-section {
    background: linear-gradient(180deg, #eef5ff 0%, #dbeafe 100%) !important;
    padding: 40px 20px 140px !important; 
    text-align: center !important;
    width: 100vw !important;
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
}
.tsw-hero-badge { display: inline-block !important; background: #e0f2fe !important; color: #0369a1 !important; padding: 6px 16px !important; border-radius: 20px !important; font-size: 13px !important; font-weight: 600 !important; margin-bottom: 20px !important; border: 1px solid #bae6fd !important; }
.tsw-hero-h1 { font-size: clamp(32px, 4vw, 42px) !important; font-weight: 800 !important; color: var(--tsw-heading) !important; line-height: 1.2 !important; max-width: 800px !important; margin: 0 auto 20px !important; }
.tsw-search-wrap { max-width: 700px !important; margin: 20px auto 15px !important; }
.tsw-search-form { display: flex !important; flex-direction: row !important; background: #fff !important; border-radius: 8px !important; padding: 3px !important; box-shadow: 0 5px 15px rgba(0,0,0,0.05) !important; width: 100% !important; }
.tsw-search-input { flex: 1 !important; border: none !important; padding: 10px 15px !important; font-size: 14px !important; outline: none !important; background: transparent !important; }
.tsw-search-btn { background: var(--tsw-green) !important; color: #fff !important; border: none !important; padding: 8px 25px !important; border-radius: 6px !important; font-weight: 700 !important; cursor: pointer !important; }
.tsw-popular-tags { font-size: 12px !important; color: var(--tsw-text) !important; margin-bottom: 40px !important; }
.tsw-tag { color: var(--tsw-blue) !important; font-weight: 600 !important; text-decoration: none !important; margin: 0 6px !important; display: inline-block !important;}

/* Partner Logos */
.tsw-hero-logos { display: flex !important; justify-content: center !important; align-items: center !important; gap: 20px !important; flex-wrap: wrap !important; opacity: 1 !important; margin-top: 20px !important; }
.tsw-hero-logos img { height: 30px !important; width: auto !important; max-width: 90px !important; object-fit: contain !important; filter: none !important; margin: 0 10px !important; }

/* 2. TRUST STATS */
.tsw-trust-stats-section { margin-top: -80px !important; position: relative !important; z-index: 50 !important; padding: 0 20px 60px 20px !important; background: transparent !important; }
.tsw-trust-stats-grid { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; background: #fff !important; border-radius: 12px !important; box-shadow: 0 15px 35px rgba(0,0,0,0.08) !important; padding: 30px !important; border: 1px solid #f3f4f6 !important; max-width: 1000px !important; margin: 0 auto !important; }
.tsw-stat-item { text-align: center !important; border-right: 1px solid #f3f4f6 !important; }
.tsw-stat-item:last-child { border-right: none !important; }
.tsw-stat-number { display: block !important; font-size: 32px !important; font-weight: 800 !important; color: var(--tsw-heading) !important; }
.tsw-stat-label { font-size: 13px !important; color: var(--tsw-text) !important; }

/* 3. CATEGORIES */
.tsw-category-grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 20px !important; margin-bottom: 40px !important; }
.tsw-cat-card { display: flex !important; justify-content: space-between !important; align-items: center !important; background: #fff !important; padding: 25px !important; border-radius: 12px !important; border: 1px solid #f3f4f6 !important; text-decoration: none !important; box-shadow: 0 4px 6px rgba(0,0,0,0.02) !important; transition: all 0.3s ease !important; }
.tsw-cat-card:hover { border-color: var(--tsw-blue) !important; box-shadow: 0 8px 15px rgba(0,0,0,0.05) !important; }
.tsw-cat-info h3 { margin: 0 0 5px !important; font-size: 16px !important; color: var(--tsw-heading) !important; font-weight: 700 !important; }
.tsw-cat-info p { margin: 0 !important; font-size: 12px !important; color: var(--tsw-text) !important; }
.tsw-cat-illus img { width: 50px !important; height: 50px !important; object-fit: contain !important; }

/* 4. SPONSORED CARDS */
.tsw-sponsored-list { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 25px !important; }
.tsw-sponsored-card { background: #fff !important; border-radius: 12px !important; border: 1px solid #f3f4f6 !important; padding: 25px !important; text-align: center !important; box-shadow: 0 4px 6px rgba(0,0,0,0.02) !important; display: flex !important; flex-direction: column !important; }
.verified-badge { font-size: 11px !important; font-weight: 700 !important; color: var(--tsw-blue) !important; background: #e0f2fe !important; padding: 3px 8px !important; border-radius: 12px !important; margin-bottom: 10px !important; display: inline-block !important;}
.tsw-card-logo { width: 60px !important; height: 60px !important; border-radius: 50% !important; overflow: hidden !important; background: #f3f4f6 !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 auto 15px !important; }
.tsw-card-name { margin: 0 0 5px !important; font-size: 18px !important; color: var(--tsw-heading) !important; }
.tsw-card-meta { font-size: 13px !important; color: var(--tsw-text) !important; margin-bottom: 10px !important;}
.tsw-card-rating { margin-bottom: 15px !important; color: var(--tsw-orange) !important; font-weight: 700 !important; font-size: 14px !important; }
.tsw-btn-orange-full { display: block !important; background: var(--tsw-orange) !important; color: #fff !important; padding: 12px !important; border-radius: 8px !important; font-weight: 700 !important; text-align: center !important; margin-top: auto !important; text-decoration: none !important;}

/* 5. LISTICLE CARDS */
.tsw-listicle-grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 20px !important; }
.tsw-listicle-card { background: linear-gradient(to right bottom, #e0f2fe, #bae6fd) !important; padding: 30px !important; border-radius: 12px !important; text-align: left !important; }
.tsw-list-year { font-size: 12px !important; font-weight: 800 !important; background: #fff !important; padding: 4px 10px !important; border-radius: 20px !important; color: var(--tsw-blue) !important; display: inline-block !important; margin-bottom: 15px !important; }
.tsw-list-title { margin: 0 0 10px !important; font-size: 18px !important; font-weight: 800 !important; }
.tsw-list-title a { color: var(--tsw-heading) !important; text-decoration: none !important; }
.tsw-list-meta { font-size: 13px !important; color: #0369a1 !important; margin-bottom: 15px !important; }
.tsw-read-link { font-weight: 700 !important; color: var(--tsw-blue) !important; text-decoration: none !important; font-size: 14px !important; }

/* 6. BLOG CARDS */
.tsw-blog-grid { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 25px !important; }
.tsw-blog-card { display: flex !important; flex-direction: row !important; background: #fff !important; border-radius: 12px !important; overflow: hidden !important; border: 1px solid #f3f4f6 !important; }
.tsw-blog-content { padding: 30px !important; flex: 1 !important; }
.tsw-blog-meta-top { font-size: 11px !important; font-weight: 700 !important; color: var(--tsw-text) !important; margin-bottom: 10px !important; display: flex !important; justify-content: space-between !important; }
.tsw-blog-title { margin: 0 0 10px !important; font-size: 18px !important; font-weight: 800 !important; line-height: 1.4 !important; }
.tsw-blog-title a { color: var(--tsw-heading) !important; text-decoration: none !important; }
.tsw-blog-author-date { font-size: 12px !important; color: var(--tsw-text) !important; margin-bottom: 15px !important; }
.tsw-blog-image { width: 35% !important; flex-shrink: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; overflow: hidden !important; }
.tsw-blog-image img { width: 100% !important; height: 100% !important; object-fit: cover !important; }

/* 7. CTA */
.tsw-cta-3col-grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 25px !important; }
.tsw-cta-col { background: #fff !important; border-radius: 12px !important; padding: 30px !important; text-align: center !important; border: 1px solid #f3f4f6 !important; }
.tsw-cta-icon { font-size: 36px !important; margin-bottom: 15px !important; }
.tsw-cta-col-title { font-size: 20px !important; margin: 0 0 10px !important; font-weight: 800 !important; color: var(--tsw-heading) !important; }
.tsw-cta-col-desc { font-size: 14px !important; color: var(--tsw-text) !important; margin-bottom: 20px !important; }
.tsw-btn { display: inline-block !important; padding: 10px 20px !important; border-radius: 6px !important; font-weight: 700 !important; text-decoration: none !important; font-size: 14px !important; }


/* ============================================================
   MOBILE RESPONSIVENESS (MEDIA QUERIES)
============================================================ */

/* TABLET VIEW (Max 991px) */
@media (max-width: 991px) {
    .tsw-category-grid,
    .tsw-listicle-grid,
    .tsw-sponsored-list,
    .tsw-cta-3col-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .tsw-blog-grid {
        grid-template-columns: 1fr !important;
    }
}

/* MOBILE VIEW (Max 768px) */
@media (max-width: 768px) {
    .tsw-section { padding: 40px 0 !important; }
    
    /* Hero Section Fix */
    .tsw-hero-section { padding: 30px 20px 100px !important; }
    .tsw-hero-h1 { font-size: 28px !important; }
    
    /* Search Bar Mobile Fix */
    .tsw-search-form { flex-direction: column !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; }
    .tsw-search-input { background: #fff !important; margin-bottom: 10px !important; border-radius: 8px !important; box-shadow: 0 4px 6px rgba(0,0,0,0.05) !important; }
    .tsw-search-btn { width: 100% !important; padding: 12px !important; }
    
    /* Trust Stats Grid Fix */
    .tsw-trust-stats-section { margin-top: -60px !important; padding: 0 15px 40px 15px !important; }
    .tsw-trust-stats-grid { grid-template-columns: repeat(2, 1fr) !important; padding: 20px !important; gap: 10px !important; }
    .tsw-stat-item { border-right: none !important; border-bottom: 1px solid #f3f4f6 !important; padding-bottom: 15px !important; }
    .tsw-stat-item:nth-child(even) { border-left: 1px solid #f3f4f6 !important; } 
    .tsw-stat-item:nth-last-child(-n+2) { border-bottom: none !important; padding-bottom: 0 !important; }
    .tsw-stat-number { font-size: 24px !important; }

    /* Grids to 1 Column */
    .tsw-category-grid,
    .tsw-sponsored-list,
    .tsw-listicle-grid,
    .tsw-cta-3col-grid {
        grid-template-columns: 1fr !important;
    }
    
    /* Category Cards Alignment */
    .tsw-cat-card { padding: 15px 20px !important; }
    
    /* Blog Card Layout Fix */
    .tsw-blog-card { flex-direction: column-reverse !important; }
    .tsw-blog-image { width: 100% !important; height: 200px !important; border-bottom: 1px solid #f3f4f6 !important; }
    .tsw-blog-content { padding: 20px !important; }
}

/* SMALL MOBILE VIEW (Max 480px) */
@media (max-width: 480px) {
    .tsw-trust-stats-grid { grid-template-columns: 1fr !important; }
    .tsw-stat-item { border-left: none !important; border-right: none !important; border-bottom: 1px solid #f3f4f6 !important; padding: 15px 0 !important; }
    .tsw-stat-item:nth-last-child(-n+2) { border-bottom: 1px solid #f3f4f6 !important; padding-bottom: 15px !important; }
    .tsw-stat-item:last-child { border-bottom: none !important; padding-bottom: 0 !important; }
}