@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Poppins:wght@300;500&display=swap');

/* Restore the Duffy theme's original slim desktop top strip. */
@media (min-width: 992px) {
    body #pbr-topbar.pbr-topbar {
        box-sizing: border-box !important;
        height: 7px !important;
        min-height: 7px !important;
        max-height: 7px !important;
        margin: 0 !important;
        padding: 3px 0 !important;
        overflow: hidden !important;
    }

    body #pbr-topbar.pbr-topbar > .container {
        height: 0 !important;
        overflow: hidden !important;
        visibility: hidden !important;
    }
}

.wades-innovations-slider-empty {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Display Envira images when its legacy lazy loader leaves 1px placeholders. */
.envira-gallery-wrap .envira-lazy > img.envira-gallery-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.duffy-slider,
.duffy-slider * {
    box-sizing: border-box;
}

.duffy-slider {
    --duffy-purple: #532e8e;
    --duffy-pink: #ed238f;
    position: relative;
    width: 100vw;
    height: clamp(430px, 43vw, 830px);
    margin-left: calc(50% - 50vw);
    margin-bottom: 35px;
    overflow: hidden;
    background: #321a57;
    isolation: isolate;
    touch-action: pan-y;
}

.duffy-slider__track,
.duffy-slider__slide {
    position: absolute;
    inset: 0;
}

.duffy-slider__slide {
    opacity: 0;
    visibility: hidden;
    transition: opacity 700ms ease, visibility 700ms ease;
    will-change: opacity, clip-path;
}

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

/* Slide 2: the foreshore image wipes in from the right. */
.duffy-slider__slide--purple {
    clip-path: inset(0 0 0 100%);
    transition: clip-path 950ms cubic-bezier(.65, 0, .35, 1), opacity 300ms ease, visibility 950ms ease;
}

.duffy-slider__slide--purple.is-active {
    clip-path: inset(0 0 0 0);
}

.duffy-slider__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.035);
    transition: transform 7s ease-out;
}

.duffy-slider__slide.is-active .duffy-slider__image {
    transform: scale(1);
}

/* Slide 3: two panels pull apart to reveal the marina. */
.duffy-slider__reveal-panel {
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 0;
    width: 50.1%;
    background: linear-gradient(135deg, #532e8e, #ed238f);
    transition: transform 900ms cubic-bezier(.77, 0, .18, 1) 100ms;
    will-change: transform;
}

.duffy-slider__reveal-panel--left {
    left: 0;
    transform-origin: left center;
}

.duffy-slider__reveal-panel--right {
    right: 0;
    transform-origin: right center;
}

.duffy-slider__slide--pink.is-active .duffy-slider__reveal-panel {
    transform: scaleX(0);
}

.duffy-slider__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .3), rgba(0, 0, 0, .08) 55%, rgba(0, 0, 0, .2));
}

.duffy-slider__slide--purple .duffy-slider__shade,
.duffy-slider__slide--pink .duffy-slider__shade {
    background: linear-gradient(90deg, rgba(255, 255, 255, .86), rgba(255, 255, 255, .22) 62%, rgba(255, 255, 255, 0));
}

.duffy-slider__content {
    position: absolute;
    z-index: 2;
    top: 15%;
    left: 50%;
    width: min(1180px, calc(100% - 120px));
    opacity: 0;
    transform: translate(-50%, -58px);
    color: #fff;
    text-align: center;
    transition: opacity 620ms ease 360ms, transform 720ms cubic-bezier(.22, 1, .36, 1) 300ms;
    will-change: opacity, transform;
}

.duffy-slider__slide.is-active .duffy-slider__content {
    opacity: 1;
    transform: translate(-50%, 0);
}

.duffy-slider__slide--left .duffy-slider__content {
    text-align: left;
}

.duffy-slider__heading {
    max-width: 1150px;
    margin: 0 auto;
    color: inherit;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(31px, 4.25vw, 68px);
    font-weight: 700;
    line-height: 1.04;
    letter-spacing: -.02em;
    text-transform: uppercase;
    text-shadow: 0 2px 14px rgba(0, 0, 0, .23);
}

.duffy-slider__slide--left .duffy-slider__heading {
    margin-left: 0;
    max-width: 950px;
}

.duffy-slider__heading span {
    font-size: .64em;
}

.duffy-slider__subtitle {
    margin: clamp(24px, 4vw, 58px) 0 0;
    color: inherit;
    font-family: Poppins, Arial, sans-serif;
    font-size: clamp(18px, 2.5vw, 39px);
    font-weight: 500;
    line-height: 1.2;
    text-transform: uppercase;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .24);
}

.duffy-slider__slide--purple .duffy-slider__content { color: var(--duffy-purple); }
.duffy-slider__slide--pink .duffy-slider__content { color: var(--duffy-pink); }
.duffy-slider__slide--purple .duffy-slider__heading,
.duffy-slider__slide--purple .duffy-slider__subtitle,
.duffy-slider__slide--pink .duffy-slider__heading,
.duffy-slider__slide--pink .duffy-slider__subtitle { text-shadow: 0 2px 12px rgba(255, 255, 255, .55); }

.duffy-slider__arrow {
    position: absolute;
    z-index: 3;
    top: 50%;
    width: 48px;
    height: 64px;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: rgba(27, 10, 48, .42);
    color: #fff;
    cursor: pointer;
    font-size: 29px;
    line-height: 1;
    opacity: .72;
    transform: translateY(-50%);
    transition: background-color 180ms ease, opacity 180ms ease;
}

.duffy-slider__arrow:hover,
.duffy-slider__arrow:focus-visible { background: var(--duffy-pink); opacity: 1; }
.duffy-slider__arrow:focus-visible,
.duffy-slider__dot:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.duffy-slider__arrow--previous { left: 20px; }
.duffy-slider__arrow--next { right: 20px; }

.duffy-slider__dots {
    position: absolute;
    z-index: 3;
    bottom: 22px;
    left: 50%;
    display: flex;
    gap: 10px;
    transform: translateX(-50%);
}

.duffy-slider__dot {
    width: 12px;
    height: 12px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: rgba(0, 0, 0, .28);
    cursor: pointer;
}

.duffy-slider__dot.is-active { background: var(--duffy-pink); }

@media (max-width: 767px) {
    .duffy-slider { height: 520px; }
    .duffy-slider__content,
    .duffy-slider__slide--left .duffy-slider__content {
        top: 16%;
        width: calc(100% - 48px);
        text-align: center;
    }
    .duffy-slider__heading { font-size: clamp(27px, 8vw, 42px); line-height: 1.08; }
    .duffy-slider__heading span { font-size: .72em; }
    .duffy-slider__subtitle { margin-top: 30px; font-size: clamp(16px, 4.5vw, 22px); line-height: 1.35; }
    .duffy-slider__arrow { width: 38px; height: 52px; font-size: 23px; }
    .duffy-slider__arrow--previous { left: 8px; }
    .duffy-slider__arrow--next { right: 8px; }
    .duffy-slider__slide--purple .duffy-slider__shade,
    .duffy-slider__slide--pink .duffy-slider__shade { background: rgba(255, 255, 255, .68); }
}

@media (prefers-reduced-motion: reduce) {
    .duffy-slider__slide,
    .duffy-slider__image,
    .duffy-slider__content,
    .duffy-slider__reveal-panel { transition: none; }

    .duffy-slider__slide--purple { clip-path: none; }

    .duffy-slider__slide--pink.is-active .duffy-slider__reveal-panel { display: none; }
}
