/* ==========================================================================
   Corporate Projukti — Redesign :: System layer
   Requires tokens.css to be loaded first. Consumes tokens only — no
   hard-coded colour, spacing value or z-index lives in this file.
   ========================================================================== */

/* ---- Reset ------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--tx-2);
    font-family: var(--ff-display);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
    transition: background var(--t), color var(--t);
}

img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }

:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: 2px;
    border-radius: var(--r-tag);
}

/* ---- Type -------------------------------------------------------------- */

h1, h2, h3, h4 {
    margin: 0;
    color: var(--tx-1);
    letter-spacing: var(--track-head);
    line-height: 1.14;
    font-weight: 700;
}

p { margin: 0; }

.rd-hero-title { font-size: var(--fs-hero); }
.rd-section-title { font-size: var(--fs-section); }
.rd-card-title { font-size: var(--fs-card); line-height: 1.3; }

.rd-micro {
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    text-transform: uppercase;
    color: var(--tx-3);
}

.rd-grad-text {
    background: var(--grad-ink);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.rd-mono { font-family: var(--ff-mono); }

/* ---- Icons -------------------------------------------------------------
   Remix Icon, self-hosted. `i[class^="ri-"]` inherits colour from its
   parent so an icon always matches the text it sits with, and sizing is
   driven by font-size like any other glyph.
   ------------------------------------------------------------------------ */

[class^="ri-"],
[class*=" ri-"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    color: inherit;
    vertical-align: -.125em;
    flex: none;
}

/* Size steps, so icons are set rather than guessed at each call site. */
.rd-i-sm { font-size: 14px; }
.rd-i-md { font-size: 18px; }
.rd-i-lg { font-size: 22px; }
.rd-i-xl { font-size: 30px; }

/* ---- Shell ------------------------------------------------------------- */

.rd-shell {
    position: relative;
    z-index: var(--z-shell);
    max-width: var(--shell-max);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.rd-section { padding-block: var(--sp-14); }

/* ---- Page head — shared by every interior page ------------------------- */

.rd-pagehead {
    padding-block: var(--sp-17) var(--sp-12);
    text-align: center;
}

.rd-pagehead h1 { margin-top: var(--sp-5); }

.rd-pagehead p {
    max-width: 62ch;
    margin-inline: auto;
    margin-top: var(--sp-5);
    font-size: 1.05rem;
    color: var(--tx-2);
}

/* Breadcrumb — mono, so it reads as a path rather than prose */
.rd-crumbs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--sp-2);
    margin-top: var(--sp-6);
}

.rd-crumbs a { color: var(--tx-3); transition: color var(--t); }
.rd-crumbs a:hover { color: var(--accent-ink); }
.rd-crumbs span[aria-current] { color: var(--tx-2); }

@media (max-width: 900px) {
    .rd-pagehead { padding-block: var(--sp-12) var(--sp-10); }
}

.rd-section-head {
    max-width: 80ch;
    margin-inline: auto;
    text-align: center;
    margin-bottom: var(--sp-8);
}

.rd-section-head p { color: var(--tx-2); margin-top: var(--sp-3); }

/* ==========================================================================
   THE SLAB — the signature element
   One bordered frame, gapless grid, square corners. Every cell paints its
   own right + bottom hairline via box-shadow; the frame clips the outer
   ones. Column-count agnostic — correct at 4, 2 or 1 columns with no
   nth-child rules. Never use `gap` + a coloured slab background: the gap
   colour shows through cells that are mid-fade during the reveal.
   ========================================================================== */

.rd-slab {
    display: grid;
    border: 1px solid var(--border);
    border-radius: 0;
    overflow: hidden;
    background: transparent;

    /* Declared on the SLAB so cells inherit. A variant's own declaration
       then wins regardless of source order. */
    --glow-size: 230px;
    --corner-size: 44px;
}

.rd-cell {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: var(--sp-8);
    background: transparent;
    box-shadow: 1px 0 0 var(--border), 0 1px 0 var(--border);
    transition: background var(--t);
}

/* Layering inside a cell is fixed: glows 0, content 1, brackets 2.
   ::after is the last generated child — without this the bottom-right
   glow paints over the text. */
.rd-cell > * { position: relative; z-index: var(--z-cell-content); }

/* Top-left accent bloom */
.rd-cell::before,
/* Bottom-right primary bloom */
.rd-cell::after {
    content: '';
    position: absolute;
    width: var(--glow-size);
    height: var(--glow-size);
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    z-index: var(--z-cell-glow);
    transition: opacity var(--dur-bloom) var(--ease);
}

.rd-cell::before {
    top: calc(var(--glow-size) / -2);
    left: calc(var(--glow-size) / -2);
    background: radial-gradient(circle,
        rgba(var(--brand-2-rgb), var(--glow-a-tl)) 0%,
        rgba(var(--brand-2-rgb), 0) 70%);
}

.rd-cell::after {
    bottom: calc(var(--glow-size) / -2);
    right: calc(var(--glow-size) / -2);
    background: radial-gradient(circle,
        rgba(var(--brand-1-rgb), var(--glow-a-br)) 0%,
        rgba(var(--brand-1-rgb), 0) 70%);
}

.rd-cell:hover::before,
.rd-cell:hover::after,
.rd-cell:focus-within::before,
.rd-cell:focus-within::after { opacity: 1; }

/* Never transform a cell on hover — it tears the shared hairlines and the
   slab flickers. All feedback is light and colour. */
.rd-cell:hover,
.rd-cell:focus-within { background: var(--surface); }

/* ---- Corner brackets --------------------------------------------------- */

.rd-bracket {
    position: absolute;
    width: var(--corner-size);
    height: var(--corner-size);
    pointer-events: none;
    opacity: 0;
    z-index: var(--z-cell-bracket);
    transition: opacity var(--dur-bracket) var(--ease);
}

.rd-bracket-tl {
    top: 0; left: 0;
    border-top: 2px solid var(--accent-ink);
    border-left: 2px solid var(--accent-ink);
}

.rd-bracket-br {
    bottom: 0; right: 0;
    border-bottom: 2px solid var(--brand-1);
    border-right: 2px solid var(--brand-1);
}

.rd-cell:hover .rd-bracket,
.rd-cell:focus-within .rd-bracket { opacity: 1; }

/* ---- Ghost numeral — primary grid only --------------------------------- */

.rd-numeral {
    position: absolute;
    right: -.08em;
    bottom: -.34em;
    margin: 0;
    font-family: var(--ff-mono);
    font-size: 150px;
    font-weight: 700;
    line-height: 1;
    color: rgba(0, 0, 0, .001);
    -webkit-text-stroke: 1px var(--numeral-stroke);
    pointer-events: none;
    user-select: none;
    z-index: var(--z-cell-glow);
    transition: -webkit-text-stroke-color var(--t);
}

.rd-cell:hover .rd-numeral {
    -webkit-text-stroke-color: var(--numeral-stroke-hover);
}

/* ---- Icon tile --------------------------------------------------------- */

.rd-tile {
    position: relative;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: var(--r-sm);
    border: 1px solid var(--border);
    background: var(--tile-bg);
    color: var(--tx-1);
    margin-bottom: var(--sp-5);
    transition: border-color var(--t), background var(--t), color var(--t);
}

.rd-cell:hover .rd-tile {
    border-color: var(--accent-line);
    background: var(--tile-bg-hover);
    color: var(--accent-ink);
}

/* ---- Tag row — pinned to the bottom ------------------------------------ */

.rd-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2);
    margin-top: auto;
    padding-top: var(--sp-5);
}

.rd-tag {
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    text-transform: uppercase;
    padding: var(--sp-1) var(--sp-2);
    border: 1px solid var(--border);
    border-radius: var(--r-tag);
    color: var(--tx-3);
    transition: border-color var(--t), color var(--t);
}

.rd-cell:hover .rd-tag {
    border-color: var(--accent-line);
    color: var(--accent-ink);
}

/* ---- Cell body --------------------------------------------------------- */

.rd-cell-body {
    color: var(--tx-2);
    margin-top: var(--sp-3);
}

/* ---- Step index -------------------------------------------------------- */

.rd-step-index {
    display: block;
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    color: var(--accent-ink);
    margin-bottom: var(--sp-4);
}

/* ---- Stretched link ----------------------------------------------------
   Makes the whole cell clickable while keeping one real link in the
   accessibility tree. The overlay sits above the glows but below the
   corner brackets.
   ------------------------------------------------------------------------ */

.rd-stretch { transition: color var(--t); }

.rd-stretch::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: var(--z-cell-bracket);
}

.rd-cell:hover .rd-stretch { color: var(--accent-ink); }

/* ==========================================================================
   PROSE — rich text coming out of the CMS
   ========================================================================== */

.rd-prose { color: var(--tx-2); }
.rd-prose p { margin-top: var(--sp-4); }
.rd-prose p:first-child { margin-top: 0; }
.rd-prose strong, .rd-prose b { color: var(--tx-1); }
.rd-prose a { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
.rd-prose ul, .rd-prose ol { margin: var(--sp-4) 0 0; padding-left: var(--sp-6); }
.rd-prose li { margin-top: var(--sp-2); }
.rd-prose img { margin-top: var(--sp-4); border: 1px solid var(--border); }
.rd-prose h2, .rd-prose h3, .rd-prose h4 { margin-top: var(--sp-6); }

/* CMS content routinely contains spec tables. `display: block` turns the
   table into its own scroll container, so a wide one never pushes the
   page sideways. */
.rd-prose table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-top: var(--sp-5);
    border-collapse: collapse;
    border: 1px solid var(--border);
    font-size: 13.6px;
}

.rd-prose th,
.rd-prose td {
    padding: var(--sp-2) var(--sp-4);
    border-bottom: 1px solid var(--border);
    border-right: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
}

.rd-prose th { color: var(--tx-1); font-weight: 600; background: var(--surface-2); }

/* ---- Wide prose --------------------------------------------------------
   For free-form CMS pages, where the content may be mostly an embed. The
   container is not capped; text keeps a readable measure while media,
   tables and embeds use the full panel width.
   ------------------------------------------------------------------------ */

.rd-prose-wide > p,
.rd-prose-wide > ul,
.rd-prose-wide > ol,
.rd-prose-wide > h2,
.rd-prose-wide > h3,
.rd-prose-wide > h4,
.rd-prose-wide > blockquote { max-width: 78ch; }

/* CMS content can be a bare embed. Constrain it so a hard-coded width
   attribute cannot push the page sideways. */
.rd-prose iframe,
.rd-prose embed,
.rd-prose object,
.rd-prose video {
    max-width: 100%;
    width: 100%;
    min-height: 420px;
    border: 1px solid var(--border);
    display: block;
    margin-top: var(--sp-5);
}

@media (max-width: 620px) {
    .rd-prose iframe,
    .rd-prose embed,
    .rd-prose object,
    .rd-prose video { min-height: 320px; }
}
.rd-prose tr:last-child th,
.rd-prose tr:last-child td { border-bottom: 0; }
.rd-prose th:last-child,
.rd-prose td:last-child { border-right: 0; }

/* ---- Inline link ------------------------------------------------------- */

.rd-link {
    color: var(--accent-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}

/* ---- Slab variants ------------------------------------------------------
   Glow diameter tracks cell height. Past ~1.2x the two blooms merge into
   one flat wash, so each variant sets its own.
   ------------------------------------------------------------------------ */

/* Primary feature grid — tall cells (~292px) */
.rd-slab-primary {
    grid-template-columns: repeat(4, 1fr);
    --glow-size: 230px;
    --corner-size: 44px;
}

/* Secondary compact grid — short cells. Measured at 112px, so the glow is
   sized to match. No ghost numerals here; on a secondary grid they are
   noise. */
.rd-slab-secondary {
    grid-template-columns: repeat(4, 1fr);
    --glow-size: 120px;
    --corner-size: 26px;
}

.rd-slab-secondary .rd-cell {
    justify-content: center;
    min-height: 112px;
    padding: var(--sp-6);
}

/* Service grid — 3 columns, because the service count is driven by the CMS
   and 9 items in a 4-column grid would leave three dead cells in the last
   row. Three columns divides 9 exactly and still divides 6 and 12. */
.rd-slab-services {
    grid-template-columns: repeat(3, 1fr);
    --glow-size: 240px;
    --corner-size: 42px;
}

@media (max-width: 980px) {
    .rd-slab-services { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
    .rd-slab-services {
        grid-template-columns: 1fr;
        --glow-size: 190px;
        --corner-size: 32px;
    }
}

/* ---- Column-count modifiers --------------------------------------------
   For slabs whose item count is driven by the CMS. Without these, a slab
   holding fewer items than its variant has columns renders dead tracks
   inside the frame. Scoped above the collapse breakpoint so the
   responsive rules still win on small screens.
   ------------------------------------------------------------------------ */

/* A single item is one column at every width — no responsive rule ever
   wants fewer than one, so this is always safe to apply. */
.rd-slab.rd-cols-1 { grid-template-columns: 1fr; }

/* Two and three only above the widths where the variants collapse on
   their own; below that the responsive rule is already narrower. */
@media (min-width: 621px) {
    .rd-slab.rd-cols-2 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 901px) {
    .rd-slab.rd-cols-3 { grid-template-columns: repeat(3, 1fr); }
}

/* Process / step grid — 3 tall cells */
.rd-slab-process {
    grid-template-columns: repeat(3, 1fr);
    --glow-size: 210px;
    --corner-size: 38px;
}

@media (max-width: 820px) {
    .rd-slab-process { grid-template-columns: 1fr; }
}

/* Stat row — 4 cells, measured at 117px */
.rd-slab-stats {
    grid-template-columns: repeat(4, 1fr);
    --glow-size: 130px;
    --corner-size: 30px;
}

.rd-slab-stats .rd-cell {
    align-items: center;
    text-align: center;
    padding: var(--sp-6) var(--sp-4);
}

.rd-stat-value {
    font-family: var(--ff-mono);
    font-variant-numeric: tabular-nums;
    font-size: clamp(1.9rem, 4.4vw, 2.7rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: var(--track-head);
    background: var(--grad-ink);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.rd-stat-label { margin-top: var(--sp-2); }

@media (max-width: 980px) {
    .rd-slab-primary,
    .rd-slab-secondary { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
    .rd-slab-primary { grid-template-columns: 1fr; }
    .rd-slab-secondary,
    .rd-slab-stats { grid-template-columns: repeat(2, 1fr); }

    /* Stat cells shrink to ~104px at two columns, so the glow comes down
       with them rather than merging into one wash. */
    .rd-slab-stats { --glow-size: 116px; }

    /* Decoration shrinks with the cell at the small breakpoint */
    .rd-slab-primary { --glow-size: 190px; --corner-size: 32px; }
    .rd-numeral { font-size: 104px; }
    .rd-cell { padding: var(--sp-6); }
}

/* ==========================================================================
   AMBIENT BACKGROUND
   A fixed layer behind everything — never a body background. A faint 56px
   graph-paper grid radial-masked to fade below the fold, plus 3 heavily
   blurred orbs drifting on an 18s loop.
   ========================================================================== */

.rd-ambient {
    position: fixed;
    inset: 0;
    z-index: var(--z-ambient);
    pointer-events: none;
    overflow: hidden;
}

.rd-ambient-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
        linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
    background-size: 56px 56px;
    -webkit-mask-image: radial-gradient(ellipse 90% 55% at 50% 0%, #000 0%, transparent 78%);
    mask-image: radial-gradient(ellipse 90% 55% at 50% 0%, #000 0%, transparent 78%);
}

/* Light mode carries the graph paper across the whole page rather than
   fading it below the fold — on a white canvas the grid reads as texture,
   not noise, so there is nothing to hide. */
:root[data-theme="light"] .rd-ambient-grid {
    -webkit-mask-image: none;
    mask-image: none;
}

.rd-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(110px);
    opacity: var(--orb-a);
    will-change: transform;
    animation: rd-drift 18s var(--ease) infinite alternate;
}

.rd-orb-1 { width: 46vw; height: 46vw; top: -12vw; left: -8vw;  background: var(--brand-2); }
.rd-orb-2 { width: 40vw; height: 40vw; top: 28vh;  right: -10vw; background: var(--brand-1); animation-delay: -6s; }
.rd-orb-3 { width: 34vw; height: 34vw; bottom: -8vw; left: 26vw; background: var(--brand-3); animation-delay: -12s; }

@keyframes rd-drift {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to   { transform: translate3d(3.5%, -4%, 0) scale(1.09); }
}

/* ==========================================================================
   TOPBAR
   ========================================================================== */

.rd-topbar {
    position: sticky;
    top: 0;
    z-index: var(--z-topbar);
    background: color-mix(in srgb, var(--bg) 82%, transparent);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--border);
}

.rd-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-6);
    min-height: 68px;
}

.rd-logo { display: flex; align-items: center; gap: var(--sp-3); }
.rd-logo img { height: 38px; width: auto; }

.rd-nav {
    display: flex;
    align-items: center;
    gap: var(--sp-6);
}

.rd-nav a {
    color: var(--tx-2);
    font-size: var(--fs-body);
    transition: color var(--t);
}

.rd-nav a:hover,
.rd-nav a[aria-current="page"] { color: var(--accent-ink); }

.rd-topbar-actions {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
}

/* ---- Topbar call to action --------------------------------------------
   Sized down from the page buttons so it sits inside a 68px bar without
   crowding the toggle.
   ------------------------------------------------------------------------ */

.rd-topbar-cta {
    padding: var(--sp-2) var(--sp-4);
    font-size: 13.6px;
    line-height: 1.5;
    white-space: nowrap;
}

.rd-topbar-cta svg { transition: transform var(--t); }
.rd-topbar-cta:hover svg { transform: translateX(2px); }

@media (max-width: 900px) {
    /* Scoped to the parent so it outweighs .rd-btn's display, which is
       declared later in this file. */
    .rd-topbar-actions .rd-topbar-cta { display: none; }
}

/* ==========================================================================
   MEGA MENU
   Opens on :hover and :focus-within — no JS, so it survives the no-JS gate
   and is reachable by keyboard. The panel anchors to .rd-topbar (sticky is
   a positioned ancestor), which is what lets it span the full width.
   ========================================================================== */

.rd-has-mega { display: flex; align-items: center; }

.rd-mega-trigger {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    color: var(--tx-2);
    transition: color var(--t);
}

.rd-mega-trigger svg { transition: transform var(--t); }

.rd-has-mega:hover .rd-mega-trigger,
.rd-has-mega:focus-within .rd-mega-trigger,
.rd-mega-trigger[aria-current="page"] { color: var(--accent-ink); }

.rd-has-mega:hover .rd-mega-trigger svg,
.rd-has-mega:focus-within .rd-mega-trigger svg { transform: rotate(180deg); }

.rd-mega {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    padding-top: var(--sp-1);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity var(--t), transform var(--t), visibility var(--t);
}

.rd-has-mega:hover .rd-mega,
.rd-has-mega:focus-within .rd-mega {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.rd-mega-inner {
    border: 1px solid var(--border);
    background: var(--bg);
    box-shadow: 0 var(--sp-6) var(--sp-12) rgba(0, 0, 0, .22);
    padding: var(--sp-6);
}

/* .rd-shell already caps the width and adds gutters; the panel supplies
   its own frame, so drop the double padding. */
.rd-mega-inner.rd-shell { padding-inline: var(--sp-6); }

.rd-mega-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-6);
    padding-bottom: var(--sp-5);
}

.rd-mega-lede {
    margin-top: var(--sp-2);
    color: var(--tx-2);
    max-width: 100ch;
}

/* The mega slab reuses .rd-cell wholesale — same hairlines, same blooms,
   same brackets. Cells here are short, so the glow is sized down. */
/* Cells measure 92px, so the glow stays clear of the 1.2x merge point. */
.rd-slab-mega {
    grid-template-columns: repeat(3, 1fr);
    --glow-size: 98px;
    --corner-size: 24px;
}

.rd-slab-mega .rd-cell { padding: var(--sp-4); }

/* Cells measure 74px, so the glow stays under the 1.2x merge point. */
.rd-slab-mega-sm {
    grid-template-columns: 1fr;
    --glow-size: 82px;
    --corner-size: 22px;
}

.rd-slab-mega-sm .rd-cell { padding: var(--sp-4); }

.rd-mega-inner-sm {
    /* Widened from 268px to keep the hint on two lines now that each row
       carries a 36px tile. */
    min-width: 312px;
    border: 1px solid var(--border);
    background: var(--bg);
    box-shadow: 0 var(--sp-6) var(--sp-12) rgba(0, 0, 0, .22);
    padding: var(--sp-4);
}

/* A narrow dropdown should sit under its own trigger, not span the page.
   The wide mega panel anchors to .rd-shell on purpose; this one must not,
   or `right: 0` drags it to the far edge of the header. Making the wrapper
   the containing block pins it directly beneath the Media link. */
.rd-has-mega-sm { position: relative; }

.rd-has-mega-sm .rd-mega {
    left: 0;
    right: auto;
    display: flex;
    justify-content: flex-start;
}

/* ==========================================================================
   SHARE ROW
   Shared by product-details and article-details. Pages only override the
   justification; the tiles themselves must look identical everywhere.
   ========================================================================== */

.rd-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2);
}

.rd-share-label { margin-right: var(--sp-2); }

.rd-share a {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    color: var(--tx-2);
    transition: color var(--t), border-color var(--t), background var(--t);
}

.rd-share a:hover {
    color: var(--accent-ink);
    border-color: var(--accent-line);
    background: var(--surface);
}

.rd-mega-row {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-3);
}

.rd-tile-sm {
    width: 36px;
    height: 36px;
    margin-bottom: 0;
    flex: none;
}

.rd-tile-sm img { width: 22px; height: 22px; object-fit: contain; }

/* Icon-font variant — the Media dropdown uses glyphs where Services uses
   uploaded icons. Colour tracks the cell so it lights up on hover. */
.rd-tile-sm i {
    font-size: 1.05rem;
    line-height: 1;
    color: var(--accent-ink);
}

.rd-mega-name {
    display: block;
    color: var(--tx-1);
    font-weight: 600;
    line-height: 1.35;
    transition: color var(--t);
}

.rd-cell:hover .rd-mega-name { color: var(--accent-ink); }

.rd-mega-hint {
    display: block;
    margin-top: var(--sp-1);
    color: var(--tx-3);
    font-size: 12.5px;
    line-height: 1.45;

    /* Header titles vary wildly in length; cap them so the grid stays even. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---- Mobile disclosure menu — <details>, so it works with JS off ------- */

.rd-menu { position: relative; display: none; }

.rd-menu > summary {
    list-style: none;
    cursor: pointer;
}

.rd-menu > summary::-webkit-details-marker { display: none; }

.rd-menu-panel {
    position: absolute;
    top: calc(100% + var(--sp-2));
    right: 0;
    min-width: 190px;
    display: grid;
    padding: var(--sp-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    background: var(--bg);
    box-shadow: 0 var(--sp-4) var(--sp-8) rgba(0, 0, 0, .18);
}

.rd-menu-panel a {
    padding: var(--sp-3) var(--sp-4);
    border-radius: var(--r-tag);
    color: var(--tx-2);
    transition: color var(--t), background var(--t);
}

.rd-menu-panel a:hover,
.rd-menu-panel a[aria-current="page"] {
    color: var(--accent-ink);
    background: var(--surface-2);
}

/* Nested disclosure inside the mobile menu — services and media */
.rd-menu-sub > summary {
    list-style: none;
    cursor: pointer;
    padding: var(--sp-3) var(--sp-4);
    border-radius: var(--r-tag);
    color: var(--tx-2);
    font-weight: 600;
    transition: color var(--t), background var(--t);
}

.rd-menu-sub > summary::-webkit-details-marker { display: none; }

.rd-menu-sub > summary::after {
    content: '+';
    float: right;
    font-family: var(--ff-mono);
    color: var(--tx-3);
}

.rd-menu-sub[open] > summary::after { content: '–'; }
.rd-menu-sub[open] > summary { color: var(--accent-ink); }

/* Flex rather than block so rows with a leading glyph and rows without one
   still share the same text baseline and indent. */
.rd-menu-sub > a {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-2) var(--sp-4) var(--sp-2) var(--sp-8);
    border-radius: var(--r-tag);
    color: var(--tx-3);
    font-size: 13.5px;
    transition: color var(--t), background var(--t);
}

/* A bare glyph, not a tile: 8px padding + 16px glyph + 8px gap lands the
   label on 32px — the exact indent the icon-less Services links use, so
   both open lists share one text edge. */
.rd-menu-sub > a:has(> i) { padding-left: var(--sp-2); }

.rd-menu-sub > a > i {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 16px;
    font-size: 1rem;
    line-height: 1;
    color: var(--accent-ink);
    opacity: .75;
    transition: opacity var(--t);
}

.rd-menu-sub > a:hover {
    color: var(--accent-ink);
    background: var(--surface-2);
}

.rd-menu-sub > a:hover > i { opacity: 1; }
.rd-menu-sub > a[aria-current="page"] { color: var(--accent-ink); }

@media (max-width: 900px) {
    .rd-nav { display: none; }
    .rd-menu { display: block; }

    /* The mobile panel can outgrow a short viewport once services and
       media are expanded, so it scrolls inside its own container. */
    .rd-menu-panel {
        max-height: min(72vh, 560px);
        overflow-y: auto;
    }
}

/* ---- Theme toggle ------------------------------------------------------ */

.rd-theme-toggle {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    background: var(--surface);
    cursor: pointer;
    transition: border-color var(--t), color var(--t), background var(--t);
}

.rd-theme-toggle:hover {
    border-color: var(--accent-line);
    color: var(--accent-ink);
}

/* Only one of the pair is ever shown. inline-flex rather than block so the
   glyph keeps the centring the icon base rule gives it. */
.rd-theme-toggle .rd-icon-moon { display: none; }
:root[data-theme="dark"] .rd-theme-toggle .rd-icon-moon { display: inline-flex; }
:root[data-theme="dark"] .rd-theme-toggle .rd-icon-sun { display: none; }

/* ==========================================================================
   BUTTONS
   ========================================================================== */

.rd-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-3) var(--sp-6);
    border-radius: var(--r-sm);
    border: 1px solid transparent;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--t), border-color var(--t),
                color var(--t), box-shadow var(--t);
}

.rd-btn-primary {
    background: var(--grad-btn);
    color: #FFFFFF;
}

.rd-btn-primary:hover {
    box-shadow: 0 var(--sp-2) var(--sp-6) rgba(var(--brand-1-rgb), .30);
}

.rd-btn-ghost {
    border-color: var(--border-str);
    color: var(--tx-1);
    background: transparent;
}

.rd-btn-ghost:hover {
    border-color: var(--accent-line);
    color: var(--accent-ink);
    background: var(--surface);
}

/* ---- Action row -------------------------------------------------------- */

.rd-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    margin-top: var(--sp-8);
}

/* ---- Badge ------------------------------------------------------------- */

.rd-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-1) var(--sp-3);
    border: 1px solid var(--border);
    border-radius: var(--r-pill);
    background: var(--surface);
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    text-transform: uppercase;
    color: var(--tx-3);
}

.rd-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent-ink);
}

/* ==========================================================================
   SPLIT PANEL — media beside a bordered detail panel
   ========================================================================== */

.rd-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    border: 1px solid var(--border);
}

.rd-split-media {
    position: relative;
    overflow: hidden;
    box-shadow: 1px 0 0 var(--border);
    min-height: 320px;
}

.rd-split-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rd-split-body { padding: var(--sp-12) var(--sp-10); }

.rd-split-reverse .rd-split-media { order: 2; box-shadow: -1px 0 0 var(--border); }

@media (max-width: 820px) {
    .rd-split { grid-template-columns: 1fr; }
    .rd-split-media { box-shadow: 0 1px 0 var(--border); min-height: 240px; }
    .rd-split-reverse .rd-split-media { order: 0; box-shadow: 0 1px 0 var(--border); }
    .rd-split-body { padding: var(--sp-10) var(--sp-6); }
}

/* ---- Check list -------------------------------------------------------- */

.rd-checklist {
    list-style: none;
    margin: var(--sp-6) 0 0;
    padding: 0;
    display: grid;
    gap: var(--sp-3);
}

.rd-checklist li {
    display: flex;
    gap: var(--sp-3);
    align-items: flex-start;
    color: var(--tx-2);
}

.rd-checklist svg {
    flex: none;
    margin-top: 3px;
    color: var(--accent-ink);
}

/* ==========================================================================
   FORMS
   Shared by contact, partner and job-application pages.
   ========================================================================== */

.rd-form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sp-5);
}

.rd-field { display: flex; flex-direction: column; gap: var(--sp-2); }
.rd-field-wide { grid-column: 1 / -1; }

.rd-label {
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    text-transform: uppercase;
    color: var(--tx-3);
}

.rd-label .rd-req { color: var(--accent-ink); }

.rd-input,
.rd-textarea,
.rd-select {
    width: 100%;
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--border-str);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--tx-1);
    font-family: var(--ff-display);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    transition: border-color var(--t), background var(--t), box-shadow var(--t);
}

.rd-textarea { min-height: 160px; resize: vertical; }

.rd-input::placeholder,
.rd-textarea::placeholder { color: var(--tx-3); }

.rd-input:hover,
.rd-textarea:hover,
.rd-select:hover { border-color: var(--accent-line); }

.rd-input:focus,
.rd-textarea:focus,
.rd-select:focus {
    outline: none;
    border-color: var(--accent-ink);
    box-shadow: 0 0 0 3px var(--ring);
}

/* Only flag a field once the browser has something invalid to report, so
   an untouched form is never shown in red. */
.rd-input:not(:placeholder-shown):invalid,
.rd-textarea:not(:placeholder-shown):invalid {
    border-color: rgba(220, 70, 70, .55);
}

.rd-hint { color: var(--tx-3); }

/* ---- File input --------------------------------------------------------
   The native control cannot be styled directly, so the button half is
   restyled and the rest inherits the field treatment.
   ------------------------------------------------------------------------ */

.rd-file {
    width: 100%;
    padding: var(--sp-3) var(--sp-4);
    border: 1px dashed var(--border-str);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--tx-2);
    font-family: var(--ff-display);
    font-size: var(--fs-body);
    cursor: pointer;
    transition: border-color var(--t), background var(--t);
}

.rd-file:hover { border-color: var(--accent-line); }

.rd-file:focus {
    outline: none;
    border-color: var(--accent-ink);
    box-shadow: 0 0 0 3px var(--ring);
}

.rd-file::file-selector-button {
    margin-right: var(--sp-4);
    padding: var(--sp-2) var(--sp-4);
    border: 1px solid var(--border-str);
    border-radius: var(--r-tag);
    background: var(--surface-2);
    color: var(--tx-1);
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--t), border-color var(--t);
}

.rd-file:hover::file-selector-button {
    color: var(--accent-ink);
    border-color: var(--accent-line);
}

/* ---- Field-level error ------------------------------------------------- */

.rd-field-error {
    color: #C0392B;
    font-size: 12.5px;
}

:root[data-theme="dark"] .rd-field-error { color: #FF8B7E; }

.rd-input.is-invalid,
.rd-textarea.is-invalid,
.rd-file.is-invalid { border-color: rgba(220, 70, 70, .7); }

/* ---- Alerts ------------------------------------------------------------ */

.rd-alert {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-3);
    padding: var(--sp-4) var(--sp-5);
    border: 1px solid var(--border-str);
    border-radius: var(--r-sm);
    margin-bottom: var(--sp-6);
    color: var(--tx-2);
    background: var(--surface);
}

.rd-alert-ok {
    border-color: var(--accent-line);
    background: var(--tile-bg);
}

.rd-alert svg { flex: none; margin-top: 2px; color: var(--accent-ink); }

@media (max-width: 620px) {
    .rd-form-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   FILTER RAIL
   Plain links carrying a query string, so filtering works with JS off and
   every filtered view is linkable and indexable.
   ========================================================================== */

.rd-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--sp-2);
    margin-bottom: var(--sp-8);
}

.rd-filter {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-2) var(--sp-4);
    border: 1px solid var(--border);
    border-radius: var(--r-pill);
    background: transparent;
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    text-transform: uppercase;
    color: var(--tx-3);
    white-space: nowrap;
    transition: color var(--t), border-color var(--t), background var(--t);
}

.rd-filter:hover {
    color: var(--accent-ink);
    border-color: var(--accent-line);
}

.rd-filter[aria-current="true"] {
    color: var(--accent-ink);
    border-color: var(--accent-line);
    background: var(--tile-bg);
}

/* Kept at the 11px floor: below that, small-text contrast rules bite. */
.rd-filter-count {
    font-size: var(--fs-micro);
    color: var(--tx-3);
    border-left: 1px solid var(--border);
    padding-left: var(--sp-2);
}

/* ==========================================================================
   PAGINATION
   ========================================================================== */

.rd-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    margin-top: var(--sp-10);
}

.rd-page {
    display: inline-grid;
    place-items: center;
    min-width: 40px;
    height: 40px;
    padding-inline: var(--sp-3);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    color: var(--tx-3);
    font-variant-numeric: tabular-nums;
    transition: color var(--t), border-color var(--t), background var(--t);
}

.rd-page:hover {
    color: var(--accent-ink);
    border-color: var(--accent-line);
}

.rd-page[aria-current="page"] {
    color: var(--accent-ink);
    border-color: var(--accent-line);
    background: var(--tile-bg);
}

.rd-page-disabled {
    opacity: .45;
    pointer-events: none;
}

/* ---- Empty state ------------------------------------------------------- */

.rd-empty {
    border: 1px solid var(--border);
    padding: var(--sp-16) var(--sp-8);
    text-align: center;
}

.rd-empty p { margin-inline: auto; max-width: 48ch; margin-top: var(--sp-3); }

/* ==========================================================================
   CTA BAND
   ========================================================================== */

.rd-cta {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
    padding: var(--sp-16) var(--sp-10);
    text-align: center;
}

.rd-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 0%, rgba(var(--brand-2-rgb), var(--glow-a-tl)) 0%, transparent 55%),
        radial-gradient(circle at 82% 100%, rgba(var(--brand-1-rgb), var(--glow-a-br)) 0%, transparent 55%);
    pointer-events: none;
}

.rd-cta > * { position: relative; }

.rd-cta p { margin-inline: auto; max-width: 56ch; margin-top: var(--sp-4); }
.rd-cta .rd-hero-actions { justify-content: center; }

/* Reading variant: same frame and glows, but left-aligned prose rather
   than a centred call to action. A class rather than an inline style so
   the small-screen padding below still applies. */
.rd-cta-panel {
    text-align: left;
    padding: var(--sp-12) var(--sp-10);
}

.rd-cta-panel p { margin-inline: 0; max-width: none; }
.rd-cta-panel .rd-hero-actions { justify-content: flex-start; }

@media (max-width: 620px) {
    .rd-cta,
    .rd-cta-panel { padding: var(--sp-12) var(--sp-6); }
}

/* ==========================================================================
   MARQUEE — mono chips, duplicated once, translate -50%, edge-masked
   ========================================================================== */

.rd-marquee {
    position: relative;
    overflow: hidden;
    border-block: 1px solid var(--border);
    padding-block: var(--sp-5);
    -webkit-mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent);
}

.rd-marquee-track {
    display: flex;
    width: max-content;
    gap: var(--sp-3);
    animation: rd-marquee 34s linear infinite;
}

.rd-marquee:hover .rd-marquee-track { animation-play-state: paused; }

.rd-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-2) var(--sp-4);
    border: 1px solid var(--border);
    border-radius: var(--r-pill);
    font-family: var(--ff-mono);
    font-size: var(--fs-micro);
    font-weight: 600;
    letter-spacing: var(--track-micro);
    text-transform: uppercase;
    color: var(--tx-3);
    white-space: nowrap;
}

@keyframes rd-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.rd-footer {
    position: relative;
    z-index: var(--z-shell);
    border-top: 1px solid var(--border);
    margin-top: var(--sp-16);
    padding-block: var(--sp-12) var(--sp-8);
}

.rd-footer-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, 1fr);
    gap: var(--sp-10);
}

.rd-footer a { color: var(--tx-2); transition: color var(--t); }
.rd-footer a:hover { color: var(--accent-ink); }

.rd-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    margin-top: var(--sp-10);
    padding-top: var(--sp-6);
    border-top: 1px solid var(--border);
}

@media (max-width: 860px) {
    .rd-footer-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-8); }
}

@media (max-width: 520px) {
    .rd-footer-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   REVEAL
   The reveal must never be able to hide content. Elements are visible by
   default; JS opts IN to hiding by adding .rd-reveal-armed to <html>
   before first paint. If the script fails to load the gate is never armed
   and the page renders normally.
   ========================================================================== */

:root.rd-reveal-armed [data-reveal] {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity var(--dur-bloom) var(--ease),
                transform var(--dur-bloom) var(--ease);
    transition-delay: var(--reveal-delay, 0ms);
}

/* Inside a slab: fade only — sliding tears the hairlines */
:root.rd-reveal-armed .rd-cell[data-reveal] { transform: none; }

:root.rd-reveal-armed [data-reveal].rd-in {
    opacity: 1;
    transform: none;
}

/* ==========================================================================
   REDUCED MOTION — everything visible and still
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }

    .rd-orb { animation: none; }
    .rd-marquee-track { animation: none; }

    :root.rd-reveal-armed [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}

/* ---- Utilities --------------------------------------------------------- */

.rd-sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Wide content scrolls inside its own container — never the page */
.rd-scroll-x {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}


@font-face {
    font-family: "Unicons";
    src: url("../../fonts/unicons/Unicons.woff2") format("woff2"), url("../../fonts/unicons/Unicons.woff") format("woff");
    font-weight: normal;
    font-style: normal;
    font-display: block;
}

@font-face {
    font-family: "Custom";
    src: url("../../fonts/custom/Custom.woff2") format("woff2"), url("../../fonts/custom/Custom.woff") format("woff");
    font-weight: normal;
    font-style: normal;
    font-display: block;
}

.me-2 {
    margin-right: 0.5rem !important;
}

[class^=uil-],
[class*=" uil-"],
[class^=icn-],
[class*=" icn-"] {
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    word-spacing: normal;
}

[class^=uil-],
[class*=" uil-"] {
    font-family: "Unicons" !important;
}

[class^=icn-],
[class*=" icn-"] {
    font-family: "Custom" !important;
}

.icn-caret-right:before {
    content: "\e900";
}

.icn-comment-line:before {
    content: "\e904";
}

.icn-external:before {
    content: "\e906";
}

.icn-flower:before {
    content: "\e907";
}

.icn-terminal:before {
    content: "\e905";
}

.uil-plus-0:before {
    content: "\e900";
}

.uil-plus-3:before {
    content: "\e901";
}

.uil-plus-6:before {
    content: "\e902";
}

.uil-plus-10:before {
    content: "\e903";
}

.uil-plus-12:before {
    content: "\e904";
}

.uil-plus-13:before {
    content: "\e905";
}

.uil-plus-16:before {
    content: "\e906";
}

.uil-plus-17:before {
    content: "\e907";
}

.uil-plus-18:before {
    content: "\e908";
}

.uil-plus-21:before {
    content: "\e909";
}

.uil-500px:before {
    content: "\e90a";
}

.uil-abacus:before {
    content: "\e90b";
}

.uil-accessible-icon-alt:before {
    content: "\e90c";
}

.uil-adjust-alt:before {
    content: "\e90d";
}

.uil-adjust-circle:before {
    content: "\e90e";
}

.uil-adjust-half:before {
    content: "\e90f";
}

.uil-adjust:before {
    content: "\e910";
}

.uil-adobe-alt:before {
    content: "\e911";
}

.uil-airplay:before {
    content: "\e912";
}

.uil-adobe:before {
    content: "\e913";
}

.uil-align-alt:before {
    content: "\e914";
}

.uil-align-center-alt:before {
    content: "\e915";
}

.uil-align-center-v:before {
    content: "\e916";
}

.uil-align-center:before {
    content: "\e917";
}

.uil-align-center-h:before {
    content: "\e918";
}

.uil-align-justify:before {
    content: "\e919";
}

.uil-align-left:before {
    content: "\e91a";
}

.uil-align-left-justify:before {
    content: "\e91b";
}

.uil-align-center-justify:before {
    content: "\e91c";
}

.uil-align-letter-right:before {
    content: "\e91d";
}

.uil-align-right-justify:before {
    content: "\e91e";
}

.uil-align-right:before {
    content: "\e91f";
}

.uil-align:before {
    content: "\e920";
}

.uil-amazon:before {
    content: "\e921";
}

.uil-ambulance:before {
    content: "\e922";
}

.uil-analysis:before {
    content: "\e923";
}

.uil-analytics:before {
    content: "\e924";
}

.uil-anchor:before {
    content: "\e925";
}

.uil-android-alt:before {
    content: "\e926";
}

.uil-android-phone-slash:before {
    content: "\e927";
}

.uil-android:before {
    content: "\e928";
}

.uil-angle-double-down:before {
    content: "\e929";
}

.uil-angle-double-left:before {
    content: "\e92a";
}

.uil-angle-double-right:before {
    content: "\e92b";
}

.uil-angle-double-up:before {
    content: "\e92c";
}

.uil-angle-down:before {
    content: "\e92d";
}

.uil-angle-left-b:before {
    content: "\e92e";
}

.uil-angle-left:before {
    content: "\e92f";
}

.uil-angle-right-b:before {
    content: "\e930";
}

.uil-angle-right:before {
    content: "\e931";
}

.uil-angle-up:before {
    content: "\e932";
}

.uil-angry:before {
    content: "\e933";
}

.uil-ankh:before {
    content: "\e934";
}

.uil-annoyed-alt:before {
    content: "\e935";
}

.uil-annoyed:before {
    content: "\e936";
}

.uil-apple-alt:before {
    content: "\e937";
}

.uil-apple:before {
    content: "\e938";
}

.uil-apps:before {
    content: "\e939";
}

.uil-archive-alt:before {
    content: "\e93a";
}

.uil-archive:before {
    content: "\e93b";
}

.uil-archway:before {
    content: "\e93c";
}

.uil-arrow-break:before {
    content: "\e93d";
}

.uil-arrow-circle-down:before {
    content: "\e93e";
}

.uil-arrow-circle-left:before {
    content: "\e93f";
}

.uil-arrow-circle-right:before {
    content: "\e940";
}

.uil-arrow-circle-up:before {
    content: "\e941";
}

.uil-arrow-compress-h:before {
    content: "\e942";
}

.uil-arrow-down-left:before {
    content: "\e943";
}

.uil-arrow-down-right:before {
    content: "\e944";
}

.uil-arrow-down:before {
    content: "\e945";
}

.uil-arrow-from-right:before {
    content: "\e946";
}

.uil-arrow-from-top:before {
    content: "\e947";
}

.uil-arrow-growth:before {
    content: "\e948";
}

.uil-arrow-left:before {
    content: "\e949";
}

.uil-arrow-random:before {
    content: "\e94a";
}

.uil-arrow-resize-diagonal:before {
    content: "\e94b";
}

.uil-arrow-right:before {
    content: "\e94c";
}

.uil-arrow-to-bottom:before {
    content: "\e94d";
}

.uil-arrow-to-right:before {
    content: "\e94e";
}

.uil-arrow-up-left:before {
    content: "\e94f";
}

.uil-arrow-up-right:before {
    content: "\e950";
}

.uil-arrow-up:before {
    content: "\e951";
}

.uil-arrow:before {
    content: "\e952";
}

.uil-arrows-h-alt:before {
    content: "\e953";
}

.uil-arrows-h:before {
    content: "\e954";
}

.uil-arrows-left-down:before {
    content: "\e955";
}

.uil-arrows-maximize:before {
    content: "\e956";
}

.uil-arrows-merge:before {
    content: "\e957";
}

.uil-arrows-resize-h:before {
    content: "\e958";
}

.uil-arrows-resize-v:before {
    content: "\e959";
}

.uil-arrows-resize:before {
    content: "\e95a";
}

.uil-arrows-shrink-h:before {
    content: "\e95b";
}

.uil-arrows-right-down:before {
    content: "\e95c";
}

.uil-arrows-shrink-v:before {
    content: "\e95d";
}

.uil-arrows-up-right:before {
    content: "\e95e";
}

.uil-arrows-v-alt:before {
    content: "\e95f";
}

.uil-arrows-v:before {
    content: "\e960";
}

.uil-assistive-listening-systems:before {
    content: "\e961";
}

.uil-asterisk:before {
    content: "\e962";
}

.uil-at:before {
    content: "\e963";
}

.uil-atom:before {
    content: "\e964";
}

.uil-auto-flash:before {
    content: "\e965";
}

.uil-award-alt:before {
    content: "\e966";
}

.uil-award:before {
    content: "\e967";
}

.uil-baby-carriage:before {
    content: "\e968";
}

.uil-backpack:before {
    content: "\e969";
}

.uil-backspace:before {
    content: "\e96a";
}

.uil-backward:before {
    content: "\e96b";
}

.uil-bag-alt:before {
    content: "\e96c";
}

.uil-bag-slash:before {
    content: "\e96d";
}

.uil-bag:before {
    content: "\e96e";
}

.uil-balance-scale:before {
    content: "\e96f";
}

.uil-ban:before {
    content: "\e970";
}

.uil-band-aid:before {
    content: "\e971";
}

.uil-bars:before {
    content: "\e972";
}

.uil-baseball-ball:before {
    content: "\e973";
}

.uil-basketball-hoop:before {
    content: "\e974";
}

.uil-basketball:before {
    content: "\e975";
}

.uil-bath:before {
    content: "\e976";
}

.uil-battery-bolt:before {
    content: "\e977";
}

.uil-battery-empty:before {
    content: "\e978";
}

.uil-bed-double:before {
    content: "\e979";
}

.uil-bed:before {
    content: "\e97a";
}

.uil-behance-alt:before {
    content: "\e97b";
}

.uil-behance:before {
    content: "\e97c";
}

.uil-bell-school:before {
    content: "\e97d";
}

.uil-bell-slash:before {
    content: "\e97e";
}

.uil-bell:before {
    content: "\e97f";
}

.uil-bill:before {
    content: "\e980";
}

.uil-bing:before {
    content: "\e981";
}

.uil-bitcoin-alt:before {
    content: "\e982";
}

.uil-bitcoin-circle:before {
    content: "\e983";
}

.uil-bitcoin-sign:before {
    content: "\e984";
}

.uil-bitcoin:before {
    content: "\e985";
}

.uil-black-berry:before {
    content: "\e986";
}

.uil-blogger-alt:before {
    content: "\e987";
}

.uil-blogger:before {
    content: "\e988";
}

.uil-bluetooth-b:before {
    content: "\e989";
}

.uil-bold:before {
    content: "\e98a";
}

.uil-bolt-alt:before {
    content: "\e98b";
}

.uil-bolt-slash:before {
    content: "\e98c";
}

.uil-bolt:before {
    content: "\e98d";
}

.uil-book-alt:before {
    content: "\e98e";
}

.uil-book-medical:before {
    content: "\e98f";
}

.uil-book-open:before {
    content: "\e990";
}

.uil-book-reader:before {
    content: "\e991";
}

.uil-book:before {
    content: "\e992";
}

.uil-bookmark-full:before {
    content: "\e993";
}

.uil-bookmark:before {
    content: "\e994";
}

.uil-books:before {
    content: "\e995";
}

.uil-boombox:before {
    content: "\e996";
}

.uil-border-alt:before {
    content: "\e997";
}

.uil-border-bottom:before {
    content: "\e998";
}

.uil-border-clear:before {
    content: "\e999";
}

.uil-border-horizontal:before {
    content: "\e99a";
}

.uil-border-inner:before {
    content: "\e99b";
}

.uil-border-left:before {
    content: "\e99c";
}

.uil-border-out:before {
    content: "\e99d";
}

.uil-border-right:before {
    content: "\e99e";
}

.uil-border-top:before {
    content: "\e99f";
}

.uil-border-vertical:before {
    content: "\e9a0";
}

.uil-bowling-ball:before {
    content: "\e9a1";
}

.uil-box:before {
    content: "\e9a2";
}

.uil-brackets-curly:before {
    content: "\e9a3";
}

.uil-brain:before {
    content: "\e9a4";
}

.uil-briefcase-alt:before {
    content: "\e9a5";
}

.uil-briefcase:before {
    content: "\e9a6";
}

.uil-bright:before {
    content: "\e9a7";
}

.uil-brightness-empty:before {
    content: "\e9a8";
}

.uil-brightness-half:before {
    content: "\e9a9";
}

.uil-brightness-low:before {
    content: "\e9aa";
}

.uil-brightness-minus:before {
    content: "\e9ab";
}

.uil-brightness-plus:before {
    content: "\e9ac";
}

.uil-brightness:before {
    content: "\e9ad";
}

.uil-bring-bottom:before {
    content: "\e9ae";
}

.uil-bring-front:before {
    content: "\e9af";
}

.uil-browser:before {
    content: "\e9b0";
}

.uil-brush-alt:before {
    content: "\e9b1";
}

.uil-bug:before {
    content: "\e9b2";
}

.uil-building:before {
    content: "\e9b3";
}

.uil-bus-alt:before {
    content: "\e9b4";
}

.uil-bus-school:before {
    content: "\e9b5";
}

.uil-bus:before {
    content: "\e9b6";
}

.uil-bullseye:before {
    content: "\e9b7";
}

.uil-calculator-alt:before {
    content: "\e9b8";
}

.uil-calendar-slash:before {
    content: "\e9b9";
}

.uil-calendar-alt:before {
    content: "\e9ba";
}

.uil-calender:before {
    content: "\e9bb";
}

.uil-calculator:before {
    content: "\e9bc";
}

.uil-calling:before {
    content: "\e9bd";
}

.uil-camera-plus:before {
    content: "\e9be";
}

.uil-camera-change:before {
    content: "\e9bf";
}

.uil-capsule:before {
    content: "\e9c0";
}

.uil-capture:before {
    content: "\e9c1";
}

.uil-cancel:before {
    content: "\e9c2";
}

.uil-car-sideview:before {
    content: "\e9c3";
}

.uil-car-slash:before {
    content: "\e9c4";
}

.uil-camera:before {
    content: "\e9c5";
}

.uil-camera-slash:before {
    content: "\e9c6";
}

.uil-car-wash:before {
    content: "\e9c7";
}

.uil-car:before {
    content: "\e9c8";
}

.uil-card-atm:before {
    content: "\e9c9";
}

.uil-caret-right:before {
    content: "\e9ca";
}

.uil-cell:before {
    content: "\e9cb";
}

.uil-celsius:before {
    content: "\e9cc";
}

.uil-channel-add:before {
    content: "\e9cd";
}

.uil-channel:before {
    content: "\e9ce";
}

.uil-chart-down:before {
    content: "\e9cf";
}

.uil-chart-bar:before {
    content: "\e9d0";
}

.uil-chart-growth-alt:before {
    content: "\e9d1";
}

.uil-chart-bar-alt:before {
    content: "\e9d2";
}

.uil-chart-line:before {
    content: "\e9d3";
}

.uil-chart-growth:before {
    content: "\e9d4";
}

.uil-chart-pie-alt:before {
    content: "\e9d5";
}

.uil-chart:before {
    content: "\e9d6";
}

.uil-chart-pie:before {
    content: "\e9d7";
}

.uil-chat-bubble-user:before {
    content: "\e9d8";
}

.uil-chat:before {
    content: "\e9d9";
}

.uil-chat-info:before {
    content: "\e9da";
}

.uil-check-circle:before {
    content: "\e9db";
}

.uil-check-square:before {
    content: "\e9dc";
}

.uil-check:before {
    content: "\e9dd";
}

.uil-circle-layer:before {
    content: "\e9de";
}

.uil-circle:before {
    content: "\e9df";
}

.uil-clapper-board:before {
    content: "\e9e0";
}

.uil-circuit:before {
    content: "\e9e1";
}

.uil-clinic-medical:before {
    content: "\e9e2";
}

.uil-clipboard-blank:before {
    content: "\e9e3";
}

.uil-clipboard-alt:before {
    content: "\e9e4";
}

.uil-clock-eight:before {
    content: "\e9e5";
}

.uil-clipboard-notes:before {
    content: "\e9e6";
}

.uil-clock-five:before {
    content: "\e9e7";
}

.uil-clipboard:before {
    content: "\e9e8";
}

.uil-clock-nine:before {
    content: "\e9e9";
}

.uil-clock-seven:before {
    content: "\e9ea";
}

.uil-clock-ten:before {
    content: "\e9eb";
}

.uil-clock-three:before {
    content: "\e9ec";
}

.uil-clock-two:before {
    content: "\e9ed";
}

.uil-clock:before {
    content: "\e9ee";
}

.uil-closed-captioning-slash:before {
    content: "\e9ef";
}

.uil-closed-captioning:before {
    content: "\e9f0";
}

.uil-cloud-block:before {
    content: "\e9f1";
}

.uil-cloud-bookmark:before {
    content: "\e9f2";
}

.uil-cloud-check:before {
    content: "\e9f3";
}

.uil-cloud-computing:before {
    content: "\e9f4";
}

.uil-cloud-data-connection:before {
    content: "\e9f5";
}

.uil-cloud-database-tree:before {
    content: "\e9f6";
}

.uil-cloud-download:before {
    content: "\e9f7";
}

.uil-cloud-drizzle:before {
    content: "\e9f8";
}

.uil-cloud-exclamation:before {
    content: "\e9f9";
}

.uil-cloud-hail:before {
    content: "\e9fa";
}

.uil-cloud-heart:before {
    content: "\e9fb";
}

.uil-cloud-info:before {
    content: "\e9fc";
}

.uil-cloud-lock:before {
    content: "\e9fd";
}

.uil-cloud-meatball:before {
    content: "\e9fe";
}

.uil-cloud-moon-hail:before {
    content: "\e9ff";
}

.uil-cloud-moon-meatball:before {
    content: "\ea00";
}

.uil-cloud-moon-rain:before {
    content: "\ea01";
}

.uil-cloud-moon-showers:before {
    content: "\ea02";
}

.uil-cloud-moon:before {
    content: "\ea03";
}

.uil-cloud-question:before {
    content: "\ea04";
}

.uil-cloud-rain-sun:before {
    content: "\ea05";
}

.uil-cloud-rain:before {
    content: "\ea06";
}

.uil-cloud-redo:before {
    content: "\ea07";
}

.uil-cloud-share:before {
    content: "\ea08";
}

.uil-cloud-shield:before {
    content: "\ea09";
}

.uil-cloud-showers-alt:before {
    content: "\ea0a";
}

.uil-cloud-showers-heavy:before {
    content: "\ea0b";
}

.uil-cloud-showers:before {
    content: "\ea0c";
}

.uil-cloud-slash:before {
    content: "\ea0d";
}

.uil-cloud-sun-hail:before {
    content: "\ea0e";
}

.uil-cloud-sun-meatball:before {
    content: "\ea0f";
}

.uil-cloud-sun-rain-alt:before {
    content: "\ea10";
}

.uil-cloud-sun-rain:before {
    content: "\ea11";
}

.uil-cloud-sun-tear:before {
    content: "\ea12";
}

.uil-cloud-sun:before {
    content: "\ea13";
}

.uil-cloud-times:before {
    content: "\ea14";
}

.uil-cloud-unlock:before {
    content: "\ea15";
}

.uil-cloud-upload:before {
    content: "\ea16";
}

.uil-cloud-wifi:before {
    content: "\ea17";
}

.uil-cloud-wind:before {
    content: "\ea18";
}

.uil-cloud:before {
    content: "\ea19";
}

.uil-clouds:before {
    content: "\ea1a";
}

.uil-club:before {
    content: "\ea1b";
}

.uil-code-branch:before {
    content: "\ea1c";
}

.uil-coffee:before {
    content: "\ea1d";
}

.uil-cog:before {
    content: "\ea1e";
}

.uil-coins:before {
    content: "\ea1f";
}

.uil-columns:before {
    content: "\ea20";
}

.uil-comment-add:before {
    content: "\ea21";
}

.uil-comment-alt-block:before {
    content: "\ea22";
}

.uil-comment-alt-chart-lines:before {
    content: "\ea23";
}

.uil-comment-alt-check:before {
    content: "\ea24";
}

.uil-comment-alt-dots:before {
    content: "\ea25";
}

.uil-comment-alt-download:before {
    content: "\ea26";
}

.uil-comment-alt-edit:before {
    content: "\ea27";
}

.uil-comment-alt-exclamation:before {
    content: "\ea28";
}

.uil-comment-alt-heart:before {
    content: "\ea29";
}

.uil-comment-alt-image:before {
    content: "\ea2a";
}

.uil-comment-alt-info:before {
    content: "\ea2b";
}

.uil-comment-alt-lines:before {
    content: "\ea2c";
}

.uil-comment-alt-lock:before {
    content: "\ea2d";
}

.uil-comment-alt-medical:before {
    content: "\ea2e";
}

.uil-comment-alt-message:before {
    content: "\ea2f";
}

.uil-comment-alt-notes:before {
    content: "\ea30";
}

.uil-comment-alt-plus:before {
    content: "\ea31";
}

.uil-comment-alt-question:before {
    content: "\ea32";
}

.uil-comment-alt-redo:before {
    content: "\ea33";
}

.uil-comment-alt-search:before {
    content: "\ea34";
}

.uil-comment-alt-share:before {
    content: "\ea35";
}

.uil-comment-alt-shield:before {
    content: "\ea36";
}

.uil-comment-alt-slash:before {
    content: "\ea37";
}

.uil-comment-alt-upload:before {
    content: "\ea38";
}

.uil-comment-alt-verify:before {
    content: "\ea39";
}

.uil-comment-alt:before {
    content: "\ea3a";
}

.uil-comment-block:before {
    content: "\ea3b";
}

.uil-comment-chart-line:before {
    content: "\ea3c";
}

.uil-comment-check:before {
    content: "\ea3d";
}

.uil-comment-dots:before {
    content: "\ea3e";
}

.uil-comment-download:before {
    content: "\ea3f";
}

.uil-comment-edit:before {
    content: "\ea40";
}

.uil-comment-exclamation:before {
    content: "\ea41";
}

.uil-comment-heart:before {
    content: "\ea42";
}

.uil-comment-image:before {
    content: "\ea43";
}

.uil-comment-info-alt:before {
    content: "\ea44";
}

.uil-comment-info:before {
    content: "\ea45";
}

.uil-comment-lines:before {
    content: "\ea46";
}

.uil-comment-lock:before {
    content: "\ea47";
}

.uil-comment-medical:before {
    content: "\ea48";
}

.uil-comment-message:before {
    content: "\ea49";
}

.uil-comment-notes:before {
    content: "\ea4a";
}

.uil-comment-plus:before {
    content: "\ea4b";
}

.uil-comment-question:before {
    content: "\ea4c";
}

.uil-comment-redo:before {
    content: "\ea4d";
}

.uil-comment-search:before {
    content: "\ea4e";
}

.uil-comment-share:before {
    content: "\ea4f";
}

.uil-comment-shield:before {
    content: "\ea50";
}

.uil-comment-slash:before {
    content: "\ea51";
}

.uil-comment-upload:before {
    content: "\ea52";
}

.uil-comment-verify:before {
    content: "\ea53";
}

.uil-comment:before {
    content: "\ea54";
}

.uil-comments-alt:before {
    content: "\ea55";
}

.uil-comments:before {
    content: "\ea56";
}

.uil-compact-disc:before {
    content: "\ea57";
}

.uil-comparison:before {
    content: "\ea58";
}

.uil-compass:before {
    content: "\ea59";
}

.uil-compress-alt-left:before {
    content: "\ea5a";
}

.uil-compress-alt:before {
    content: "\ea5b";
}

.uil-compress-arrows:before {
    content: "\ea5c";
}

.uil-compress-lines:before {
    content: "\ea5d";
}

.uil-compress-point:before {
    content: "\ea5e";
}

.uil-compress-v:before {
    content: "\ea5f";
}

.uil-compress:before {
    content: "\ea60";
}

.uil-confused:before {
    content: "\ea61";
}

.uil-constructor:before {
    content: "\ea62";
}

.uil-copy-alt:before {
    content: "\ea63";
}

.uil-copy-landscape:before {
    content: "\ea64";
}

.uil-copy:before {
    content: "\ea65";
}

.uil-copyright:before {
    content: "\ea66";
}

.uil-corner-down-left:before {
    content: "\ea67";
}

.uil-corner-down-right-alt:before {
    content: "\ea68";
}

.uil-corner-down-right:before {
    content: "\ea69";
}

.uil-corner-left-down:before {
    content: "\ea6a";
}

.uil-corner-right-down:before {
    content: "\ea6b";
}

.uil-corner-up-left-alt:before {
    content: "\ea6c";
}

.uil-corner-up-left:before {
    content: "\ea6d";
}

.uil-corner-up-right-alt:before {
    content: "\ea6e";
}

.uil-corner-up-right:before {
    content: "\ea6f";
}

.uil-coronavirus:before {
    content: "\ea70";
}

.uil-create-dashboard:before {
    content: "\ea71";
}

.uil-creative-commons-pd:before {
    content: "\ea72";
}

.uil-credit-card-search:before {
    content: "\ea73";
}

.uil-credit-card:before {
    content: "\ea74";
}

.uil-crockery:before {
    content: "\ea75";
}

.uil-crop-alt-rotate-left:before {
    content: "\ea76";
}

.uil-crop-alt-rotate-right:before {
    content: "\ea77";
}

.uil-crop-alt:before {
    content: "\ea78";
}

.uil-crosshair-alt:before {
    content: "\ea79";
}

.uil-crosshair:before {
    content: "\ea7a";
}

.uil-crosshairs:before {
    content: "\ea7b";
}

.uil-css3-simple:before {
    content: "\ea7c";
}

.uil-cube:before {
    content: "\ea7d";
}

.uil-dashboard:before {
    content: "\ea7e";
}

.uil-data-sharing:before {
    content: "\ea7f";
}

.uil-database-alt:before {
    content: "\ea80";
}

.uil-database:before {
    content: "\ea81";
}

.uil-desert:before {
    content: "\ea82";
}

.uil-desktop-alt-slash:before {
    content: "\ea83";
}

.uil-desktop-alt:before {
    content: "\ea84";
}

.uil-desktop-cloud-alt:before {
    content: "\ea85";
}

.uil-desktop-slash:before {
    content: "\ea86";
}

.uil-dialpad-alt:before {
    content: "\ea87";
}

.uil-desktop:before {
    content: "\ea88";
}

.uil-dialpad:before {
    content: "\ea89";
}

.uil-diamond:before {
    content: "\ea8a";
}

.uil-diary-alt:before {
    content: "\ea8b";
}

.uil-diary:before {
    content: "\ea8c";
}

.uil-dice-five:before {
    content: "\ea8d";
}

.uil-dice-four:before {
    content: "\ea8e";
}

.uil-dice-one:before {
    content: "\ea8f";
}

.uil-dice-six:before {
    content: "\ea90";
}

.uil-dice-three:before {
    content: "\ea91";
}

.uil-dice-two:before {
    content: "\ea92";
}

.uil-direction:before {
    content: "\ea93";
}

.uil-directions:before {
    content: "\ea94";
}

.uil-discord:before {
    content: "\ea95";
}

.uil-dizzy-meh:before {
    content: "\ea96";
}

.uil-dna:before {
    content: "\ea97";
}

.uil-docker:before {
    content: "\ea98";
}

.uil-document-info:before {
    content: "\ea99";
}

.uil-document-layout-center:before {
    content: "\ea9a";
}

.uil-document-layout-left:before {
    content: "\ea9b";
}

.uil-document-layout-right:before {
    content: "\ea9c";
}

.uil-dollar-alt:before {
    content: "\ea9d";
}

.uil-dollar-sign-alt:before {
    content: "\ea9e";
}

.uil-dollar-sign:before {
    content: "\ea9f";
}

.uil-download-alt:before {
    content: "\eaa0";
}

.uil-draggabledots:before {
    content: "\eaa1";
}

.uil-dribbble:before {
    content: "\eaa2";
}

.uil-drill:before {
    content: "\eaa3";
}

.uil-dropbox:before {
    content: "\eaa4";
}

.uil-dumbbell:before {
    content: "\eaa5";
}

.uil-ear:before {
    content: "\eaa6";
}

.uil-edit-alt:before {
    content: "\eaa7";
}

.uil-edit:before {
    content: "\eaa8";
}

.uil-elipsis-double-v-alt:before {
    content: "\eaa9";
}

.uil-ellipsis-h:before {
    content: "\eaaa";
}

.uil-ellipsis-v:before {
    content: "\eaab";
}

.uil-emoji:before {
    content: "\eaac";
}

.uil-english-to-chinese:before {
    content: "\eaad";
}

.uil-enter:before {
    content: "\eaae";
}

.uil-envelope-add:before {
    content: "\eaaf";
}

.uil-envelope-alt:before {
    content: "\eab0";
}

.uil-envelope-block:before {
    content: "\eab1";
}

.uil-envelope-bookmark:before {
    content: "\eab2";
}

.uil-envelope-check:before {
    content: "\eab3";
}

.uil-envelope-download-alt:before {
    content: "\eab4";
}

.uil-envelope-download:before {
    content: "\eab5";
}

.uil-envelope-edit:before {
    content: "\eab6";
}

.uil-envelope-exclamation:before {
    content: "\eab7";
}

.uil-envelope-info:before {
    content: "\eab8";
}

.uil-envelope-heart:before {
    content: "\eab9";
}

.uil-envelope-lock:before {
    content: "\eaba";
}

.uil-envelope-minus:before {
    content: "\eabb";
}

.uil-envelope-open:before {
    content: "\eabc";
}

.uil-envelope-question:before {
    content: "\eabd";
}

.uil-envelope-receive:before {
    content: "\eabe";
}

.uil-envelope-redo:before {
    content: "\eabf";
}

.uil-envelope-search:before {
    content: "\eac0";
}

.uil-envelope-send:before {
    content: "\eac1";
}

.uil-envelope-share:before {
    content: "\eac2";
}

.uil-envelope-shield:before {
    content: "\eac3";
}

.uil-envelope-star:before {
    content: "\eac4";
}

.uil-envelope-times:before {
    content: "\eac5";
}

.uil-envelope-upload-alt:before {
    content: "\eac6";
}

.uil-envelope-upload:before {
    content: "\eac7";
}

.uil-envelope:before {
    content: "\eac8";
}

.uil-envelopes:before {
    content: "\eac9";
}

.uil-equal-circle:before {
    content: "\eaca";
}

.uil-estate:before {
    content: "\eacb";
}

.uil-euro-circle:before {
    content: "\eacc";
}

.uil-euro:before {
    content: "\eacd";
}

.uil-exchange-alt:before {
    content: "\eace";
}

.uil-exchange:before {
    content: "\eacf";
}

.uil-exclamation-circle:before {
    content: "\ead0";
}

.uil-exclamation-octagon:before {
    content: "\ead1";
}

.uil-exclamation-triangle:before {
    content: "\ead2";
}

.uil-exclamation:before {
    content: "\ead3";
}

.uil-exclude:before {
    content: "\ead4";
}

.uil-exit:before {
    content: "\ead5";
}

.uil-expand-alt:before {
    content: "\ead6";
}

.uil-expand-arrows-alt:before {
    content: "\ead7";
}

.uil-expand-arrows:before {
    content: "\ead8";
}

.uil-expand-from-corner:before {
    content: "\ead9";
}

.uil-expand-left:before {
    content: "\eada";
}

.uil-expand-right:before {
    content: "\eadb";
}

.uil-export:before {
    content: "\eadc";
}

.uil-exposure-alt:before {
    content: "\eadd";
}

.uil-exposure-increase:before {
    content: "\eade";
}

.uil-external-link-alt:before {
    content: "\eadf";
}

.uil-eye-slash:before {
    content: "\eae0";
}

.uil-eye:before {
    content: "\eae1";
}

.uil-facebook-f:before {
    content: "\eae2";
}

.uil-facebook-messenger-alt:before {
    content: "\eae3";
}

.uil-facebook-messenger:before {
    content: "\eae4";
}

.uil-facebook:before {
    content: "\eae5";
}

.uil-fahrenheit:before {
    content: "\eae6";
}

.uil-fast-mail-alt:before {
    content: "\eae7";
}

.uil-fast-mail:before {
    content: "\eae8";
}

.uil-favorite:before {
    content: "\eae9";
}

.uil-feedback:before {
    content: "\eaea";
}

.uil-fidget-spinner:before {
    content: "\eaeb";
}

.uil-file-alt:before {
    content: "\eaec";
}

.uil-file-blank:before {
    content: "\eaed";
}

.uil-file-block-alt:before {
    content: "\eaee";
}

.uil-file-bookmark-alt:before {
    content: "\eaef";
}

.uil-file-check-alt:before {
    content: "\eaf0";
}

.uil-file-check:before {
    content: "\eaf1";
}

.uil-file-contract-dollar:before {
    content: "\eaf2";
}

.uil-file-contract:before {
    content: "\eaf3";
}

.uil-file-copy-alt:before {
    content: "\eaf4";
}

.uil-file-download-alt:before {
    content: "\eaf5";
}

.uil-file-download:before {
    content: "\eaf6";
}

.uil-file-edit-alt:before {
    content: "\eaf7";
}

.uil-file-exclamation-alt:before {
    content: "\eaf8";
}

.uil-file-exclamation:before {
    content: "\eaf9";
}

.uil-file-export:before {
    content: "\eafa";
}

.uil-file-graph:before {
    content: "\eafb";
}

.uil-file-heart:before {
    content: "\eafc";
}

.uil-file-import:before {
    content: "\eafd";
}

.uil-file-info-alt:before {
    content: "\eafe";
}

.uil-file-landscape-alt:before {
    content: "\eaff";
}

.uil-file-landscape:before {
    content: "\eb00";
}

.uil-file-lanscape-slash:before {
    content: "\eb01";
}

.uil-file-medical-alt:before {
    content: "\eb02";
}

.uil-file-medical:before {
    content: "\eb03";
}

.uil-file-minus-alt:before {
    content: "\eb04";
}

.uil-file-lock-alt:before {
    content: "\eb05";
}

.uil-file-minus:before {
    content: "\eb06";
}

.uil-file-network:before {
    content: "\eb07";
}

.uil-file-plus-alt:before {
    content: "\eb08";
}

.uil-file-plus:before {
    content: "\eb09";
}

.uil-file-question:before {
    content: "\eb0a";
}

.uil-file-redo-alt:before {
    content: "\eb0b";
}

.uil-file-question-alt:before {
    content: "\eb0c";
}

.uil-file-slash:before {
    content: "\eb0d";
}

.uil-file-times-alt:before {
    content: "\eb0e";
}

.uil-file-shield-alt:before {
    content: "\eb0f";
}

.uil-file-times:before {
    content: "\eb10";
}

.uil-file-share-alt:before {
    content: "\eb11";
}

.uil-file-search-alt:before {
    content: "\eb12";
}

.uil-file:before {
    content: "\eb13";
}

.uil-file-upload:before {
    content: "\eb14";
}

.uil-filter:before {
    content: "\eb15";
}

.uil-filter-slash:before {
    content: "\eb16";
}

.uil-files-landscapes:before {
    content: "\eb17";
}

.uil-film:before {
    content: "\eb18";
}

.uil-flask:before {
    content: "\eb19";
}

.uil-flask-potion:before {
    content: "\eb1a";
}

.uil-files-landscapes-alt:before {
    content: "\eb1b";
}

.uil-flip-h-alt:before {
    content: "\eb1c";
}

.uil-flip-h:before {
    content: "\eb1d";
}

.uil-flip-v-alt:before {
    content: "\eb1e";
}

.uil-file-upload-alt:before {
    content: "\eb1f";
}

.uil-fire:before {
    content: "\eb20";
}

.uil-flower:before {
    content: "\eb21";
}

.uil-focus-add:before {
    content: "\eb22";
}

.uil-flip-v:before {
    content: "\eb23";
}

.uil-focus:before {
    content: "\eb24";
}

.uil-folder-check:before {
    content: "\eb25";
}

.uil-folder-download:before {
    content: "\eb26";
}

.uil-folder-exclamation:before {
    content: "\eb27";
}

.uil-folder-heart:before {
    content: "\eb28";
}

.uil-folder-info:before {
    content: "\eb29";
}

.uil-folder-lock:before {
    content: "\eb2a";
}

.uil-folder-medical:before {
    content: "\eb2b";
}

.uil-folder-minus:before {
    content: "\eb2c";
}

.uil-folder-network:before {
    content: "\eb2d";
}

.uil-folder-open:before {
    content: "\eb2e";
}

.uil-folder-plus:before {
    content: "\eb2f";
}

.uil-folder-question:before {
    content: "\eb30";
}

.uil-folder-slash:before {
    content: "\eb31";
}

.uil-folder-times:before {
    content: "\eb32";
}

.uil-folder-upload:before {
    content: "\eb33";
}

.uil-folder:before {
    content: "\eb34";
}

.uil-font:before {
    content: "\eb35";
}

.uil-football-american:before {
    content: "\eb36";
}

.uil-football-ball:before {
    content: "\eb37";
}

.uil-football:before {
    content: "\eb38";
}

.uil-forecastcloud-moon-tear:before {
    content: "\eb39";
}

.uil-forwaded-call:before {
    content: "\eb3a";
}

.uil-forward:before {
    content: "\eb3b";
}

.uil-frown:before {
    content: "\eb3c";
}

.uil-game-structure:before {
    content: "\eb3d";
}

.uil-gift:before {
    content: "\eb3e";
}

.uil-github-alt:before {
    content: "\eb3f";
}

.uil-github:before {
    content: "\eb40";
}

.uil-gitlab:before {
    content: "\eb41";
}

.uil-glass-martini-alt-slash:before {
    content: "\eb42";
}

.uil-focus-target:before {
    content: "\eb43";
}

.uil-glass-martini-alt:before {
    content: "\eb44";
}

.uil-glass-martini:before {
    content: "\eb45";
}

.uil-glass-tea:before {
    content: "\eb46";
}

.uil-glass:before {
    content: "\eb47";
}

.uil-globe:before {
    content: "\eb48";
}

.uil-gold:before {
    content: "\eb49";
}

.uil-golf-ball:before {
    content: "\eb4a";
}

.uil-google-drive-alt:before {
    content: "\eb4b";
}

.uil-google-drive:before {
    content: "\eb4c";
}

.uil-google-hangouts-alt:before {
    content: "\eb4d";
}

.uil-google-hangouts:before {
    content: "\eb4e";
}

.uil-google-play:before {
    content: "\eb4f";
}

.uil-google:before {
    content: "\eb50";
}

.uil-graduation-cap:before {
    content: "\eb51";
}

.uil-graph-bar:before {
    content: "\eb52";
}

.uil-grid:before {
    content: "\eb53";
}

.uil-grids:before {
    content: "\eb54";
}

.uil-grin-tongue-wink-alt:before {
    content: "\eb55";
}

.uil-grin:before {
    content: "\eb56";
}

.uil-grin-tongue-wink:before {
    content: "\eb57";
}

.uil-grip-horizontal-line:before {
    content: "\eb58";
}

.uil-hard-hat:before {
    content: "\eb59";
}

.uil-hdd:before {
    content: "\eb5a";
}

.uil-head-side-mask:before {
    content: "\eb5b";
}

.uil-head-side-cough:before {
    content: "\eb5c";
}

.uil-head-side:before {
    content: "\eb5d";
}

.uil-headphone-slash:before {
    content: "\eb5e";
}

.uil-headphones-alt:before {
    content: "\eb5f";
}

.uil-heart-alt:before {
    content: "\eb60";
}

.uil-headphones:before {
    content: "\eb61";
}

.uil-heart-break:before {
    content: "\eb62";
}

.uil-heart-medical:before {
    content: "\eb63";
}

.uil-heart-rate:before {
    content: "\eb64";
}

.uil-heart-sign:before {
    content: "\eb65";
}

.uil-heart:before {
    content: "\eb66";
}

.uil-heartbeat:before {
    content: "\eb67";
}

.uil-hindi-to-chinese:before {
    content: "\eb68";
}

.uil-hipchat:before {
    content: "\eb69";
}

.uil-history-alt:before {
    content: "\eb6a";
}

.uil-history:before {
    content: "\eb6b";
}

.uil-home-alt:before {
    content: "\eb6c";
}

.uil-home:before {
    content: "\eb6d";
}

.uil-horizontal-align-center:before {
    content: "\eb6e";
}

.uil-horizontal-align-left:before {
    content: "\eb6f";
}

.uil-horizontal-align-right:before {
    content: "\eb70";
}

.uil-horizontal-distribution-center:before {
    content: "\eb71";
}

.uil-horizontal-distribution-right:before {
    content: "\eb72";
}

.uil-hospital-square-sign:before {
    content: "\eb73";
}

.uil-hospital-symbol:before {
    content: "\eb74";
}

.uil-horizontal-distribution-left:before {
    content: "\eb75";
}

.uil-hospital:before {
    content: "\eb76";
}

.uil-house-user:before {
    content: "\eb77";
}

.uil-hourglass:before {
    content: "\eb78";
}

.uil-html3-alt:before {
    content: "\eb79";
}

.uil-html5-alt:before {
    content: "\eb7a";
}

.uil-html3:before {
    content: "\eb7b";
}

.uil-html5:before {
    content: "\eb7c";
}

.uil-hunting:before {
    content: "\eb7d";
}

.uil-icons:before {
    content: "\eb7e";
}

.uil-illustration:before {
    content: "\eb7f";
}

.uil-image-alt-slash:before {
    content: "\eb80";
}

.uil-image-block:before {
    content: "\eb81";
}

.uil-image-broken:before {
    content: "\eb82";
}

.uil-image-check:before {
    content: "\eb83";
}

.uil-image-download:before {
    content: "\eb84";
}

.uil-image-edit:before {
    content: "\eb85";
}

.uil-image-lock:before {
    content: "\eb86";
}

.uil-image-minus:before {
    content: "\eb87";
}

.uil-image-plus:before {
    content: "\eb88";
}

.uil-image-question:before {
    content: "\eb89";
}

.uil-image-redo:before {
    content: "\eb8a";
}

.uil-image-resize-landscape:before {
    content: "\eb8b";
}

.uil-image-resize-square:before {
    content: "\eb8c";
}

.uil-image-search:before {
    content: "\eb8d";
}

.uil-image-share:before {
    content: "\eb8e";
}

.uil-image-shield:before {
    content: "\eb8f";
}

.uil-image-slash:before {
    content: "\eb90";
}

.uil-image-times:before {
    content: "\eb91";
}

.uil-image-upload:before {
    content: "\eb92";
}

.uil-image-v:before {
    content: "\eb93";
}

.uil-image:before {
    content: "\eb94";
}

.uil-images:before {
    content: "\eb95";
}

.uil-import:before {
    content: "\eb96";
}

.uil-inbox:before {
    content: "\eb97";
}

.uil-incoming-call:before {
    content: "\eb98";
}

.uil-info-circle:before {
    content: "\eb99";
}

.uil-instagram-alt:before {
    content: "\eb9a";
}

.uil-info:before {
    content: "\eb9b";
}

.uil-instagram:before {
    content: "\eb9c";
}

.uil-intercom-alt:before {
    content: "\eb9d";
}

.uil-intercom:before {
    content: "\eb9e";
}

.uil-invoice:before {
    content: "\eb9f";
}

.uil-italic:before {
    content: "\eba0";
}

.uil-jackhammer:before {
    content: "\eba1";
}

.uil-java-script:before {
    content: "\eba2";
}

.uil-kayak:before {
    content: "\eba3";
}

.uil-key-skeleton-alt:before {
    content: "\eba4";
}

.uil-key-skeleton:before {
    content: "\eba5";
}

.uil-keyboard-alt:before {
    content: "\eba6";
}

.uil-keyboard-hide:before {
    content: "\eba7";
}

.uil-keyboard-show:before {
    content: "\eba8";
}

.uil-keyboard:before {
    content: "\eba9";
}

.uil-keyhole-circle:before {
    content: "\ebaa";
}

.uil-keyhole-square-full:before {
    content: "\ebab";
}

.uil-keyhole-square:before {
    content: "\ebac";
}

.uil-kid:before {
    content: "\ebad";
}

.uil-label-alt:before {
    content: "\ebae";
}

.uil-label:before {
    content: "\ebaf";
}

.uil-lamp:before {
    content: "\ebb0";
}

.uil-language:before {
    content: "\ebb1";
}

.uil-laptop-cloud:before {
    content: "\ebb2";
}

.uil-laptop-connection:before {
    content: "\ebb3";
}

.uil-laptop:before {
    content: "\ebb4";
}

.uil-laughing:before {
    content: "\ebb5";
}

.uil-layer-group-slash:before {
    content: "\ebb6";
}

.uil-layer-group:before {
    content: "\ebb7";
}

.uil-layers-alt:before {
    content: "\ebb8";
}

.uil-layers-slash:before {
    content: "\ebb9";
}

.uil-layers:before {
    content: "\ebba";
}

.uil-left-arrow-from-left:before {
    content: "\ebbb";
}

.uil-left-arrow-to-left:before {
    content: "\ebbc";
}

.uil-left-indent-alt:before {
    content: "\ebbd";
}

.uil-left-indent:before {
    content: "\ebbe";
}

.uil-left-to-right-text-direction:before {
    content: "\ebbf";
}

.uil-letter-chinese-a:before {
    content: "\ebc0";
}

.uil-letter-english-a:before {
    content: "\ebc1";
}

.uil-letter-hindi-a:before {
    content: "\ebc2";
}

.uil-letter-japanese-a:before {
    content: "\ebc3";
}

.uil-life-ring:before {
    content: "\ebc4";
}

.uil-lightbulb-alt:before {
    content: "\ebc5";
}

.uil-lightbulb:before {
    content: "\ebc6";
}

.uil-line-alt:before {
    content: "\ebc7";
}

.uil-line-spacing:before {
    content: "\ebc8";
}

.uil-link-add:before {
    content: "\ebc9";
}

.uil-link-alt:before {
    content: "\ebca";
}

.uil-link-broken:before {
    content: "\ebcb";
}

.uil-link-h:before {
    content: "\ebcc";
}

.uil-link:before {
    content: "\ebcd";
}

.uil-linux:before {
    content: "\ebce";
}

.uil-line:before {
    content: "\ebcf";
}

.uil-linkedin-alt:before {
    content: "\ebd0";
}

.uil-linkedin:before {
    content: "\ebd1";
}

.uil-list-ol:before {
    content: "\ebd2";
}

.uil-list-ui-alt:before {
    content: "\ebd3";
}

.uil-list-ol-alt:before {
    content: "\ebd4";
}

.uil-location-arrow-alt:before {
    content: "\ebd5";
}

.uil-lira-sign:before {
    content: "\ebd6";
}

.uil-location-point:before {
    content: "\ebd7";
}

.uil-location-pin-alt:before {
    content: "\ebd8";
}

.uil-location-arrow:before {
    content: "\ebd9";
}

.uil-lottiefiles-alt:before {
    content: "\ebda";
}

.uil-mailbox:before {
    content: "\ebdb";
}

.uil-lock:before {
    content: "\ebdc";
}

.uil-map-marker-minus:before {
    content: "\ebdd";
}

.uil-map-marker-info:before {
    content: "\ebde";
}

.uil-map-marker-edit:before {
    content: "\ebdf";
}

.uil-map-marker-alt:before {
    content: "\ebe0";
}

.uil-map-marker-shield:before {
    content: "\ebe1";
}

.uil-map-marker-slash:before {
    content: "\ebe2";
}

.uil-map-marker:before {
    content: "\ebe3";
}

.uil-map-marker-question:before {
    content: "\ebe4";
}

.uil-map-pin-alt:before {
    content: "\ebe5";
}

.uil-map:before {
    content: "\ebe6";
}

.uil-map-pin:before {
    content: "\ebe7";
}

.uil-map-marker-plus:before {
    content: "\ebe8";
}

.uil-mars:before {
    content: "\ebe9";
}

.uil-lock-open-alt:before {
    content: "\ebea";
}

.uil-lock-slash:before {
    content: "\ebeb";
}

.uil-master-card:before {
    content: "\ebec";
}

.uil-luggage-cart:before {
    content: "\ebed";
}

.uil-lottiefiles:before {
    content: "\ebee";
}

.uil-medical-square-full:before {
    content: "\ebef";
}

.uil-lock-alt:before {
    content: "\ebf0";
}

.uil-medical-square:before {
    content: "\ebf1";
}

.uil-medical-drip:before {
    content: "\ebf2";
}

.uil-medkit:before {
    content: "\ebf3";
}

.uil-medium-m:before {
    content: "\ebf4";
}

.uil-megaphone:before {
    content: "\ebf5";
}

.uil-meeting-board:before {
    content: "\ebf6";
}

.uil-meh-alt:before {
    content: "\ebf7";
}

.uil-meh-closed-eye:before {
    content: "\ebf8";
}

.uil-medal:before {
    content: "\ebf9";
}

.uil-maximize-left:before {
    content: "\ebfa";
}

.uil-meh:before {
    content: "\ebfb";
}

.uil-list-ul:before {
    content: "\ebfc";
}

.uil-metro:before {
    content: "\ebfd";
}

.uil-message:before {
    content: "\ebfe";
}

.uil-microphone-slash:before {
    content: "\ebff";
}

.uil-mailbox-alt:before {
    content: "\ec00";
}

.uil-microscope:before {
    content: "\ec01";
}

.uil-microphone:before {
    content: "\ec02";
}

.uil-microsoft:before {
    content: "\ec03";
}

.uil-minus-path:before {
    content: "\ec04";
}

.uil-minus-square-full:before {
    content: "\ec05";
}

.uil-minus-circle:before {
    content: "\ec06";
}

.uil-minus:before {
    content: "\ec07";
}

.uil-missed-call:before {
    content: "\ec08";
}

.uil-mobile-android-alt:before {
    content: "\ec09";
}

.uil-mobile-android:before {
    content: "\ec0a";
}

.uil-mobile-vibrate:before {
    content: "\ec0b";
}

.uil-modem:before {
    content: "\ec0c";
}

.uil-minus-square:before {
    content: "\ec0d";
}

.uil-money-bill-slash:before {
    content: "\ec0e";
}

.uil-money-bill-stack:before {
    content: "\ec0f";
}

.uil-money-bill:before {
    content: "\ec10";
}

.uil-lock-access:before {
    content: "\ec11";
}

.uil-money-insert:before {
    content: "\ec12";
}

.uil-money-stack:before {
    content: "\ec13";
}

.uil-money-withdraw:before {
    content: "\ec14";
}

.uil-money-withdrawal:before {
    content: "\ec15";
}

.uil-moneybag-alt:before {
    content: "\ec16";
}

.uil-moneybag:before {
    content: "\ec17";
}

.uil-monitor-heart-rate:before {
    content: "\ec18";
}

.uil-monitor:before {
    content: "\ec19";
}

.uil-moon-eclipse:before {
    content: "\ec1a";
}

.uil-moon:before {
    content: "\ec1b";
}

.uil-moonset:before {
    content: "\ec1c";
}

.uil-mountains-sun:before {
    content: "\ec1d";
}

.uil-mountains:before {
    content: "\ec1e";
}

.uil-mouse-alt-2:before {
    content: "\ec1f";
}

.uil-mouse-alt:before {
    content: "\ec20";
}

.uil-mouse:before {
    content: "\ec21";
}

.uil-multiply:before {
    content: "\ec22";
}

.uil-music-note:before {
    content: "\ec23";
}

.uil-music-tune-slash:before {
    content: "\ec24";
}

.uil-music:before {
    content: "\ec25";
}

.uil-n-a:before {
    content: "\ec26";
}

.uil-navigator:before {
    content: "\ec27";
}

.uil-nerd:before {
    content: "\ec28";
}

.uil-newspaper:before {
    content: "\ec29";
}

.uil-no-entry:before {
    content: "\ec2a";
}

.uil-ninja:before {
    content: "\ec2b";
}

.uil-notebooks:before {
    content: "\ec2c";
}

.uil-notes:before {
    content: "\ec2d";
}

.uil-object-group:before {
    content: "\ec2e";
}

.uil-object-ungroup:before {
    content: "\ec2f";
}

.uil-octagon:before {
    content: "\ec30";
}

.uil-okta:before {
    content: "\ec31";
}

.uil-opera-alt:before {
    content: "\ec32";
}

.uil-opera:before {
    content: "\ec33";
}

.uil-outgoing-call:before {
    content: "\ec34";
}

.uil-padlock:before {
    content: "\ec35";
}

.uil-package:before {
    content: "\ec36";
}

.uil-pagelines:before {
    content: "\ec37";
}

.uil-paint-tool:before {
    content: "\ec38";
}

.uil-pagerduty:before {
    content: "\ec39";
}

.uil-palette:before {
    content: "\ec3a";
}

.uil-panel-add:before {
    content: "\ec3b";
}

.uil-panorama-h-alt:before {
    content: "\ec3c";
}

.uil-panorama-h:before {
    content: "\ec3d";
}

.uil-panorama-v:before {
    content: "\ec3e";
}

.uil-paperclip:before {
    content: "\ec3f";
}

.uil-parcel:before {
    content: "\ec40";
}

.uil-paragraph:before {
    content: "\ec41";
}

.uil-parking-circle:before {
    content: "\ec42";
}

.uil-parking-square:before {
    content: "\ec43";
}

.uil-pathfinder-unite:before {
    content: "\ec44";
}

.uil-pathfinder:before {
    content: "\ec45";
}

.uil-pause-circle:before {
    content: "\ec46";
}

.uil-pause:before {
    content: "\ec47";
}

.uil-paypal:before {
    content: "\ec48";
}

.uil-pen:before {
    content: "\ec49";
}

.uil-pentagon:before {
    content: "\ec4a";
}

.uil-percentage:before {
    content: "\ec4b";
}

.uil-phone-pause:before {
    content: "\ec4c";
}

.uil-phone-alt:before {
    content: "\ec4d";
}

.uil-phone-slash:before {
    content: "\ec4e";
}

.uil-phone-times:before {
    content: "\ec4f";
}

.uil-phone-volume:before {
    content: "\ec50";
}

.uil-phone:before {
    content: "\ec51";
}

.uil-picture:before {
    content: "\ec52";
}

.uil-pizza-slice:before {
    content: "\ec53";
}

.uil-plane-arrival:before {
    content: "\ec54";
}

.uil-plane-departure:before {
    content: "\ec55";
}

.uil-plane-fly:before {
    content: "\ec56";
}

.uil-plane:before {
    content: "\ec57";
}

.uil-play-circle:before {
    content: "\ec58";
}

.uil-play:before {
    content: "\ec59";
}

.uil-plug:before {
    content: "\ec5a";
}

.uil-plus-circle:before {
    content: "\ec5b";
}

.uil-plus-square:before {
    content: "\ec5c";
}

.uil-plus:before {
    content: "\ec5d";
}

.uil-podium:before {
    content: "\ec5e";
}

.uil-polygon:before {
    content: "\ec5f";
}

.uil-post-stamp:before {
    content: "\ec60";
}

.uil-postcard:before {
    content: "\ec61";
}

.uil-pound-circle:before {
    content: "\ec62";
}

.uil-pound:before {
    content: "\ec63";
}

.uil-power:before {
    content: "\ec64";
}

.uil-prescription-bottle:before {
    content: "\ec65";
}

.uil-presentation-check:before {
    content: "\ec66";
}

.uil-presentation-edit:before {
    content: "\ec67";
}

.uil-presentation-line:before {
    content: "\ec68";
}

.uil-presentation-lines-alt:before {
    content: "\ec69";
}

.uil-presentation-minus:before {
    content: "\ec6a";
}

.uil-presentation-play:before {
    content: "\ec6b";
}

.uil-presentation-plus:before {
    content: "\ec6c";
}

.uil-presentation-times:before {
    content: "\ec6d";
}

.uil-presentation:before {
    content: "\ec6e";
}

.uil-previous:before {
    content: "\ec6f";
}

.uil-pricetag-alt:before {
    content: "\ec70";
}

.uil-print-slash:before {
    content: "\ec71";
}

.uil-print:before {
    content: "\ec72";
}

.uil-process:before {
    content: "\ec73";
}

.uil-processor:before {
    content: "\ec74";
}

.uil-programming-language:before {
    content: "\ec75";
}

.uil-pump:before {
    content: "\ec76";
}

.uil-puzzle-piece:before {
    content: "\ec77";
}

.uil-qrcode-scan:before {
    content: "\ec78";
}

.uil-question-circle:before {
    content: "\ec79";
}

.uil-question:before {
    content: "\ec7a";
}

.uil-raindrops-alt:before {
    content: "\ec7b";
}

.uil-rainbow:before {
    content: "\ec7c";
}

.uil-raindrops:before {
    content: "\ec7d";
}

.uil-react:before {
    content: "\ec7e";
}

.uil-receipt-alt:before {
    content: "\ec7f";
}

.uil-receipt:before {
    content: "\ec80";
}

.uil-record-audio:before {
    content: "\ec81";
}

.uil-reddit-alien-alt:before {
    content: "\ec82";
}

.uil-redo:before {
    content: "\ec83";
}

.uil-refresh:before {
    content: "\ec84";
}

.uil-registered:before {
    content: "\ec85";
}

.uil-repeat:before {
    content: "\ec86";
}

.uil-restaurant:before {
    content: "\ec87";
}

.uil-right-indent-alt:before {
    content: "\ec88";
}

.uil-right-to-left-text-direction:before {
    content: "\ec89";
}

.uil-robot:before {
    content: "\ec8a";
}

.uil-rope-way:before {
    content: "\ec8b";
}

.uil-rocket:before {
    content: "\ec8c";
}

.uil-rotate-360:before {
    content: "\ec8d";
}

.uil-rss-alt:before {
    content: "\ec8e";
}

.uil-rss-interface:before {
    content: "\ec8f";
}

.uil-rss:before {
    content: "\ec90";
}

.uil-ruler-combined:before {
    content: "\ec91";
}

.uil-ruler:before {
    content: "\ec92";
}

.uil-rupee-sign:before {
    content: "\ec93";
}

.uil-sad-cry:before {
    content: "\ec94";
}

.uil-sad-crying:before {
    content: "\ec95";
}

.uil-sad-dizzy:before {
    content: "\ec96";
}

.uil-sad-squint:before {
    content: "\ec97";
}

.uil-sad:before {
    content: "\ec98";
}

.uil-sanitizer-alt:before {
    content: "\ec99";
}

.uil-sanitizer:before {
    content: "\ec9a";
}

.uil-save:before {
    content: "\ec9b";
}

.uil-scaling-left:before {
    content: "\ec9c";
}

.uil-scaling-right:before {
    content: "\ec9d";
}

.uil-scenery:before {
    content: "\ec9e";
}

.uil-screw:before {
    content: "\ec9f";
}

.uil-scroll-h:before {
    content: "\eca0";
}

.uil-scroll:before {
    content: "\eca1";
}

.uil-schedule:before {
    content: "\eca2";
}

.uil-search-alt:before {
    content: "\eca3";
}

.uil-search-minus:before {
    content: "\eca4";
}

.uil-search:before {
    content: "\eca5";
}

.uil-selfie:before {
    content: "\eca6";
}

.uil-server-alt:before {
    content: "\eca7";
}

.uil-search-plus:before {
    content: "\eca8";
}

.uil-server-connection:before {
    content: "\eca9";
}

.uil-server-network:before {
    content: "\ecaa";
}

.uil-server-network-alt:before {
    content: "\ecab";
}

.uil-servers:before {
    content: "\ecac";
}

.uil-servicemark:before {
    content: "\ecad";
}

.uil-server:before {
    content: "\ecae";
}

.uil-setting:before {
    content: "\ecaf";
}

.uil-share-alt:before {
    content: "\ecb0";
}

.uil-share:before {
    content: "\ecb1";
}

.uil-shield-check:before {
    content: "\ecb2";
}

.uil-shield-exclamation:before {
    content: "\ecb3";
}

.uil-shield-plus:before {
    content: "\ecb4";
}

.uil-shield-question:before {
    content: "\ecb5";
}

.uil-shield:before {
    content: "\ecb6";
}

.uil-ship:before {
    content: "\ecb7";
}

.uil-shop:before {
    content: "\ecb8";
}

.uil-shield-slash:before {
    content: "\ecb9";
}

.uil-shopping-bag:before {
    content: "\ecba";
}

.uil-shopping-basket:before {
    content: "\ecbb";
}

.uil-shopping-cart-alt:before {
    content: "\ecbc";
}

.uil-shopping-cart:before {
    content: "\ecbd";
}

.uil-shovel:before {
    content: "\ecbe";
}

.uil-shrink:before {
    content: "\ecbf";
}

.uil-shuffle:before {
    content: "\ecc0";
}

.uil-shutter:before {
    content: "\ecc1";
}

.uil-sick:before {
    content: "\ecc2";
}

.uil-sigma:before {
    content: "\ecc3";
}

.uil-sign-alt:before {
    content: "\ecc4";
}

.uil-sign-in-alt:before {
    content: "\ecc5";
}

.uil-sign-left:before {
    content: "\ecc6";
}

.uil-sign-out-alt:before {
    content: "\ecc7";
}

.uil-sign-right:before {
    content: "\ecc8";
}

.uil-signal-alt:before {
    content: "\ecc9";
}

.uil-signal:before {
    content: "\ecca";
}

.uil-signin:before {
    content: "\eccb";
}

.uil-signout:before {
    content: "\eccc";
}

.uil-silence:before {
    content: "\eccd";
}

.uil-signal-alt-3:before {
    content: "\ecce";
}

.uil-silent-squint:before {
    content: "\eccf";
}

.uil-sim-card:before {
    content: "\ecd0";
}

.uil-skip-forward-alt:before {
    content: "\ecd1";
}

.uil-sitemap:before {
    content: "\ecd2";
}

.uil-skype-alt:before {
    content: "\ecd3";
}

.uil-skype:before {
    content: "\ecd4";
}

.uil-skip-forward:before {
    content: "\ecd5";
}

.uil-skip-forward-circle:before {
    content: "\ecd6";
}

.uil-shutter-alt:before {
    content: "\ecd7";
}

.uil-sliders-v:before {
    content: "\ecd8";
}

.uil-slider-h-range:before {
    content: "\ecd9";
}

.uil-slider-h:before {
    content: "\ecda";
}

.uil-sliders-v-alt:before {
    content: "\ecdb";
}

.uil-slack-alt:before {
    content: "\ecdc";
}

.uil-slack:before {
    content: "\ecdd";
}

.uil-smile-beam:before {
    content: "\ecde";
}

.uil-smile-dizzy:before {
    content: "\ecdf";
}

.uil-smile-squint-wink-alt:before {
    content: "\ece0";
}

.uil-smile-squint-wink:before {
    content: "\ece1";
}

.uil-smile-wink-alt:before {
    content: "\ece2";
}

.uil-smile-wink:before {
    content: "\ece3";
}

.uil-smile:before {
    content: "\ece4";
}

.uil-snapchat-ghost:before {
    content: "\ece5";
}

.uil-snowflake:before {
    content: "\ece6";
}

.uil-sperms:before {
    content: "\ece7";
}

.uil-snow-flake:before {
    content: "\ece8";
}

.uil-space-key:before {
    content: "\ece9";
}

.uil-spade:before {
    content: "\ecea";
}

.uil-star:before {
    content: "\eceb";
}

.uil-sorting:before {
    content: "\ecec";
}

.uil-squint:before {
    content: "\eced";
}

.uil-step-backward-alt:before {
    content: "\ecee";
}

.uil-snapchat-square:before {
    content: "\ecef";
}

.uil-square:before {
    content: "\ecf0";
}

.uil-square-shape:before {
    content: "\ecf1";
}

.uil-spinner:before {
    content: "\ecf2";
}

.uil-square-full:before {
    content: "\ecf3";
}

.uil-spin:before {
    content: "\ecf4";
}

.uil-stop-circle:before {
    content: "\ecf5";
}

.uil-stopwatch-slash:before {
    content: "\ecf6";
}

.uil-step-forward:before {
    content: "\ecf7";
}

.uil-step-backward:before {
    content: "\ecf8";
}

.uil-store-alt:before {
    content: "\ecf9";
}

.uil-snapchat-alt:before {
    content: "\ecfa";
}

.uil-sort:before {
    content: "\ecfb";
}

.uil-sort-amount-down:before {
    content: "\ecfc";
}

.uil-social-distancing:before {
    content: "\ecfd";
}

.uil-subway:before {
    content: "\ecfe";
}

.uil-subway-alt:before {
    content: "\ecff";
}

.uil-stopwatch:before {
    content: "\ed00";
}

.uil-subject:before {
    content: "\ed01";
}

.uil-step-backward-circle:before {
    content: "\ed02";
}

.uil-stretcher:before {
    content: "\ed03";
}

.uil-store:before {
    content: "\ed04";
}

.uil-streering:before {
    content: "\ed05";
}

.uil-sync:before {
    content: "\ed06";
}

.uil-sync-slash:before {
    content: "\ed07";
}

.uil-sync-exclamation:before {
    content: "\ed08";
}

.uil-table-tennis:before {
    content: "\ed09";
}

.uil-stethoscope:before {
    content: "\ed0a";
}

.uil-swimmer:before {
    content: "\ed0b";
}

.uil-snowflake-alt:before {
    content: "\ed0c";
}

.uil-tablet:before {
    content: "\ed0d";
}

.uil-syringe:before {
    content: "\ed0e";
}

.uil-table:before {
    content: "\ed0f";
}

.uil-tag-alt:before {
    content: "\ed10";
}

.uil-store-slash:before {
    content: "\ed11";
}

.uil-tape:before {
    content: "\ed12";
}

.uil-tachometer-fast:before {
    content: "\ed13";
}

.uil-tag:before {
    content: "\ed14";
}

.uil-tachometer-fast-alt:before {
    content: "\ed15";
}

.uil-swatchbook:before {
    content: "\ed16";
}

.uil-swiggy:before {
    content: "\ed17";
}

.uil-surprise:before {
    content: "\ed18";
}

.uil-sunset:before {
    content: "\ed19";
}

.uil-telegram:before {
    content: "\ed1a";
}

.uil-telegram-alt:before {
    content: "\ed1b";
}

.uil-tear:before {
    content: "\ed1c";
}

.uil-tablets:before {
    content: "\ed1d";
}

.uil-taxi:before {
    content: "\ed1e";
}

.uil-temperature-empty:before {
    content: "\ed1f";
}

.uil-temperature-minus:before {
    content: "\ed20";
}

.uil-temperature-half:before {
    content: "\ed21";
}

.uil-temperature-plus:before {
    content: "\ed22";
}

.uil-temperature-quarter:before {
    content: "\ed23";
}

.uil-sort-amount-up:before {
    content: "\ed24";
}

.uil-telescope:before {
    content: "\ed25";
}

.uil-temperature:before {
    content: "\ed26";
}

.uil-sun:before {
    content: "\ed27";
}

.uil-suitcase:before {
    content: "\ed28";
}

.uil-temperature-three-quarter:before {
    content: "\ed29";
}

.uil-text-strike-through:before {
    content: "\ed2a";
}

.uil-text:before {
    content: "\ed2b";
}

.uil-stethoscope-alt:before {
    content: "\ed2c";
}

.uil-text-size:before {
    content: "\ed2d";
}

.uil-th-slash:before {
    content: "\ed2e";
}

.uil-th-large:before {
    content: "\ed2f";
}

.uil-thermometer:before {
    content: "\ed30";
}

.uil-th:before {
    content: "\ed31";
}

.uil-star-half-alt:before {
    content: "\ed32";
}

.uil-thunderstorm-moon:before {
    content: "\ed33";
}

.uil-thunderstorm:before {
    content: "\ed34";
}

.uil-thumbs-up:before {
    content: "\ed35";
}

.uil-thumbs-down:before {
    content: "\ed36";
}

.uil-times-circle:before {
    content: "\ed37";
}

.uil-toggle-off:before {
    content: "\ed38";
}

.uil-thunderstorm-sun:before {
    content: "\ed39";
}

.uil-spinner-alt:before {
    content: "\ed3a";
}

.uil-times:before {
    content: "\ed3b";
}

.uil-times-square:before {
    content: "\ed3c";
}

.uil-toggle-on:before {
    content: "\ed3d";
}

.uil-suitcase-alt:before {
    content: "\ed3e";
}

.uil-tennis-ball:before {
    content: "\ed3f";
}

.uil-text-fields:before {
    content: "\ed40";
}

.uil-ticket:before {
    content: "\ed41";
}

.uil-toilet-paper:before {
    content: "\ed42";
}

.uil-top-arrow-from-top:before {
    content: "\ed43";
}

.uil-top-arrow-to-top:before {
    content: "\ed44";
}

.uil-tornado:before {
    content: "\ed45";
}

.uil-trademark-circle:before {
    content: "\ed46";
}

.uil-trademark:before {
    content: "\ed47";
}

.uil-traffic-barrier:before {
    content: "\ed48";
}

.uil-traffic-light:before {
    content: "\ed49";
}

.uil-transaction:before {
    content: "\ed4a";
}

.uil-trash-alt:before {
    content: "\ed4b";
}

.uil-trash:before {
    content: "\ed4c";
}

.uil-trees:before {
    content: "\ed4d";
}

.uil-triangle:before {
    content: "\ed4e";
}

.uil-trophy:before {
    content: "\ed4f";
}

.uil-trowel:before {
    content: "\ed50";
}

.uil-truck-loading:before {
    content: "\ed51";
}

.uil-truck:before {
    content: "\ed52";
}

.uil-tumblr-alt:before {
    content: "\ed53";
}

.uil-tumblr-square:before {
    content: "\ed54";
}

.uil-tumblr:before {
    content: "\ed55";
}

.uil-tv-retro-slash:before {
    content: "\ed56";
}

.uil-tv-retro:before {
    content: "\ed57";
}

.uil-twitter-alt:before {
    content: "\ed58";
}

.uil-twitter:before {
    content: "\ed59";
}

.uil-umbrella:before {
    content: "\ed5a";
}

.uil-unamused:before {
    content: "\ed5b";
}

.uil-underline:before {
    content: "\ed5c";
}

.uil-university:before {
    content: "\ed5d";
}

.uil-unlock-alt:before {
    content: "\ed5e";
}

.uil-unlock:before {
    content: "\ed5f";
}

.uil-upload-alt:before {
    content: "\ed60";
}

.uil-upload:before {
    content: "\ed61";
}

.uil-usd-circle:before {
    content: "\ed62";
}

.uil-usd-square:before {
    content: "\ed63";
}

.uil-user-arrows:before {
    content: "\ed64";
}

.uil-user-check:before {
    content: "\ed65";
}

.uil-user-circle:before {
    content: "\ed66";
}

.uil-user-exclamation:before {
    content: "\ed67";
}

.uil-user-location:before {
    content: "\ed68";
}

.uil-user-md:before {
    content: "\ed69";
}

.uil-user-minus:before {
    content: "\ed6a";
}

.uil-user-nurse:before {
    content: "\ed6b";
}

.uil-user-plus:before {
    content: "\ed6c";
}

.uil-user-square:before {
    content: "\ed6d";
}

.uil-user-times:before {
    content: "\ed6e";
}

.uil-user:before {
    content: "\ed6f";
}

.uil-users-alt:before {
    content: "\ed70";
}

.uil-utensils-alt:before {
    content: "\ed71";
}

.uil-utensils:before {
    content: "\ed72";
}

.uil-vector-square-alt:before {
    content: "\ed73";
}

.uil-vector-square:before {
    content: "\ed74";
}

.uil-venus:before {
    content: "\ed75";
}

.uil-vertical-align-bottom:before {
    content: "\ed76";
}

.uil-vertical-align-center:before {
    content: "\ed77";
}

.uil-vertical-align-top:before {
    content: "\ed78";
}

.uil-vertical-distribute-bottom:before {
    content: "\ed79";
}

.uil-vertical-distribution-center:before {
    content: "\ed7a";
}

.uil-vertical-distribution-top:before {
    content: "\ed7b";
}

.uil-video-question:before {
    content: "\ed7c";
}

.uil-video-slash:before {
    content: "\ed7d";
}

.uil-video:before {
    content: "\ed7e";
}

.uil-virus-slash:before {
    content: "\ed7f";
}

.uil-visual-studio:before {
    content: "\ed80";
}

.uil-vk-alt:before {
    content: "\ed81";
}

.uil-vk:before {
    content: "\ed82";
}

.uil-voicemail-rectangle:before {
    content: "\ed83";
}

.uil-voicemail:before {
    content: "\ed84";
}

.uil-volume-down:before {
    content: "\ed85";
}

.uil-volleyball:before {
    content: "\ed86";
}

.uil-volume-mute:before {
    content: "\ed87";
}

.uil-volume-off:before {
    content: "\ed88";
}

.uil-volume-up:before {
    content: "\ed89";
}

.uil-volume:before {
    content: "\ed8a";
}

.uil-vuejs-alt:before {
    content: "\ed8b";
}

.uil-vuejs:before {
    content: "\ed8c";
}

.uil-wall:before {
    content: "\ed8d";
}

.uil-wallet:before {
    content: "\ed8e";
}

.uil-watch-alt:before {
    content: "\ed8f";
}

.uil-watch:before {
    content: "\ed90";
}

.uil-water-drop-slash:before {
    content: "\ed91";
}

.uil-water-glass:before {
    content: "\ed92";
}

.uil-water:before {
    content: "\ed93";
}

.uil-web-grid-alt:before {
    content: "\ed94";
}

.uil-web-grid:before {
    content: "\ed95";
}

.uil-web-section:before {
    content: "\ed96";
}

.uil-webcam:before {
    content: "\ed97";
}

.uil-web-section-alt:before {
    content: "\ed98";
}

.uil-whatsapp-alt:before {
    content: "\ed99";
}

.uil-whatsapp:before {
    content: "\ed9a";
}

.uil-weight:before {
    content: "\ed9b";
}

.uil-wheel-barrow:before {
    content: "\ed9c";
}

.uil-wheelchair-alt:before {
    content: "\ed9d";
}

.uil-wheelchair:before {
    content: "\ed9e";
}

.uil-wifi-router:before {
    content: "\ed9f";
}

.uil-wind-moon:before {
    content: "\eda0";
}

.uil-wifi:before {
    content: "\eda1";
}

.uil-wifi-slash:before {
    content: "\eda2";
}

.uil-wind-sun:before {
    content: "\eda3";
}

.uil-wind:before {
    content: "\eda4";
}

.uil-window-grid:before {
    content: "\eda5";
}

.uil-window-maximize:before {
    content: "\eda6";
}

.uil-window-section:before {
    content: "\eda7";
}

.uil-window:before {
    content: "\eda8";
}

.uil-windows:before {
    content: "\eda9";
}

.uil-windsock:before {
    content: "\edaa";
}

.uil-windy:before {
    content: "\edab";
}

.uil-wordpress-simple:before {
    content: "\edac";
}

.uil-wordpress:before {
    content: "\edad";
}

.uil-wrap-text:before {
    content: "\edae";
}

.uil-wrench:before {
    content: "\edaf";
}

.uil-x-add:before {
    content: "\edb0";
}

.uil-x:before {
    content: "\edb1";
}

.uil-yen-circle:before {
    content: "\edb2";
}

.uil-yen:before {
    content: "\edb3";
}

.uil-yin-yang:before {
    content: "\edb4";
}

.uil-youtube:before {
    content: "\edb5";
}

.uil-tiktok:before {
    content: "\edb6";
}

.uil-x-twitter:before {
    content: "\edb7";
}
