/* Cogio Slider v0.1.0: intrinsic-height, CSS-first slide layouts. */
.cogio-slider {
    --cogio-slider-height: 420px;
    --cogio-slider-mobile-height: 300px;
    --cogio-slider-speed: 600ms;
    --cogio-slider-content-width: 50%;
    --cogio-slider-content-mobile-width: 100%;
    --cogio-slider-content-max-width: none;
    --cogio-slider-content-padding-top: 40px;
    --cogio-slider-content-padding-right: 5%;
    --cogio-slider-content-padding-bottom: 40px;
    --cogio-slider-content-padding-left: 5%;
    background: #111;
    position: relative;
    width: 100%;
    overflow: hidden;
}

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

/* Inactive slides stay in the grid so the tallest slide sets the shared height. */
.cogio-slider__track {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
}
.cogio-slider__slide {
    position: relative;
    grid-area: 1 / 1;
    display: flex;
    flex-direction: column;
    min-height: var(--cogio-slider-height);
    min-width: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 1;
    transition: opacity var(--cogio-slider-speed) ease, transform var(--cogio-slider-speed) ease, visibility 0s linear var(--cogio-slider-speed);
}
.cogio-slider__slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 2;
    transition: opacity var(--cogio-slider-speed) ease, transform var(--cogio-slider-speed) ease, visibility 0s linear 0s;
}
.cogio-slider__image {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.cogio-slider__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

/* The link is a real full-slide flex item, not an absolute overlay: it contributes to height. */
.cogio-slider__whole-link {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    z-index: 2;
    text-decoration: none !important;
    color: inherit !important;
}
.cogio-slider__whole-link:hover,
.cogio-slider__whole-link:focus { text-decoration: none !important; color: inherit !important; }
.cogio-slider__whole-link:focus-visible { outline: 3px solid #fff; outline-offset: -4px; }

.cogio-slider__layout {
    position: relative;
    z-index: 2;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding:
        var(--cogio-slider-content-padding-top)
        var(--cogio-slider-content-padding-right)
        var(--cogio-slider-content-padding-bottom)
        var(--cogio-slider-content-padding-left);
}
.cogio-slider__content {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    min-width: 0;
    width: var(--cogio-slider-content-width);
    max-width: var(--cogio-slider-content-max-width);
    gap: var(--cogio-slider-text-button-gap, 24px);
}
.cogio-slider__text {
    display: flex;
    flex-direction: column;
    gap: var(--cogio-slider-heading-body-gap, 12px);
    min-width: 0;
    overflow-wrap: anywhere;
    width: var(--cogio-slider-text-width, 100%);
    max-width: 100%;
    background-color: rgba(var(--cogio-slider-text-bg-rgb, 0, 0, 0), var(--cogio-slider-text-bg-opacity, 0));
    padding:
        var(--cogio-slider-text-padding-top, 0)
        var(--cogio-slider-text-padding-right, 0)
        var(--cogio-slider-text-padding-bottom, 0)
        var(--cogio-slider-text-padding-left, 0);
}
.cogio-slider__heading {
    color: inherit !important;
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1.1;
    margin: 0 !important;
}
.cogio-slider__body, .cogio-slider__body p { color: inherit !important; }
.cogio-slider__body { font-size: clamp(1rem, 2vw, 1.25rem); line-height: 1.5; }
.cogio-slider__body p { margin: 0 0 .8em; }
.cogio-slider__body p:last-child { margin-bottom: 0; }
.cogio-slider__actions { width: 100%; min-width: 0; }
.cogio-slider__button {
    display: inline-block;
    color: var(--cogio-slider-button-colour, inherit) !important;
    background-color: #10454f;
    border: 0;
    font-weight: 700;
    padding: .85em 1.25em;
    margin: 0;
    line-height: 1.4;
    text-decoration: none !important;
    transition: filter 180ms ease;
}
.cogio-slider__button:hover, .cogio-slider__button:focus {
    color: var(--cogio-slider-button-colour, inherit) !important;
    filter: brightness(1.08);
    text-decoration: none !important;
}

/* Side-by-side: the text takes remaining space and CTA follows horizontally. */
.cogio-slider__layout--side-by-side .cogio-slider__content {
    flex-direction: row;
    align-items: center;
}
.cogio-slider__layout--side-by-side .cogio-slider__text { flex: 1 1 var(--cogio-slider-text-width, 100%); }
.cogio-slider__layout--side-by-side .cogio-slider__actions { flex: 0 0 auto; width: auto; }

/* Consistent bottom CTA without taking any content out of the height calculation. */
.cogio-slider__layout--button-bottom { justify-content: stretch; }
.cogio-slider__layout--button-bottom .cogio-slider__content {
    display: grid;
    grid-template-rows: minmax(min-content, 1fr) auto;
    flex: 1 1 auto;
}
.cogio-slider__layout--button-bottom .cogio-slider__text { grid-row: 1; }
.cogio-slider__layout--button-bottom .cogio-slider__actions { grid-row: 2; }
.cogio-slider__layout--side-by-side.cogio-slider__layout--button-bottom .cogio-slider__content {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: minmax(min-content, 1fr) auto;
}
.cogio-slider__layout--side-by-side.cogio-slider__layout--button-bottom .cogio-slider__text { grid-column: 1; grid-row: 1 / 3; }
.cogio-slider__layout--side-by-side.cogio-slider__layout--button-bottom .cogio-slider__actions { grid-column: 2; grid-row: 2; }

/* Manual navigation sits outside the linked slide and is always independently operable. */
.cogio-slider__arrow {
    position: absolute;
    z-index: 5;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 999px;
    background: rgba(0, 0, 0, .45);
    color: #fff;
    font-size: 42px;
    line-height: 1;
    padding: 0;
    cursor: pointer;
}
.cogio-slider__arrow:hover, .cogio-slider__arrow:focus { background: rgba(0,0,0,.7); color: #fff; }
.cogio-slider__arrow--prev { left: 16px; }
.cogio-slider__arrow--next { right: 16px; }
.cogio-slider__dots {
    position: absolute;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}
.cogio-slider__dot {
    background: rgba(255,255,255,.55);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    width: 12px;
    height: 12px;
    padding: 0;
}
.cogio-slider__dot.is-active, .cogio-slider__dot:hover, .cogio-slider__dot:focus { background: #fff; }
.cogio-slider--with-dots .cogio-slider__layout {
    padding-bottom: max(var(--cogio-slider-content-padding-bottom), 64px);
}
.cogio-slider--with-arrows .cogio-slider__layout {
    padding-left: max(var(--cogio-slider-content-padding-left), 64px);
    padding-right: max(var(--cogio-slider-content-padding-right), 64px);
}

/* CSS transitions continue to use a tiny JS controller for class switching only. */
.cogio-slider--slide-left .cogio-slider__slide { transform: translateX(100%); }
.cogio-slider--slide-right .cogio-slider__slide { transform: translateX(-100%); }
.cogio-slider--slide-up .cogio-slider__slide { transform: translateY(100%); }
.cogio-slider--slide-down .cogio-slider__slide { transform: translateY(-100%); }
.cogio-slider--slide-left .cogio-slider__slide.is-active,
.cogio-slider--slide-right .cogio-slider__slide.is-active,
.cogio-slider--slide-up .cogio-slider__slide.is-active,
.cogio-slider--slide-down .cogio-slider__slide.is-active { transform: translate(0, 0); }
.cogio-slider__layout--pos-top-left { justify-content: flex-start; align-items: flex-start; }
.cogio-slider__layout--pos-top-centre { justify-content: flex-start; align-items: center; }
.cogio-slider__layout--pos-top-right { justify-content: flex-start; align-items: flex-end; }
.cogio-slider__layout--pos-centre-left { justify-content: center; align-items: flex-start; }
.cogio-slider__layout--pos-centre { justify-content: center; align-items: center; }
.cogio-slider__layout--pos-centre-right { justify-content: center; align-items: flex-end; }
.cogio-slider__layout--pos-bottom-left { justify-content: flex-end; align-items: flex-start; }
.cogio-slider__layout--pos-bottom-centre { justify-content: flex-end; align-items: center; }
.cogio-slider__layout--pos-bottom-right { justify-content: flex-end; align-items: flex-end; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-top-left { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-top-left .cogio-slider__text { align-self: flex-start; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-top-centre { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-top-centre .cogio-slider__text { align-self: flex-start; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-top-right { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-top-right .cogio-slider__text { align-self: flex-start; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-centre-left { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-centre-left .cogio-slider__text { align-self: center; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-centre { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-centre .cogio-slider__text { align-self: center; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-centre-right { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-centre-right .cogio-slider__text { align-self: center; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-bottom-left { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-bottom-left .cogio-slider__text { align-self: flex-end; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-bottom-centre { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-bottom-centre .cogio-slider__text { align-self: flex-end; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-bottom-right { justify-content: stretch; }
.cogio-slider__layout--button-bottom.cogio-slider__layout--pos-bottom-right .cogio-slider__text { align-self: flex-end; }
.cogio-slider__layout--text-align-left .cogio-slider__content { text-align: left; }
.cogio-slider__layout--button-align-left .cogio-slider__actions { text-align: left; }
.cogio-slider__layout--text-align-centre .cogio-slider__content { text-align: center; }
.cogio-slider__layout--button-align-centre .cogio-slider__actions { text-align: center; }
.cogio-slider__layout--text-align-right .cogio-slider__content { text-align: right; }
.cogio-slider__layout--button-align-right .cogio-slider__actions { text-align: right; }

@media (max-width: 768px) {
    .cogio-slider__slide { min-height: var(--cogio-slider-mobile-height); }
    .cogio-slider__content { width: var(--cogio-slider-content-mobile-width); }
    .cogio-slider__text { width: var(--cogio-slider-text-mobile-width, 100%); }
    .cogio-slider__layout--mobile-grouped .cogio-slider__content,
    .cogio-slider__layout--mobile-separated .cogio-slider__content { flex-direction: column; }
    .cogio-slider__layout--mobile-grouped .cogio-slider__text,
    .cogio-slider__layout--mobile-separated .cogio-slider__text { flex: 0 1 auto; }
    .cogio-slider__layout--mobile-grouped .cogio-slider__actions,
    .cogio-slider__layout--mobile-separated .cogio-slider__actions { width: 100%; }
    .cogio-slider__layout--mobile-side-by-side .cogio-slider__content { display: flex; flex-direction: row; align-items: center; }
    .cogio-slider__layout--mobile-side-by-side .cogio-slider__text { flex: 1 1 var(--cogio-slider-text-mobile-width, 100%); }
    .cogio-slider__layout--mobile-side-by-side .cogio-slider__actions { flex: 0 0 auto; width: auto; }
    .cogio-slider__layout--mobile-button-bottom { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-after-text:not(.cogio-slider__layout--mobile-side-by-side) .cogio-slider__content {
        display: flex; flex: 0 0 auto;
    }
    .cogio-slider__layout--mobile-button-after-text.cogio-slider__layout--mobile-side-by-side .cogio-slider__content {
        display: flex; flex: 0 0 auto; flex-direction: row;
    }
    .cogio-slider__layout--mobile-button-bottom .cogio-slider__content {
        display: grid;
        flex: 1 1 auto;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: minmax(min-content, 1fr) auto;
    }
    .cogio-slider__layout--mobile-button-bottom .cogio-slider__text { grid-column: 1; grid-row: 1; }
    .cogio-slider__layout--mobile-button-bottom .cogio-slider__actions { grid-column: 1; grid-row: 2; }
    .cogio-slider__layout--mobile-side-by-side.cogio-slider__layout--mobile-button-bottom .cogio-slider__content {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .cogio-slider__layout--mobile-side-by-side.cogio-slider__layout--mobile-button-bottom .cogio-slider__text { grid-column: 1; grid-row: 1 / 3; }
    .cogio-slider__layout--mobile-side-by-side.cogio-slider__layout--mobile-button-bottom .cogio-slider__actions { grid-column: 2; grid-row: 2; }
    .cogio-slider__arrow { font-size: 32px; height: 40px; width: 40px; }
    .cogio-slider__arrow--prev { left: 10px; }
    .cogio-slider__arrow--next { right: 10px; }
    .cogio-slider--with-arrows .cogio-slider__layout {
        padding-left: max(var(--cogio-slider-content-padding-left), 50px);
        padding-right: max(var(--cogio-slider-content-padding-right), 50px);
    }
    .cogio-slider__layout--mobile-pos-top-left { justify-content: flex-start; align-items: flex-start; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-top-left { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-top-left .cogio-slider__text { align-self: flex-start; }
    .cogio-slider__layout--mobile-pos-top-centre { justify-content: flex-start; align-items: center; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-top-centre { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-top-centre .cogio-slider__text { align-self: flex-start; }
    .cogio-slider__layout--mobile-pos-top-right { justify-content: flex-start; align-items: flex-end; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-top-right { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-top-right .cogio-slider__text { align-self: flex-start; }
    .cogio-slider__layout--mobile-pos-centre-left { justify-content: center; align-items: flex-start; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-centre-left { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-centre-left .cogio-slider__text { align-self: center; }
    .cogio-slider__layout--mobile-pos-centre { justify-content: center; align-items: center; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-centre { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-centre .cogio-slider__text { align-self: center; }
    .cogio-slider__layout--mobile-pos-centre-right { justify-content: center; align-items: flex-end; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-centre-right { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-centre-right .cogio-slider__text { align-self: center; }
    .cogio-slider__layout--mobile-pos-bottom-left { justify-content: flex-end; align-items: flex-start; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-bottom-left { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-bottom-left .cogio-slider__text { align-self: flex-end; }
    .cogio-slider__layout--mobile-pos-bottom-centre { justify-content: flex-end; align-items: center; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-bottom-centre { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-bottom-centre .cogio-slider__text { align-self: flex-end; }
    .cogio-slider__layout--mobile-pos-bottom-right { justify-content: flex-end; align-items: flex-end; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-bottom-right { justify-content: stretch; }
    .cogio-slider__layout--mobile-button-bottom.cogio-slider__layout--mobile-pos-bottom-right .cogio-slider__text { align-self: flex-end; }
    .cogio-slider__layout--mobile-text-align-left .cogio-slider__content { text-align: left; }
    .cogio-slider__layout--mobile-button-align-left .cogio-slider__actions { text-align: left; }
    .cogio-slider__layout--mobile-text-align-centre .cogio-slider__content { text-align: center; }
    .cogio-slider__layout--mobile-button-align-centre .cogio-slider__actions { text-align: center; }
    .cogio-slider__layout--mobile-text-align-right .cogio-slider__content { text-align: right; }
    .cogio-slider__layout--mobile-button-align-right .cogio-slider__actions { text-align: right; }
}

@media (prefers-reduced-motion: reduce) {
    .cogio-slider__slide, .cogio-slider__button { transition: none; }
}
