/**
 * FYI Layer Slider v1.4.4
 *
 * Reusable presentation controls layered over the proven v1.0.0 renderer.
 * Imported coordinates, timing, markup, and JavaScript behavior are unchanged.
 */
.fyi-layer-slider {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: var(--fyi-stage-background, transparent);
    color: #fff;
}

.fyi-layer-slider__viewport {
    position: relative;
    background: transparent;
    width: 100%;
    aspect-ratio: var(--fyi-slider-ratio, 960 / 300);
    min-height: 220px;
}

.fyi-layer-slider__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    background-color: transparent;
    background-position: var(--fyi-background-position, center center);
    background-repeat: no-repeat;
    background-size: var(--fyi-background-size, cover);
    transition: opacity .45s ease;
}

.fyi-layer-slider__slide.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}

/*
 * The background can span the complete banner while imported layer
 * coordinates remain centred on their original Revolution design grid.
 */
.fyi-layer-slider__canvas {
    position: absolute;
    inset-block: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(100%, var(--fyi-layer-grid-max-width, 960px));
    height: 100%;
    max-width: 100%;
}

.fyi-layer-slider__layer {
    position: absolute;
    left: var(--x);
    top: var(--y);
    width: var(--w, auto);
    min-height: var(--h, 0);
    opacity: 0;
    transform: translateY(8px);
    transition:
        opacity var(--duration, 300ms) ease,
        transform var(--duration, 300ms) ease;
    z-index: 2;
    box-sizing: border-box;
}

.fyi-layer-slider__layer.is-visible {
    opacity: 1;
    transform: none;
}

.fyi-layer-slider__layer img,
.fyi-layer-slider__layer video {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}

.fyi-layer-slider__layer a {
    color: inherit;
}

.fyi-layer-slider__layer--text {
    width: var(--fyi-text-layer-width, auto) !important;
    max-width: none;
    white-space: var(--fyi-text-white-space, nowrap);
}

.fyi-layer-slider__layer--link-button {
    width: auto !important;
    max-width: none;
    white-space: nowrap;
}

/* Imported Revolution style-name mappings. */
.fyi-layer-slider .large_text {
    font-size: var(--fyi-heading-size, 48px);
    line-height: var(--fyi-heading-line-height, 1);
    font-weight: var(--fyi-heading-weight, 700);
    color: var(--fyi-heading-color, #fff);
    text-shadow: var(--fyi-heading-shadow, 0 2px 4px rgba(0,0,0,.45));
}

.fyi-layer-slider .medium_text,
.fyi-layer-slider .medium_text_white {
    font-size: var(--fyi-body-size, 22px);
    line-height: var(--fyi-body-line-height, 1.3);
    font-weight: var(--fyi-body-weight, 600);
    color: var(--fyi-body-color, #fff);
    text-shadow: var(--fyi-body-shadow, 0 1px 3px rgba(0,0,0,.5));
}

.fyi-layer-slider .small_text,
.fyi-layer-slider .small_text_white {
    font-size: var(--fyi-small-size, 16px);
    line-height: var(--fyi-body-line-height, 1.3);
    color: var(--fyi-small-color, #fff);
}

/* Linked layers can remain text links or become reusable buttons. */
.fyi-layer-slider__layer--link-button > a,
.fyi-layer-slider__layer--link-button a {
    display: inline-block;
    width: auto;
    padding: var(--fyi-button-padding, 8px 14px);
    border-radius: var(--fyi-button-radius, 3px);
    background: var(--fyi-button-bg, #df6900);
    color: var(--fyi-button-color, #fff);
    font-size: var(--fyi-button-size, 15px);
    font-weight: var(--fyi-button-weight, 700);
    line-height: 1.2;
    text-decoration: none;
    text-shadow: none;
    box-shadow: var(--fyi-button-shadow, 0 2px 0 rgba(126,56,0,.55));
}

.fyi-layer-slider__layer--link-button > a:hover,
.fyi-layer-slider__layer--link-button > a:focus,
.fyi-layer-slider__layer--link-button a:hover,
.fyi-layer-slider__layer--link-button a:focus {
    filter: brightness(1.06);
    text-decoration: none;
}

.fyi-layer-slider__control {
    position: absolute;
    z-index: 5;
    top: 50%;
    transform: translateY(-50%);
    width: var(--fyi-arrow-width, 42px);
    height: var(--fyi-arrow-height, 52px);
    border: 0;
    background: var(--fyi-arrow-bg, rgba(0,0,0,.45));
    color: var(--fyi-arrow-color, #fff);
    font-size: var(--fyi-arrow-size, 28px);
    cursor: pointer;
}

.fyi-layer-slider__control--prev { left: 0; }
.fyi-layer-slider__control--next { right: 0; }

.fyi-layer-slider__dots {
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
}

.fyi-layer-slider__dot {
    width: var(--fyi-dot-size, 10px);
    height: var(--fyi-dot-size, 10px);
    padding: 0;
    border: 1px solid var(--fyi-dot-color, #fff);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.fyi-layer-slider__dot.is-active {
    background: var(--fyi-dot-active-color, #fff);
}

@media (max-width: 991px) {
    .fyi-layer-slider .large_text {
        font-size: var(--fyi-heading-size-tablet, 38px);
    }

    .fyi-layer-slider .medium_text,
    .fyi-layer-slider .medium_text_white {
        font-size: var(--fyi-body-size-tablet, 18px);
    }
}

@media (max-width: 767px) {
    .fyi-layer-slider__viewport {
        min-height: 320px;
        aspect-ratio: auto;
    }

    .fyi-layer-slider--mobile-stack .fyi-layer-slider__slide {
        overflow: hidden;
    }

    .fyi-layer-slider--mobile-stack .fyi-layer-slider__canvas {
        position: relative;
        inset: auto;
        left: auto;
        transform: none;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: .75rem;
        width: 100%;
        padding: 2.5rem 2.75rem 3rem;
        background: linear-gradient(90deg, rgba(0,0,0,.68), rgba(0,0,0,.18));
    }

    .fyi-layer-slider--mobile-stack .fyi-layer-slider__layer {
        position: relative;
        left: auto;
        top: auto;
        width: auto !important;
        min-height: 0;
        max-width: 100%;
        white-space: normal;
    }

    .fyi-layer-slider--mobile-stack .fyi-layer-slider__layer--image {
        max-width: min(55vw, 260px);
        order: -1;
    }

    .fyi-layer-slider .large_text {
        font-size: var(--fyi-heading-size-mobile, 30px);
    }

    .fyi-layer-slider .medium_text,
    .fyi-layer-slider .medium_text_white {
        font-size: var(--fyi-body-size-mobile, 16px);
    }

    .fyi-layer-slider--mobile-hide-layers .fyi-layer-slider__layer {
        display: none;
    }

    .fyi-layer-slider__layer[data-mobile-visibility="hide"] {
        display: none !important;
    }

    .fyi-layer-slider__control {
        width: 34px;
        height: 44px;
        font-size: 22px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fyi-layer-slider__slide,
    .fyi-layer-slider__layer {
        transition: none !important;
    }
}


/* v1.3.2: make imported caption links reliably render as buttons. */
.fyi-layer-slider__layer--link-button a,
.fyi-layer-slider__layer--link-button a:visited {
    display: inline-block !important;
    width: auto !important;
    padding: var(--fyi-button-padding, 8px 14px) !important;
    border: 0 !important;
    border-radius: var(--fyi-button-radius, 3px) !important;
    background: var(--fyi-button-bg, #df6900) !important;
    color: var(--fyi-button-color, #fff) !important;
    font-size: var(--fyi-button-size, 15px) !important;
    font-weight: var(--fyi-button-weight, 700) !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    text-shadow: none !important;
    box-shadow: var(--fyi-button-shadow, 0 2px 0 rgba(126,56,0,.55)) !important;
}


/* v1.4.0 Revolution-compatible scaled canvas engine. */
.fyi-layer-slider--engine-scaled .fyi-layer-slider__viewport {
    min-height: 0;
}

.fyi-layer-slider--engine-scaled.fyi-layer-slider--canvas-original .fyi-layer-slider__viewport,
.fyi-layer-slider--engine-scaled.fyi-layer-slider--canvas-custom .fyi-layer-slider__viewport {
    aspect-ratio: var(--fyi-slider-ratio);
}

.fyi-layer-slider--engine-scaled.fyi-layer-slider--canvas-fixed .fyi-layer-slider__viewport,
.fyi-layer-slider--engine-scaled.fyi-layer-slider--canvas-responsive-hero .fyi-layer-slider__viewport {
    aspect-ratio: auto;
    height: var(--fyi-height-desktop, 675px);
}

.fyi-layer-slider--engine-scaled .fyi-layer-slider__canvas {
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    width: var(--fyi-design-width);
    height: var(--fyi-design-height);
    max-width: none;
    transform: translate(-50%, -50%) scale(var(--fyi-canvas-scale, 1));
    transform-origin: center center;
}

.fyi-layer-slider--engine-scaled .fyi-layer-slider__layer {
    left: var(--x);
    top: var(--y);
    width: var(--w, auto);
    min-height: var(--h, 0);
}

@media (max-width: 991px) {
    .fyi-layer-slider--engine-scaled.fyi-layer-slider--canvas-fixed .fyi-layer-slider__viewport,
    .fyi-layer-slider--engine-scaled.fyi-layer-slider--canvas-responsive-hero .fyi-layer-slider__viewport {
        height: var(--fyi-height-tablet, 520px);
    }
}

@media (max-width: 767px) {
    .fyi-layer-slider--engine-scaled.fyi-layer-slider--canvas-fixed .fyi-layer-slider__viewport,
    .fyi-layer-slider--engine-scaled.fyi-layer-slider--canvas-responsive-hero .fyi-layer-slider__viewport {
        height: var(--fyi-height-mobile, 360px);
        min-height: 0;
    }

    .fyi-layer-slider--engine-scaled.fyi-layer-slider--mobile-responsive .fyi-layer-slider__canvas {
        position: absolute;
        top: 50%;
        left: 50%;
        width: var(--fyi-design-width);
        height: var(--fyi-design-height);
        padding: 0;
        background: transparent;
        transform: translate(-50%, -50%) scale(var(--fyi-canvas-scale, 1));
    }
}

/* v1.4.1 — Revolution anchor positioning, imported typography and mobile presentation. */
.fyi-layer-slider { font-family: var(--fyi-font-family, Arial, sans-serif); }

/* Revolution coordinates are offsets from the selected horizontal/vertical anchor. */
.fyi-layer-slider__layer[data-align-hor="right"] { left: auto !important; right: var(--x); }
.fyi-layer-slider__layer[data-align-hor="center"] { left: calc(50% + var(--x)) !important; right: auto; transform: translateX(-50%); }
.fyi-layer-slider__layer[data-align-vert="bottom"] { top: auto !important; bottom: var(--y); }
.fyi-layer-slider__layer[data-align-vert="middle"],
.fyi-layer-slider__layer[data-align-vert="center"] { top: calc(50% + var(--y)) !important; bottom: auto; transform: translateY(-50%); }
.fyi-layer-slider__layer[data-align-hor="center"][data-align-vert="middle"],
.fyi-layer-slider__layer[data-align-hor="center"][data-align-vert="center"] { transform: translate(-50%, -50%); }

/* Common Revolution caption styles preserved by the importer. */
.fyi-layer-slider--typography-imported .medium_grey { color:#fff; text-shadow:0 2px 5px rgba(0,0,0,.5); font:700 20px/20px Arial,sans-serif; padding:2px 4px; background:#888; }
.fyi-layer-slider--typography-imported .small_text { color:#fff; text-shadow:0 2px 5px rgba(0,0,0,.5); font:700 14px/20px Arial,sans-serif; }
.fyi-layer-slider--typography-imported .medium_text,
.fyi-layer-slider--typography-imported .medium_text_white { color:#fff; text-shadow:0 2px 5px rgba(0,0,0,.5); font:700 20px/20px Arial,sans-serif; }
.fyi-layer-slider--typography-imported .large_text { color:#fff; text-shadow:0 2px 5px rgba(0,0,0,.5); font:700 40px/40px Arial,sans-serif; }
.fyi-layer-slider--typography-imported .very_large_text { color:#fff; text-shadow:0 2px 5px rgba(0,0,0,.5); font:700 60px/60px Arial,sans-serif; letter-spacing:-2px; }
.fyi-layer-slider--typography-imported .excerpt24,
.fyi-layer-slider--typography-imported .excerpt24-100 { color:#fff; background:rgba(0,0,0,.85); font:700 24px/36px Arial,sans-serif; letter-spacing:-1.5px; padding:1px 4px 0; }
.fyi-layer-slider--typography-imported .excerpt18 { color:#fff; background:#000; font:700 18px/24px Arial,sans-serif; letter-spacing:-1.5px; padding:1px 4px 0; }

/* Imported and native button layers share the module button treatment. */
.fyi-layer-slider__layer--link-button a,
.fyi-layer-slider__layer--link-button a:visited,
.fyi-layer-slider .bold_darkblue_button a,
.fyi-layer-slider .bold_darkblue_button a:visited,
.fyi-layer-slider a.tp-button,
.fyi-layer-slider a.tp-button:visited {
    display:inline-block !important;
    width:auto !important;
    padding:var(--fyi-button-padding,8px 14px) !important;
    border:0 !important;
    border-radius:var(--fyi-button-radius,3px) !important;
    background:var(--fyi-button-bg,#df6900) !important;
    color:var(--fyi-button-color,#fff) !important;
    font-size:var(--fyi-button-size,15px) !important;
    font-weight:var(--fyi-button-weight,700) !important;
    line-height:1.2 !important;
    text-decoration:none !important;
    text-shadow:none !important;
    box-shadow:var(--fyi-button-shadow,0 2px 0 rgba(126,56,0,.55)) !important;
}

@media (min-width: 992px) {
    .fyi-layer-slider__layer[data-desktop-visibility="hide"] { display:none !important; }
}
@media (min-width: 768px) and (max-width: 991px) {
    .fyi-layer-slider__layer[data-tablet-visibility="hide"] { display:none !important; }
}
@media (max-width: 767px) {
    .fyi-layer-slider__layer[data-mobile-visibility="hide"] { display:none !important; }
    .fyi-layer-slider--mobile-background-only .fyi-layer-slider__layer { display:none !important; }
    .fyi-layer-slider--mobile-hide-decorative .fyi-layer-slider__layer[data-decorative="1"] { display:none !important; }

    .fyi-layer-slider--mobile-separate .fyi-layer-slider__layer[data-align-hor="left"] { left:var(--mx) !important; right:auto; }
    .fyi-layer-slider--mobile-separate .fyi-layer-slider__layer[data-align-hor="right"] { right:var(--mx) !important; left:auto !important; }
    .fyi-layer-slider--mobile-separate .fyi-layer-slider__layer[data-align-vert="top"] { top:var(--my) !important; bottom:auto; }
    .fyi-layer-slider--mobile-separate .fyi-layer-slider__layer[data-align-vert="bottom"] { bottom:var(--my) !important; top:auto !important; }

    .fyi-layer-slider--mobile-keep-desktop .fyi-layer-slider__canvas,
    .fyi-layer-slider--mobile-separate .fyi-layer-slider__canvas { --fyi-mobile-extra-scale:var(--fyi-mobile-layer-scale,1); }

    .fyi-layer-slider--mobile-reflow .fyi-layer-slider__layer {
        max-width:calc(100% - 32px);
        white-space:normal;
    }

    .fyi-layer-slider--mobile-stack .fyi-layer-slider__canvas {
        padding:var(--fyi-mobile-stack-padding,32px 42px 48px);
    }
}

/* v1.4.4 — content inset padding fix.
 *
 * The module host stays transparent and does not manufacture a stage.
 * The viewport itself is inset so the existing Joomla template/content
 * container remains visible around the slideshow.
 */
.fyi-layer-slider {
    box-sizing: border-box;
    width: auto;
    margin: var(--fyi-outer-margin, 0);
    padding: 0;
    border: var(--fyi-frame-border-width, 0) solid var(--fyi-frame-border-color, #d8d8d8);
    border-radius: var(--fyi-frame-radius, 0);
    box-shadow: var(--fyi-frame-shadow, none);
    background: transparent !important;
}
.fyi-layer-slider__viewport {
    box-sizing: border-box;
    width: auto;
    margin: var(--fyi-inset-vertical, 10px) var(--fyi-inset-horizontal, 10px);
    border-radius: inherit;
    overflow: hidden;
    background: transparent !important;
}
.fyi-layer-slider__layer--link-button a,
.fyi-layer-slider__layer--link-button a:visited {
    background-color: var(--fyi-button-bg, #0067a8) !important;
    background-image: var(--fyi-button-bg-image, linear-gradient(#1684c5,#0067a8)) !important;
}


/* Keep only structural wrappers transparent. Slide background images remain untouched. */
.fyi-layer-slider,
.fyi-layer-slider__viewport,
.fyi-layer-slider__canvas {
    background-color: transparent !important;
    background-image: none !important;
}
.fyi-layer-slider__slide {
    background-color: transparent !important;
}
