/* ==========================================
   Navire Utilities
   Helper Classes
   ========================================== */

/* ==========================================
   Typography
   ========================================== */

.text-serif {
    font-family: var(--font-serif);
    letter-spacing: 0.02em;
}

.text-small {
    font-size: 12px;
}

.text-primary {
    color: var(--text-primary);
}

.text-secondary {
    color: var(--text-secondary);
}

.text-tertiary {
    color: var(--text-tertiary);
}

/* ==========================================
   Icons
   ========================================== */

.icon {
    width: 16px;
    height: 16px;
    fill: var(--icon-primary);
}

.icon-sm {
    width: 14px;
    height: 14px;
}

.icon-lg {
    width: 18px;
    height: 18px;
}

/* ==========================================
   Layout
   ========================================== */

.flex {
    display: flex;
}

.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.flex-column {
    display: flex;
    flex-direction: column;
}

.gap-xs {
    gap: var(--space-xs);
}

.gap-s {
    gap: var(--space-s);
}

.gap-m {
    gap: var(--space-m);
}

.gap-l {
    gap: var(--space-l);
}

/* ==========================================
   Spacing
   ========================================== */

.p-xs {
    padding: var(--space-xs);
}

.p-s {
    padding: var(--space-s);
}

.p-m {
    padding: var(--space-m);
}

.p-l {
    padding: var(--space-l);
}

.m-xs {
    margin: var(--space-xs);
}

.m-s {
    margin: var(--space-s);
}

.m-m {
    margin: var(--space-m);
}

.m-l {
    margin: var(--space-l);
}

/* ==========================================
   Visibility
   ========================================== */

.hidden {
    display: none;
}

.visible {
    display: block;
}
