/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Arial,sans-serif;font-size:1rem;line-height:1.6;color:#111827;background:#fff}
img{max-width:100%;height:auto;display:block}
a{color:#1a56db;text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible{outline:2px solid #1a56db;outline-offset:2px;border-radius:2px}
h1,h2,h3,h4,h5,h6{line-height:1.3;color:#111827;font-weight:600}
h1{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:.75rem}
h2{font-size:clamp(1.375rem,3vw,1.875rem);margin-bottom:.625rem}
h3{font-size:1.25rem;margin-bottom:.5rem}
h4{font-size:1.125rem;margin-bottom:.375rem}
p{margin-bottom:1rem;color:#4b5563}
p:last-child{margin-bottom:0}
ul,ol{padding-left:1.25rem;margin-bottom:1rem}
li{margin-bottom:.25rem}
table{width:100%;border-collapse:collapse;margin-bottom:1rem}
th,td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid #e5e7eb}
th{background:#f9fafb;font-weight:600;color:#111827}
td{color:#4b5563}
address{font-style:normal}

/* ===== SKIP LINK ===== */
.skip-link{position:absolute;top:-100%;left:0;background:#1a56db;color:#fff;padding:.5rem 1rem;z-index:10000;font-weight:600}
.skip-link:focus{top:0}

/* ===== CONTAINER ===== */
.container{max-width:1200px;margin:0 auto;padding:0 1.25rem}

/* ===== HEADER ===== */
.site-header{background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:100}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:3.75rem}
.logo{font-size:1.25rem;font-weight:700;color:#111827;display:flex;align-items:center;gap:.5rem}
.logo:hover{text-decoration:none}
.logo-icon{width:2rem;height:2rem;background:#1a56db;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1rem;flex-shrink:0}

/* ===== NAVIGATION ===== */
.nav-toggle{display:none;background:none;border:1px solid #d1d5db;border-radius:6px;padding:.5rem;cursor:pointer;color:#111827}
.nav-toggle svg{display:block}
.nav-list{display:flex;gap:.25rem;list-style:none;padding:0;margin:0}
.nav-list li{margin:0}
.nav-list a{display:block;padding:.5rem .75rem;border-radius:6px;color:#4b5563;font-size:.875rem;font-weight:500;transition:color .15s,background .15s}
.nav-list a:hover,.nav-list a[aria-current="page"]{color:#111827;background:#f3f4f6;text-decoration:none}

/* ===== HERO ===== */
.hero{background:linear-gradient(135deg,#1a56db 0%,#0d9488 100%);color:#fff;padding:4rem 0 3.5rem;text-align:center}
.hero h1{color:#fff;font-size:clamp(2rem,5vw,3rem);margin-bottom:1rem}
.hero p{color:rgba(255,255,255,.9);font-size:clamp(1.05rem,2vw,1.2rem);max-width:680px;margin:0 auto 2rem}
.hero-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.5rem;border-radius:8px;font-weight:600;font-size:.9375rem;border:2px solid transparent;cursor:pointer;transition:all .15s;text-decoration:none;line-height:1.4}
.btn:hover{text-decoration:none}
.btn-primary{background:#fff;color:#1a56db;border-color:#fff}
.btn-primary:hover{background:rgba(255,255,255,.9);color:#1a56db}
.btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-secondary:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-outline{background:transparent;color:#1a56db;border-color:#1a56db}
.btn-outline:hover{background:#1a56db;color:#fff}
.btn-sm{padding:.375rem 1rem;font-size:.8125rem}

/* ===== SECTION ===== */
.section{padding:3.5rem 0}
.section-gray{background:#f9fafb}
.section-title{text-align:center;margin-bottom:2.5rem}
.section-title h2{margin-bottom:.5rem}
.section-title p{color:#6b7280;max-width:600px;margin:0 auto}

/* ===== CARDS ===== */
.card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1.5rem;transition:box-shadow .2s}
.card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.card h3{margin-bottom:.375rem}
.card p{font-size:.9375rem;color:#6b7280;margin-bottom:0}
.card-link{color:#111827;display:block}
.card-link:hover{text-decoration:none}

/* ===== VENDOR GRID ===== */
.vendor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}
.vendor-card .vendor-logo{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.125rem;margin-bottom:.75rem}
.vendor-card .vendor-meta{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}
.vendor-card .tag{display:inline-block;padding:.1875rem .625rem;border-radius:999px;background:#eff6ff;color:#1a56db;font-size:.75rem;font-weight:500}

/* ===== CATEGORY GRID ===== */
.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}
.category-card{text-align:center;padding:2rem 1.5rem}
.category-card .cat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem;font-size:1.5rem}

/* ===== BREADCRUMBS ===== */
.breadcrumbs{padding:.75rem 0;font-size:.8125rem;color:#6b7280}
.breadcrumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.25rem}
.breadcrumbs li:not(:last-child)::after{content:"/";margin:0 .375rem;color:#9ca3af}
.breadcrumbs a{color:#6b7280}
.breadcrumbs a:hover{color:#1a56db}
.breadcrumbs [aria-current="page"]{color:#111827;font-weight:500}

/* ===== PAGE HEADER ===== */
.page-header{padding:2.5rem 0 1.5rem}
.page-header h1{margin-bottom:.5rem}
.page-header p{color:#6b7280;max-width:640px;font-size:1.0625rem}

/* ===== CONTENT ===== */
.content{max-width:800px}
.content h2{margin-top:2rem}
.content h3{margin-top:1.5rem}
.content ul,.content ol{margin-bottom:1.25rem}
.content li{margin-bottom:.375rem}

/* ===== STATS ===== */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem;text-align:center}
.stat-value{font-size:2rem;font-weight:700;color:#1a56db;display:block;margin-bottom:.25rem}
.stat-label{font-size:.875rem;color:#6b7280}

/* ===== COMPARISON TABLE ===== */
.comparison-wrap{overflow-x:auto}
.comparison-table{min-width:600px}
.comparison-table th{position:sticky;top:3.75rem;background:#f9fafb}
.comparison-table .check{color:#059669;font-weight:700}
.comparison-table .cross{color:#dc2626}

/* ===== FORMS ===== */
.form-group{margin-bottom:1.25rem}
.form-group label{display:block;font-weight:500;margin-bottom:.375rem;color:#111827}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9375rem;font-family:inherit;color:#111827;background:#fff;transition:border-color .15s}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#1a56db;box-shadow:0 0 0 3px rgba(26,86,219,.15)}
.form-group textarea{resize:vertical;min-height:120px}
.form-error{color:#dc2626;font-size:.8125rem;margin-top:.25rem}

/* ===== FOOTER ===== */
.site-footer{background:#111827;color:#9ca3af;padding:3rem 0 1.5rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;margin-bottom:2rem}
.footer-col h3{color:#fff;font-size:.9375rem;margin-bottom:.75rem}
.footer-col p{font-size:.875rem;color:#9ca3af}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{margin-bottom:.375rem}
.footer-col a{color:#9ca3af;font-size:.875rem}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid #374151;padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;font-size:.8125rem}

/* ===== 404 ===== */
.error-page{text-align:center;padding:5rem 1.25rem}
.error-code{font-size:clamp(4rem,10vw,8rem);font-weight:800;color:#e5e7eb;line-height:1;margin-bottom:1rem}
.error-page h1{margin-bottom:.5rem}
.error-page p{max-width:480px;margin:0 auto 1.5rem}

/* ===== VENDOR HERO ===== */
.vendor-hero{padding:2.5rem 0;color:#fff}
.vendor-hero-inner{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.vendor-hero-logo{width:72px;height:72px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.5rem;flex-shrink:0}
.vendor-hero-text h1{color:#fff;margin-bottom:.25rem}
.vendor-hero-text p{color:rgba(255,255,255,.85)}
.vendor-hero-stats{display:flex;gap:1.5rem;margin-top:1rem;flex-wrap:wrap}
.vendor-hero-stats span{color:rgba(255,255,255,.9);font-size:.875rem}

/* ===== SIDEBAR LAYOUT ===== */
.layout-sidebar{display:grid;grid-template-columns:1fr 280px;gap:2.5rem}
.sidebar-card{border:1px solid #e5e7eb;border-radius:10px;padding:1.25rem;margin-bottom:1.25rem}
.sidebar-card h3{font-size:.9375rem;margin-bottom:.625rem}
.sidebar-card ul{list-style:none;padding:0}
.sidebar-card li{margin-bottom:.375rem}
.sidebar-card a{font-size:.875rem}
.pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1.5rem 0}
.pros h4,.cons h4{margin-bottom:.5rem}
.pros ul,.cons ul{list-style:none;padding:0}
.pros li::before{content:"+";color:#059669;font-weight:700;margin-right:.5rem}
.cons li::before{content:"-";color:#dc2626;font-weight:700;margin-right:.5rem}

/* ===== SCORE BARS ===== */
.score{margin-bottom:.75rem}
.score-label{display:flex;justify-content:space-between;font-size:.8125rem;margin-bottom:.1875rem}
.score-bar{height:6px;background:#e5e7eb;border-radius:999px;overflow:hidden}
.score-fill{height:100%;border-radius:999px;background:#1a56db}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  .nav-toggle{display:block}
  .nav-list{display:none;position:absolute;top:3.75rem;left:0;right:0;background:#fff;border-bottom:1px solid #e5e7eb;padding:.5rem;flex-direction:column;gap:0;box-shadow:0 4px 6px rgba(0,0,0,.08)}
  .nav-list.active{display:flex}
  .nav-list a{padding:.625rem .75rem}
  .footer-grid{grid-template-columns:1fr 1fr}
  .layout-sidebar{grid-template-columns:1fr}
  .pros-cons{grid-template-columns:1fr}
  .vendor-hero-inner{flex-direction:column;text-align:center}
  .vendor-hero-stats{justify-content:center}
  .stats-grid{grid-template-columns:1fr 1fr}
  .section{padding:2.5rem 0}
  .hero{padding:3rem 0 2.5rem}
}

@media(max-width:480px){
  .footer-grid{grid-template-columns:1fr}
  .vendor-grid{grid-template-columns:1fr}
  .category-grid{grid-template-columns:1fr}
  .header-inner{height:3.25rem}
}

/* ===== PRINT ===== */
@media print{
  .site-header,.site-footer,.nav-toggle,.btn,.breadcrumbs{display:none}
  body{font-size:12pt;color:#000}
  a{color:#000}
}
