/**
 * LVCE aviation template - components.
 *
 * Classes in this file can be used inside Joomla Custom modules and articles
 * (see docs/sample-content.md for ready-to-paste examples).
 */

/* ---------------------------------------------------------------------------
 * Icons (CSS mask, inherit currentColor; SVG files in images/icons)
 * ------------------------------------------------------------------------- */
.lvce-icon {
    display: inline-block;
    flex: 0 0 auto;
    width: 1.25em;
    height: 1.25em;
    vertical-align: -0.2em;
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* ---------------------------------------------------------------------------
 * Buttons
 * ------------------------------------------------------------------------- */
.lvce-btn {
    --btn-bg: var(--lvce-blue);
    --btn-fg: #ffffff;
    --btn-border: var(--btn-bg);
    --btn-bg-hover: var(--lvce-blue-dark);
    --btn-fg-hover: #ffffff;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55em;
    min-height: var(--lvce-touch);
    padding: 0.7em 1.35em;
    border: 2px solid var(--btn-border);
    border-radius: 999px;
    background: var(--btn-bg);
    color: var(--btn-fg);
    font-family: var(--lvce-font-heading);
    font-size: var(--lvce-text-sm);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    cursor: pointer;
    transition: background-color var(--lvce-transition), color var(--lvce-transition), border-color var(--lvce-transition), transform var(--lvce-transition), box-shadow var(--lvce-transition);
}

.lvce-btn:hover {
    background: var(--btn-bg-hover);
    border-color: var(--btn-bg-hover);
    color: var(--btn-fg-hover);
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: var(--lvce-shadow-small);
}

.lvce-btn:active {
    transform: translateY(0);
}

.lvce-btn:focus-visible {
    outline: 3px solid var(--lvce-focus);
    outline-offset: 3px;
}

.lvce-btn .lvce-icon {
    width: 1.15em;
    height: 1.15em;
}

.lvce-btn--primary {
    --btn-bg: var(--lvce-blue);
    --btn-bg-hover: var(--lvce-blue-dark);
}

.lvce-btn--accent {
    --btn-bg: var(--lvce-red);
    --btn-bg-hover: var(--lvce-red-dark);
}

.lvce-btn--outline {
    --btn-bg: transparent;
    --btn-fg: var(--lvce-link);
    --btn-border: currentColor;
    --btn-bg-hover: var(--lvce-blue);
    --btn-fg-hover: #ffffff;
}

.lvce-btn--ghost {
    --btn-bg: rgba(255, 255, 255, 0.08);
    --btn-fg: #ffffff;
    --btn-border: rgba(255, 255, 255, 0.85);
    --btn-bg-hover: #ffffff;
    --btn-fg-hover: var(--lvce-blue-dark);
}

.lvce-btn--light {
    --btn-bg: #ffffff;
    --btn-fg: var(--lvce-blue-dark);
    --btn-border: #ffffff;
    --btn-bg-hover: var(--lvce-blue-light);
    --btn-fg-hover: var(--lvce-blue-dark);
}

.lvce-btn--small {
    min-height: 2.25rem;
    padding: 0.45em 1em;
    font-size: var(--lvce-text-xs);
}

.lvce-btn--block {
    display: flex;
    width: 100%;
}

/* Action button row; works as <p> or <ul> */
.lvce-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--lvce-space-3);
    margin: var(--lvce-space-5) 0 0;
    padding: 0;
    list-style: none;
}

.lvce-actions li {
    margin: 0;
}

/* Text link with arrow */
.lvce-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
    min-height: var(--lvce-touch);
    font-weight: 700;
    text-decoration: none;
}

.lvce-link-arrow::after {
    content: "";
    width: 1.1em;
    height: 1.1em;
    background: currentColor;
    -webkit-mask: url("../images/icons/arrow-right.svg") center / contain no-repeat;
    mask: url("../images/icons/arrow-right.svg") center / contain no-repeat;
    transition: transform var(--lvce-transition);
}

.lvce-link-arrow:hover::after {
    transform: translateX(3px);
}

.lvce-link-arrow--back::after {
    display: none;
}

/* ---------------------------------------------------------------------------
 * Badges and status
 * ------------------------------------------------------------------------- */
.lvce-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    padding: 0.25em 0.7em;
    border-radius: 999px;
    background: var(--lvce-blue-light);
    color: var(--lvce-badge-text);
    font-family: var(--lvce-font-heading);
    font-size: var(--lvce-text-xs);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.03em;
    text-decoration: none;
}

a.lvce-badge:hover {
    background: var(--lvce-blue);
    color: #ffffff;
}

.lvce-badge--primary {
    background: var(--lvce-blue);
    color: #ffffff;
}

.lvce-badge--accent {
    background: var(--lvce-red);
    color: #ffffff;
}

.lvce-badge--warning {
    background: #fff1d6;
    color: #6b4100;
}

.lvce-status {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    padding: 0.45em 0.9em;
    border: 2px solid currentColor;
    border-radius: 999px;
    font-weight: 700;
}

.lvce-status::before {
    content: "";
    width: 1.2em;
    height: 1.2em;
    background: currentColor;
    -webkit-mask: url("../images/icons/question.svg") center / contain no-repeat;
    mask: url("../images/icons/question.svg") center / contain no-repeat;
}

.lvce-status--good {
    color: var(--lvce-success);
}

.lvce-status--good::before {
    -webkit-mask-image: url("../images/icons/check.svg");
    mask-image: url("../images/icons/check.svg");
}

.lvce-status--caution {
    color: var(--lvce-caution-text);
}

.lvce-status--caution::before {
    -webkit-mask-image: url("../images/icons/warning.svg");
    mask-image: url("../images/icons/warning.svg");
}

.lvce-status--nogo {
    color: var(--lvce-danger-text);
}

.lvce-status--nogo::before {
    -webkit-mask-image: url("../images/icons/no.svg");
    mask-image: url("../images/icons/no.svg");
}

.lvce-status--unknown {
    color: var(--lvce-text-muted);
}

/* ---------------------------------------------------------------------------
 * Cards
 * ------------------------------------------------------------------------- */
.lvce-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--lvce-card-bg);
    border: 1px solid var(--lvce-border);
    border-radius: var(--lvce-radius-medium);
    box-shadow: var(--lvce-shadow-small);
    transition: transform var(--lvce-transition), box-shadow var(--lvce-transition), border-color var(--lvce-transition);
}

.lvce-card:hover,
.lvce-card:focus-within {
    box-shadow: var(--lvce-shadow-hover);
    border-color: color-mix(in srgb, var(--lvce-blue) 35%, var(--lvce-border));
}

.lvce-card:has(.lvce-stretched-link):hover,
.lvce-card--link:hover {
    transform: translateY(-3px);
}

/* Card grid used for content cards (quick links, facilities ...) */
.lvce-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: var(--lvce-space-5);
    margin: 0;
    padding: 0;
    list-style: none;
}

.lvce-cards > li {
    margin: 0;
}

.lvce-cards > .lvce-card,
.lvce-cards > li > .lvce-card {
    height: 100%;
    padding: var(--lvce-space-5);
}

.lvce-card__title {
    margin: 0 0 var(--lvce-space-2);
    font-size: var(--lvce-text-lg);
}

.lvce-card__title a {
    color: var(--lvce-heading);
    text-decoration: none;
}

.lvce-card__title a:hover {
    color: var(--lvce-link);
}

.lvce-card > :last-child {
    margin-bottom: 0;
}

.lvce-card p {
    color: var(--lvce-text-muted);
}

/* Whole card clickable through the first link in its title */
.lvce-card--link .lvce-card__title a::after,
.lvce-stretched-link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}

.lvce-card--link:focus-within {
    outline: 3px solid var(--lvce-focus);
    outline-offset: 3px;
}

.lvce-card--link .lvce-card__title a:focus-visible {
    outline: none;
}

/* Icon on a card: class lvce-card--icon-{name} on the card element */
.lvce-card[class*="--icon-"] {
    padding-top: calc(var(--lvce-space-5) + 3.25rem + var(--lvce-space-4));
}

.lvce-card[class*="--icon-"]::before {
    content: "";
    position: absolute;
    top: var(--lvce-space-5);
    inset-inline-start: var(--lvce-space-5);
    width: 3.25rem;
    height: 3.25rem;
    border-radius: var(--lvce-radius-medium);
    background: var(--lvce-blue-light);
    transition: background-color var(--lvce-transition);
}

.lvce-card[class*="--icon-"]::after {
    content: "";
    position: absolute;
    top: calc(var(--lvce-space-5) + 0.8rem);
    inset-inline-start: calc(var(--lvce-space-5) + 0.8rem);
    width: 1.65rem;
    height: 1.65rem;
    background: var(--lvce-icon-accent);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    transition: background-color var(--lvce-transition);
}

/* Quick-action cards: stronger presence, red flight-strip accent */
.lvce-cards--actions {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.lvce-cards--actions .lvce-card {
    border-top: 4px solid var(--lvce-red);
}

.lvce-cards--actions .lvce-card:hover[class*="--icon-"]::before,
.lvce-cards--actions .lvce-card:focus-within[class*="--icon-"]::before {
    background: var(--lvce-blue);
}

.lvce-cards--actions .lvce-card:hover[class*="--icon-"]::after,
.lvce-cards--actions .lvce-card:focus-within[class*="--icon-"]::after {
    background: #ffffff;
}

.lvce-cards--actions .lvce-card__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--lvce-space-2);
}

.lvce-cards--actions .lvce-card__title::after {
    content: "";
    flex: 0 0 auto;
    width: 1.1em;
    height: 1.1em;
    background: var(--lvce-red);
    -webkit-mask: url("../images/icons/arrow-right.svg") center / contain no-repeat;
    mask: url("../images/icons/arrow-right.svg") center / contain no-repeat;
    transition: transform var(--lvce-transition);
}

.lvce-cards--actions .lvce-card:hover .lvce-card__title::after {
    transform: translateX(4px);
}

/* Facility cards: compact horizontal icon */
.lvce-cards--facilities .lvce-card {
    box-shadow: none;
}

/* Demonstration-content marker for sample modules */
.lvce-demo-note {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    padding: 0.3em 0.75em;
    border: 1px dashed var(--lvce-warning);
    border-radius: var(--lvce-radius-small);
    background: color-mix(in srgb, var(--lvce-warning) 10%, transparent);
    color: var(--lvce-text);
    font-size: var(--lvce-text-xs);
    font-weight: 600;
}

/* ---------------------------------------------------------------------------
 * Split layout (image + text)
 * ------------------------------------------------------------------------- */
.lvce-split {
    display: grid;
    gap: var(--lvce-space-7);
    align-items: center;
}

.lvce-split__media {
    position: relative;
    margin: 0;
}

.lvce-split__media::before {
    content: "";
    position: absolute;
    inset: auto -0.9rem -0.9rem auto;
    width: 60%;
    height: 60%;
    border-radius: var(--lvce-radius-large);
    background: repeating-linear-gradient(135deg, var(--lvce-blue-light) 0 10px, transparent 10px 20px);
    z-index: 0;
}

.lvce-split__media img {
    position: relative;
    z-index: 1;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--lvce-radius-large);
    box-shadow: var(--lvce-shadow);
}

.lvce-split__media figcaption {
    position: relative;
    z-index: 1;
    margin-top: var(--lvce-space-2);
    font-size: var(--lvce-text-sm);
    color: var(--lvce-text-muted);
}

.lvce-split__content > :last-child {
    margin-bottom: 0;
}

.lvce-split__content h2 {
    font-size: var(--lvce-text-3xl);
}

/* Highlights list with check marks */
.lvce-checklist {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    gap: var(--lvce-space-3) var(--lvce-space-5);
    margin: var(--lvce-space-5) 0;
    padding: 0;
    list-style: none;
}

.lvce-checklist li {
    position: relative;
    margin: 0;
    padding-inline-start: 2.1rem;
    font-weight: 600;
    color: var(--lvce-heading);
}

.lvce-checklist li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0.1em;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: var(--lvce-red);
}

.lvce-checklist li::after {
    content: "";
    position: absolute;
    inset-inline-start: 0.3rem;
    top: calc(0.1em + 0.3rem);
    width: 0.9rem;
    height: 0.9rem;
    background: #ffffff;
    -webkit-mask: url("../images/icons/check.svg") center / contain no-repeat;
    mask: url("../images/icons/check.svg") center / contain no-repeat;
}

/* ---------------------------------------------------------------------------
 * Learn to fly: steps along a flight path
 * ------------------------------------------------------------------------- */
.lvce-steps {
    position: relative;
    display: grid;
    gap: var(--lvce-space-6);
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: lvce-step;
}

/* The flight path: dashed contrail behind the steps (decorative) */
.lvce-steps::before {
    content: "";
    position: absolute;
    top: 1.5rem;
    bottom: 1.5rem;
    inset-inline-start: 1.6rem;
    border-inline-start: 3px dashed color-mix(in srgb, var(--lvce-blue) 45%, transparent);
}

.lvce-step {
    position: relative;
    margin: 0;
    padding: var(--lvce-space-5) var(--lvce-space-5) var(--lvce-space-5) calc(3.25rem + var(--lvce-space-6));
    counter-increment: lvce-step;
    background: var(--lvce-card-bg);
    border: 1px solid var(--lvce-border);
    border-radius: var(--lvce-radius-medium);
    box-shadow: var(--lvce-shadow-small);
}

.lvce-step::before {
    content: counter(lvce-step, decimal-leading-zero);
    position: absolute;
    top: var(--lvce-space-5);
    inset-inline-start: var(--lvce-space-4);
    display: grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 50%;
    background: var(--lvce-blue);
    color: #ffffff;
    font-family: var(--lvce-font-heading);
    font-weight: 800;
    font-size: var(--lvce-text-sm);
    box-shadow: 0 0 0 6px var(--lvce-bg-sky);
    font-variant-numeric: tabular-nums;
}

.lvce-step:last-child::before {
    background: var(--lvce-red);
}

.lvce-step[class*="--icon-"]::after {
    content: "";
    position: absolute;
    top: var(--lvce-space-5);
    inset-inline-end: var(--lvce-space-5);
    width: 2rem;
    height: 2rem;
    background: color-mix(in srgb, var(--lvce-blue) 55%, transparent);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.lvce-step[class*="--icon-"] h3,
.lvce-step[class*="--icon-"] .lvce-step__title {
    padding-inline-end: 2.5rem;
}

.lvce-step h3,
.lvce-step__title {
    margin-bottom: var(--lvce-space-2);
    font-size: var(--lvce-text-xl);
}

.lvce-step p {
    color: var(--lvce-text-muted);
}

.lvce-step > :last-child {
    margin-bottom: 0;
}

/* ---------------------------------------------------------------------------
 * Hero (mod_custom layout "hero")
 * ------------------------------------------------------------------------- */
.lvce-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    align-items: center;
    min-height: clamp(32rem, 82vh, 54rem);
    overflow: hidden;
    color: #ffffff;
    background: var(--lvce-blue-dark);
}

.lvce-hero__media {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.lvce-hero__image,
.lvce-hero__sky {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
}

.lvce-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--lvce-overlay);
}

.lvce-hero__overlay::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 40%;
    background: linear-gradient(0deg, rgba(0, 25, 50, 0.55), transparent);
}

.lvce-hero--light-overlay .lvce-hero__overlay {
    background: linear-gradient(90deg, rgba(0, 28, 56, 0.6) 0%, rgba(0, 40, 80, 0.25) 60%, transparent 100%);
}

/* Diagonal lower edge, like a wing trailing edge */
.lvce-hero::after {
    content: "";
    position: absolute;
    inset: auto 0 -1px;
    height: clamp(1.5rem, 5vw, 4.5rem);
    background: var(--lvce-bg);
    clip-path: polygon(0 100%, 100% 0, 100% 100%);
    z-index: 1;
}

.lvce-hero__inner {
    position: relative;
    z-index: 2;
    padding-block: clamp(4rem, 3rem + 6vw, 8rem) clamp(5rem, 4rem + 6vw, 9rem);
}

.header-overlay .lvce-hero__inner {
    padding-top: calc(var(--lvce-header-height) + clamp(3rem, 2rem + 5vw, 6rem));
}

.lvce-hero__content {
    max-width: 46rem;
}

.lvce-hero__content h1,
.lvce-hero__content h2 {
    margin-bottom: var(--lvce-space-4);
    font-size: var(--lvce-text-hero);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.025em;
    color: #ffffff;
    text-shadow: 0 2px 24px rgba(0, 20, 40, 0.35);
}

.lvce-hero__content p {
    max-width: 38rem;
    font-size: var(--lvce-text-lg);
    color: rgba(255, 255, 255, 0.92);
}

.lvce-hero__content .lvce-eyebrow {
    color: #ffffff;
    font-size: var(--lvce-text-xs);
}

.lvce-hero__content .lvce-eyebrow::before {
    background: var(--lvce-red);
    height: 3px;
}

.lvce-hero__content a:not(.lvce-btn) {
    color: #ffffff;
}

.lvce-hero__content .lvce-btn--primary {
    --btn-bg: var(--lvce-red);
    --btn-bg-hover: var(--lvce-red-dark);
}

.lvce-hero__content .lvce-btn--outline {
    --btn-bg: rgba(255, 255, 255, 0.08);
    --btn-fg: #ffffff;
    --btn-border: rgba(255, 255, 255, 0.85);
    --btn-bg-hover: #ffffff;
    --btn-fg-hover: var(--lvce-blue-dark);
}

.lvce-hero--compact {
    min-height: clamp(18rem, 42vh, 26rem);
}

.lvce-hero--compact .lvce-hero__content h1,
.lvce-hero--compact .lvce-hero__content h2 {
    font-size: var(--lvce-text-3xl);
}

/* Aircraft-specification style detail */
.lvce-spec {
    display: flex;
    flex-wrap: wrap;
    gap: var(--lvce-space-2);
    margin: var(--lvce-space-6) 0 0;
    padding: 0;
    list-style: none;
}

.lvce-spec li {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: var(--lvce-space-2) var(--lvce-space-4);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: var(--lvce-radius-small);
    background: rgba(0, 20, 40, 0.35);
    font-size: var(--lvce-text-sm);
    line-height: 1.3;
    backdrop-filter: blur(4px);
}

.lvce-spec li strong,
.lvce-spec li span:first-child {
    font-family: var(--lvce-font-heading);
    font-size: var(--lvce-text-xs);
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    opacity: 0.85;
}

.lvce-hero__scroll {
    position: absolute;
    left: 50%;
    bottom: clamp(2rem, 6vw, 5rem);
    z-index: 3;
    display: none;
    place-items: center;
    width: 3rem;
    height: 3rem;
    margin-left: -1.5rem;
    border: 2px solid rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    color: #ffffff;
    animation: lvce-bob 2.4s ease-in-out infinite;
}

.lvce-hero__scroll:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.15);
}

@keyframes lvce-bob {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(6px);
    }
}

/* Content shown in the hero-overlay position: floating info card */
.lvce-hero-area__overlay .lvce-custom,
.lvce-hero-area__overlay .lvce-card {
    padding: var(--lvce-space-5);
    background: var(--lvce-card-bg);
    border-radius: var(--lvce-radius-large);
    box-shadow: var(--lvce-shadow);
}

.lvce-hero-area__overlay .lvce-spec {
    margin: 0;
}

.lvce-hero-area__overlay .lvce-spec li {
    border-color: var(--lvce-border);
    background: var(--lvce-bg-sky);
    color: var(--lvce-heading);
    backdrop-filter: none;
}

/* Footer logo plate: keeps a dark logo readable on the dark footer */
.lvce-brand--plate {
    padding: var(--lvce-space-2) var(--lvce-space-3);
    border-radius: var(--lvce-radius-medium);
    background: #ffffff;
}

/* ---------------------------------------------------------------------------
 * Call to action (mod_custom layout "cta")
 * ------------------------------------------------------------------------- */
.lvce-cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(2rem, 1.2rem + 4vw, 4.5rem);
    border-radius: var(--lvce-radius-large);
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--lvce-blue) 70%, transparent) 0 40%, transparent 40%),
        linear-gradient(120deg, var(--lvce-blue-dark), var(--lvce-blue));
    color: #e9f1fa;
    box-shadow: var(--lvce-shadow);
}

.lvce-cta__media {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.lvce-cta__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.25;
    mix-blend-mode: luminosity;
}

.lvce-cta__content {
    position: relative;
    max-width: 44rem;
}

.lvce-cta__content h2,
.lvce-cta__content h3 {
    color: #ffffff;
    font-size: var(--lvce-text-3xl);
}

.lvce-cta__content p {
    font-size: var(--lvce-text-lg);
    color: rgba(255, 255, 255, 0.9);
}

.lvce-cta__content a:not(.lvce-btn) {
    color: #ffffff;
}

.lvce-cta__content .lvce-btn--primary {
    --btn-bg: var(--lvce-red);
    --btn-bg-hover: var(--lvce-red-dark);
}

.lvce-cta__content .lvce-btn--outline {
    --btn-fg: #ffffff;
    --btn-border: rgba(255, 255, 255, 0.85);
    --btn-bg-hover: #ffffff;
    --btn-fg-hover: var(--lvce-blue-dark);
}

/* Decorative dashed flight trail with an aircraft */
.lvce-cta__trail {
    position: absolute;
    inset-inline-end: clamp(-4rem, -2vw, 0rem);
    bottom: 1.5rem;
    width: min(26rem, 45%);
    height: 9rem;
    border-top: 3px dashed rgba(255, 255, 255, 0.35);
    border-top-left-radius: 100% 100%;
    pointer-events: none;
}

.lvce-cta__trail::after {
    content: "";
    position: absolute;
    top: -1.35rem;
    inset-inline-end: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    background: #ffffff;
    -webkit-mask: url("../images/icons/plane.svg") center / contain no-repeat;
    mask: url("../images/icons/plane.svg") center / contain no-repeat;
    transform: rotate(80deg);
    opacity: 0.85;
}

/* ---------------------------------------------------------------------------
 * Gallery grid (mod_custom layout "gallery" or class lvce-gallery in articles)
 * ------------------------------------------------------------------------- */
.lvce-gallery__content,
.lvce-gallery:not([data-lvce-gallery]) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr));
    grid-auto-rows: clamp(9rem, 7rem + 6vw, 14rem);
    grid-auto-flow: dense;
    gap: var(--lvce-space-3);
}

.lvce-gallery__content > p,
.lvce-gallery:not([data-lvce-gallery]) > p {
    display: contents;
}

.lvce-gallery__content > :is(h2, h3, h4, p:not(:has(img))),
.lvce-gallery:not([data-lvce-gallery]) > :is(h2, h3, h4) {
    display: block;
    grid-column: 1 / -1;
    height: auto;
}

.lvce-gallery figure,
.lvce-gallery__item,
.lvce-gallery__content > img,
.lvce-gallery__content > p > img,
.lvce-gallery__content > a,
.lvce-gallery__content > p > a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: var(--lvce-radius-medium);
    background: var(--lvce-bg-alt);
}

.lvce-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--lvce-radius-medium);
    transition: transform 400ms ease;
}

.lvce-gallery .is-portrait {
    grid-row: span 2;
}

.lvce-gallery .is-wide {
    grid-column: span 2;
}

.lvce-gallery__item {
    cursor: zoom-in;
}

.lvce-gallery__item:hover img,
.lvce-gallery__item:focus-visible img {
    transform: scale(1.04);
}

.lvce-gallery__item:focus-visible {
    outline: 3px solid var(--lvce-focus);
    outline-offset: 3px;
}

.lvce-gallery__item::before,
.lvce-gallery__item::after {
    content: "";
    position: absolute;
    z-index: 2;
    opacity: 0;
    transition: opacity var(--lvce-transition);
}

.lvce-gallery__item::before {
    top: var(--lvce-space-2);
    inset-inline-end: var(--lvce-space-2);
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: rgba(0, 25, 50, 0.7);
}

.lvce-gallery__item::after {
    top: calc(var(--lvce-space-2) + 0.6rem);
    inset-inline-end: calc(var(--lvce-space-2) + 0.6rem);
    width: 1.05rem;
    height: 1.05rem;
    background: #ffffff;
    -webkit-mask: url("../images/icons/search.svg") center / contain no-repeat;
    mask: url("../images/icons/search.svg") center / contain no-repeat;
}

.lvce-gallery__item:hover::before,
.lvce-gallery__item:hover::after,
.lvce-gallery__item:focus-visible::before,
.lvce-gallery__item:focus-visible::after {
    opacity: 1;
}

.lvce-gallery figcaption,
.lvce-gallery__caption {
    position: absolute;
    inset: auto 0 0;
    padding: var(--lvce-space-6) var(--lvce-space-3) var(--lvce-space-2);
    background: linear-gradient(0deg, rgba(0, 20, 40, 0.8), transparent);
    color: #ffffff;
    font-size: var(--lvce-text-xs);
    line-height: 1.35;
    text-align: start;
    border-radius: 0 0 var(--lvce-radius-medium) var(--lvce-radius-medium);
    pointer-events: none;
}

/* Lightbox (native <dialog>) */
.lvce-lightbox {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(4, 14, 26, 0.96);
    color: #ffffff;
    overscroll-behavior: contain;
}

.lvce-lightbox::backdrop {
    background: rgba(4, 14, 26, 0.9);
}

.lvce-lightbox[open] {
    display: grid;
    grid-template-rows: auto 1fr auto;
}

.lvce-lightbox__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--lvce-space-3);
    padding: var(--lvce-space-3) var(--lvce-space-4);
}

.lvce-lightbox__counter {
    margin: 0;
    font-size: var(--lvce-text-sm);
    font-variant-numeric: tabular-nums;
    color: #c9d8e8;
}

.lvce-lightbox__stage {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 0;
    padding: 0 var(--lvce-space-2);
    touch-action: pan-y pinch-zoom;
}

.lvce-lightbox__figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
}

.lvce-lightbox__image {
    max-width: min(100%, 1600px);
    max-height: calc(100vh - 11rem);
    max-height: calc(100dvh - 11rem);
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: var(--lvce-radius-small);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.lvce-lightbox__caption {
    max-width: 60rem;
    margin-top: var(--lvce-space-3);
    padding-inline: var(--lvce-space-3);
    text-align: center;
    color: #e6eef7;
    font-size: var(--lvce-text-sm);
}

.lvce-lightbox__controls {
    display: flex;
    justify-content: center;
    gap: var(--lvce-space-4);
    padding: var(--lvce-space-3) var(--lvce-space-4) var(--lvce-space-5);
}

.lvce-lightbox__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--lvce-space-2);
    min-width: 3rem;
    min-height: 3rem;
    padding: 0 var(--lvce-space-4);
    border: 2px solid rgba(255, 255, 255, 0.5);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    color: #ffffff;
    font-weight: 600;
}

.lvce-lightbox__btn:hover {
    background: rgba(255, 255, 255, 0.18);
    border-color: #ffffff;
}

.lvce-lightbox__btn:focus-visible {
    outline: 3px solid var(--lvce-focus);
    outline-offset: 2px;
}

.lvce-lightbox__btn[disabled] {
    opacity: 0.35;
}

.lvce-lightbox__close {
    padding: 0;
    width: 3rem;
}

/* ---------------------------------------------------------------------------
 * Sponsors
 * ------------------------------------------------------------------------- */
.lvce-sponsors {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
    gap: var(--lvce-space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}

.lvce-sponsors li {
    margin: 0;
}

.lvce-sponsors a,
.lvce-sponsors__item {
    position: relative;
    display: grid;
    place-items: center;
    height: 100%;
    min-height: 6.5rem;
    padding: var(--lvce-space-4);
    border: 1px solid var(--lvce-border);
    border-radius: var(--lvce-radius-medium);
    background: #ffffff;
    transition: border-color var(--lvce-transition), box-shadow var(--lvce-transition);
}

.lvce-sponsors img {
    width: auto;
    max-width: 100%;
    max-height: 4rem;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.75;
    transition: filter var(--lvce-transition), opacity var(--lvce-transition);
}

.lvce-sponsors a:hover,
.lvce-sponsors a:focus-visible {
    border-color: var(--lvce-blue);
    box-shadow: var(--lvce-shadow-small);
}

.lvce-sponsors a:hover img,
.lvce-sponsors a:focus-visible img {
    filter: none;
    opacity: 1;
}

.lvce-sponsors a[target="_blank"]::after {
    content: "";
    position: absolute;
    top: 0.5rem;
    inset-inline-end: 0.5rem;
    width: 0.9rem;
    height: 0.9rem;
    background: #607080;
    -webkit-mask: url("../images/icons/external.svg") center / contain no-repeat;
    mask: url("../images/icons/external.svg") center / contain no-repeat;
}

/* ---------------------------------------------------------------------------
 * Weather / flying conditions
 * ------------------------------------------------------------------------- */
.lvce-weather {
    padding: var(--lvce-space-5);
    border: 1px solid var(--lvce-border);
    border-radius: var(--lvce-radius-large);
    background:
        linear-gradient(160deg, var(--lvce-bg-sky), var(--lvce-card-bg) 55%);
    box-shadow: var(--lvce-shadow-small);
}

.lvce-weather__header {
    display: flex;
    align-items: center;
    gap: var(--lvce-space-3);
    margin-bottom: var(--lvce-space-4);
}

.lvce-weather__header .lvce-icon {
    width: 2rem;
    height: 2rem;
    color: var(--lvce-blue);
}

.lvce-weather__notice {
    font-size: var(--lvce-text-xs);
    color: var(--lvce-text-muted);
}

.lvce-weather__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--lvce-space-3);
    margin: 0 0 var(--lvce-space-4);
}

.lvce-weather__grid > div {
    padding: var(--lvce-space-3);
    border-radius: var(--lvce-radius-small);
    background: var(--lvce-card-bg);
    border: 1px solid var(--lvce-border);
}

.lvce-weather__grid dt {
    font-size: var(--lvce-text-xs);
    font-weight: 600;
    color: var(--lvce-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.lvce-weather__grid dd {
    margin: 0;
    font-family: var(--lvce-font-heading);
    font-size: var(--lvce-text-xl);
    font-weight: 750;
    color: var(--lvce-heading);
    font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------------------
 * Contact and map
 * ------------------------------------------------------------------------- */
.lvce-contact {
    display: grid;
    gap: var(--lvce-space-7);
    align-items: start;
}

.lvce-contact__address {
    margin-bottom: var(--lvce-space-4);
    font-size: var(--lvce-text-lg);
    line-height: 1.5;
}

.lvce-contact__list {
    display: grid;
    gap: var(--lvce-space-2);
    margin: 0 0 var(--lvce-space-4);
    padding: 0;
    list-style: none;
}

.lvce-contact__list li {
    display: flex;
    align-items: center;
    gap: var(--lvce-space-2);
    margin: 0;
    min-height: var(--lvce-touch);
}

.lvce-contact__list .lvce-icon {
    color: var(--lvce-accent-text);
}

.lvce-contact__subtitle {
    font-size: var(--lvce-text-lg);
}

.lvce-consent-embed,
.lvce-map-placeholder {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--lvce-radius-large);
    border: 1px solid var(--lvce-border);
    background:
        repeating-linear-gradient(0deg, transparent 0 38px, color-mix(in srgb, var(--lvce-blue) 10%, transparent) 38px 40px),
        repeating-linear-gradient(90deg, transparent 0 38px, color-mix(in srgb, var(--lvce-blue) 10%, transparent) 38px 40px),
        var(--lvce-bg-sky);
}

.lvce-map-placeholder .lvce-icon {
    width: 4rem;
    height: 4rem;
    color: color-mix(in srgb, var(--lvce-blue) 40%, transparent);
}

.lvce-consent-embed__placeholder {
    max-width: 26rem;
    padding: var(--lvce-space-5);
    text-align: center;
}

.lvce-consent-embed__placeholder .lvce-icon {
    width: 2.5rem;
    height: 2.5rem;
    margin: 0 auto var(--lvce-space-3);
    color: var(--lvce-blue);
}

.lvce-consent-embed__alt {
    margin: var(--lvce-space-3) 0 0;
    font-size: var(--lvce-text-sm);
}

.lvce-consent-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* ---------------------------------------------------------------------------
 * Social links, share block
 * ------------------------------------------------------------------------- */
.lvce-social {
    display: flex;
    flex-wrap: wrap;
    gap: var(--lvce-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.lvce-social li {
    margin: 0;
}

.lvce-social__link {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    min-height: var(--lvce-touch);
    padding: 0.4em 1em;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none;
}

.lvce-social__link::after {
    content: "";
    width: 0.85em;
    height: 0.85em;
    background: currentColor;
    -webkit-mask: url("../images/icons/external.svg") center / contain no-repeat;
    mask: url("../images/icons/external.svg") center / contain no-repeat;
    opacity: 0.7;
}

.lvce-social__link:hover {
    background: rgba(255, 255, 255, 0.12);
    text-decoration: none;
}

.lvce-share {
    margin-top: var(--lvce-space-6);
    padding-top: var(--lvce-space-5);
    border-top: 1px solid var(--lvce-border);
}

.lvce-share__title {
    font-size: var(--lvce-text-base);
    margin-bottom: var(--lvce-space-3);
}

.lvce-share__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--lvce-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.lvce-share__list li {
    margin: 0;
}

.lvce-share__status {
    min-height: 1.5em;
    margin: var(--lvce-space-2) 0 0;
    font-size: var(--lvce-text-sm);
    color: var(--lvce-success);
}

/* ---------------------------------------------------------------------------
 * Breadcrumbs
 * ------------------------------------------------------------------------- */
.lvce-breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--lvce-space-1) var(--lvce-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--lvce-text-sm);
    color: var(--lvce-text-muted);
}

.lvce-breadcrumbs__item {
    display: inline-flex;
    align-items: center;
    gap: var(--lvce-space-2);
    margin: 0;
    min-width: 0;
}

.lvce-breadcrumbs__item + .lvce-breadcrumbs__item::before {
    content: "";
    width: 0.9em;
    height: 0.9em;
    background: currentColor;
    opacity: 0.6;
    -webkit-mask: url("../images/icons/chevron-right.svg") center / contain no-repeat;
    mask: url("../images/icons/chevron-right.svg") center / contain no-repeat;
}

[dir="rtl"] .lvce-breadcrumbs__item + .lvce-breadcrumbs__item::before {
    transform: scaleX(-1);
}

.lvce-breadcrumbs__item a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
}

.lvce-breadcrumbs__item.is-current {
    color: var(--lvce-text);
    font-weight: 600;
}

/* ---------------------------------------------------------------------------
 * Empty state, fallbacks, plain modules
 * ------------------------------------------------------------------------- */
.lvce-empty {
    display: grid;
    justify-items: center;
    gap: var(--lvce-space-2);
    padding: var(--lvce-space-7) var(--lvce-space-5);
    border: 2px dashed var(--lvce-border);
    border-radius: var(--lvce-radius-large);
    text-align: center;
    color: var(--lvce-text-muted);
}

.lvce-empty .lvce-icon {
    width: 2.5rem;
    height: 2.5rem;
    color: var(--lvce-blue);
    transform: rotate(45deg);
}

.lvce-empty p {
    margin: 0;
}

.lvce-empty__title {
    font-family: var(--lvce-font-heading);
    font-size: var(--lvce-text-lg);
    font-weight: 700;
    color: var(--lvce-heading);
}

.lvce-empty--compact {
    padding: var(--lvce-space-5);
}

.lvce-media-fallback {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-height: 8rem;
    background:
        radial-gradient(circle at 20% 110%, rgba(255, 255, 255, 0.35) 0 30%, transparent 30%),
        linear-gradient(160deg, var(--lvce-blue) 0%, color-mix(in srgb, var(--lvce-blue) 55%, #9fd0ff) 100%);
    color: rgba(255, 255, 255, 0.9);
}

.lvce-media-fallback .lvce-icon {
    width: 3rem;
    height: 3rem;
    transform: rotate(45deg);
}

.lvce-module--card {
    padding: var(--lvce-space-5);
    background: var(--lvce-card-bg);
    border: 1px solid var(--lvce-border);
    border-radius: var(--lvce-radius-medium);
    box-shadow: var(--lvce-shadow-small);
}

.lvce-module__title {
    font-size: var(--lvce-text-lg);
    padding-bottom: var(--lvce-space-2);
    border-bottom: 2px solid var(--lvce-blue-light);
}

.lvce-module__body > :last-child,
.lvce-plain > :last-child,
.lvce-custom > :last-child {
    margin-bottom: 0;
}

/* Background image set in a Custom module (default layout) */
.lvce-custom.has-background {
    padding: var(--lvce-space-6);
    border-radius: var(--lvce-radius-large);
    background-image: var(--lvce-module-bg);
    background-size: cover;
    background-position: center;
    color: #ffffff;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45);
}

/* Feature / spec list for article facts */
.lvce-spec-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
    gap: var(--lvce-space-3);
    margin: 0;
}

.lvce-spec-list__row {
    padding: var(--lvce-space-3) var(--lvce-space-4);
    border-inline-start: 3px solid var(--lvce-red);
    background: var(--lvce-card-bg);
    border-radius: 0 var(--lvce-radius-small) var(--lvce-radius-small) 0;
}

.lvce-spec-list dt {
    font-size: var(--lvce-text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--lvce-text-muted);
}

.lvce-spec-list dd {
    margin: 0;
    font-weight: 700;
    color: var(--lvce-heading);
}

/* Reveal on scroll (enabled by JS, skipped for reduced motion) */
.js .lvce-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 600ms ease, transform 600ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.js .lvce-reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* ---------------------------------------------------------------------------
 * Icon catalogue (generated from images/icons/*.svg)
 * Use: <span class="lvce-icon lvce-icon--plane" aria-hidden="true"></span>
 * or on cards/steps: class="lvce-card lvce-card--icon-plane"
 * ------------------------------------------------------------------------- */

.lvce-icon--plane,
.lvce-card--icon-plane::after,
.lvce-step--icon-plane::after {
    -webkit-mask-image: url("../images/icons/plane.svg");
    mask-image: url("../images/icons/plane.svg");
}

.lvce-icon--propeller,
.lvce-card--icon-propeller::after,
.lvce-step--icon-propeller::after {
    -webkit-mask-image: url("../images/icons/propeller.svg");
    mask-image: url("../images/icons/propeller.svg");
}

.lvce-icon--menu,
.lvce-card--icon-menu::after,
.lvce-step--icon-menu::after {
    -webkit-mask-image: url("../images/icons/menu.svg");
    mask-image: url("../images/icons/menu.svg");
}

.lvce-icon--close,
.lvce-card--icon-close::after,
.lvce-step--icon-close::after {
    -webkit-mask-image: url("../images/icons/close.svg");
    mask-image: url("../images/icons/close.svg");
}

.lvce-icon--search,
.lvce-card--icon-search::after,
.lvce-step--icon-search::after {
    -webkit-mask-image: url("../images/icons/search.svg");
    mask-image: url("../images/icons/search.svg");
}

.lvce-icon--chevron-down,
.lvce-card--icon-chevron-down::after,
.lvce-step--icon-chevron-down::after {
    -webkit-mask-image: url("../images/icons/chevron-down.svg");
    mask-image: url("../images/icons/chevron-down.svg");
}

.lvce-icon--chevron-left,
.lvce-card--icon-chevron-left::after,
.lvce-step--icon-chevron-left::after {
    -webkit-mask-image: url("../images/icons/chevron-left.svg");
    mask-image: url("../images/icons/chevron-left.svg");
}

.lvce-icon--chevron-right,
.lvce-card--icon-chevron-right::after,
.lvce-step--icon-chevron-right::after {
    -webkit-mask-image: url("../images/icons/chevron-right.svg");
    mask-image: url("../images/icons/chevron-right.svg");
}

.lvce-icon--arrow-right,
.lvce-card--icon-arrow-right::after,
.lvce-step--icon-arrow-right::after {
    -webkit-mask-image: url("../images/icons/arrow-right.svg");
    mask-image: url("../images/icons/arrow-right.svg");
}

.lvce-icon--arrow-left,
.lvce-card--icon-arrow-left::after,
.lvce-step--icon-arrow-left::after {
    -webkit-mask-image: url("../images/icons/arrow-left.svg");
    mask-image: url("../images/icons/arrow-left.svg");
}

.lvce-icon--calendar,
.lvce-card--icon-calendar::after,
.lvce-step--icon-calendar::after {
    -webkit-mask-image: url("../images/icons/calendar.svg");
    mask-image: url("../images/icons/calendar.svg");
}

.lvce-icon--clock,
.lvce-card--icon-clock::after,
.lvce-step--icon-clock::after {
    -webkit-mask-image: url("../images/icons/clock.svg");
    mask-image: url("../images/icons/clock.svg");
}

.lvce-icon--pin,
.lvce-card--icon-pin::after,
.lvce-step--icon-pin::after {
    -webkit-mask-image: url("../images/icons/pin.svg");
    mask-image: url("../images/icons/pin.svg");
}

.lvce-icon--map,
.lvce-card--icon-map::after,
.lvce-step--icon-map::after {
    -webkit-mask-image: url("../images/icons/map.svg");
    mask-image: url("../images/icons/map.svg");
}

.lvce-icon--phone,
.lvce-card--icon-phone::after,
.lvce-step--icon-phone::after {
    -webkit-mask-image: url("../images/icons/phone.svg");
    mask-image: url("../images/icons/phone.svg");
}

.lvce-icon--mail,
.lvce-card--icon-mail::after,
.lvce-step--icon-mail::after {
    -webkit-mask-image: url("../images/icons/mail.svg");
    mask-image: url("../images/icons/mail.svg");
}

.lvce-icon--sun,
.lvce-card--icon-sun::after,
.lvce-step--icon-sun::after {
    -webkit-mask-image: url("../images/icons/sun.svg");
    mask-image: url("../images/icons/sun.svg");
}

.lvce-icon--moon,
.lvce-card--icon-moon::after,
.lvce-step--icon-moon::after {
    -webkit-mask-image: url("../images/icons/moon.svg");
    mask-image: url("../images/icons/moon.svg");
}

.lvce-icon--contrast,
.lvce-card--icon-contrast::after,
.lvce-step--icon-contrast::after {
    -webkit-mask-image: url("../images/icons/contrast.svg");
    mask-image: url("../images/icons/contrast.svg");
}

.lvce-icon--external,
.lvce-card--icon-external::after,
.lvce-step--icon-external::after {
    -webkit-mask-image: url("../images/icons/external.svg");
    mask-image: url("../images/icons/external.svg");
}

.lvce-icon--camera,
.lvce-card--icon-camera::after,
.lvce-step--icon-camera::after {
    -webkit-mask-image: url("../images/icons/camera.svg");
    mask-image: url("../images/icons/camera.svg");
}

.lvce-icon--shield,
.lvce-card--icon-shield::after,
.lvce-step--icon-shield::after {
    -webkit-mask-image: url("../images/icons/shield.svg");
    mask-image: url("../images/icons/shield.svg");
}

.lvce-icon--tools,
.lvce-card--icon-tools::after,
.lvce-step--icon-tools::after {
    -webkit-mask-image: url("../images/icons/tools.svg");
    mask-image: url("../images/icons/tools.svg");
}

.lvce-icon--parking,
.lvce-card--icon-parking::after,
.lvce-step--icon-parking::after {
    -webkit-mask-image: url("../images/icons/parking.svg");
    mask-image: url("../images/icons/parking.svg");
}

.lvce-icon--plug,
.lvce-card--icon-plug::after,
.lvce-step--icon-plug::after {
    -webkit-mask-image: url("../images/icons/plug.svg");
    mask-image: url("../images/icons/plug.svg");
}

.lvce-icon--home,
.lvce-card--icon-home::after,
.lvce-step--icon-home::after {
    -webkit-mask-image: url("../images/icons/home.svg");
    mask-image: url("../images/icons/home.svg");
}

.lvce-icon--folder,
.lvce-card--icon-folder::after,
.lvce-step--icon-folder::after {
    -webkit-mask-image: url("../images/icons/folder.svg");
    mask-image: url("../images/icons/folder.svg");
}

.lvce-icon--refresh,
.lvce-card--icon-refresh::after,
.lvce-step--icon-refresh::after {
    -webkit-mask-image: url("../images/icons/refresh.svg");
    mask-image: url("../images/icons/refresh.svg");
}

.lvce-icon--user,
.lvce-card--icon-user::after,
.lvce-step--icon-user::after {
    -webkit-mask-image: url("../images/icons/user.svg");
    mask-image: url("../images/icons/user.svg");
}

.lvce-icon--users,
.lvce-card--icon-users::after,
.lvce-step--icon-users::after {
    -webkit-mask-image: url("../images/icons/users.svg");
    mask-image: url("../images/icons/users.svg");
}

.lvce-icon--eye,
.lvce-card--icon-eye::after,
.lvce-step--icon-eye::after {
    -webkit-mask-image: url("../images/icons/eye.svg");
    mask-image: url("../images/icons/eye.svg");
}

.lvce-icon--link,
.lvce-card--icon-link::after,
.lvce-step--icon-link::after {
    -webkit-mask-image: url("../images/icons/link.svg");
    mask-image: url("../images/icons/link.svg");
}

.lvce-icon--share,
.lvce-card--icon-share::after,
.lvce-step--icon-share::after {
    -webkit-mask-image: url("../images/icons/share.svg");
    mask-image: url("../images/icons/share.svg");
}

.lvce-icon--check,
.lvce-card--icon-check::after,
.lvce-step--icon-check::after {
    -webkit-mask-image: url("../images/icons/check.svg");
    mask-image: url("../images/icons/check.svg");
}

.lvce-icon--info,
.lvce-card--icon-info::after,
.lvce-step--icon-info::after {
    -webkit-mask-image: url("../images/icons/info.svg");
    mask-image: url("../images/icons/info.svg");
}

.lvce-icon--warning,
.lvce-card--icon-warning::after,
.lvce-step--icon-warning::after {
    -webkit-mask-image: url("../images/icons/warning.svg");
    mask-image: url("../images/icons/warning.svg");
}

.lvce-icon--question,
.lvce-card--icon-question::after,
.lvce-step--icon-question::after {
    -webkit-mask-image: url("../images/icons/question.svg");
    mask-image: url("../images/icons/question.svg");
}

.lvce-icon--no,
.lvce-card--icon-no::after,
.lvce-step--icon-no::after {
    -webkit-mask-image: url("../images/icons/no.svg");
    mask-image: url("../images/icons/no.svg");
}

.lvce-icon--runway,
.lvce-card--icon-runway::after,
.lvce-step--icon-runway::after {
    -webkit-mask-image: url("../images/icons/runway.svg");
    mask-image: url("../images/icons/runway.svg");
}

.lvce-icon--wind,
.lvce-card--icon-wind::after,
.lvce-step--icon-wind::after {
    -webkit-mask-image: url("../images/icons/wind.svg");
    mask-image: url("../images/icons/wind.svg");
}

.lvce-icon--compass,
.lvce-card--icon-compass::after,
.lvce-step--icon-compass::after {
    -webkit-mask-image: url("../images/icons/compass.svg");
    mask-image: url("../images/icons/compass.svg");
}

.lvce-icon--school,
.lvce-card--icon-school::after,
.lvce-step--icon-school::after {
    -webkit-mask-image: url("../images/icons/school.svg");
    mask-image: url("../images/icons/school.svg");
}

.lvce-icon--trophy,
.lvce-card--icon-trophy::after,
.lvce-step--icon-trophy::after {
    -webkit-mask-image: url("../images/icons/trophy.svg");
    mask-image: url("../images/icons/trophy.svg");
}

.lvce-icon--flag,
.lvce-card--icon-flag::after,
.lvce-step--icon-flag::after {
    -webkit-mask-image: url("../images/icons/flag.svg");
    mask-image: url("../images/icons/flag.svg");
}

.lvce-icon--clubhouse,
.lvce-card--icon-clubhouse::after,
.lvce-step--icon-clubhouse::after {
    -webkit-mask-image: url("../images/icons/clubhouse.svg");
    mask-image: url("../images/icons/clubhouse.svg");
}

.lvce-icon--weather,
.lvce-card--icon-weather::after,
.lvce-step--icon-weather::after {
    -webkit-mask-image: url("../images/icons/weather.svg");
    mask-image: url("../images/icons/weather.svg");
}

.lvce-icon--thermometer,
.lvce-card--icon-thermometer::after,
.lvce-step--icon-thermometer::after {
    -webkit-mask-image: url("../images/icons/thermometer.svg");
    mask-image: url("../images/icons/thermometer.svg");
}

.lvce-icon--droplet,
.lvce-card--icon-droplet::after,
.lvce-step--icon-droplet::after {
    -webkit-mask-image: url("../images/icons/droplet.svg");
    mask-image: url("../images/icons/droplet.svg");
}

.lvce-icon--star,
.lvce-card--icon-star::after,
.lvce-step--icon-star::after {
    -webkit-mask-image: url("../images/icons/star.svg");
    mask-image: url("../images/icons/star.svg");
}

.lvce-icon--transmitter,
.lvce-card--icon-transmitter::after,
.lvce-step--icon-transmitter::after {
    -webkit-mask-image: url("../images/icons/transmitter.svg");
    mask-image: url("../images/icons/transmitter.svg");
}

.lvce-icon--image,
.lvce-card--icon-image::after,
.lvce-step--icon-image::after {
    -webkit-mask-image: url("../images/icons/image.svg");
    mask-image: url("../images/icons/image.svg");
}

.lvce-icon--heart,
.lvce-card--icon-heart::after,
.lvce-step--icon-heart::after {
    -webkit-mask-image: url("../images/icons/heart.svg");
    mask-image: url("../images/icons/heart.svg");
}
