/* ==========================================================================
   pds-packages — pricing routes
   ========================================================================== */

.pds-packages {
    position: relative;
    padding-block: var(--pds-section-y);
    overflow: hidden;
}

.pds-packages__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: clamp(2.5rem, 4.5vw, 3.75rem);
}

/* --- Head ------------------------------------------------------------------ */

.pds-packages__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.125rem;
    text-align: center;
    max-inline-size: 46rem;
    margin-inline: auto;
}

.pds-packages__head .pds__h2 {
    max-inline-size: 18ch;
}

.pds-packages__intro {
    max-inline-size: 52ch;
}

/* --- Grid ------------------------------------------------------------------ */

.pds-packages__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
    align-items: stretch;
    gap: clamp(1rem, 1.8vw, 1.5rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Two options instead of three: keep the cards at a readable width rather
   than stretching each across half the page. */
.pds-packages__grid:has(> .pds-packages__cell:nth-child(2):last-child) {
    max-inline-size: 60rem;
    margin-inline: auto;
}

.pds-packages__cell {
    display: flex;
    min-inline-size: 0;
}

/* --- Card ------------------------------------------------------------------- */

.pds-packages__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    inline-size: 100%;
    padding: clamp(1.75rem, 2.6vw, 2.25rem);
    border: 1px solid var(--pds-line);
    border-radius: var(--pds-r-lg);
    background: var(--pds-paper);
    transition: border-color .45s var(--pds-ease), box-shadow .55s var(--pds-ease-out),
                transform .55s var(--pds-ease-out);
}

.pds-packages__cell:not(.is-featured) .pds-packages__card:hover {
    border-color: var(--pds-purple-light);
    box-shadow: var(--pds-shadow);
    transform: translateY(-4px);
}

/* --- Featured ---------------------------------------------------------------
   The recommended route sits on the dark surface so it separates from its
   neighbours by material, not just by a coloured border. */

.is-featured .pds-packages__card {
    border-color: transparent;
    background: var(--pds-ink);
    color: var(--pds-on-ink-soft);
    box-shadow: var(--pds-shadow-lg);
}

@media (min-width: 1024px) {

    .is-featured .pds-packages__card {
        /* Lifts out of the row without changing the grid's row height. */
        margin-block: -1.25rem;
        padding-block: calc(clamp(1.75rem, 2.6vw, 2.25rem) + 1.25rem);
    }
}

/* Lit rim, drawn as a gradient border via a masked pseudo-element so it can
   sit on a rounded corner without a second wrapper element. */
.pds-packages__halo {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(150deg, var(--pds-orange), rgba(255, 127, 13, 0) 38%,
                rgba(169, 79, 209, 0) 62%, var(--pds-purple-light));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    pointer-events: none;
}

.is-featured .pds-packages__title,
.is-featured .pds-packages__price strong {
    color: #fff;
}

.is-featured .pds-packages__text,
.is-featured .pds-packages__features li {
    color: var(--pds-on-ink-soft);
}

.is-featured .pds__tile {
    background: rgba(255, 255, 255, .08);
    color: var(--pds-orange);
}

.is-featured .pds-packages__step {
    color: var(--pds-on-ink-faint);
}

/* --- Card head --------------------------------------------------------------- */

.pds-packages__card-head {
    display: flex;
    flex-direction: column;
    gap: .875rem;
}

.pds-packages__top {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.pds-packages__step {
    font-family: var(--pds-display);
    font-size: var(--pds-fs-eyebrow);
    font-weight: 600;
    letter-spacing: .14em;
    color: var(--pds-muted);
}

.pds-packages__badge {
    margin-inline-start: auto;
    padding: .375rem .75rem;
    border-radius: 999px;
    background: var(--pds-orange);
    color: #1B0C05;
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    white-space: nowrap;
}

.pds-packages__title {
    font-family: var(--pds-display);
    font-size: clamp(1.375rem, 1.9vw, 1.75rem);
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -.025em;
    color: var(--pds-title);
    margin: 0;
}

.pds-packages__text {
    font-size: var(--pds-fs-small);
    line-height: 1.6;
    color: var(--pds-body);
}

/* --- Price -------------------------------------------------------------------- */

.pds-packages__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .5rem .625rem;
    padding-block: 1.25rem;
    border-block: 1px solid var(--pds-line);
}

.is-featured .pds-packages__price {
    border-color: var(--pds-line-ink);
}

.pds-packages__price s {
    font-size: 1.125rem;
    color: var(--pds-muted);
    text-decoration-thickness: 1.5px;
}

.pds-packages__price strong {
    font-family: var(--pds-display);
    font-size: clamp(2.25rem, 3.4vw, 2.875rem);
    font-weight: 600;
    line-height: .95;
    letter-spacing: -.045em;
    color: var(--pds-title);
    font-variant-numeric: tabular-nums;
}

.pds-packages__price-note {
    inline-size: 100%;
    font-size: var(--pds-fs-eyebrow);
    color: var(--pds-muted);
}

.is-featured .pds-packages__price-note {
    color: var(--pds-on-ink-faint);
}

/* --- Features ------------------------------------------------------------------ */

.pds-packages__features {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 1;
}

.pds-packages__features li {
    display: flex;
    align-items: flex-start;
    gap: .6875rem;
    font-size: var(--pds-fs-small);
    line-height: 1.5;
    color: var(--pds-body);
}

.pds-packages__check {
    display: grid;
    place-items: center;
    flex: none;
    inline-size: 1.375rem;
    block-size: 1.375rem;
    margin-block-start: .0625rem;
    border-radius: 50%;
    background: var(--pds-purple-wash);
    color: var(--pds-purple);
}

.is-featured .pds-packages__check {
    background: rgba(255, 127, 13, .16);
    color: var(--pds-orange);
}

/* --- Foot ----------------------------------------------------------------------- */

.pds-packages__foot {
    display: flex;
    flex-direction: column;
    gap: .875rem;
}

.pds-packages__voucher {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    align-self: flex-start;
    padding: .5rem .875rem;
    border-radius: 999px;
    background: var(--pds-orange-wash);
    color: var(--pds-orange-ink);
    font-size: var(--pds-fs-eyebrow);
    font-weight: 600;
}

.is-featured .pds-packages__voucher {
    background: rgba(255, 127, 13, .16);
    color: var(--pds-orange);
}

.pds-packages__cta {
    justify-content: center;
    inline-size: 100%;
}

.is-featured .pds-packages__cta.pds__btn--ghost {
    --_fg: #fff;
    --_bd: rgba(255, 255, 255, .34);
}

/* --- Footnote -------------------------------------------------------------------- */

.pds-packages__footnote {
    font-size: var(--pds-fs-eyebrow);
    color: var(--pds-muted);
    text-align: center;
    max-inline-size: 60ch;
    margin-inline: auto;
}

/* --- Responsive ------------------------------------------------------------------- */

@media (max-width: 599px) {

    .pds-packages__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
