/* tool-page.css — per-tool landing pages (tool-<slug>.html, generated by
   dev-tools/build_tool_pages.cjs, 2026-09-16).

   These pages exist because the 149 tool deep links are served by Cloudflare from a
   single-page app that emits one <title> for every tool, so the slugs cannot be indexed
   individually. Each of these is a real static page on the Pages host instead.

   Conventions borrowed deliberately from the rest of the site so a visitor does not
   land somewhere that looks like a different product:
     - #3730a3 link ink on white (10.4:1) and #475569 for supporting copy (7.5:1), the
       same pair tool-finder.css uses.
     - 44px minimum interactive height (WCAG 2.5.8), as the tool directory does.
     - a focus ring defined here rather than inherited; shared.css loads first.
     - .skip-link is styled here because these pages do not load the wave-3 sheets.
   No visually-hidden class is used anywhere on this page: the promo site defines none,
   so hidden-text patterns render visibly here (see the 2026-09-15 .sr-only defect). */

.tool-page {
    max-width: 760px;
    margin: 0 auto;
    padding: 96px 24px 64px;
    color: #1e293b;
    font-size: 1rem;
    line-height: 1.7;
}

/* The navbar is fixed on this site, so the skip target must clear it. */
.tool-page:target,
#tool-main {
    scroll-margin-top: 88px;
}
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100;
    padding: 12px 18px;
    background: #fff;
    color: #3730a3;
    font-weight: 600;
    border-radius: 0 0 8px 0;
}
.skip-link:focus {
    left: 0;
}

.tool-page-crumbs {
    font-size: .9rem;
    color: #475569;
    margin-bottom: 24px;
}
.tool-page-crumbs ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
}
.tool-page-crumbs li + li::before {
    content: "/";
    margin-right: 10px;
    color: #94a3b8;
}
.tool-page-crumbs a {
    color: #3730a3;
}

.tool-page-eyebrow {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
    font-weight: 700;
    color: #4338ca;
    margin: 0 0 8px;
}
.tool-page-hero h1 {
    font-size: clamp(1.9rem, 4vw, 2.6rem);
    line-height: 1.15;
    color: #0f172a;
    margin: 0 0 16px;
}
.tool-page-lede {
    font-size: 1.1rem;
    color: #334155;
    margin: 0 0 24px;
}

.tool-page-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin: 0 0 8px;
}
/* The open button carries BOTH .btn-primary and .tool-page-open in the markup, and the
   .btn-primary is load-bearing, not decoration. shared.css:179 styles
   `main p a:not(.btn-primary):not(.btn-secondary) { color: var(--indigo) }` — this button
   is an <a> in a <p> in <main>, so without that class the label computed to
   rgb(55,48,163) on its own rgb(55,48,163) fill: 1:1 contrast, an invisible button.
   Caught by a screenshot; the markup and a passing render test both looked fine. Adding
   the site's own opt-out class is the fix the cascade is designed for — my first attempt,
   raising specificity to `.tool-page .tool-page-open`, did not work because the
   shared.css selector is more specific still. */
.tool-page .tool-page-open {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 22px;
    background: #3730a3;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
}
.tool-page .tool-page-open:hover {
    background: #312a8f;
}
.tool-page .tool-page-open:visited {
    color: #fff;
}
.tool-page-note {
    font-size: .92rem;
    color: #475569;
}

.tool-page-block {
    margin-top: 40px;
    padding-top: 28px;
    border-top: 1px solid #e2e8f0;
}
.tool-page-block h2 {
    font-size: 1.15rem;
    color: #0f172a;
    margin: 0 0 12px;
}
.tool-page-block p {
    margin: 0 0 12px;
}
.tool-page-block a:not(.tool-page-open) {
    color: #3730a3;
}
.tool-page-url code {
    display: block;
    padding: 12px 14px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: .95rem;
    color: #0f172a;
    overflow-wrap: anywhere;
}

.tool-page-footer {
    max-width: 760px;
    margin: 0 auto;
    padding: 32px 24px 56px;
    font-size: .92rem;
    color: #475569;
}
.tool-page-footer a {
    color: #3730a3;
}

.tool-page a:focus-visible,
.tool-page-footer a:focus-visible,
.skip-link:focus-visible {
    outline: 2px solid #3730a3;
    outline-offset: 2px;
}

@media (max-width: 600px) {
    .tool-page {
        padding-top: 84px;
    }
}
