/* Static shell */
.static-wrapper {
    background-color: var(--bg-dark);
    background-image: url("/assets/backgrounds/goory_bg_pattern.png");
    min-block-size: 100vh;
    padding-block: var(--static-shell-padding-block);
    padding-inline: var(--static-shell-padding-inline);
}

.container-card {
    max-inline-size: var(--onboarding-shell-max);
    margin-inline: auto;
    background: var(--surface-muted);
    padding-block: var(--onboarding-card-padding-block);
    padding-inline: var(--onboarding-card-padding-inline);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-elevated);
    /* container-type rimosso: non serve più, usiamo @media */
}

/* Pricing */
.pricing-section {
    padding-block: var(--space-6);
}

.pricing-header {
    text-align: center;
    margin-block-end: var(--space-6);
}

.badge {
    background: var(--surface-muted);
    color: var(--brand-secondary);
    padding-block: var(--space-2);
    padding-inline: var(--space-4);
    border-radius: var(--radius-full);
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
}

.pricing-header h1 {
    color: var(--brand-secondary);
    font-size: var(--font-size-display);
    margin-block: var(--space-3);
}

.subtitle-main {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--brand-secondary);
    margin-block-end: var(--space-2);
}

.subtitle-sub {
    font-size: var(--font-size-md);
    color: var(--text-grey);
    max-inline-size: var(--measure-wide);
    margin-inline: auto;
    margin-block-end: var(--space-4);
}

.pricing-header p {
    color: var(--brand-secondary);
}

.cta-container {
    margin-block-start: var(--space-4);
    margin-block-end: var(--space-6);
}

.btn-primary {
    display: inline-block;
    background-color: var(--brand-primary);
    color: var(--brand-secondary);
    padding-block: var(--space-3);
    padding-inline: var(--space-5);
    border-radius: var(--radius-full);
    text-decoration: none;
    font-weight: 700;
    font-size: var(--font-size-lg);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-primary:hover {
    transform: translateY(-0.125rem);
    box-shadow: var(--shadow-interactive);
}

.pricing-grid {
    display: grid;
    /* auto-fit gestisce da solo il multi-colonna su desktop e tablet pro —
       il minmax è calibrato per stare su 2 colonne già da ~32rem di container */
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.625rem), 1fr));
    gap: var(--space-4);
    max-inline-size: var(--onboarding-grid-max);
    margin-inline: auto;
    margin-block: var(--space-6);
    padding-inline: var(--space-3);
}

.price-card {
    background: var(--surface-base);
    border: 0.0625rem solid var(--border-subtle);
    padding: var(--space-5);
    border-radius: var(--radius-lg);
    inline-size: 100%;
    max-inline-size: var(--onboarding-card-max);
    min-block-size: var(--onboarding-card-min-height);
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    position: relative;
    color: var(--text-dark);
}

.price-per-product {
    font-size: var(--font-size-sm);
    color: var(--brand-secondary);
    background: var(--surface-muted);
    padding-block: var(--space-1);
    padding-inline: var(--space-2);
    border-radius: var(--radius-full);
    align-self: flex-start;
    margin-block-end: var(--space-2);
    font-weight: 600;
}

.price-card.popular {
    border: 0.125rem solid var(--brand-primary);
    transform: scale(1.03);
}

.price-card.special {
    background: var(--brand-secondary);
    color: var(--text-white);
}

.card-tag {
    position: absolute;
    inset-block-start: -0.75rem;
    inset-inline-start: 50%;
    transform: translateX(-50%);
    background: var(--brand-primary);
    color: var(--brand-secondary);
    padding-block: var(--space-1);
    padding-inline: var(--space-3);
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: 800;
}

.price-card h3 {
    font-size: var(--font-size-2xl);
    margin-block-end: var(--space-2);
    color: var(--brand-secondary);
}

.price-card.special h3 {
    color: var(--brand-primary);
}

.price {
    font-size: var(--font-size-3xl);
    font-weight: 800;
    margin-block-start: var(--space-1);
    margin-block-end: var(--space-3);
}

.price span {
    font-size: var(--font-size-md);
    font-weight: 400;
    opacity: 0.7;
}

.price-desc {
    font-size: var(--font-size-md);
    color: var(--text-grey);
    margin-block-end: var(--space-4);
    min-block-size: 3rem;
}

.price-card.special .price-desc {
    color: var(--text-light);
}

.features {
    list-style: none;
    padding: 0;
    font-size: var(--font-size-md);
    border-block-start: 0.0625rem solid var(--border-subtle);
    padding-block-start: var(--space-4);
}

.features li {
    margin-block-end: var(--space-2);
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.features li::before {
    content: "✓";
    color: var(--brand-primary);
    margin-inline-end: var(--space-3);
    font-weight: 700;
}

.features li.disabled {
    opacity: 0.5;
    text-decoration: line-through;
}

.features li.disabled::before {
    content: "✕";
    color: var(--accent-red);
}

.pricing-footer-note {
    text-align: center;
    margin-block-start: var(--space-5);
    color: var(--text-grey);
    font-size: var(--font-size-sm);
}

/* ─── Tablet Mini: iPad Mini, tablet stretti (28rem < width ≤ 48rem) ──────── */
@media (width <= 48rem) {
    .container-card {
        padding-inline: var(--space-4);
    }

    /* Su tablet mini auto-fit porta già a 2 colonne se c'è spazio,
       ma se il container è stretto forziamo 2 colonne esplicite */
    .pricing-grid {
        grid-template-columns: repeat(2, 1fr);
        padding-inline: var(--space-2);
    }

    .price-card {
        max-inline-size: none;
    }

    /* Il "popular" scala ancora su tablet: ha abbastanza spazio */
}

/* ─── Mobile: smartphone (width ≤ 28rem) ──────────────────────────────────── */
@media (width <= 28rem) {
    .container-card {
        padding-inline: var(--space-3);
        padding-block: var(--space-4);
    }

    .pricing-grid {
        grid-template-columns: 1fr;
        padding-inline: 0;
    }

    .price-card {
        max-inline-size: none;
        min-block-size: auto; /* rimuove altezza minima fissa su schermi piccoli */
    }

    .price-card.popular {
        transform: none; /* niente scale su mobile: rischia overflow */
    }
}
