/* ==============================================================
   ToolHub — premium design tokens (v1.4)
   Inspired by Linear / Stripe / Vercel: deep indigo, violet, coral
   ============================================================== */

:root{
  /* Brand */
  --primary:        #5b5bd6;      /* indigo */
  --primary-2:      #4338ca;      /* indigo-700 */
  --primary-soft:   #eef2ff;      /* indigo-50 */
  --accent:         #d946ef;      /* fuchsia */
  --accent-2:       #ec4899;      /* pink */
  --warm:           #f97316;      /* orange */
  --coral:          #f43f5e;      /* rose */

  /* Surfaces */
  --bg:             #f7f8fc;      /* very soft cool grey */
  --bg-2:           #fbfbff;
  --surface:        #ffffff;
  --surface-2:      #fafbff;
  --border:         #e5e7f0;
  --border-strong:  #d0d4e2;

  /* Text */
  --text:           #0b0d17;
  --text-2:         #1f2233;
  --muted:          #6b7184;
  --muted-2:        #8a90a3;

  /* Semantic */
  --success:        #10b981;
  --warning:        #f59e0b;
  --danger:         #ef4444;
  --info:           #0ea5e9;

  /* Effects */
  --shadow-xs:      0 1px 2px rgba(11,13,23,.04);
  --shadow-sm:      0 2px 4px rgba(11,13,23,.06), 0 1px 2px rgba(11,13,23,.04);
  --shadow-md:      0 8px 24px -8px rgba(11,13,23,.10), 0 4px 8px -4px rgba(11,13,23,.06);
  --shadow-lg:      0 24px 60px -16px rgba(91,91,214,.20), 0 8px 24px -8px rgba(11,13,23,.10);
  --shadow-glow:    0 0 0 4px rgba(91,91,214,.14);

  --radius-xs:      6px;
  --radius-sm:      10px;
  --radius:         14px;
  --radius-lg:      20px;
  --radius-xl:      28px;

  /* Gradients */
  --gradient:       linear-gradient(135deg,#5b5bd6 0%,#8b5cf6 50%,#d946ef 100%);
  --gradient-warm:  linear-gradient(135deg,#f97316 0%,#f43f5e 100%);
  --gradient-cool:  linear-gradient(135deg,#0ea5e9 0%,#5b5bd6 100%);
  --gradient-soft:  linear-gradient(135deg,#eef2ff 0%,#fdf4ff 100%);
  --gradient-mesh:  radial-gradient(at 0% 0%,#eef2ff 0,transparent 50%),
                    radial-gradient(at 100% 0%,#fdf4ff 0,transparent 50%),
                    radial-gradient(at 100% 100%,#fff7ed 0,transparent 50%),
                    radial-gradient(at 0% 100%,#ecfeff 0,transparent 50%);
}

/* Per-category accents (used on hero icon + tool-pill ok colors) */
.cat-image-tools     { --cat:#0ea5e9; --cat-soft:#e0f2fe; }
.cat-pdf-tools       { --cat:#f43f5e; --cat-soft:#ffe4e6; }
.cat-calculator-tools{ --cat:#10b981; --cat-soft:#d1fae5; }
.cat-text-tools      { --cat:#8b5cf6; --cat-soft:#ede9fe; }
.cat-seo-tools       { --cat:#f59e0b; --cat-soft:#fef3c7; }
.cat-developer-tools { --cat:#5b5bd6; --cat-soft:#eef2ff; }

/* Smooth font rendering everywhere */
html{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body{ background:var(--bg); color:var(--text); }

/* Selection */
::selection{ background:var(--primary-soft); color:var(--primary-2); }

/* Scrollbar (Webkit) */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:#cdd2e0; border-radius:8px; }
::-webkit-scrollbar-thumb:hover{ background:#a4abc0; }
::-webkit-scrollbar-track{ background:transparent; }

/* === Component overrides for the new palette === */

/* Header / nav */
.site-header{
  background:rgba(255,255,255,.85);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--border);
}
.brand-logo{
  background:var(--gradient);
  box-shadow:0 6px 18px -6px rgba(91,91,214,.55);
}
.primary-nav a:hover{ background:var(--primary-soft); color:var(--primary-2); }

/* Buttons */
.btn-primary{
  background:var(--gradient);
  box-shadow:0 8px 22px -8px rgba(91,91,214,.55);
  color:#fff;
}
.btn-primary:hover{ box-shadow:0 14px 30px -10px rgba(91,91,214,.65); color:#fff; }

/* Hero */
.hero{
  background:
    radial-gradient(800px 360px at 90% -10%, rgba(217,70,239,.16), transparent 60%),
    radial-gradient(700px 320px at -10% 100%, rgba(91,91,214,.18), transparent 60%),
    linear-gradient(180deg,#fff,var(--bg));
}
.hero h1 strong{
  background:var(--gradient);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-pill{
  background:#fff;
  border:1px solid var(--border);
  color:var(--primary-2);
  box-shadow:var(--shadow-xs);
}

/* Cards */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  transition:transform .25s cubic-bezier(.4,0,.2,1),
             box-shadow .25s cubic-bezier(.4,0,.2,1),
             border-color .2s;
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:#cfd5ec; }
.card .ic{
  background:var(--gradient-soft);
  color:var(--primary-2);
}
.card.cat .ic{ background:linear-gradient(135deg, var(--cat-soft, var(--primary-soft)), #fff); color:var(--cat, var(--primary)); }
.card.cat .pill{ background:var(--cat-soft, var(--primary-soft)); color:var(--cat, var(--primary-2)); }

/* Section eyebrows */
.section-head .eyebrow{
  background:var(--gradient);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  font-weight:700; letter-spacing:.05em; text-transform:uppercase;
}

/* Search bar */
.search{
  background:var(--surface);
  border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  border-radius:var(--radius);
}
.search:focus-within{ border-color:var(--primary); box-shadow:var(--shadow-glow); }
.search button{ background:var(--gradient); }

/* Tags / chips */
.tag, .pill{
  background:var(--primary-soft);
  color:var(--primary-2);
  border:1px solid #e0e3f1;
}
.tag.active{
  background:var(--gradient);
  color:#fff;
  border-color:transparent;
  box-shadow:0 6px 14px -6px rgba(91,91,214,.5);
}

/* Tool hero */
.tool-hero{
  background:
    var(--gradient-mesh),
    linear-gradient(180deg, #fff, var(--bg));
}
.tool-hero-icon{
  background:var(--gradient);
  box-shadow:0 14px 30px -10px rgba(91,91,214,.55);
}
.tool-pill{
  background:var(--surface);
  border:1px solid var(--border);
  color:var(--primary-2);
}
.tool-pill.ok{ background:#ecfdf5; color:#065f46; border-color:#bbf7d0; }

/* Inputs (tool-ui) */
.tool-ui input[type="text"],
.tool-ui input[type="number"],
.tool-ui input[type="email"],
.tool-ui input[type="password"],
.tool-ui input[type="url"],
.tool-ui select,
.tool-ui textarea{
  background:var(--surface);
  border:1px solid var(--border);
  color:var(--text);
  border-radius:12px;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
.tool-ui input:hover, .tool-ui select:hover, .tool-ui textarea:hover{ border-color:var(--border-strong); }
.tool-ui input:focus, .tool-ui select:focus, .tool-ui textarea:focus{
  outline:0;
  border-color:var(--primary);
  box-shadow:0 0 0 4px rgba(91,91,214,.14);
  background:#fff;
}
.tool-ui label{ color:var(--text-2); }

/* Dropzone */
.dropzone{
  border:2px dashed #c7cdec;
  background:linear-gradient(180deg, var(--surface-2), #fff);
}
.dropzone:hover{ border-color:var(--primary); background:var(--primary-soft); }
.dropzone.drag{ background:var(--primary-soft); border-color:var(--primary); }
.dropzone .pick{ color:var(--primary); font-weight:700; }

/* KPI cards */
.kpi .card{
  background:linear-gradient(180deg, var(--surface-2), #fff);
  border-radius:var(--radius);
  padding:1rem;
}
.kpi .card .v{
  background:var(--gradient);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  font-weight:800; letter-spacing:-.02em;
}

/* Result boxes */
.result-box{
  background:var(--gradient-soft);
  border:1px solid #e0e3f1;
  border-radius:var(--radius);
  padding:1rem 1.25rem;
}
.result-box.ok{ background:#ecfdf5; border-color:#a7f3d0; }
.result-box.warn{ background:#fef3c7; border-color:#fde68a; }
.result-box.err{ background:#fef2f2; border-color:#fecaca; }

/* Notice */
.notice{
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#7c2d12;
  border-radius:var(--radius);
  padding:.85rem 1rem;
}

/* FAQ */
.faq details{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  transition:border-color .15s, box-shadow .15s;
}
.faq details:hover{ border-color:var(--border-strong); }
.faq details[open]{ border-color:var(--primary); box-shadow:var(--shadow-sm); }
.faq summary::after{ color:var(--primary); }

/* Footer */
.site-footer{
  background:linear-gradient(180deg, #0b0d17 0%, #0f1226 100%);
  color:#cdd2e0;
}
.site-footer h3{ color:#fff; }
.site-footer a{ color:#cdd2e0; }
.site-footer a:hover{ color:#fff; }

/* Toast */
.toast{ background:#0b0d17; }
.toast.ok{ background:linear-gradient(135deg,#10b981,#0ea5e9); }
.toast.err{ background:linear-gradient(135deg,#ef4444,#f97316); }

/* FAB */
.fab{
  background:var(--gradient);
  box-shadow:0 12px 26px -8px rgba(91,91,214,.55);
}

/* Cookie bar */
.cookie-bar{
  background:var(--surface);
  border:1px solid var(--border);
  box-shadow:var(--shadow-lg);
  border-radius:var(--radius-lg);
}

/* Steps with new colored counters */
.steps-list li::before{
  background:var(--gradient);
  color:#fff;
  box-shadow:0 4px 10px -4px rgba(91,91,214,.5);
}
.check-list li::before{ background:var(--gradient); }

/* Section dividers — soft accent */
.section + .section{ position:relative; }

/* Gradient text utility */
.grad-text{
  background:var(--gradient);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* Table */
.table th{ background:linear-gradient(180deg, #f8fafc, #f1f5f9); color:var(--text-2); }

/* Small motion polish */
.btn:active{ transform:translateY(1px); }
a, button{ transition:color .15s, background .15s, border-color .15s, box-shadow .2s, transform .15s; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation:none!important; transition:none!important; }
}


/* Per-category gradient on the tool hero icon */
body[class*="cat-"] .tool-hero-icon{
  background:linear-gradient(135deg, var(--cat) 0%, var(--primary) 100%);
}
body[class*="cat-"] .tool-pill{ color:var(--cat); border-color:var(--cat-soft); }


/* Navbar live search ------------------------------------------------------ */
.nav-search{position:relative;flex:0 1 320px;margin-left:auto}
.nav-search input{
  width:100%;padding:.55rem .9rem .55rem 2.2rem;border:1px solid var(--border);
  border-radius:999px;background:var(--surface);color:var(--text);font:inherit;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='%236b7184'><path d='M10 2a8 8 0 1 1-5.66 13.66l-3.17 3.17-1.42-1.42 3.17-3.17A8 8 0 0 1 10 2Zm0 2a6 6 0 1 0 0 12 6 6 0 0 0 0-12Z'/></svg>");
  background-repeat:no-repeat;background-position:.7rem center;
  transition:border-color .15s, box-shadow .15s;
}
.nav-search input:focus{outline:0;border-color:var(--primary);box-shadow:var(--shadow-glow)}
.nav-search-results{
  position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:var(--surface);border:1px solid var(--border);border-radius:14px;
  box-shadow:var(--shadow-lg);max-height:380px;overflow-y:auto;z-index:60;
}
.nav-search-results a{
  display:flex;align-items:center;gap:.65rem;padding:.6rem .85rem;
  text-decoration:none;color:var(--text);border-bottom:1px solid var(--border);
}
.nav-search-results a:last-child{border-bottom:0}
.nav-search-results a:hover, .nav-search-results a.active{background:var(--primary-soft)}
.nav-search-results .ic{
  width:30px;height:30px;border-radius:8px;display:grid;place-items:center;
  background:var(--gradient-soft);color:var(--primary-2);flex-shrink:0;
}
.nav-search-results .name{font-weight:600;font-size:.95rem}
.nav-search-results .cat{font-size:.78rem;color:var(--muted)}
.nav-search-results .empty{padding:.9rem;color:var(--muted);text-align:center;font-size:.9rem}
@media (max-width:880px){
  .nav-search{display:none}
}

/* Tool meta byline -------------------------------------------------------- */
.tool-meta{
  display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
  margin-top:1rem;color:var(--muted);font-size:.88rem;
}
.tool-meta .dot{opacity:.5}
.tool-meta strong{color:var(--text-2);font-weight:600}
.tool-meta svg{vertical-align:-2px;color:var(--accent)}

/* "People also use" cross-link strip ------------------------------------ */
.cross-link{
  margin:1.5rem 0;padding:1rem 1.25rem;border-radius:var(--radius);
  background:var(--gradient-soft);border:1px solid #e0e3f1;
}
.cross-link h3{margin:0 0 .5rem;font-size:1rem;color:var(--text-2)}
.cross-link-list{display:flex;flex-wrap:wrap;gap:.4rem}
.cross-link-list a{
  display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;
  background:#fff;border:1px solid var(--border);border-radius:999px;
  text-decoration:none;color:var(--primary-2);font-size:.85rem;font-weight:600;
  transition:transform .15s, box-shadow .15s;
}
.cross-link-list a:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}

/* Trending strip on home -------------------------------------------------- */
.trending-strip{
  display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:1rem 0 0;
}
.trending-strip a{
  display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;
  background:#fff;border:1px solid var(--border);border-radius:999px;
  text-decoration:none;color:var(--text-2);font-size:.88rem;font-weight:600;
  transition:transform .15s, box-shadow .2s, border-color .15s;
}
.trending-strip a:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:var(--primary)}
.trending-strip a .ic{
  width:22px;height:22px;border-radius:6px;display:grid;place-items:center;
  background:var(--gradient-soft);color:var(--primary-2);
}
.trending-strip a .views{font-size:.75rem;color:var(--muted);font-weight:500}

/* Comparison block on home ------------------------------------------------ */
.compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.5rem}
.compare-item{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:1.25rem;transition:transform .2s, box-shadow .2s;
}
.compare-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.compare-item .ic{
  width:42px;height:42px;border-radius:12px;background:var(--gradient);color:#fff;
  display:grid;place-items:center;margin-bottom:.6rem;
}
.compare-item h3{font-size:1rem;margin:0 0 .3rem}
.compare-item p{font-size:.9rem;color:var(--muted);margin:0}


/* Quick-access SEO block ----------------------------------- */
.quick-links{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-top:1.5rem;
}
@media (max-width:900px){.quick-links{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.quick-links{grid-template-columns:1fr}}
.quick-col h3{
  font-size:.92rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted);margin:0 0 .8rem;font-weight:700;
}
.quick-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem}
.quick-col a{
  display:inline-block;color:var(--text-2);font-size:.93rem;font-weight:500;text-decoration:none;
  border-bottom:1px dashed transparent;transition:color .15s, border-color .15s;
}
.quick-col a:hover{color:var(--primary-2);border-bottom-color:var(--primary)}
