/* ==========================================================================
   Pace Fit — member app page
   Same system as the rest of the site. No display face, no orbs, no gold.
   ========================================================================== */

.product-hero {
    padding-block: var(--space-11) var(--space-9);
}

.product-hero__grid {
    display: grid;
    grid-template-columns: 1fr 20rem;
    gap: var(--space-10);
    align-items: center;
}

.product-hero__title {
    margin-bottom: var(--space-5);
}

.product-hero__lead {
    max-width: 34rem;
    font-size: var(--text-lg);
    color: var(--ink-2);
    line-height: var(--leading-body);
}

.product-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-7);
}

@media (max-width: 900px) {
    .product-hero__grid {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }
}

/* --------------------------------------------------------------------------
   Phone frame — a plain device outline, not a glowing mockup
   -------------------------------------------------------------------------- */

.phone {
    width: 100%;
    max-width: 17.5rem;
    margin-inline: auto;
    padding: 0.625rem;
    background: var(--ink);
    border-radius: 2rem;
    box-shadow: var(--shadow);
}

.phone__screen {
    padding: var(--space-5) var(--space-4);
    background: var(--ui-bg);
    border-radius: 1.5rem;
    color: var(--ui-text);
    min-height: 24rem;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.phone__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: var(--text-xs);
    color: var(--ui-text-3);
}

.phone__rank {
    padding: var(--space-5) var(--space-4);
    text-align: center;
    border: 1px solid var(--ui-rule);
    border-radius: var(--radius);
    background: var(--ui-surface);
}

.phone__rank-label {
    font-size: 0.625rem;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--ui-text-3);
}

.phone__rank-name {
    font-size: 1.5rem;
    font-weight: var(--weight-semi);
    letter-spacing: var(--tracking-tight);
    margin-block: var(--space-2) var(--space-1);
}

.phone__rank-meta {
    font-size: var(--text-xs);
    color: var(--ui-text-2);
}

.phone__stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2);
}

.phone__stat {
    padding: var(--space-3);
    text-align: center;
    border: 1px solid var(--ui-rule);
    border-radius: var(--radius-sm);
    background: var(--ui-surface);
}

.phone__stat-value {
    font-size: var(--text-lg);
    font-weight: var(--weight-semi);
    font-variant-numeric: tabular-nums;
}

.phone__stat-label {
    font-size: 0.625rem;
    color: var(--ui-text-3);
    margin-top: 0.125rem;
}

.phone__crowd {
    margin-top: auto;
    padding: var(--space-3);
    border: 1px solid var(--ui-rule);
    border-radius: var(--radius-sm);
    background: var(--ui-surface);
}

.phone__crowd-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: var(--text-xs);
    color: var(--ui-text-2);
    margin-bottom: var(--space-2);
}

.phone__crowd-bar {
    height: 0.25rem;
    border-radius: var(--radius-pill);
    background: var(--ui-surface-2);
    overflow: hidden;
}

.phone__crowd-fill {
    height: 100%;
    width: 62%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--ui-accent-2), var(--ui-accent));
}

.phone__membership {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-3);
    border: 1px solid var(--ui-rule);
    border-radius: var(--radius-sm);
    background: var(--ui-surface);
    font-size: var(--text-xs);
    color: var(--ui-text-2);
}

.phone__membership span:last-child {
    color: var(--ui-ok);
    font-weight: var(--weight-medium);
}

/* --------------------------------------------------------------------------
   Rank ladder
   -------------------------------------------------------------------------- */

.ranks {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1px;
    background: var(--rule);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    overflow: hidden;
}

.rank {
    padding: var(--space-6) var(--space-4);
    background: var(--paper);
}

.rank__index {
    font-size: var(--text-xs);
    color: var(--ink-3);
    font-variant-numeric: tabular-nums;
    margin-bottom: var(--space-4);
}

.rank__name {
    font-size: var(--text-lg);
    font-weight: var(--weight-semi);
    letter-spacing: var(--tracking-snug);
    margin-bottom: var(--space-1);
}

.rank__req {
    font-size: var(--text-sm);
    color: var(--ink-2);
}

@media (max-width: 900px) {
    .ranks {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 520px) {
    .ranks {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* --------------------------------------------------------------------------
   Member feature grid
   -------------------------------------------------------------------------- */

.member-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--rule);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    overflow: hidden;
}

.member-feature {
    padding: var(--space-7) var(--space-6);
    background: var(--paper);
}

.member-feature i {
    display: block;
    font-size: 1.25rem;
    color: var(--ink);
    margin-bottom: var(--space-5);
}

.member-feature h3 {
    margin-bottom: var(--space-2);
}

.member-feature p {
    font-size: var(--text-base);
    color: var(--ink-2);
}

@media (max-width: 900px) {
    .member-features {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 560px) {
    .member-features {
        grid-template-columns: 1fr;
    }
}

/* --------------------------------------------------------------------------
   Closing note
   -------------------------------------------------------------------------- */

.closing {
    max-width: 40rem;
    padding: var(--space-8);
    background: var(--paper-raised);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
}

.closing h2 {
    margin-bottom: var(--space-3);
}

.closing p {
    font-size: var(--text-lg);
    color: var(--ink-2);
    margin-bottom: var(--space-6);
}
