/* ============================================
   pricing-style.css — SchoolCMS Pricing Page
   Premium UX Redesign — v2.0
   ✅ Uses only CSS Variables from main-color.css
   ============================================ */

/* ==========================================
   SECTION WRAPPER
   ========================================== */
.pricing-section {
    padding: var(--space-xxxl) 0 calc(var(--space-xxxl) * 2);
    background: var(--color-gray-50);
    position: relative;
    overflow: hidden;
}

/* Decorative background blobs */
.pricing-section::before,
.pricing-section::after {
    content: '';
    position: absolute;
    border-radius: var(--radius-full);
    pointer-events: none;
    z-index: 0;
}

.pricing-section::before {
    width: 600px;
    height: 600px;
    background: var(--color-primary-opacity);
    top: -200px;
    right: -200px;
    filter: blur(80px);
}

.pricing-section::after {
    width: 400px;
    height: 400px;
    background: var(--color-secondary-light);
    opacity: 0.5;
    bottom: -100px;
    left: -150px;
    filter: blur(60px);
}

.pricing-section>* {
    position: relative;
    z-index: 1;
}

/* ==========================================
   HEADER
   ========================================== */
.pricing-header {
    text-align: center;
    max-width: 860px;
    margin: 0 auto var(--space-xxl);
}

.pricing-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    background: var(--color-primary-light);
    color: var(--color-primary);
    padding: var(--space-sm) var(--space-lg);
    border-radius: var(--radius-full);
    font-size: 0.8125rem;
    font-weight: var(--fw-semibold);
    font-family: var(--font-thai);
    letter-spacing: var(--ls-wide);
    text-transform: uppercase;
    margin-bottom: var(--space-lg);
}

.pricing-eyebrow .material-icons {
    font-size: 1rem;
}

.pricing-header h1 {
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    margin-bottom: var(--space-md);
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-family: var(--font-heading);
    font-weight: var(--fw-extrabold);
    letter-spacing: var(--ls-tight);
    line-height: 1.15;
}

.pricing-header p {
    font-size: 1.125rem;
    color: var(--color-gray-600);
    font-family: var(--font-thai);
    line-height: 1.75;
    max-width: 640px;
    margin: 0 auto;
}

/* ==========================================
   PRODUCT SWITCHER (TAB PILLS)
   ========================================== */
.product-switcher-container {
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-2xl);
    padding: var(--space-sm);
    display: inline-flex;
    box-shadow: var(--shadow-sm);
}

.custom-pills-modern {
    gap: var(--space-xs) !important;
    flex-wrap: wrap;
    justify-content: center;
}

.custom-pills-modern .nav-link {
    color: var(--color-gray-500);
    font-weight: var(--fw-semibold);
    font-size: 0.9rem;
    font-family: var(--font-thai);
    transition: all var(--transition-base);
    background: transparent;
    border: none;
    border-radius: var(--radius-xl);
    padding: 0.5rem 1.125rem;
    white-space: nowrap;
}

.custom-pills-modern .nav-link:hover:not(.active) {
    color: var(--color-primary);
    background: var(--color-primary-light);
}

.custom-pills-modern .nav-link.active {
    background: var(--gradient-primary) !important;
    color: var(--color-white) !important;
    box-shadow: var(--shadow-primary);
}

.custom-pills-modern .nav-link .material-icons {
    font-size: 1.125rem;
    vertical-align: middle;
}

/* ==========================================
   PRODUCT DESCRIPTION BADGE
   ========================================== */
.product-description-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem var(--space-xl);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-2xl);
    font-family: var(--font-thai);
    font-size: 0.9375rem;
    color: var(--color-gray-600);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--space-xxl);
}

/* ==========================================
   PRICING GRID
   ========================================== */
.pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, max(400px));
    gap: var(--space-xl);
    margin-bottom: var(--space-xxxl);
    align-items: stretch;
}

/* ==========================================
   PRICE CARD
   ========================================== */
.price-card {
    background: var(--color-white);
    border: 1.5px solid var(--color-gray-200);
    border-radius: var(--radius-2xl);
    padding: var(--space-xxl) var(--space-xl);
    transition: transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275),
        box-shadow 0.35s ease,
        border-color 0.25s ease;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Subtle top highlight bar */
.price-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--color-gray-200);
    transition: background 0.3s ease;
    border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
}

.price-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-xl);
    border-color: var(--color-primary-light);
}

.price-card:hover::before {
    background: var(--gradient-primary);
}

/* ---- Featured (Recommended) Card ---- */
.price-card.featured {
    border: 2px solid var(--color-primary);
    background: linear-gradient(170deg, var(--color-primary-light) 0%, var(--color-white) 50%);
    box-shadow: var(--shadow-primary);
}

.price-card.featured::before {
    height: 4px;
    background: var(--gradient-primary);
}

.price-card.featured:hover {
    transform: translateY(-12px);
    box-shadow: 0 30px 60px -10px var(--color-primary-opacity), var(--shadow-primary);
}

/* ---- Featured Badge ---- */
.featured-badge {
    position: absolute;
    top: -1px;
    right: var(--space-xl);
    background: var(--gradient-secondary);
    color: var(--color-white);
    font-size: 0.75rem;
    font-weight: var(--fw-bold);
    font-family: var(--font-thai);
    padding: 0.35rem 0.875rem 0.45rem;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    letter-spacing: var(--ls-wide);
    text-transform: uppercase;
    box-shadow: var(--shadow-md);
}

/* ---- Card Header Area ---- */
.price-card-header {
    margin-bottom: var(--space-lg);
}

.price-card h3 {
    font-size: 1.375rem;
    font-family: var(--font-heading);
    font-weight: var(--fw-bold);
    color: var(--color-gray-900);
    margin-bottom: var(--space-xs);
    letter-spacing: var(--ls-tight);
}

.price-desc {
    font-size: 0.875rem;
    color: var(--color-gray-500);
    font-family: var(--font-thai);
    line-height: 1.5;
    margin: 0;
}

/* ---- Divider ---- */
.price-divider {
    height: 1px;
    background: var(--color-gray-100);
    margin: var(--space-lg) 0;
}

/* ---- Price Tag ---- */
.price-tag {
    display: flex;
    align-items: flex-end;
    gap: 0.25rem;
    margin-bottom: var(--space-sm);
    line-height: 1;
}

.price-currency {
    font-size: 1.5rem;
    font-weight: var(--fw-bold);
    color: var(--color-primary);
    padding-bottom: 0.375rem;
    font-family: var(--font-heading);
}

.price-amount {
    font-size: 3rem;
    font-weight: var(--fw-extrabold);
    color: var(--color-gray-900);
    letter-spacing: var(--ls-tight);
    font-family: var(--font-heading);
    line-height: 1;
}

.price-period {
    font-size: 0.9375rem;
    color: var(--color-gray-500);
    font-family: var(--font-thai);
    padding-bottom: 0.375rem;
}

/* ---- Maintenance / Billing Info ---- */
.maintenance-info {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    background: var(--color-success-light);
    border: 1px solid rgba(16, 185, 129, 0.2);
    padding: 0.5rem var(--space-md);
    border-radius: var(--radius-lg);
    font-size: 0.8125rem;
    font-family: var(--font-thai);
    color: var(--color-success-dark);
    margin-bottom: var(--space-lg);
}

.maintenance-info .material-icons {
    font-size: 1rem;
    color: var(--color-success);
    flex-shrink: 0;
}

/* ---- Feature List ---- */
.price-features {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-xl);
    flex: 1;
}

.price-features li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    padding: 0.5625rem 0;
    border-bottom: 1px solid var(--color-gray-100);
    font-size: 0.9375rem;
    font-family: var(--font-thai);
    color: var(--color-gray-700);
    line-height: 1.5;
}

.price-features li:last-child {
    border-bottom: none;
}

.price-features li .material-icons {
    color: var(--color-success);
    font-size: 1.125rem;
    flex-shrink: 0;
    margin-top: 1px;
}

/* ---- CTA Button (push to bottom) ---- */
.price-card .btn {
    margin-top: auto;
}

.price-card .btn--primary {
    background: var(--gradient-primary);
    box-shadow: var(--shadow-primary);
}

.price-card .btn--outline {
    border-color: var(--color-gray-300);
    color: var(--color-gray-700);
}

.price-card .btn--outline:hover {
    background: var(--gradient-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
    box-shadow: var(--shadow-primary);
}

/* ==========================================
   COMPARISON SECTION HEADER
   ========================================== */
.comparison-section-header {
    text-align: center;
    margin: calc(var(--space-xxxl) + var(--space-xl)) 0 var(--space-xxl);
}

.comparison-section-header h2 {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-family: var(--font-heading);
    font-weight: var(--fw-bold);
    color: var(--color-gray-900);
    letter-spacing: var(--ls-tight);
    margin-bottom: var(--space-sm);
}

.comparison-section-header p {
    font-size: 1rem;
    color: var(--color-gray-500);
    font-family: var(--font-thai);
    margin: 0;
}

/* ==========================================
   COMPARISON TABLE
   ========================================== */
.comparison-container {
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    margin-bottom: var(--space-xxxl);
}

.comparison-table {
    width: 100%;
    border-collapse: collapse;
}

.comparison-table thead tr {
    background: var(--color-gray-50);
    border-bottom: 2px solid var(--color-gray-200);
}

.comparison-table th {
    padding: var(--space-lg) var(--space-xl);
    text-align: center;
    font-family: var(--font-heading);
    font-weight: var(--fw-bold);
    font-size: 0.9375rem;
    color: var(--color-gray-700);
    white-space: nowrap;
}

.comparison-table th:first-child {
    text-align: left;
    color: var(--color-gray-500);
    font-weight: var(--fw-semibold);
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: var(--ls-wide);
}

.comparison-table td {
    padding: 0.875rem var(--space-xl);
    text-align: center;
    border-bottom: 1px solid var(--color-gray-100);
    font-size: 0.9375rem;
    font-family: var(--font-thai);
    color: var(--color-gray-700);
    vertical-align: middle;
}

.comparison-table td:first-child {
    text-align: left;
    font-family: var(--font-thai);
    color: var(--color-gray-800);
    padding-left: var(--space-xl);
}

.comparison-table tbody tr:last-child td {
    border-bottom: none;
}

.comparison-table tbody tr:hover td {
    background: var(--color-gray-50);
}

/* ---- Feature Group (Category) Row ---- */
.feature-group td {
    background: var(--color-primary-light) !important;
    color: var(--color-primary-dark) !important;
    font-weight: var(--fw-bold);
    font-family: var(--font-thai);
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: var(--ls-wide);
    padding: var(--space-sm) var(--space-xl);
    border-bottom: 1px solid var(--color-primary-opacity) !important;
}

/* Icons inside the comparison table */
.comparison-table .material-icons.text-success {
    color: var(--color-success);
    font-size: 1.25rem;
}

.comparison-table .material-icons.text-muted {
    color: var(--color-gray-300);
    font-size: 1.25rem;
}

/* ==========================================
   ENTERPRISE / CONTACT CTA FOOTER
   ========================================== */
.pricing-cta-footer {
    text-align: center;
    padding: var(--space-xxl) var(--space-xl);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-2xl);
    max-width: 700px;
    margin: 0 auto;
    box-shadow: var(--shadow-sm);
}

.pricing-cta-footer p {
    font-size: 1rem;
    color: var(--color-gray-600);
    font-family: var(--font-thai);
    margin: 0;
}

.pricing-cta-footer a {
    color: var(--color-primary);
    font-weight: var(--fw-bold);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.pricing-cta-footer a:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

/* ==========================================
   RESPONSIVE
   ========================================== */
@media (max-width: 992px) {
    .pricing-grid {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: var(--space-lg);
    }
}

@media (max-width: 768px) {
    .pricing-header h1 {
        font-size: 2.125rem;
    }

    .pricing-header p {
        font-size: 1rem;
    }

    .price-amount {
        font-size: 2.5rem;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
        max-width: 420px;
        margin-left: auto;
        margin-right: auto;
    }

    .price-card.featured {
        order: -1;
    }

    .comparison-container {
        /* Show as scrollable on mobile */
        overflow-x: auto;
        border-radius: var(--radius-xl);
    }

    .comparison-table {
        min-width: 560px;
    }

    .custom-pills-modern .nav-link span.d-none {
        display: none !important;
    }
}

@media (max-width: 480px) {
    .pricing-header h1 {
        font-size: 1.875rem;
    }

    .price-card {
        padding: var(--space-xl) var(--space-lg);
    }

    .featured-badge {
        right: var(--space-lg);
    }
}

/* ==========================================
   ENTRANCE ANIMATIONS
   ========================================== */
@keyframes pricingFadeUp {
    from {
        opacity: 0;
        transform: translateY(24px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.tab-pane.show.active .price-card {
    animation: pricingFadeUp 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.tab-pane.show.active .price-card:nth-child(1) {
    animation-delay: 0.05s;
}

.tab-pane.show.active .price-card:nth-child(2) {
    animation-delay: 0.12s;
}

.tab-pane.show.active .price-card:nth-child(3) {
    animation-delay: 0.19s;
}

.tab-pane.show.active .price-card:nth-child(4) {
    animation-delay: 0.26s;
}

.tab-pane.show.active .price-card:nth-child(5) {
    animation-delay: 0.33s;
}

.tab-pane.show.active .comparison-container {
    animation: pricingFadeUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}