/* ==========================================================
   Pilot Path - PPL replacement widgets
   ========================================================== */


/* -------------------------
   VIPER CAROUSEL
-------------------------- */

.pp-viper-carousel {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 4px;
}

.pp-viper-track {
    display: flex;
    width: 100%;
    transition: transform .55s ease;
}

.pp-viper-slide {
    flex: 0 0 100%;
    min-width: 100%;
}

.pp-viper-slide img {
    display: block;
    width: 100%;
    height: 500px;
    object-fit: cover;
}

.pp-viper-prev,
.pp-viper-next {
    position: absolute;
    top: 50%;
    z-index: 5;
    width: 44px;
    height: 44px;
    padding: 0;
    transform: translateY(-50%);
    border: 0;
    border-radius: 50%;
    background: rgba(0,0,0,.65);
    color: #fff;
    font-size: 22px;
    line-height: 44px;
    text-align: center;
    cursor: pointer;
}

.pp-viper-prev {
    left: 18px;
}

.pp-viper-next {
    right: 18px;
}

.pp-viper-dots {
    position: absolute;
    right: 0;
    bottom: 17px;
    left: 0;
    z-index: 5;
    text-align: center;
}

.pp-viper-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin: 0 5px;
    padding: 0;
    border: 1px solid #fff;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.pp-viper-dot.is-active {
    background: #fff;
}


/* -------------------------
   TESTIMONIALS
-------------------------- */

.pp-student-testimonials {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: 8px 4px 42px;
    box-sizing: border-box;
}

.pp-testimonial-track {
    display: flex;
    width: 100%;
    transition: transform .5s ease;
}

.pp-testimonial-slide {
    flex: 0 0 100%;
    min-width: 100%;
    padding: 4px;
    box-sizing: border-box;
}

.pp-testimonial-card {
    position: relative;
    min-height: 300px;
    padding: 35px 70px 27px;
    background: #fff;
    border-radius: 5px;
    box-shadow: 0 0 9px -5px #000;
    box-sizing: border-box;
}

.pp-testimonial-quote {
    margin-bottom: 12px;
    color: #d3d3d3;
    font-family: Georgia, serif;
    font-size: 66px;
    line-height: .7;
}

.pp-testimonial-title {
    margin: 0 0 23px;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.35;
}

.pp-testimonial-copy {
    font-family: "Noto Sans", Arial, sans-serif;
    font-size: 14px;
    line-height: 25px;
}

.pp-testimonial-person {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 28px;
}

.pp-testimonial-photo {
    width: 90px;
    height: 90px;
    flex: 0 0 90px;
    object-fit: cover;
    border: 1px solid #eee;
    border-radius: 50%;
}

.pp-testimonial-name {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 1px;
}

.pp-testimonial-job {
    margin-top: 4px;
    color: #777;
    font-size: 13px;
}

.pp-testimonial-prev,
.pp-testimonial-next {
    position: absolute;
    top: 48%;
    z-index: 5;
    padding: 5px;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: #222;
    font-size: 30px;
    cursor: pointer;
}

.pp-testimonial-prev {
    left: 12px;
}

.pp-testimonial-next {
    right: 12px;
}

.pp-testimonial-dots {
    position: absolute;
    right: 0;
    bottom: 8px;
    left: 0;
    text-align: center;
}

.pp-testimonial-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin: 0 5px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #b8b8b8;
    cursor: pointer;
}

.pp-testimonial-dot.is-active {
    background: #222;
}


/* -------------------------
   NEWCASTLE AERODROME
-------------------------- */

.pp-newcastle-gallery {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.pp-newcastle-image {
    display: block;
    position: relative;
    overflow: hidden;
    min-height: 210px;
}

.pp-newcastle-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 210px;
    object-fit: cover;
    transition: transform .35s ease;
}

.pp-newcastle-image:hover img {
    transform: scale(1.025);
}


/* -------------------------
   RESPONSIVE
-------------------------- */

@media (max-width: 767px) {

    .pp-viper-slide img {
        height: 300px;
    }

    .pp-viper-prev,
    .pp-viper-next {
        width: 38px;
        height: 38px;
        line-height: 38px;
    }

    .pp-viper-prev {
        left: 10px;
    }

    .pp-viper-next {
        right: 10px;
    }

    .pp-testimonial-card {
        min-height: 0;
        padding: 20px;
    }

    .pp-testimonial-title {
        margin-bottom: 12px;
        font-size: 18px;
    }

    .pp-testimonial-copy {
        font-size: 12px;
        line-height: 1.7;
    }

    .pp-testimonial-photo {
        width: 72px;
        height: 72px;
        flex-basis: 72px;
    }

    .pp-testimonial-name {
        font-size: 17px;
    }

    .pp-testimonial-prev {
        left: 1px;
    }

    .pp-testimonial-next {
        right: 1px;
    }

    .pp-newcastle-gallery {
        grid-template-columns: 1fr;
    }

    .pp-newcastle-image,
    .pp-newcastle-image img {
        min-height: 0;
        height: auto;
    }
}


/* ==========================================================
   PILOT PATH BRANDED TESTIMONIAL OVERRIDES
   ========================================================== */

.pp-student-testimonials {
    --pp-navy: var(--e-global-color-primary, #142638);
    --pp-red: var(--e-global-color-accent, #d71920);

    max-width: 1120px;
    margin: 0 auto;
    padding: 18px 64px 58px;
}

.pp-testimonial-slide {
    padding: 10px;
}

.pp-testimonial-card {
    position: relative;
    min-height: 0;
    padding: 48px 58px 34px;
    overflow: hidden;

    background: #fff;
    border: 1px solid rgba(20, 38, 56, .12);
    border-top: 5px solid var(--pp-red);
    border-radius: 8px;

    box-shadow:
        0 18px 45px rgba(20, 38, 56, .10);

    color: var(--pp-navy);
}

/* large subtle quote in top right */
.pp-testimonial-quote {
    position: absolute;
    top: 22px;
    right: 34px;

    margin: 0;

    color: var(--pp-red);
    opacity: .12;

    font-family: Georgia, serif;
    font-size: 110px;
    font-weight: 700;
    line-height: .8;

    pointer-events: none;
}

.pp-testimonial-title {
    position: relative;
    z-index: 2;

    max-width: 780px;
    margin: 0 90px 20px 0;

    color: var(--pp-navy);

    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(23px, 2.4vw, 31px);
    font-weight: 700;
    line-height: 1.25;
}

.pp-testimonial-copy {
    position: relative;
    z-index: 2;

    max-width: 900px;

    color: #4b5560;

    font-family: "Noto Sans", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.8;
}

.pp-testimonial-person {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    gap: 18px;

    margin-top: 30px;
    padding-top: 24px;

    border-top: 1px solid rgba(20, 38, 56, .11);
}

.pp-testimonial-photo {
    width: 78px;
    height: 78px;
    flex: 0 0 78px;

    border: 3px solid var(--pp-red);
    border-radius: 50%;

    object-fit: cover;

    box-shadow:
        0 5px 15px rgba(20, 38, 56, .12);
}

.pp-testimonial-name {
    margin: 0;

    color: var(--pp-navy);

    font-family: "Playfair Display", Georgia, serif;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: 0;
}

.pp-testimonial-job {
    margin-top: 3px;

    color: var(--pp-red);

    font-family: "Noto Sans", Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;

    letter-spacing: 1.2px;
    text-transform: uppercase;
}


/* branded navigation */

.pp-testimonial-prev,
.pp-testimonial-next {
    top: 50%;

    width: 44px;
    height: 44px;
    padding: 0;

    border: 0;
    border-radius: 3px;

    background: var(--pp-navy);
    color: #fff;

    font-size: 19px;
    line-height: 44px;
    text-align: center;

    box-shadow:
        0 5px 15px rgba(20, 38, 56, .14);

    transition:
        background .2s ease,
        transform .2s ease;
}

.pp-testimonial-prev {
    left: 4px;
}

.pp-testimonial-next {
    right: 4px;
}

.pp-testimonial-prev:hover,
.pp-testimonial-next:hover {
    background: var(--pp-red);
}

.pp-testimonial-prev:active,
.pp-testimonial-next:active {
    transform: translateY(-50%) scale(.95);
}


/* pagination */

.pp-testimonial-dots {
    bottom: 13px;
}

.pp-testimonial-dot {
    width: 24px;
    height: 4px;

    margin: 0 4px;

    border-radius: 0;

    background: rgba(20, 38, 56, .20);

    transition:
        width .2s ease,
        background .2s ease;
}

.pp-testimonial-dot.is-active {
    width: 38px;
    background: var(--pp-red);
}


/* mobile */

@media (max-width: 767px) {

    .pp-student-testimonials {
        padding: 10px 4px 48px;
    }

    .pp-testimonial-slide {
        padding: 5px;
    }

    .pp-testimonial-card {
        padding: 32px 24px 25px;
    }

    .pp-testimonial-quote {
        top: 18px;
        right: 19px;

        font-size: 80px;
    }

    .pp-testimonial-title {
        margin-right: 45px;

        font-size: 21px;
        line-height: 1.3;
    }

    .pp-testimonial-copy {
        font-size: 14px;
        line-height: 1.7;
    }

    .pp-testimonial-person {
        gap: 14px;

        margin-top: 23px;
        padding-top: 19px;
    }

    .pp-testimonial-photo {
        width: 65px;
        height: 65px;
        flex-basis: 65px;
    }

    .pp-testimonial-name {
        font-size: 17px;
    }

    .pp-testimonial-prev,
    .pp-testimonial-next {
        top: auto;
        bottom: 2px;

        width: 34px;
        height: 34px;

        font-size: 15px;
        line-height: 34px;

        transform: none;
    }

    .pp-testimonial-prev {
        left: 5px;
    }

    .pp-testimonial-next {
        right: 5px;
    }

    .pp-testimonial-prev:active,
    .pp-testimonial-next:active {
        transform: scale(.95);
    }
}

/* ==========================================================
   TESTIMONIAL FINAL BRAND OVERRIDES
   Force Pilot Path red and improve testimonial headshots
   ========================================================== */

.pp-student-testimonials {
    --pp-navy: #142638;
    --pp-red: #d71920;
}

/* force red where any green/accent colour was appearing */
.pp-testimonial-card {
    border-top-color: var(--pp-red);
}

.pp-testimonial-quote {
    color: var(--pp-red);
}

.pp-testimonial-job {
    color: var(--pp-red);
}

.pp-testimonial-dot.is-active {
    background: var(--pp-red);
}

.pp-testimonial-prev:hover,
.pp-testimonial-next:hover {
    background: var(--pp-red);
}

/* make the photo treatment feel more on-brand */
.pp-testimonial-person {
    align-items: center;
}

.pp-testimonial-photo {
    width: 82px;
    height: 82px;
    flex: 0 0 82px;

    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    background: #fff;

    /* branded circular treatment */
    box-shadow:
        0 0 0 4px #fff,
        0 0 0 7px var(--pp-red),
        0 0 0 10px var(--pp-navy),
        0 8px 22px rgba(20, 38, 56, .18);
}

/* subtle branded badge feel around the profile area */
.pp-testimonial-meta {
    position: relative;
}

.pp-testimonial-name {
    color: var(--pp-navy);
}

.pp-testimonial-job {
    display: inline-block;
    margin-top: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(215, 25, 32, .08);
    letter-spacing: 1px;
}

/* mobile tidy-up */
@media (max-width: 767px) {
    .pp-testimonial-photo {
        width: 68px;
        height: 68px;
        flex-basis: 68px;

        box-shadow:
            0 0 0 3px #fff,
            0 0 0 6px var(--pp-red),
            0 0 0 8px var(--pp-navy),
            0 6px 16px rgba(20, 38, 56, .16);
    }
}

/* ==========================================================
   TESTIMONIAL PROFILE BLOCK REFINEMENT
   Make bottom identity area contained + consistent
   ========================================================== */

.pp-student-testimonials {
    --pp-navy: #142638;
    --pp-red: #d71920;
    --pp-light: #f6f8fb;
}

/* contained person block instead of floating image/text */
.pp-testimonial-person {
    position: relative;
    z-index: 2;

    display: inline-flex;
    align-items: center;
    gap: 18px;

    margin-top: 28px;
    padding: 14px 18px 14px 14px;

    background: var(--pp-light);
    border: 1px solid rgba(20, 38, 56, .10);
    border-left: 4px solid var(--pp-red);
    border-radius: 14px;

    box-shadow: 0 8px 20px rgba(20, 38, 56, .08);
}

/* consistent circular image treatment */
.pp-testimonial-photo {
    width: 82px;
    height: 82px;
    flex: 0 0 82px;

    display: block;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    background: #fff;

    box-shadow:
        0 0 0 4px #fff,
        0 0 0 7px var(--pp-red),
        0 0 0 10px var(--pp-navy),
        0 8px 22px rgba(20, 38, 56, .16);
}

/* text area beside image */
.pp-testimonial-meta {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.pp-testimonial-name {
    margin: 0 0 6px 0;
    color: var(--pp-navy);
    font-family: "Playfair Display", Georgia, serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
}

.pp-testimonial-job {
    display: inline-block;
    width: fit-content;
    margin: 0;
    padding: 5px 10px;

    background: rgba(215, 25, 32, .08);
    border-radius: 999px;

    color: var(--pp-red);
    font-family: "Noto Sans", Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* make sure testimonial copy doesn't look cramped above the profile block */
.pp-testimonial-copy {
    margin-bottom: 0;
}

/* mobile */
@media (max-width: 767px) {
    .pp-testimonial-person {
        gap: 14px;
        padding: 12px 14px 12px 12px;
        border-radius: 12px;
    }

    .pp-testimonial-photo {
        width: 68px;
        height: 68px;
        flex-basis: 68px;

        box-shadow:
            0 0 0 3px #fff,
            0 0 0 6px var(--pp-red),
            0 0 0 8px var(--pp-navy),
            0 6px 16px rgba(20, 38, 56, .14);
    }

    .pp-testimonial-name {
        font-size: 16px;
    }

    .pp-testimonial-job {
        font-size: 10px;
        padding: 4px 8px;
    }
}

/* ==========================================================
   OPTION 3 TESTIMONIAL DESIGN
   Elegant + minimal / Pilot Path
   ========================================================== */

.pp-student-testimonials {
    --pp-navy: #142638;
    --pp-red: #d71920;
    --pp-light: #f8f9fb;
    --pp-border: rgba(20, 38, 56, .10);
    --pp-text: #24384d;
}

/* section heading */
.pp-student-testimonials .pp-section-heading,
.pp-student-testimonials h2 {
    text-align: center;
}

/* main card */
.pp-testimonial-card {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 34px;
    align-items: center;

    padding: 34px 38px;
    background: #fff;
    border: 1px solid var(--pp-border);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(20, 38, 56, .07);
    position: relative;
}

/* left profile block */
.pp-testimonial-person {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 14px;
    min-width: 0;
}

/* headshot */
.pp-testimonial-photo {
    width: 118px;
    height: 118px;
    display: block;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    background: #fff;
    border: 6px solid #f4d9dc;
    box-shadow: 0 0 0 1px rgba(20, 38, 56, .08);
}

/* name */
.pp-testimonial-name {
    margin: 0;
    color: var(--pp-navy);
    font-family: "Playfair Display", Georgia, serif;
    font-size: 20px;
    line-height: 1.2;
    font-weight: 700;
}

/* role pill */
.pp-testimonial-job {
    display: inline-block;
    margin: 0;
    padding: 6px 12px;
    border-radius: 999px;
    background: transparent;
    color: var(--pp-red);
    font-size: 11px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* right quote block */
.pp-testimonial-copy,
.pp-testimonial-content {
    border-left: 1px solid rgba(20, 38, 56, .12);
    padding-left: 34px;
    min-width: 0;
}

/* quote mark */
.pp-testimonial-quote {
    display: block;
    margin: 0 0 12px 0;
    color: var(--pp-red);
    font-size: 74px;
    line-height: .8;
    font-weight: 700;
}

/* body copy */
.pp-testimonial-copy p,
.pp-testimonial-content p,
.pp-testimonial-text {
    margin: 0;
    color: var(--pp-text);
    font-size: 18px;
    line-height: 1.75;
}

/* arrows */
.pp-testimonial-prev,
.pp-testimonial-next {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(20, 38, 56, .10);
    border-radius: 50%;
    background: #fff;
    color: var(--pp-navy);
    box-shadow: 0 4px 14px rgba(20, 38, 56, .06);
    transition: all .25s ease;
}

.pp-testimonial-prev:hover,
.pp-testimonial-next:hover {
    background: #fff;
    color: var(--pp-red);
    border-color: rgba(215, 25, 32, .25);
}

/* dots */
.pp-testimonial-dots,
.pp-testimonial-pagination {
    margin-top: 22px;
    text-align: center;
}

.pp-testimonial-dot,
.pp-testimonial-pagination button {
    width: 42px;
    height: 6px;
    border: 0;
    border-radius: 999px;
    background: #cfd5dc;
    display: inline-block;
    margin: 0 5px;
    padding: 0;
}

.pp-testimonial-dot.is-active,
.pp-testimonial-pagination .active,
.pp-testimonial-pagination button.active {
    background: var(--pp-red);
}

/* make sure images never float strangely below */
.pp-testimonial-card img {
    max-width: 100%;
    height: auto;
}

/* mobile */
@media (max-width: 900px) {
    .pp-testimonial-card {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 28px 24px;
    }

    .pp-testimonial-copy,
    .pp-testimonial-content {
        border-left: 0;
        border-top: 1px solid rgba(20, 38, 56, .12);
        padding-left: 0;
        padding-top: 24px;
        text-align: left;
    }

    .pp-testimonial-photo {
        width: 104px;
        height: 104px;
    }
}

@media (max-width: 640px) {
    .pp-testimonial-card {
        padding: 22px 18px;
        border-radius: 14px;
    }

    .pp-testimonial-name {
        font-size: 18px;
    }

    .pp-testimonial-copy p,
    .pp-testimonial-content p,
    .pp-testimonial-text {
        font-size: 16px;
        line-height: 1.65;
    }

    .pp-testimonial-quote {
        font-size: 58px;
    }

    .pp-testimonial-prev,
    .pp-testimonial-next {
        width: 42px;
        height: 42px;
    }
}

/* ==========================================================
   OPTION 3 - LAYOUT CORRECTION
   Profile left / testimonial content right
   ========================================================== */

.pp-testimonial-card {
    display: grid !important;
    grid-template-columns: 235px minmax(0, 1fr) !important;
    grid-template-rows: auto auto 1fr !important;
    column-gap: 42px !important;
    row-gap: 0 !important;
    align-items: start !important;

    padding: 42px 48px !important;
}

/*
 * LEFT COLUMN
 * Person/profile spans full testimonial height
 */
.pp-testimonial-person {
    grid-column: 1 !important;
    grid-row: 1 / 4 !important;

    align-self: center !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    margin: 0 !important;
    padding: 0 32px 0 0 !important;

    background: transparent !important;
    border: 0 !important;
    border-right: 1px solid rgba(20, 38, 56, .13) !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    text-align: center !important;
}

/* profile image */
.pp-testimonial-photo {
    width: 132px !important;
    height: 132px !important;
    flex: 0 0 132px !important;

    margin: 0 auto 20px !important;

    object-fit: cover !important;
    object-position: center top !important;

    border: 6px solid #f6dadd !important;
    border-radius: 50% !important;

    background: #fff !important;
    box-shadow:
        0 0 0 1px rgba(20,38,56,.08),
        0 7px 22px rgba(20,38,56,.10) !important;
}

/* person name */
.pp-testimonial-name {
    display: block !important;

    margin: 0 0 8px !important;

    color: #142638 !important;

    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 21px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;

    text-align: center !important;
}

/* role */
.pp-testimonial-job {
    display: inline-block !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    color: #d71920 !important;

    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;

    letter-spacing: 2px !important;
    text-transform: uppercase !important;
}


/*
 * RIGHT COLUMN
 */

.pp-testimonial-quote {
    grid-column: 2 !important;
    grid-row: 1 !important;

    position: static !important;

    margin: 0 0 10px !important;

    color: #d71920 !important;
    opacity: 1 !important;

    font-family: Georgia, serif !important;
    font-size: 64px !important;
    line-height: .65 !important;

    text-align: left !important;
}

/* testimonial heading */
.pp-testimonial-title {
    grid-column: 2 !important;
    grid-row: 2 !important;

    max-width: none !important;

    margin: 0 0 17px !important;

    color: #142638 !important;

    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 25px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    text-align: left !important;
}

/* testimonial copy */
.pp-testimonial-copy {
    grid-column: 2 !important;
    grid-row: 3 !important;

    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;

    color: #52606d !important;

    font-family: "Noto Sans", Arial, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.8 !important;

    text-align: left !important;
}


/* arrows stay outside the card */
.pp-testimonial-prev,
.pp-testimonial-next {
    top: 50% !important;
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 850px) {

    .pp-testimonial-card {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;

        gap: 0 !important;

        padding: 30px 25px !important;
    }

    .pp-testimonial-person {
        grid-column: 1 !important;
        grid-row: auto !important;

        padding: 0 0 25px !important;
        margin: 0 0 26px !important;

        border-right: 0 !important;
        border-bottom: 1px solid rgba(20,38,56,.13) !important;
    }

    .pp-testimonial-quote,
    .pp-testimonial-title,
    .pp-testimonial-copy {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    .pp-testimonial-photo {
        width: 110px !important;
        height: 110px !important;
        flex-basis: 110px !important;
    }

    .pp-testimonial-title {
        font-size: 21px !important;
    }
}

/* ==========================================================
   PILOT PATH GENERIC MEDIA GALLERIES
   Royal Elementor media-grid replacement
   ========================================================== */

.pp-media-gallery {
    display: grid;
    width: 100%;
    gap: 14px;
}

.pp-media-cols-1 { grid-template-columns: 1fr; }
.pp-media-cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.pp-media-cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.pp-media-cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.pp-media-cols-5 { grid-template-columns: repeat(5, minmax(0,1fr)); }
.pp-media-cols-6 { grid-template-columns: repeat(6, minmax(0,1fr)); }

.pp-media-item {
    position: relative;
    display: block;
    overflow: hidden;

    background: #fff;
    border: 1px solid rgba(20,38,56,.08);
    border-radius: 8px;

    box-shadow: 0 5px 18px rgba(20,38,56,.06);
}

.pp-media-item img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;

    transition:
        transform .35s ease,
        opacity .35s ease;
}

.pp-media-item:hover img {
    transform: scale(1.025);
}

/* Logos should never be awkwardly cropped */
.pp-media-item.pp-media-logo img {
    object-fit: contain;
    padding: 24px;
    background: #fff;
}

/* subtle Pilot Path red hover accent */
.pp-media-item::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    height: 4px;

    background: #d71920;

    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s ease;

    pointer-events: none;
}

.pp-media-item:hover::after {
    transform: scaleX(1);
}

@media (max-width: 1024px) {
    .pp-media-cols-4,
    .pp-media-cols-5,
    .pp-media-cols-6 {
        grid-template-columns: repeat(3, minmax(0,1fr));
    }
}

@media (max-width: 767px) {
    .pp-media-gallery {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 10px;
    }
}

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

    .pp-media-item img {
        aspect-ratio: auto;
        height: auto;
    }
}


/* ==========================================================
   PILOT PATH VISUAL ROYAL REPLACEMENTS
   Advanced Slider + Image Accordion
   ========================================================== */


/* ---------- SINGLE-SLIDE JOURNEY PANEL ---------- */

.pp-journey-panel {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 650px;
    overflow: hidden;
    border-radius: 8px;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.pp-journey-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(14, 31, 47, .90) 0%,
            rgba(14, 31, 47, .76) 46%,
            rgba(14, 31, 47, .30) 78%,
            rgba(14, 31, 47, .16) 100%
        );
}

.pp-journey-content {
    position: relative;
    z-index: 2;
    width: min(720px, 90%);
    padding: 70px 64px;
    color: #fff;
}

.pp-journey-title {
    margin: 0 0 24px;
    color: #fff;
    font-family: "Teko", sans-serif;
    font-size: clamp(40px, 5vw, 64px);
    font-weight: 500;
    line-height: .98;
}

.pp-journey-description {
    margin: 0 0 30px;
    color: #fff;
    font-size: 17px;
    line-height: 1.65;
}

.pp-journey-description p {
    margin: 0 0 16px;
}

.pp-journey-description p:last-child {
    margin-bottom: 0;
}

.pp-journey-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 14px 25px;

    border-radius: 4px;
    background: #d71920;
    color: #fff !important;

    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;

    transition:
        transform .2s ease,
        background .2s ease;
}

.pp-journey-button:hover {
    background: #b9141a;
    transform: translateY(-2px);
}


/* ---------- FIVE-STAGE IMAGE ACCORDION ---------- */

.pp-training-accordion {
    display: flex;
    width: 100%;
    min-height: 500px;
    gap: 4px;
    overflow: hidden;
}

.pp-training-accordion-item {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;

    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;

    text-decoration: none !important;

    transition:
        flex .4s ease,
        filter .3s ease;
}

.pp-training-accordion-item:hover {
    flex: 2.2 1 0;
}

.pp-training-accordion-item::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            to top,
            rgba(13, 31, 47, .86) 0%,
            rgba(13, 31, 47, .18) 58%,
            rgba(13, 31, 47, .06) 100%
        );
}

.pp-training-accordion-label {
    position: absolute;
    z-index: 2;
    right: 18px;
    bottom: 20px;
    left: 18px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 46px;
    padding: 11px 14px;

    border-radius: 4px;
    background: #d71920;
    color: #fff;

    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;

    transition:
        background .2s ease,
        transform .2s ease;
}

a.pp-training-accordion-item:hover
.pp-training-accordion-label {
    background: #b9141a;
    transform: translateY(-2px);
}


@media (max-width: 900px) {

    .pp-journey-panel {
        min-height: 560px;
    }

    .pp-journey-content {
        width: 100%;
        padding: 50px 36px;
    }

    .pp-training-accordion {
        min-height: 420px;
    }
}


@media (max-width: 767px) {

    .pp-journey-panel {
        min-height: 520px;
        align-items: flex-end;
    }

    .pp-journey-panel::before {
        background:
            linear-gradient(
                to top,
                rgba(14,31,47,.94) 0%,
                rgba(14,31,47,.77) 65%,
                rgba(14,31,47,.38) 100%
            );
    }

    .pp-journey-content {
        padding: 42px 24px;
    }

    .pp-journey-title {
        font-size: 42px;
    }

    .pp-journey-description {
        font-size: 15px;
    }

    .pp-training-accordion {
        display: grid;
        min-height: 0;
        gap: 8px;
    }

    .pp-training-accordion-item {
        display: block;
        min-height: 260px;
    }

    .pp-training-accordion-item:hover {
        flex: initial;
    }
}


/* ==========================================================
   PILOT PATH COMMERCIAL ROYAL REPLACEMENTS
   Pricing / Buttons / Tabs / Countdowns
   ========================================================== */

.pp-pricing-card {
    width: 100%;
    padding: 30px;
    background: #fff;
    border: 1px solid rgba(14,46,80,.10);
    border-radius: 8px;
    box-shadow: 0 8px 28px rgba(14,46,80,.07);
}

.pp-price-wrap {
    padding-bottom: 22px;
    margin-bottom: 18px;
    border-bottom: 1px solid rgba(14,46,80,.10);
}

.pp-price-main {
    display: flex;
    align-items: flex-start;
    gap: 3px;
    color: #0e2e50;
    font-family: "Poppins", sans-serif;
    font-weight: 700;
}

.pp-price-currency {
    margin-top: 7px;
    font-size: 28px;
    line-height: 1;
}

.pp-price-value {
    font-size: clamp(46px, 6vw, 66px);
    line-height: 1;
}

.pp-price-sub {
    align-self: flex-end;
    margin-bottom: 7px;
    font-size: 17px;
}

.pp-price-old {
    margin-top: 8px;
    color: #657383;
    font-size: 15px;
    text-decoration: line-through;
}

.pp-price-note {
    margin: 0 0 20px;
    color: #0e2e50;
    font-size: 17px;
    font-weight: 600;
}

.pp-price-features {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pp-price-features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(14,46,80,.08);
    color: #2a2a2a;
    font-size: 15px;
    line-height: 1.5;
}

.pp-price-features li:last-child {
    border-bottom: 0;
}

.pp-price-check {
    flex: 0 0 auto;
    color: #ca2227;
    font-weight: 700;
}

.pp-course-button-wrap {
    display: flex;
    width: 100%;
}

.pp-course-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 13px 25px;
    border: 1px solid #ca2227;
    border-radius: 4px;
    background: #ca2227;
    color: #fff !important;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none !important;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.pp-course-button:hover {
    background: #0e2e50;
    border-color: #0e2e50;
    transform: translateY(-1px);
}

.pp-tabs {
    width: 100%;
    overflow: hidden;
    border-radius: 8px;
}

.pp-tab-nav {
    display: flex;
    flex-wrap: wrap;
    background: #6ec1e4;
}

.pp-tab-button {
    flex: 1 1 140px;
    padding: 18px 14px;
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: #0e2e50;
    cursor: pointer;
    font-family: "Teko", sans-serif;
    font-size: 21px;
    font-weight: 500;
    line-height: 1.1;
    transition: background .2s ease, color .2s ease;
}

.pp-tab-button:hover,
.pp-tab-button.is-active {
    background: #0e2e50;
    color: #fff;
    border-bottom-color: #ca2227;
}

.pp-tab-panels {
    background: #0e2e50;
    color: #fff;
}

.pp-tab-panel {
    padding: 32px;
    color: #fff;
    font-size: 15px;
    line-height: 1.65;
}

.pp-tab-panel p:last-child {
    margin-bottom: 0;
}

.pp-countdown {
    display: flex;
    justify-content: center;
    gap: 12px;
    width: 100%;
}

.pp-countdown > div {
    min-width: 90px;
    padding: 15px 12px;
    border-radius: 6px;
    background: #0e2e50;
    color: #fff;
    text-align: center;
}

.pp-countdown strong,
.pp-countdown span {
    display: block;
}

.pp-countdown strong {
    font-family: "Teko", sans-serif;
    font-size: 34px;
    line-height: 1;
}

.pp-countdown span {
    margin-top: 6px;
    font-size: 11px;
    text-transform: uppercase;
}

.pp-countdown[hidden] {
    display: none !important;
}

@media (max-width: 767px) {
    .pp-pricing-card {
        padding: 22px;
    }

    .pp-tab-nav {
        display: block;
    }

    .pp-tab-button {
        display: block;
        width: 100%;
    }

    .pp-tab-panel {
        padding: 24px 20px;
    }

    .pp-countdown {
        gap: 6px;
    }

    .pp-countdown > div {
        min-width: 0;
        flex: 1 1 25%;
        padding: 12px 5px;
    }
}
/* ==========================================================
   PILOT PATH FINAL ROYAL REPLACEMENTS
   Flip Boxes / Timelines / Advanced Text / Hotspots / Charts
   ========================================================== */

/* Flip boxes */
.pp-final-flip {
    width: 100%;
    height: max(320px, var(--pp-flip-height, 320px));
    perspective: 1200px;
    outline: 0;
}

.pp-final-flip-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: transform .65s ease;
}

.pp-final-flip:hover .pp-final-flip-inner,
.pp-final-flip:focus .pp-final-flip-inner,
.pp-final-flip:focus-within .pp-final-flip-inner {
    transform: rotateX(180deg);
}

.pp-final-flip-face {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px;
    border-radius: 10px;
    overflow: auto;
    text-align: center;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.pp-final-flip-front {
    background: #6ec1e4;
    color: #0e2e50;
}

.pp-final-flip-back {
    background: #0e2e50;
    color: #fff;
    transform: rotateX(180deg);
}

.pp-final-flip-face h3 {
    margin: 0 0 14px;
    font-family: "Teko", sans-serif;
    font-size: 34px;
    font-weight: 500;
    line-height: 1;
    color: inherit;
}

.pp-final-flip-copy {
    font-size: 15px;
    line-height: 1.55;
}

.pp-final-flip-copy p:last-child {
    margin-bottom: 0;
}

.pp-final-flip-hint {
    display: inline-block;
    margin-top: 16px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #ca2227;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* Timelines */
.pp-final-timeline {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
}

.pp-final-timeline-card {
    overflow: hidden;
    border-radius: 15px;
    border-top: 6px solid var(--pp-timeline-accent, #ca2227);
    background: #fff;
    box-shadow: 0 8px 24px rgba(14, 46, 80, .10);
}

.pp-final-timeline-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.pp-final-timeline-body {
    padding: 24px;
}

.pp-final-timeline-stage {
    display: block;
    margin-bottom: 8px;
    color: #0e2e50;
    font-family: "Teko", sans-serif;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.05;
}

.pp-final-timeline-extra {
    margin-bottom: 16px;
    color: #ca2227;
    font-size: 14px;
    font-weight: 700;
}

.pp-final-timeline-copy {
    color: #2a2a2a;
    font-size: 14px;
    line-height: 1.6;
}

.pp-final-timeline-copy p:last-child {
    margin-bottom: 0;
}

.pp-final-timeline-link {
    display: inline-flex;
    margin-top: 18px;
    padding: 11px 18px;
    border-radius: 4px;
    background: #ca2227;
    color: #fff !important;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none !important;
}

.pp-final-timeline-link:hover {
    background: #0e2e50;
}

/* Advanced text */
.pp-final-advanced-text {
    display: flex;
    flex-direction: column;
    width: 100%;
    font-family: "Teko", sans-serif;
    font-weight: 500;
    line-height: .92;
}

.pp-final-advanced-prefix {
    color: var(--pp-prefix-color, #ca2227);
    font-size: var(--pp-prefix-size, 70px);
}

.pp-final-advanced-value {
    color: var(--pp-text-color, #ca2227);
    font-size: var(--pp-text-size, 80px);
}

/* Hotspot maps */
.pp-final-hotspot-map {
    position: relative;
    width: 100%;
    line-height: 1;
}

.pp-final-hotspot-map > img {
    display: block;
    width: 100%;
    height: auto;
}

.pp-final-hotspot {
    position: absolute;
    z-index: 2;
    width: 37px;
    height: 37px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #0e2e50;
    color: #fff;
    cursor: pointer;
    transform: translate(-50%, -50%);
    box-shadow: 0 3px 10px rgba(0,0,0,.18);
}

.pp-final-hotspot-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 17px;
}

.pp-final-hotspot-tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 11px);
    z-index: 5;
    width: 150px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #0e2e50;
    color: #fff;
    font-family: "Teko", sans-serif;
    font-size: 19px;
    font-weight: 500;
    line-height: 1.05;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 6px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.pp-final-hotspot-tooltip p {
    margin: 0;
}

.pp-final-hotspot:hover .pp-final-hotspot-tooltip,
.pp-final-hotspot:focus .pp-final-hotspot-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

/* Charts */
.pp-final-chart {
    width: 100%;
    padding: 28px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(14,46,80,.08);
}

.pp-final-chart h3 {
    margin: 0 0 8px;
    color: #0e2e50;
    font-family: "Teko", sans-serif;
    font-size: 30px;
    font-weight: 500;
    line-height: 1;
}

.pp-final-chart-total {
    margin-bottom: 20px;
    color: #ca2227;
    font-family: "Teko", sans-serif;
    font-size: 52px;
    font-weight: 500;
    line-height: 1;
}

.pp-final-chart-bar {
    display: flex;
    width: 100%;
    height: 30px;
    overflow: hidden;
    border-radius: 999px;
    background: #edf1f4;
}

.pp-final-chart-segment {
    display: block;
    height: 100%;
}

.pp-final-chart-legend {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.pp-final-chart-key {
    display: grid;
    grid-template-columns: 14px 1fr auto;
    align-items: center;
    gap: 9px;
    color: #2a2a2a;
    font-size: 14px;
}

.pp-final-chart-swatch {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.pp-final-chart-key strong {
    color: #0e2e50;
}

@media (max-width: 767px) {
    .pp-final-flip {
        height: 360px;
    }

    .pp-final-flip-face {
        padding: 22px;
    }

    .pp-final-timeline {
        grid-template-columns: 1fr;
    }

    .pp-final-advanced-prefix {
        font-size: var(--pp-prefix-mobile, 46px);
    }

    .pp-final-advanced-value {
        font-size: var(--pp-text-mobile, 48px);
    }

    .pp-final-hotspot {
        width: 30px;
        height: 30px;
    }

    .pp-final-hotspot-icon {
        font-size: 13px;
    }

    .pp-final-hotspot-tooltip {
        width: 118px;
        padding: 8px;
        font-size: 16px;
    }

    .pp-final-chart {
        padding: 20px;
    }

    .pp-final-chart-total {
        font-size: 44px;
    }
}
