.tools-directory {
    padding-top: 18px;
}

.tools-directory-header {
    max-width: 900px;
    margin-bottom: 40px;
}

.tools-kicker {
    margin: 0 0 12px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.tools-directory h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(54px, 7vw, 84px);
    font-weight: 400;
    line-height: 0.96;
    letter-spacing: -0.055em;
    text-wrap: balance;
}

.tools-directory-lead {
    max-width: 720px;
    margin: 22px 0 0;
    color: var(--muted);
    font-size: clamp(17px, 1.8vw, 20px);
    line-height: 1.6;
}

.tool-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: row dense;
    gap: 20px;
    align-items: stretch;
}

.tool-group {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.78);
    box-shadow: var(--shadow-soft);
    display: flex;
    flex-direction: column;
}

.tool-group--working-time {
    grid-column: 1;
    grid-row: 1;
}

.tool-group--leave {
    grid-column: 2;
    grid-row: 1 / span 2;
}

.tool-group--employment {
    grid-column: 1;
    grid-row: 2;
}

.tool-group-header {
    min-height: 126px;
    padding: 26px 28px 22px;
    border-bottom: 1px solid var(--border);
    background:
        linear-gradient(
            135deg,
            rgba(237, 247, 242, 0.96),
            rgba(248, 251, 249, 0.92)
        );
}

.tool-group-header::before {
    width: 34px;
    height: 2px;
    margin-bottom: 18px;
    display: block;
    background: var(--accent);
    content: "";
}

.tool-group-header h2 {
    margin: 0;
    color: var(--accent-hover);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.tool-group-header p {
    margin: 9px 0 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.55;
}

.tool-group-list {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.tool-entry {
    min-width: 0;
    padding: 22px 28px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    color: var(--text);
    transition:
        color var(--motion-standard),
        background var(--motion-standard);
}

.tool-entry + .tool-entry {
    border-top: 1px solid var(--border);
}

.tool-group--leave .tool-entry {
    flex: 1;
}

.tool-entry strong,
.tool-entry small {
    display: block;
}

.tool-entry strong {
    font-size: 17px;
    line-height: 1.35;
    text-wrap: balance;
}

.tool-entry small {
    margin-top: 7px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.55;
}

.tool-entry-arrow {
    color: var(--accent);
    font-size: 24px;
    line-height: 1;
    transition: transform var(--motion-standard);
}

.tool-entry:hover {
    background: rgba(235, 245, 240, 0.62);
    color: var(--accent-hover);
}

.tool-entry:hover .tool-entry-arrow {
    transform: translateX(4px);
}

.tool-entry:active {
    background: rgba(222, 238, 230, 0.82);
}

.tool-entry:focus-visible {
    position: relative;
    z-index: 1;
    outline: 3px solid rgba(31, 95, 74, 0.3);
    outline-offset: -4px;
}

@media (max-width: 820px) {
    .tools-directory {
        padding-top: 0;
    }

    .tools-directory-header {
        margin-bottom: 30px;
    }

    .tools-directory h1 {
        font-size: clamp(48px, 14vw, 64px);
    }

    .tools-directory-lead {
        margin-top: 18px;
        font-size: 17px;
    }

    .tool-groups {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .tool-group--working-time,
    .tool-group--leave,
    .tool-group--employment {
        grid-column: auto;
        grid-row: auto;
    }

    .tool-group-header {
        min-height: 0;
        padding: 22px 22px 19px;
    }

    .tool-group-header::before {
        margin-bottom: 15px;
    }

    .tool-entry,
    .tool-group--leave .tool-entry {
        padding: 19px 22px;
        flex: none;
    }
}

@media (max-width: 420px) {
    .tools-directory h1 {
        font-size: clamp(43px, 13vw, 52px);
    }

    .tool-group {
        border-radius: var(--radius-md);
    }

    .tool-entry {
        gap: 14px;
    }

    .tool-entry strong {
        font-size: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tools-directory *,
    .tools-directory *::before,
    .tools-directory *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
