/* ===== Pricing page ===== */
.pricing-plans {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    align-items: stretch;
}

.plan-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 30px 26px;
    box-shadow: var(--shadow-sm);
    transition: transform 0.18s var(--ease), box-shadow 0.18s var(--ease), border-color 0.18s var(--ease);
}

.plan-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: color-mix(in srgb, var(--primary) 28%, var(--border));
}

.plan-card__badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    padding: 5px 16px;
    border-radius: var(--radius-pill);
    background: var(--primary);
    color: var(--primary-foreground);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: var(--shadow);
}

.plan-card--featured {
    border-color: var(--primary);
    box-shadow: var(--shadow-md), 0 0 0 1px var(--primary);
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--primary) 6%, var(--card)), var(--card));
}

.plan-card--featured:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg), 0 0 0 1px var(--primary);
}

.plan-card__name {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;
}

.plan-card__tagline {
    color: var(--muted-foreground);
    font-size: 0.92rem;
    margin: 6px 0 18px;
    min-height: 2.6em;
}

.plan-card__price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.plan-card__amount {
    font-family: var(--font-display);
    font-size: 2.4rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: var(--tracking-tight);
}

.plan-card__unit {
    color: var(--muted-foreground);
    font-size: 0.9rem;
    font-weight: 500;
}

.plan-card__note {
    color: var(--muted-foreground);
    font-size: 0.84rem;
    margin: 0 0 22px;
}

.plan-card__features {
    list-style: none;
    margin: 0 0 26px;
    padding: 0;
    display: grid;
    gap: 12px;
    flex: 1;
}

.plan-card__features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.94rem;
    color: var(--foreground);
}

.plan-card__features svg {
    flex: none;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    color: var(--success);
}

.plan-card .btn {
    width: 100%;
    justify-content: center;
}

/* ===== Comparison table ===== */
.compare-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
}

.compare-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 640px;
}

.compare-table th,
.compare-table td {
    padding: 16px 20px;
    text-align: left;
    border-bottom: 1px solid var(--border);
}

.compare-table thead th {
    background: var(--secondary);
    color: var(--secondary-foreground);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.compare-table thead th.is-featured {
    background: color-mix(in srgb, var(--primary) 12%, var(--secondary));
    color: var(--accent-foreground);
}

.compare-table td.is-featured {
    background: color-mix(in srgb, var(--primary) 5%, transparent);
}

.compare-table tbody tr:last-child td { border-bottom: none; }
.compare-table tbody tr { transition: background 0.12s var(--ease); }
.compare-table tbody tr:hover { background: var(--secondary); }
.compare-table th[scope="row"] { font-weight: 600; }

.compare-yes { color: var(--success); font-weight: 700; }
.compare-no { color: var(--muted-foreground); }

/* ===== Guide cards ===== */
.guide-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
}

.guide-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    transition: transform 0.15s var(--ease), box-shadow 0.15s var(--ease);
}

.guide-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.guide-card h3 { font-size: 1.05rem; margin: 0 0 6px; }
.guide-card p { margin: 0; color: var(--muted-foreground); font-size: 0.92rem; }
.guide-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    background: var(--accent);
    color: var(--accent-foreground);
    margin-bottom: 14px;
}
.guide-card__icon svg { width: 22px; height: 22px; }

/* ===== Section heads ===== */
.pricing-block { padding: 48px 0; }
.pricing-block__head {
    text-align: center;
    max-width: var(--container-narrow);
    margin: 0 auto 32px;
}
.pricing-block__head h2 {
    font-family: var(--font-serif);
    font-size: clamp(1.5rem, 4vw, 2.1rem);
    margin: 0 0 8px;
}
.pricing-block__head p { color: var(--muted-foreground); margin: 0; }

/* ===== Responsive ===== */
@media (max-width: 900px) {
    .pricing-plans { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
    .plan-card--featured { order: -1; }
}

@media (max-width: 640px) {
    .pricing-block { padding: 36px 0; }
    .plan-card { padding: 26px 22px; }
    .plan-card__amount { font-size: 2.1rem; }
}

@media (prefers-reduced-motion: reduce) {
    .plan-card,
    .plan-card--featured,
    .guide-card { transition: none; }
    .plan-card:hover,
    .plan-card--featured:hover,
    .guide-card:hover { transform: none; }
}
