/**
 * 3Syxty Studio — Breadcrumb Component
 *
 * Navigation breadcrumbs with separator icons, truncation for deep paths,
 * and collapsible middle items for responsive layouts.
 */

/* -----------------------------------------------------------------------
   Breadcrumb Container
   ----------------------------------------------------------------------- */

.breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font: var(--type-body-sm);
    color: var(--text-muted);
    min-width: 0;
    overflow: hidden;
}

/* -----------------------------------------------------------------------
   Items
   ----------------------------------------------------------------------- */

.breadcrumb-item {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-width: 0;
    white-space: nowrap;
}

.breadcrumb-item a,
.breadcrumb-link {
    color: var(--text-secondary);
    text-decoration: none;
    transition: color var(--motion-instant);
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 160px;
    display: inline-block;
}

.breadcrumb-item a:hover,
.breadcrumb-link:hover {
    color: var(--accent-primary);
}

.breadcrumb-item a:focus-visible,
.breadcrumb-link:focus-visible {
    outline: 2px solid var(--border-focus);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

/* Current (last) item — no link */
.breadcrumb-item-current {
    color: var(--text-primary);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}

/* -----------------------------------------------------------------------
   Separator
   ----------------------------------------------------------------------- */

.breadcrumb-separator {
    display: flex;
    align-items: center;
    color: var(--text-muted);
    opacity: 0.5;
    flex-shrink: 0;
}

.breadcrumb-separator svg {
    width: 12px;
    height: 12px;
}

/* Default separator character */
.breadcrumb-separator::after {
    content: '/';
    font-size: 11px;
}

.breadcrumb-separator:has(svg)::after {
    content: none;
}

/* -----------------------------------------------------------------------
   Collapsed (ellipsis for long paths)
   ----------------------------------------------------------------------- */

.breadcrumb-collapsed {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    cursor: pointer;
    transition: background-color var(--motion-instant), color var(--motion-instant);
}

.breadcrumb-collapsed:hover {
    background-color: var(--accent-primary-subtle);
    color: var(--text-secondary);
}

/* -----------------------------------------------------------------------
   With Icon
   ----------------------------------------------------------------------- */

.breadcrumb-icon {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.breadcrumb-icon svg {
    width: 14px;
    height: 14px;
}

/* -----------------------------------------------------------------------
   Size Variants
   ----------------------------------------------------------------------- */

.breadcrumb-sm {
    font-size: 11px;
    gap: 2px;
}

.breadcrumb-sm .breadcrumb-item a {
    max-width: 120px;
}

.breadcrumb-lg {
    font: var(--type-body);
    gap: var(--space-1-5);
}
