/* Variation 3 pricing flow for /pricing. */
.pricing-page {
    background: #020813;
}

.pricing-page .container {
    max-width: 1320px;
}

.pricing-path,
.pricing-detail {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 72% 12%, rgba(15, 124, 255, 0.14), transparent 32rem),
        linear-gradient(180deg, #020813 0%, #061326 54%, #031023 100%);
}

.pricing-path::before,
.pricing-detail::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(33, 150, 243, 0.08), transparent 34%, transparent 70%, rgba(33, 150, 243, 0.06)),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.018) 0, rgba(255, 255, 255, 0.018) 1px, transparent 1px, transparent 96px);
    opacity: 0.55;
}

.pricing-path .container,
.pricing-detail .container {
    position: relative;
    z-index: 1;
}

.pricing-detail[hidden] {
    display: none !important;
}

.pricing-path {
    padding: 5.4rem 0 3.4rem;
}

.pricing-path__shell {
    --pricing-fit-scale: 1;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.25fr);
    gap: 2rem;
    align-items: center;
    width: 100%;
    min-height: 430px;
    padding: 2.75rem;
    border: 1px solid rgba(100, 181, 246, 0.34);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(5, 18, 35, 0.92), rgba(3, 12, 25, 0.96));
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.38);
}

.pricing-path__copy {
    max-width: 520px;
}

.pricing-path h1,
.pricing-detail h2 {
    margin: 0;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: 0;
    text-transform: uppercase;
    text-shadow: 0 10px 24px rgba(0, 0, 0, 0.44);
}

.pricing-path h1 {
    font-size: clamp(2.55rem, 5vw, 4.55rem);
}

.pricing-path h1 span,
.pricing-detail h2 span {
    display: block;
}

.pricing-path h1 span:last-child,
.pricing-detail h2 span {
    color: #0f7cff;
}

.pricing-path__copy p,
.pricing-detail__top p {
    margin: 1rem 0 0;
    max-width: 560px;
    color: rgba(224, 225, 221, 0.78);
    font-size: 1.08rem;
    line-height: 1.5;
}

.coaching-paths {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.35rem;
    max-width: 760px;
    margin-top: 0;
}

.coaching-path,
.plan-card,
.plan-row,
.loyalty-rate {
    border: 1px solid rgba(100, 181, 246, 0.28);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(6, 23, 43, 0.9), rgba(3, 13, 27, 0.96));
}

.coaching-path {
    display: flex;
    min-height: 280px;
    flex-direction: column;
    align-items: center;
    padding: 2rem;
    color: inherit;
    text-align: center;
    text-decoration: none;
    transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.coaching-path:hover,
.coaching-path:focus-visible,
.coaching-path.is-active {
    border-color: rgba(15, 124, 255, 0.82);
    color: inherit;
    box-shadow: 0 18px 42px rgba(15, 124, 255, 0.12);
    outline: 0;
    text-decoration: none;
    transform: translateY(-2px);
}

.coaching-path--featured {
    border-color: rgba(245, 158, 11, 0.42);
    box-shadow: inset 0 0 22px rgba(245, 158, 11, 0.05);
}

.coaching-path--featured:hover,
.coaching-path--featured:focus-visible,
.coaching-path--featured.is-active {
    border-color: rgba(245, 158, 11, 0.82);
    box-shadow: 0 18px 42px rgba(245, 158, 11, 0.14), inset 0 0 28px rgba(245, 158, 11, 0.08);
}

.coaching-path.is-active {
    border-color: rgba(15, 124, 255, 0.92) !important;
    outline: 2px solid rgba(15, 124, 255, 0.72);
    outline-offset: 3px;
    box-shadow: 0 18px 42px rgba(15, 124, 255, 0.12), inset 0 0 28px rgba(15, 124, 255, 0.08) !important;
}

.coaching-path--featured:not(.is-active):not(:hover):not(:focus-visible) {
    border-color: rgba(245, 158, 11, 0.42);
    box-shadow: inset 0 0 22px rgba(245, 158, 11, 0.05);
}

/* Selected path still responds to hover with a brighter highlight */
.coaching-path.is-active:hover,
.coaching-path.is-active:focus-visible {
    border-color: rgba(64, 156, 255, 1) !important;
    box-shadow: 0 22px 52px rgba(15, 124, 255, 0.24), inset 0 0 34px rgba(15, 124, 255, 0.14) !important;
}

/* Premium keeps its gold identity when selected */
.coaching-path--featured.is-active {
    border-color: rgba(245, 158, 11, 0.92) !important;
    outline-color: rgba(245, 158, 11, 0.72);
    box-shadow: 0 18px 42px rgba(245, 158, 11, 0.14), inset 0 0 28px rgba(245, 158, 11, 0.08) !important;
}

.coaching-path--featured.is-active:hover,
.coaching-path--featured.is-active:focus-visible {
    border-color: rgba(251, 191, 36, 1) !important;
    box-shadow: 0 22px 52px rgba(245, 158, 11, 0.26), inset 0 0 34px rgba(245, 158, 11, 0.14) !important;
}

/* Plan cards and rows share the coaching-path hover highlight */
.plan-card,
.plan-row {
    transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.plan-card:hover,
.plan-row:hover {
    border-color: rgba(15, 124, 255, 0.82);
    box-shadow: 0 18px 42px rgba(15, 124, 255, 0.12);
    transform: translateY(-2px);
}

.plan-card--blue:hover {
    border-color: rgba(64, 156, 255, 1);
    box-shadow: 0 18px 42px rgba(15, 124, 255, 0.12), inset 0 0 28px rgba(15, 124, 255, 0.08);
}

/* Best Value and Best Results are gold; Most Popular stays blue */
.plan-card:not(.plan-card--blue):hover {
    border-color: rgba(245, 158, 11, 0.82);
    box-shadow: 0 18px 42px rgba(245, 158, 11, 0.14), inset 0 0 28px rgba(245, 158, 11, 0.08);
}

.coaching-path__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 5.2rem;
    height: 5.2rem;
    margin-bottom: 1.25rem;
    border: 1px solid #0f7cff;
    border-radius: 50%;
    color: #0f7cff;
    font-size: 2.2rem;
}

.coaching-path--featured .coaching-path__icon,
.plan-card--featured .plan-card__icon {
    color: #F59E0B;
}

.coaching-path h2,
.plan-card h3,
.plan-row h3,
.loyalty-rate h3 {
    margin: 0;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.2;
    text-transform: uppercase;
}

.coaching-path h2 {
    font-size: 1.2rem;
}

.coaching-path p {
    min-height: 4.5rem;
    margin: 0.8rem 0 1.2rem;
    color: rgba(224, 225, 221, 0.76);
    font-size: 0.96rem;
    line-height: 1.45;
}

.coaching-path__price {
    margin-top: auto;
    color: rgba(224, 225, 221, 0.76);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    line-height: 1.1;
}

.coaching-path__price strong {
    margin-left: 0.25rem;
    color: #ffffff;
    font-size: 2.08rem;
    font-weight: 800;
}

.coaching-path__price span {
    color: rgba(224, 225, 221, 0.76);
    font-size: 0.92rem;
}

.coaching-path p.coaching-path__annual {
    min-height: 0;
    margin: 0.45rem 0 0;
    color: rgba(224, 225, 221, 0.68);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.82rem;
    line-height: 1.3;
}

.pricing-path__assurance,
.pricing-detail__cta p {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    justify-content: center;
    margin: 1.45rem 0 0;
    color: rgba(224, 225, 221, 0.68);
    font-size: 0.9rem;
}

.pricing-path__assurance {
    grid-column: 1 / -1;
}

.pricing-path__assurance i,
.pricing-detail__cta p i,
.billing-note i {
    color: #7cc36f;
}

.pricing-path__mark {
    position: absolute;
    top: 1.6rem;
    right: 1.8rem;
    pointer-events: none;
    color: transparent;
    font-family: 'Montserrat', sans-serif;
    font-size: 25rem;
    font-weight: 800;
    line-height: 0.82;
    -webkit-text-stroke: 1px rgba(15, 124, 255, 0.42);
    opacity: 0.5;
    transform: scaleX(0.76);
    transform-origin: right top;
}

.pricing-detail {
    padding: 4.25rem 0;
    scroll-margin-top: 6.5rem;
}

.pricing-detail--checkin {
    padding-top: 3rem;
    background:
        radial-gradient(circle at 12% 24%, rgba(15, 124, 255, 0.1), transparent 27rem),
        linear-gradient(180deg, #031023 0%, #061326 48%, #020813 100%);
}

.pricing-anchor {
    position: absolute;
    top: -6.5rem;
}

.billing-state {
    --pricing-fit-scale: 1;
    position: relative;
    width: 100%;
    padding: 2.6rem;
    border: 1px solid rgba(100, 181, 246, 0.34);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(5, 18, 35, 0.92), rgba(3, 12, 25, 0.96));
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.3);
}

.billing-state--checkin {
    padding: 2.15rem 2.35rem;
}

@media (min-width: 360px) {
    .pricing-path.is-fit-scaled,
    .pricing-detail.is-fit-scaled {
        display: flex;
        align-items: center;
        min-height: var(--pricing-fit-min-height, auto);
    }

    .pricing-detail.is-fit-scaled {
        align-items: flex-start;
    }

    .pricing-path.is-fit-scaled .container,
    .pricing-detail.is-fit-scaled .container {
        width: 100%;
    }

    .pricing-path.is-fit-scaled .pricing-path__shell,
    .pricing-detail.is-fit-scaled .billing-state {
        margin-right: auto;
        margin-left: auto;
        transform: scale(var(--pricing-fit-scale, 1));
        transform-origin: top left;
    }

    .pricing-path.is-fit-scaled .pricing-path__shell {
        transform-origin: top left;
    }

    .pricing-path.is-fit-scaled .pricing-path__shell,
    .pricing-detail.is-fit-scaled .billing-state {
        width: calc(100% / var(--pricing-fit-scale, 1));
        max-width: calc(100% / var(--pricing-fit-scale, 1));
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .pricing-detail.is-fit-scaled .pricing-plans--cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.65rem;
    }

    .pricing-detail.is-fit-scaled .pricing-plans--cards .plan-card--blue {
        grid-column: auto;
    }

    .pricing-detail.is-fit-scaled .plan-card {
        min-height: 230px;
        padding: 0.85rem;
    }

    .pricing-detail.is-fit-scaled .plan-card__badge {
        min-width: 0;
        min-height: 1.35rem;
        margin-bottom: 0.55rem;
        padding: 0.18rem 0.55rem;
        font-size: 0.72rem;
    }

    .pricing-detail.is-fit-scaled .plan-card__icon {
        margin-bottom: 0.55rem;
        font-size: 2.05rem;
    }

    .pricing-detail.is-fit-scaled .plan-card__image {
        width: 5.8rem;
        height: 5.8rem;
        margin: -0.25rem auto 0.45rem;
    }

    .pricing-detail.is-fit-scaled .plan-card h3 {
        min-height: 2.55rem;
        font-size: 0.88rem;
        line-height: 1.22;
    }

    .pricing-detail.is-fit-scaled .plan-card__cadence,
    .pricing-detail.is-fit-scaled .plan-card__details {
        margin: 0.45rem 0 0.65rem;
        font-size: 0.7rem;
        line-height: 1.28;
    }

    .pricing-detail.is-fit-scaled .plan-card__price {
        font-size: 2.25rem;
    }

    .pricing-detail.is-fit-scaled .plan-card__price small,
    .pricing-detail.is-fit-scaled .plan-row__price small {
        font-size: 0.75rem;
    }

    .pricing-detail.is-fit-scaled .price-note {
        margin-top: 0.35rem;
        font-size: 0.68rem;
    }

    .pricing-detail.is-fit-scaled .pricing-plans--rows {
        gap: 0.55rem;
    }

    .pricing-detail.is-fit-scaled .plan-row {
        grid-template-columns: 3.35rem minmax(0, 1fr) minmax(8rem, auto);
        gap: 0.8rem;
        min-height: 104px;
        padding: 0.7rem 0.9rem;
    }

    .pricing-detail.is-fit-scaled .plan-row__icon {
        width: 2.75rem;
        height: 2.75rem;
        font-size: 1.05rem;
    }

    .pricing-detail.is-fit-scaled .plan-row h3 {
        font-size: 0.82rem;
    }

    .pricing-detail.is-fit-scaled .plan-row__copy p,
    .pricing-detail.is-fit-scaled .plan-row__details {
        margin-top: 0.25rem;
        font-size: 0.68rem;
        line-height: 1.28;
    }

    .pricing-detail.is-fit-scaled .plan-row__price {
        padding-left: 0.85rem;
        font-size: 1.65rem;
    }
}

.billing-state > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.pricing-detail__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.2rem 1.5rem;
    align-items: end;
    margin-bottom: 1.5rem;
}

.billing-state--checkin .pricing-detail__top {
    gap: 0.9rem 1.25rem;
    margin-bottom: 1.1rem;
}

.pricing-detail__nav {
    grid-column: 1 / -1;
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.pricing-detail__back,
.pricing-detail__switch {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    width: fit-content;
    color: #0f7cff;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.pricing-detail__switch {
    padding-bottom: 0.25rem;
    border-bottom: 1px solid rgba(15, 124, 255, 0.7);
}

.pricing-detail__switch:hover,
.pricing-detail__back:hover {
    color: #ffffff;
}

.pricing-detail h2 {
    font-size: clamp(2rem, 4vw, 3.2rem);
}

.billing-toggle {
    display: grid;
    grid-template-columns: minmax(8.5rem, 0.82fr) minmax(12rem, 1.18fr);
    width: min(100%, 29rem);
    margin: 0;
    padding: 0.22rem;
    border: 1px solid rgba(100, 181, 246, 0.26);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
}

.billing-toggle legend {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.billing-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.8rem;
    padding: 0 1rem;
    margin: 0;
    border-radius: 9px;
    color: rgba(255, 255, 255, 0.86);
    cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    transition: background 160ms ease, color 160ms ease;
}

#premium-monthly:focus-visible ~ .pricing-detail__top label[for="premium-monthly"],
#premium-annual:focus-visible ~ .pricing-detail__top label[for="premium-annual"],
#checkin-monthly:focus-visible ~ .pricing-detail__top label[for="checkin-monthly"],
#checkin-annual:focus-visible ~ .pricing-detail__top label[for="checkin-annual"] {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}

#premium-monthly:checked ~ .pricing-detail__top label[for="premium-monthly"],
#premium-annual:checked ~ .pricing-detail__top label[for="premium-annual"],
#checkin-monthly:checked ~ .pricing-detail__top label[for="checkin-monthly"],
#checkin-annual:checked ~ .pricing-detail__top label[for="checkin-annual"] {
    background: #0f7cff;
    color: #ffffff;
}

.billing-note {
    grid-column: 1 / -1;
    gap: 0.55rem;
    align-items: center;
    margin: -0.7rem 0 0;
    color: rgba(224, 225, 221, 0.78);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.billing-note,
.price-switch,
.price-note {
    display: none;
}

#premium-monthly:checked ~ .pricing-detail__top .billing-note--monthly,
#premium-annual:checked ~ .pricing-detail__top .billing-note--annual,
#checkin-monthly:checked ~ .pricing-detail__top .billing-note--monthly,
#checkin-annual:checked ~ .pricing-detail__top .billing-note--annual {
    display: flex;
}

#premium-monthly:checked ~ .pricing-plans .price-switch--monthly,
#premium-annual:checked ~ .pricing-plans .price-switch--annual,
#checkin-monthly:checked ~ .pricing-plans .price-switch--monthly,
#checkin-annual:checked ~ .pricing-plans .price-switch--annual {
    display: inline-flex;
    align-items: baseline;
}

#premium-monthly:checked ~ .pricing-plans .price-note--monthly,
#premium-annual:checked ~ .pricing-plans .price-note--annual,
#checkin-monthly:checked ~ .pricing-plans .price-note--monthly,
#checkin-annual:checked ~ .pricing-plans .price-note--annual {
    display: block;
}

.billing-note--team,
.pricing-detail--team .price-note {
    display: block;
}

.billing-note--team {
    display: flex;
}

.coaching-path--team {
    grid-column: 1 / -1;
    min-height: 0;
}

.coaching-path--team,
.coaching-path--team:not(.is-active):not(:hover):not(:focus-visible) {
    border-color: rgba(34, 197, 94, 0.5);
    box-shadow: 0 0 26px rgba(34, 197, 94, 0.16), inset 0 0 22px rgba(34, 197, 94, 0.06);
}

.coaching-path--team:hover,
.coaching-path--team:focus-visible,
.coaching-path--team.is-active {
    border-color: rgba(74, 222, 128, 0.95) !important;
    box-shadow: 0 18px 46px rgba(34, 197, 94, 0.24), inset 0 0 30px rgba(34, 197, 94, 0.1) !important;
}

.coaching-path--team.is-active {
    outline-color: rgba(34, 197, 94, 0.72);
}

.coaching-path--team .coaching-path__icon {
    border-color: #22c55e;
    color: #22c55e;
    filter: drop-shadow(0 0 8px rgba(34, 197, 94, 0.45));
}

.pricing-plans--cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 1rem;
}

.plan-card {
    position: relative;
    display: grid;
    grid-template-rows: auto auto auto minmax(2.65rem, auto) auto auto;
    min-height: 330px;
    align-items: center;
    align-content: stretch;
    height: 100%;
    padding: 1.65rem;
    text-align: center;
}

.plan-card__badge--ghost {
    visibility: hidden;
}

.plan-card--blue {
    border-color: #0f7cff;
    box-shadow: inset 0 0 28px rgba(15, 124, 255, 0.08);
}

.plan-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 8.9rem;
    min-height: 2.1rem;
    margin-bottom: 0.9rem;
    padding: 0.32rem 0.85rem;
    border-radius: 8px;
    background: linear-gradient(180deg, #E8B84F, #C78B24);
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    line-height: 1.2;
    text-transform: uppercase;
}

.plan-card__badge--blue {
    background: #0f7cff;
}

.plan-card__icon {
    margin-bottom: 0.85rem;
    color: #0f7cff;
    font-size: 2.8rem;
}

.plan-card__image {
    display: block;
    width: 7rem;
    height: 7rem;
    margin: -0.3rem auto 0.65rem;
    object-fit: contain;
    filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.34));
}

.plan-card h3 {
    min-height: 2.4rem;
    font-size: 1.18rem;
}

.plan-card__cadence,
.plan-card__details,
.plan-row__copy p,
.plan-row__details {
    margin: 0.35rem 0 0.75rem;
    color: rgba(224, 225, 221, 0.78);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.38;
}

.plan-card__details,
.plan-row__details {
    display: grid;
    width: 100%;
    gap: 0.34rem;
    text-transform: none;
}

.plan-card__cadence,
.plan-card__details {
    min-height: 2.35rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid rgba(100, 181, 246, 0.14);
    border-radius: 12px;
    background: rgba(4, 18, 34, 0.32);
    align-content: center;
    text-align: center;
}

.plan-card__details span,
.plan-row__details span {
    display: block;
}

.plan-card__details span + span,
.plan-row__details span + span {
    padding-top: 0.34rem;
    border-top: 1px solid rgba(100, 181, 246, 0.18);
}

.plan-card__price,
.plan-row__price {
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    letter-spacing: 0;
}

.plan-card__price {
    align-self: center;
    font-size: 3.15rem;
    line-height: 1;
}

.plan-card--blue .plan-card__price {
    color: #0f7cff;
}

.plan-card__price small,
.plan-row__price small {
    margin-left: 0.18rem;
    color: rgba(224, 225, 221, 0.78);
    font-size: 0.95rem;
    font-weight: 500;
}

.price-note {
    margin: 0.55rem 0 0;
    color: rgba(224, 225, 221, 0.74);
    font-size: 0.86rem;
    line-height: 1.25;
}

.pricing-plans--rows {
    display: grid;
    grid-auto-rows: 1fr;
    gap: 0.55rem;
}

.plan-row {
    display: grid;
    grid-template-columns: 4.4rem minmax(0, 1fr) minmax(10rem, auto);
    gap: 1rem;
    align-items: center;
    min-height: 104px;
    height: 100%;
    padding: 0.85rem 1.15rem;
}

.plan-row__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.4rem;
    height: 3.4rem;
    border: 1px solid #0f7cff;
    border-radius: 50%;
    color: #0f7cff;
    font-size: 1.45rem;
}

.plan-row__image {
    display: block;
    width: 3.85rem;
    height: 3.85rem;
    object-fit: contain;
}

.plan-row h3 {
    font-size: 1rem;
}

.plan-row__copy p,
.plan-row__details {
    margin: 0.35rem 0 0;
    text-transform: none;
}

.plan-row__price {
    padding-left: 1.4rem;
    border-left: 1px solid rgba(100, 181, 246, 0.2);
    font-size: 2.08rem;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}

.loyalty-rate {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.2rem;
    align-items: center;
    margin-top: 1rem;
    padding: 1.15rem 1.45rem;
}

.billing-state--checkin .loyalty-rate {
    margin-top: 0.65rem;
    padding: 0.85rem 1.15rem;
}

.loyalty-rate__icon {
    color: #0f7cff;
    font-size: 2.4rem;
}

.loyalty-rate h3 {
    color: #0f7cff;
    font-size: 1rem;
}

.loyalty-rate p {
    margin: 0.35rem 0 0;
    color: rgba(224, 225, 221, 0.78);
    font-size: 0.94rem;
    line-height: 1.42;
}

.pricing-detail__cta {
    margin-top: 1rem;
    text-align: center;
}

.billing-state--checkin .pricing-detail__cta {
    margin-top: 0.7rem;
}

.pricing-detail__cta .btn {
    display: inline-flex;
    gap: 0.8rem;
    align-items: center;
    justify-content: center;
    width: min(100%, 40rem);
    min-height: 3.8rem;
    border-radius: 12px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.starter-package {
    position: relative;
    z-index: 1;
    padding: 0 0 3rem;
    background: var(--primary-navy);
}

.starter-package__panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem 1.75rem;
    border: 1px solid rgba(100, 181, 246, 0.36);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(15, 124, 255, 0.16), rgba(4, 18, 34, 0.82));
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.2);
}

.starter-package__eyebrow {
    color: #64b5f6;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.starter-package h2 {
    margin: 0.3rem 0 0;
    color: #ffffff;
    font-size: clamp(1.45rem, 2.5vw, 2rem);
}

.starter-package p {
    margin: 0.35rem 0 0;
    color: rgba(224, 225, 221, 0.88);
}

.starter-package__note {
    font-size: 0.9rem;
}

.starter-package__eyebrow--promo {
    display: inline-block;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(15, 124, 255, 0.28);
    color: #9fd3ff;
}

.starter-package__offer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.75rem;
    align-items: baseline;
    margin-top: 0.75rem !important;
}

.starter-package__was {
    color: rgba(224, 225, 221, 0.6);
    font-size: 1.35rem;
    font-weight: 700;
    text-decoration-color: #64b5f6;
    text-decoration-thickness: 2px;
}

.starter-package__now {
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(2.6rem, 9vw, 3.4rem);
    font-weight: 800;
    line-height: 1;
}

.starter-package__unit {
    color: rgba(224, 225, 221, 0.88);
    font-size: 0.95rem;
    line-height: 1.35;
}

.starter-package__unit strong {
    color: #ffffff;
}

.starter-package__deal {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.85rem !important;
}

.starter-package__save,
.starter-package__ends {
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.starter-package__save {
    background: #0f7cff;
    color: #ffffff;
}

.starter-package__ends {
    border: 1px solid rgba(100, 181, 246, 0.45);
    color: #9fd3ff;
}

/* Launch offer panel: copy, price block, note and CTA are separate grid cells so each layout can place them without empty gaps. */
.starter-package__panel--promo {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "copy"
        "deal"
        "note"
        "cta";
    gap: 0.5rem;
}

.starter-package__panel--promo .starter-package__copy { grid-area: copy; }
.starter-package__panel--promo .starter-package__deal-box { grid-area: deal; }
.starter-package__panel--promo .starter-package__note { grid-area: note; margin: 0; }
.starter-package__panel--promo > .btn { grid-area: cta; margin-top: 0.65rem; }

@media (min-width: 768px) {
    .starter-package__panel--promo {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "copy deal"
            "note cta";
        column-gap: 2.5rem;
        row-gap: 1.25rem;
        align-items: center;
    }

    .starter-package__panel--promo > .btn { margin-top: 0; }
}

@media (min-width: 1200px) {
    .starter-package__panel--promo {
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-areas:
            "copy deal cta"
            "note deal cta";
        column-gap: clamp(1.75rem, 3.5vw, 3.5rem);
        row-gap: 0.5rem;
    }

    .starter-package__panel--promo .starter-package__deal-box {
        padding-left: clamp(1.75rem, 3.5vw, 3.5rem);
        border-left: 1px solid rgba(100, 181, 246, 0.28);
    }

    .starter-package__panel--promo .starter-package__offer {
        margin-top: 0 !important;
    }
}

.starter-package .btn {
    display: inline-flex;
    gap: 0.6rem;
    align-items: center;
    justify-content: center;
    min-height: 3.15rem;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.premium-team-disclosure {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    margin: 1rem 0 0;
    padding: 0.85rem 1rem;
    border-left: 3px solid #0f7cff;
    background: rgba(15, 124, 255, 0.1);
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.9rem;
    line-height: 1.4;
}

.premium-team-disclosure i {
    color: #64b5f6;
}

/* Section accents: Check-In stays blue, Premium is gold, Team is green */
.pricing-detail--premium {
    --section-accent: #f59e0b;
    --section-accent-rgb: 245, 158, 11;
    --section-accent-fill: linear-gradient(180deg, #e8b84f, #c78b24);
}

.pricing-detail--team {
    --section-accent: #22c55e;
    --section-accent-rgb: 34, 197, 94;
    --section-accent-fill: linear-gradient(180deg, #34d36f, #16a34a);
}

.pricing-detail--premium h2 span,
.pricing-detail--team h2 span,
.pricing-detail--premium .loyalty-rate__icon,
.pricing-detail--premium .loyalty-rate h3,
.pricing-detail--premium .plan-card--blue .plan-card__price,
.pricing-detail--team .plan-card--blue .plan-card__price {
    color: var(--section-accent);
}

.pricing-detail--premium .billing-state,
.pricing-detail--team .billing-state {
    border-color: rgba(var(--section-accent-rgb), 0.4);
}

.pricing-detail--premium .plan-card--blue,
.pricing-detail--team .plan-card--blue {
    border-color: var(--section-accent);
    box-shadow: inset 0 0 28px rgba(var(--section-accent-rgb), 0.1);
}

.pricing-detail--premium .plan-card__badge,
.pricing-detail--team .plan-card__badge {
    background: var(--section-accent-fill);
}

.pricing-detail--premium .plan-card:hover,
.pricing-detail--team .plan-card:hover {
    border-color: rgba(var(--section-accent-rgb), 0.9);
    box-shadow: 0 18px 42px rgba(var(--section-accent-rgb), 0.16), inset 0 0 28px rgba(var(--section-accent-rgb), 0.08);
}

.pricing-detail--premium .premium-team-disclosure,
.pricing-detail--team .premium-team-disclosure {
    border-left-color: var(--section-accent);
    background: rgba(var(--section-accent-rgb), 0.1);
}

.pricing-detail--premium .premium-team-disclosure i,
.pricing-detail--team .premium-team-disclosure i {
    color: var(--section-accent);
}

#premium-monthly:checked ~ .pricing-detail__top label[for="premium-monthly"],
#premium-annual:checked ~ .pricing-detail__top label[for="premium-annual"] {
    background: var(--section-accent-fill);
}

.pricing-page .pricing-faq {
    background: var(--primary-navy);
}

@media (max-width: 1199px) and (min-width: 992px) {
    .pricing-path {
        padding: 4.8rem 0 3rem;
    }

    .pricing-path__shell {
        grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.32fr);
        gap: 1.4rem;
        min-height: 400px;
        padding: 2rem;
    }

    .pricing-path h1 {
        font-size: clamp(2.65rem, 4.6vw, 3.55rem);
    }

    .coaching-paths {
        gap: 0.85rem;
    }

    .coaching-path {
        min-height: 260px;
        padding: 1.35rem;
    }

    .coaching-path__icon {
        width: 4rem;
        height: 4rem;
        margin-bottom: 1rem;
        font-size: 1.65rem;
    }

    .coaching-path h2 {
        font-size: 1.05rem;
    }

    .coaching-path p {
        font-size: 0.88rem;
    }

    .coaching-path__price strong {
        font-size: 1.75rem;
    }
}

@media (max-width: 1199px) and (min-width: 768px) {
    .pricing-plans--cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pricing-plans--cards .plan-card--blue {
        grid-column: 1 / -1;
    }

    .plan-card {
        min-height: 295px;
        padding: 1.35rem;
    }

    .plan-card h3 {
        min-height: 0;
    }

    .plan-card__price {
        font-size: 2.8rem;
    }

    .plan-row {
        grid-template-columns: 3.8rem minmax(0, 1fr) minmax(9rem, auto);
        gap: 1rem;
        padding: 1rem 1.15rem;
    }

    .plan-row__price {
        font-size: 1.85rem;
    }
}

@media (max-width: 991px) {
    .pricing-path {
        padding-top: 6rem;
    }

    .pricing-path__shell,
    .billing-state {
        padding: 2rem;
    }

    .pricing-path__shell {
        display: grid;
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .coaching-path {
        min-height: 0;
    }

    .coaching-path p {
        min-height: 0;
    }

    .pricing-path__mark {
        top: 0.75rem;
        right: -1.4rem;
        font-size: 17rem;
        opacity: 0.32;
    }

    .pricing-detail__top {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .billing-toggle {
        width: 100%;
    }

    .plan-card {
        min-height: 0;
    }

    .plan-card h3 {
        min-height: 0;
    }
}

@media (min-width: 900px) and (max-width: 1100px) and (min-height: 900px) {
    .pricing-path,
    .pricing-detail {
        min-height: calc(100svh - 72px);
        padding: 1.2rem 0;
    }

    .pricing-path {
        display: flex;
        align-items: center;
    }

    .pricing-path .container,
    .pricing-detail .container {
        width: 100%;
    }

    .pricing-path__shell {
        display: grid;
        grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
        gap: 1.1rem;
        align-items: center;
        min-height: 0;
        padding: 1.35rem;
    }

    .pricing-path h1 {
        font-size: clamp(2.35rem, 5vw, 3.05rem);
    }

    .pricing-path__copy p,
    .pricing-detail__top p {
        margin-top: 0.65rem;
        font-size: 0.92rem;
        line-height: 1.35;
    }

    .coaching-paths {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.85rem;
        margin-top: 0;
    }

    .coaching-path {
        min-height: 238px;
        padding: 1rem;
    }

    .coaching-path__icon {
        width: 3.45rem;
        height: 3.45rem;
        margin-bottom: 0.8rem;
        font-size: 1.45rem;
    }

    .coaching-path h2 {
        font-size: 0.98rem;
    }

    .coaching-path p {
        min-height: 3.6rem;
        margin: 0.55rem 0 0.85rem;
        font-size: 0.82rem;
        line-height: 1.34;
    }

    .coaching-path__price strong {
        font-size: 1.55rem;
    }

    .pricing-path__assurance,
    .pricing-detail__cta p {
        margin-top: 0.85rem;
        font-size: 0.78rem;
    }

    .pricing-path__mark {
        top: 0.4rem;
        right: 0.6rem;
        font-size: 16rem;
        opacity: 0.26;
    }

    .billing-state {
        padding: 1.15rem;
    }

    .pricing-detail__top {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(17rem, auto);
        gap: 0.75rem 1rem;
        align-items: end;
        margin-bottom: 0.9rem;
    }

    .pricing-detail__nav {
        gap: 0.75rem;
    }

    .pricing-detail__back,
    .pricing-detail__switch {
        font-size: 0.68rem;
    }

    .pricing-detail h2 {
        font-size: clamp(1.7rem, 4.2vw, 2.45rem);
    }

    .billing-toggle {
        grid-template-columns: repeat(2, minmax(7.5rem, 1fr));
        width: 100%;
    }

    .billing-tab {
        min-height: 2.35rem;
        font-size: 0.7rem;
    }

    .billing-note {
        margin-top: 0;
        font-size: 0.68rem;
        line-height: 1.3;
    }

    .pricing-plans--cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.65rem;
    }

    .pricing-plans--cards .plan-card--blue {
        grid-column: auto;
    }

    .plan-card {
        min-height: 230px;
        padding: 0.85rem;
    }

    .plan-card__badge {
        min-width: 0;
        min-height: 1.75rem;
        margin-bottom: 0.55rem;
        padding: 0.25rem 0.65rem;
        font-size: 0.82rem;
    }

    .plan-card__icon {
        margin-bottom: 0.55rem;
        font-size: 2.05rem;
    }

    .plan-card__image {
        width: 5.8rem;
        height: 5.8rem;
        margin: -0.25rem auto 0.45rem;
    }

    .plan-card h3 {
        min-height: 2.55rem;
        font-size: 0.88rem;
        line-height: 1.22;
    }

    .plan-card__cadence {
        margin: 0.45rem 0 0.65rem;
        font-size: 0.7rem;
        line-height: 1.28;
    }

    .plan-card__price {
        font-size: 2.25rem;
    }

    .plan-card__price small,
    .plan-row__price small {
        font-size: 0.75rem;
    }

    .price-note {
        margin-top: 0.35rem;
        font-size: 0.68rem;
    }

    .pricing-plans--rows {
        gap: 0.55rem;
    }

    .plan-row {
        grid-template-columns: 3.35rem minmax(0, 1fr) minmax(8rem, auto);
        gap: 0.8rem;
        min-height: 86px;
        padding: 0.7rem 0.9rem;
    }

    .plan-row__icon {
        width: 2.75rem;
        height: 2.75rem;
        font-size: 1.05rem;
    }

    .plan-row h3 {
        font-size: 0.82rem;
    }

    .plan-row__copy p,
    .plan-row__details {
        margin-top: 0.25rem;
        font-size: 0.68rem;
        line-height: 1.28;
    }

    .plan-row__price {
        padding-left: 0.85rem;
        font-size: 1.65rem;
    }

    .loyalty-rate {
        gap: 0.85rem;
        margin-top: 0.65rem;
        padding: 0.7rem 0.9rem;
    }

    .loyalty-rate__icon {
        font-size: 1.75rem;
    }

    .loyalty-rate h3 {
        font-size: 0.78rem;
    }

    .loyalty-rate p {
        margin-top: 0.2rem;
        font-size: 0.72rem;
        line-height: 1.28;
    }

    .pricing-detail__cta {
        margin-top: 0.65rem;
    }

    .pricing-detail__cta .btn {
        width: min(100%, 32rem);
        min-height: 3rem;
        font-size: 0.82rem;
    }
}

@media (max-width: 767px) {
    .starter-package {
        padding-bottom: 2.25rem;
    }

    .starter-package__panel {
        grid-template-columns: 1fr;
    }

    .starter-package__panel {
        gap: 1.15rem;
        padding: 1.25rem;
    }

    .starter-package .btn {
        width: 100%;
        gap: 0.6rem;
        padding: 0.85rem 1rem;
        text-align: center;
    }

    .pricing-path {
        padding: 2.5rem 0 2.25rem;
    }

    .pricing-path__shell,
    .billing-state {
        padding: 1.15rem;
    }

    .pricing-path__copy p,
    .pricing-detail__top p {
        font-size: 0.98rem;
    }

    .coaching-paths {
        grid-template-columns: 1fr;
        gap: 0.65rem;
        margin-top: 1.15rem;
    }

    .pricing-plans--cards {
        grid-template-columns: 1fr;
    }

    .pricing-plans--cards .plan-card--blue {
        grid-column: auto;
    }

    .coaching-path {
        align-items: center;
        padding: 0.85rem;
        text-align: center;
    }

    .coaching-path__icon {
        width: 2.75rem;
        height: 2.75rem;
        margin-bottom: 0.65rem;
        font-size: 1.15rem;
    }

    .pricing-page .coaching-path h2 {
        font-size: 0.78rem !important;
        line-height: 1.25 !important;
    }

    .coaching-path p {
        margin: 0.55rem 0 0.75rem;
        font-size: 0.72rem;
        line-height: 1.32;
    }

    .coaching-path__price strong {
        display: block;
        margin: 0.15rem 0 0;
        font-size: 1.45rem;
    }

    .coaching-path__price {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.15rem;
    }

    .coaching-path__price-amount {
        display: inline-flex;
        align-items: baseline;
        white-space: nowrap;
    }

    .coaching-path__price-amount strong {
        margin: 0;
    }

    .pricing-detail {
        padding: 2rem 0;
        scroll-margin-top: 5rem;
    }

    .pricing-detail__top {
        gap: 1rem;
        margin-bottom: 1.25rem;
    }

    .pricing-detail.is-fit-scaled .pricing-detail__top {
        gap: 0.65rem;
        margin-bottom: 0.7rem;
    }

    .pricing-detail.is-fit-scaled .pricing-detail__nav {
        gap: 0.45rem;
    }

    .pricing-detail.is-fit-scaled .pricing-detail__back,
    .pricing-detail.is-fit-scaled .pricing-detail__switch {
        font-size: 0.62rem;
    }

    .pricing-detail.is-fit-scaled h2 {
        font-size: clamp(1.45rem, 8vw, 2rem);
    }

    .pricing-detail.is-fit-scaled .pricing-detail__top p {
        margin-top: 0.35rem;
        font-size: 0.76rem;
        line-height: 1.25;
    }

    .billing-toggle {
        grid-template-columns: 1fr 1.28fr;
    }

    .pricing-detail.is-fit-scaled .billing-toggle {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 0.16rem;
    }

    .billing-tab {
        min-height: 2.55rem;
        padding: 0 0.55rem;
        font-size: 0.72rem;
    }

    .pricing-detail.is-fit-scaled .billing-tab {
        min-height: 2rem;
        padding: 0 0.35rem;
        font-size: 0.58rem;
    }

    .billing-note {
        margin-top: -0.25rem;
        font-size: 0.7rem;
        line-height: 1.35;
    }

    .pricing-detail.is-fit-scaled .billing-note {
        margin-top: -0.15rem;
        font-size: 0.56rem;
        line-height: 1.25;
    }

    .plan-card {
        align-items: flex-start;
        min-height: 0;
        padding: 1rem;
        text-align: left;
    }

    .pricing-detail.is-fit-scaled .pricing-plans--cards,
    .pricing-detail.is-fit-scaled .pricing-plans--rows {
        gap: 0.45rem;
    }

    .pricing-detail.is-fit-scaled .plan-card {
        display: grid;
        grid-template-columns: 2.85rem minmax(0, 1fr) auto;
        gap: 0.25rem 0.65rem;
        align-items: center;
        padding: 0.65rem 0.75rem;
    }

    .plan-card__badge {
        min-width: 0;
        margin-bottom: 0.7rem;
    }

    .pricing-detail.is-fit-scaled .plan-card__badge {
        grid-column: 2;
        min-height: 1.1rem;
        margin: 0;
        padding: 0.12rem 0.45rem;
        font-size: 0.65rem;
        justify-self: start;
    }

    .plan-card__icon {
        display: none;
    }

    .plan-card__image {
        width: 4.25rem;
        height: 4.25rem;
        margin: -0.2rem 0 0.55rem;
    }

    .pricing-detail.is-fit-scaled .plan-card__image {
        grid-column: 1;
        grid-row: 1 / span 4;
        width: 2.85rem;
        height: 2.85rem;
        margin: 0;
        align-self: center;
    }

    .pricing-detail.is-fit-scaled .plan-card h3 {
        grid-column: 2;
        min-height: 0;
        font-size: 0.78rem;
        line-height: 1.14;
    }

    .plan-card__cadence,
    .plan-card__details {
        margin-bottom: 0.9rem;
    }

    .pricing-detail.is-fit-scaled .plan-card__cadence,
    .pricing-detail.is-fit-scaled .plan-card__details {
        grid-column: 2;
        margin: 0;
        font-size: 0.6rem;
        line-height: 1.2;
    }

    .pricing-detail.is-fit-scaled .plan-card__price {
        grid-column: 3;
        grid-row: 1 / span 3;
        align-self: center;
        font-size: 1.7rem;
        text-align: right;
    }

    .pricing-detail.is-fit-scaled .plan-card__price small {
        font-size: 0.58rem;
    }

    .pricing-detail.is-fit-scaled .plan-card .price-note {
        grid-column: 1 / -1;
        margin-top: 0;
        font-size: 0.55rem;
        text-align: right;
    }

    .plan-card__price {
        font-size: 2.45rem;
    }

    .plan-row {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 0.9rem;
        min-height: 0;
        padding: 1rem;
    }

    .pricing-detail--checkin .plan-row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .pricing-detail--checkin .plan-row__copy {
        display: contents;
    }

    .pricing-detail--checkin .plan-row__image,
    .pricing-detail--checkin .plan-row__icon {
        grid-column: 1;
        grid-row: 1;
    }

    .pricing-detail--checkin .plan-row h3 {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }

    .pricing-detail--checkin .plan-row__details,
    .pricing-detail--checkin .plan-row__copy p {
        grid-column: 1 / -1;
        grid-row: 2;
        margin-top: 0;
    }

    .pricing-detail--checkin .plan-row__price {
        grid-row: 3;
        text-align: right;
    }

    .pricing-detail.is-fit-scaled .plan-row {
        grid-template-columns: 2rem minmax(0, 1fr) auto;
        gap: 0.55rem;
        padding: 0.58rem 0.65rem;
    }

    .plan-row__icon {
        width: 2.75rem;
        height: 2.75rem;
        font-size: 1.1rem;
    }

    .pricing-detail.is-fit-scaled .plan-row__icon {
        width: 2rem;
        height: 2rem;
        font-size: 0.8rem;
    }

    .pricing-detail.is-fit-scaled .plan-row h3 {
        font-size: 0.72rem;
        line-height: 1.1;
    }

    .pricing-detail.is-fit-scaled .plan-row__copy p,
    .pricing-detail.is-fit-scaled .plan-row__details {
        margin-top: 0.18rem;
        font-size: 0.54rem;
        line-height: 1.16;
    }

    .plan-row__price {
        grid-column: 1 / -1;
        padding-left: 0;
        border-left: 0;
        font-size: 2.35rem;
        text-align: left;
    }

    .pricing-detail.is-fit-scaled .plan-row__price {
        grid-column: 3;
        padding-left: 0.45rem;
        border-left: 1px solid rgba(100, 181, 246, 0.2);
        font-size: 1.3rem;
        text-align: right;
    }

    .pricing-detail.is-fit-scaled .plan-row__price small {
        font-size: 0.52rem;
    }

    .pricing-detail.is-fit-scaled .plan-row__price .price-note {
        margin-top: 0.2rem;
        font-size: 0.48rem;
        line-height: 1.1;
    }

    .loyalty-rate {
        grid-template-columns: 1fr auto auto 1fr;
        gap: 0.65rem 0.9rem;
        padding: 1rem;
    }

    .loyalty-rate > div {
        display: contents;
    }

    .loyalty-rate__icon {
        grid-column: 2;
        grid-row: 1;
        line-height: 1;
    }

    .loyalty-rate h3 {
        grid-column: 3;
        grid-row: 1;
        align-self: center;
        line-height: 1;
        text-align: left;
    }

    .loyalty-rate p {
        grid-column: 1 / -1;
        grid-row: 2;
        margin-top: 0;
    }

    .pricing-detail.is-fit-scaled .loyalty-rate {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 0.55rem;
        margin-top: 0.45rem;
        padding: 0.55rem 0.65rem;
    }

    .loyalty-rate__icon {
        font-size: 2rem;
    }

    .pricing-detail.is-fit-scaled .loyalty-rate__icon {
        font-size: 1.4rem;
    }

    .pricing-detail.is-fit-scaled .loyalty-rate h3 {
        font-size: 0.62rem;
    }

    .pricing-detail.is-fit-scaled .loyalty-rate p {
        margin-top: 0.12rem;
        font-size: 0.54rem;
        line-height: 1.16;
    }

    .pricing-detail.is-fit-scaled .pricing-detail__cta {
        margin-top: 0.45rem;
    }

    .pricing-detail__cta .btn {
        width: 100%;
    }

    .pricing-detail.is-fit-scaled .pricing-detail__cta .btn {
        min-height: 2.25rem;
        font-size: 0.62rem;
    }

    .pricing-detail__cta p,
    .pricing-path__assurance {
        align-items: flex-start;
        font-size: 0.82rem;
        text-align: left;
    }

    .pricing-detail.is-fit-scaled .pricing-detail__cta p {
        justify-content: center;
        margin-top: 0.45rem;
        font-size: 0.58rem;
        text-align: center;
    }
}

/* Responsive pricing sizing: let cards use vertical space instead of scaling
   the whole interface down to fit a single viewport. */
@media (min-width: 768px) and (max-width: 1199px) {
    .pricing-path__shell,
    .billing-state,
    .billing-state--checkin {
        padding: 2rem;
    }

    .coaching-path {
        min-height: 270px;
        padding: 1.6rem;
    }

    .coaching-path h2 {
        font-size: 1.12rem;
    }

    .coaching-path p,
    .plan-card__cadence,
    .plan-card__details,
    .plan-row__copy p,
    .plan-row__details {
        font-size: 0.94rem;
        line-height: 1.45;
    }

    .plan-card {
        min-height: 315px;
        padding: 1.5rem;
    }

    .plan-card h3 {
        font-size: 1.1rem;
    }

    .plan-card__badge {
        font-size: 0.9rem;
    }

    .plan-row {
        min-height: 110px;
        padding: 1rem 1.15rem;
    }

    .plan-row h3,
    .loyalty-rate h3 {
        font-size: 1rem;
    }

    .pricing-detail__cta .btn {
        min-height: 3.5rem;
        font-size: 0.95rem;
    }
}

@media (max-width: 767px) {
    .pricing-path {
        padding-bottom: 3rem;
    }

    .pricing-path__shell,
    .billing-state,
    .billing-state--checkin {
        padding: 1.35rem;
    }

    .coaching-paths {
        gap: 0.85rem;
    }

    .coaching-path {
        min-height: 0;
        padding: 1.15rem 0.85rem;
    }

    .pricing-page .coaching-path h2 {
        font-size: 0.98rem !important;
        line-height: 1.25 !important;
    }

    .coaching-path p {
        min-height: 0;
        margin: 0.65rem 0 0.9rem;
        font-size: 0.88rem;
        line-height: 1.42;
    }

    .coaching-path__price {
        font-size: 0.82rem;
    }

    .coaching-path__price strong {
        font-size: 1.65rem;
    }

    .coaching-path__price span {
        font-size: 0.82rem;
    }

    .plan-card {
        grid-template-columns: clamp(4.75rem, 23vw, 6rem) minmax(0, 1fr);
        grid-template-rows: auto auto auto auto auto;
        column-gap: 1rem;
        row-gap: 0;
        align-items: center;
        padding: 1.25rem;
    }

    .plan-card__badge {
        grid-column: 1 / -1;
        grid-row: 1;
        justify-self: stretch;
        width: 100%;
        margin-bottom: 1rem;
    }

    .plan-card__image {
        grid-column: 1;
        grid-row: 2 / span 2;
        align-self: center;
        width: clamp(4.75rem, 23vw, 6rem);
        height: clamp(4.75rem, 23vw, 6rem);
        margin: 0;
    }

    .plan-card h3 {
        grid-column: 2;
        grid-row: 2;
        align-self: end;
        width: 100%;
        min-height: 0;
        font-size: 1.12rem;
        line-height: 1.22;
    }

    .plan-card__cadence,
    .plan-card__details {
        grid-column: 2;
        grid-row: 3;
        align-self: start;
        min-height: 0;
        margin: 0.5rem 0 0;
    }

    .plan-card__cadence,
    .plan-card__details,
    .plan-row__copy p,
    .plan-row__details {
        font-size: 0.92rem;
        line-height: 1.45;
    }

    .plan-card__price {
        grid-column: 1 / -1;
        grid-row: 4;
        width: 100%;
        margin-top: 1.15rem;
    }

    .plan-card > .price-note {
        grid-column: 1 / -1;
        grid-row: 5;
        width: 100%;
        margin-top: 0.55rem;
    }

    .price-note {
        font-size: 0.82rem;
        line-height: 1.35;
    }

    .plan-card__badge--ghost {
        display: none;
    }

    .plan-card__image {
        grid-row: 2;
    }

    .plan-card h3 {
        align-self: center;
    }

    .plan-card__cadence,
    .plan-card__details {
        grid-column: 1 / -1;
        min-height: 0;
        margin-top: 1rem;
        padding: 0;
        border: 0;
        background: none;
        text-align: left;
    }

    .plan-card__price {
        text-align: right;
    }

    .plan-card > .price-note {
        text-align: right;
    }


    .plan-row {
        gap: 1rem;
        padding: 1.15rem;
    }

    .plan-row__image {
        width: 3.75rem;
        height: 3.75rem;
    }

    .plan-row h3,
    .loyalty-rate h3 {
        font-size: 1rem;
    }

    .loyalty-rate p,
    .pricing-detail__cta p,
    .pricing-path__assurance {
        font-size: 0.9rem;
        line-height: 1.45;
    }

    .pricing-detail__cta .btn {
        min-height: 3.5rem;
        font-size: 0.92rem;
    }

    .pricing-detail {
        padding: 1.5rem 0;
    }

    .pricing-detail__top {
        gap: 0.75rem;
        margin-bottom: 0.9rem;
    }

    .pricing-plans--cards {
        gap: 0.75rem;
    }

    .plan-card {
        grid-template-columns: 3.75rem minmax(0, 1fr);
        column-gap: 0.75rem;
        padding: 1rem;
    }

    .plan-card__badge {
        margin-bottom: 0.75rem;
    }

    .plan-card__image {
        width: 3.75rem;
        height: 3.75rem;
    }

    .plan-card h3 {
        font-size: 1rem;
    }

    .plan-card--featured h3 span {
        display: block;
        white-space: nowrap;
    }

    .plan-card--featured h3 {
        font-size: 0.94rem;
    }

    .plan-card__cadence,
    .plan-card__details {
        margin-top: 0.35rem;
    }

    .plan-card__price {
        margin-top: 0.85rem;
    }

    .plan-card > .price-note {
        margin-top: 0.35rem;
    }
}

@media (max-width: 359px) {
    .plan-card {
        grid-template-columns: 2.75rem minmax(0, 1fr);
        column-gap: 0.5rem;
        padding: 0.7rem;
    }

    .plan-card__image {
        width: 2.75rem;
        height: 2.75rem;
    }

    .plan-card h3 {
        font-size: 0.88rem;
    }

    .plan-card__cadence,
    .plan-card__details {
        font-size: 0.9rem;
    }
}
