@layer utilities {
    /* Display */
    .u-hidden           { display: none !important; }
    .u-block            { display: block !important; }
    .u-flex             { display: flex !important; }

    /* Text */
    .u-text-center      { text-align: center !important; }
    .u-text-left        { text-align: left !important; }
    .u-font-heading     { font-family: var(--uw-font-heading) !important; }
    .u-uppercase        { text-transform: uppercase !important; }

    /* Sizing */
    .u-full-width       { width: 100% !important; }

    /* Images */
    .u-aspect-16-9      { aspect-ratio: 16 / 9 !important; }
    .u-aspect-4-3       { aspect-ratio: 4 / 3 !important; }
    .u-aspect-1-1       { aspect-ratio: 1 / 1 !important; }
    .u-object-cover     { object-fit: cover !important; width: 100%; height: 100%; }

    /* Overflow */
    .u-overflow-hidden  { overflow: hidden !important; }

    /* Accessibility */
    .u-visually-hidden  {
        clip: rect(1px, 1px, 1px, 1px) !important;
        clip-path: inset(50%) !important;
        height: 1px !important;
        overflow: hidden !important;
        position: absolute !important;
        white-space: nowrap !important;
        width: 1px !important;
    }
}
