body:not([--data-bs-theme="dark"]) {
    --standout-bg-color: white;
}

body[data-bs-theme="dark"] {
    --standout-bg-color: var(--bs-dark-bg-subtle);
}

.price-comparison {
    display: flex;
    justify-content: center;
    align-items: stretch;
    width: 100%;
    max-width: 1200px;
    margin: 1rem auto;
    padding: 50px 0 0 0;
    flex-wrap: nowrap; /* Prevent wrapping on desktop */
    overflow-x: auto; /* Prevent horizontal scroll unless absolutely needed */
}

.price-column {
    flex: 1 1 0;
    min-width: 0;
    max-width: 350px;
    background-color: var(--standout-bg-color);
    box-shadow: 0 7px 30px rgba(0, 0, 0, 0.3);
    padding: 2rem;
    border-radius: 8px;
    margin-bottom: 16px;
    display: flex;
    flex-direction: column;
}

/* Four cards share the row from 992px, so the Free card's meter and notes need the room the padding would take. */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .price-column {
        padding: 1.25rem;
    }

    .price-column.popular {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }
}

@media (max-width: 991.98px) {
    .price-comparison {
        flex-direction: column;
        align-items: stretch;
        padding: 32px 0;
    }

    .price-column {
        max-width: 100%;
        width: 100%;
        margin-bottom: 24px;
        border-radius: 8px !important;
    }

        .price-column:first-child,
        .price-column:last-child {
            border-radius: 8px !important;
        }
}

.price-column:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.price-column:last-child {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.price-column.popular {
    position: relative;
    /*background-color: var(--cosairus-blue);*/
    /* Both stops carry white text, so both must clear 4.5:1; --color-lighter-blue reaches only
       4.46:1. --color-accent-fill-deep is the CTA family's deep end. */
    background: linear-gradient(45deg, var(--color-dark-blue), var(--color-accent-fill-deep));
    box-shadow: 0 7px 30px rgba(var(--bs-primary-rgb), 0.3);
    color: white;
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
    margin-bottom: 16px;
}

.price-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: var(--heading-font-family);
    font-weight: bold;
}

.price {
    font-size: 1.75rem;
    display: flex;
}

.dollar-sign {
    font-size: 1.5rem;
    margin-top: 0.5rem;
    margin-right: 0.25rem;
}

.per-month {
    font-size: 0.75rem;
    text-transform: uppercase;
    /* Enterprise carries a longer string than the other two cards, so centre it and split it
       evenly if the column is narrow enough to wrap it. */
    text-align: center;
    text-wrap: balance;
}

.price-note {
    font-size: 0.8rem;
    opacity: .75;
    margin-top: .25rem;
    text-align: center;
}

.plan-name {
    text-transform: uppercase;
    font-size: 2rem;
    margin-top: 1rem;
    margin-bottom: 0;
}
.scalability-statement {
    font-style: italic;
    font-size: .8rem;
    font-weight: 600;
    margin-bottom: .725rem
}

.divider {
    height: 1px;
    width: 100%;
    background-color: rgba(0, 0, 0, 0.2);
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.price-column.popular .divider {
    background-color: rgba(255, 255, 255, 0.2);
}

.feature {
    display: flex;
    align-items: center;
    margin: 0.5rem;
    font-size: 1rem;
}

.feature.inactive span {
    color: #999;
    text-decoration: line-through;
}

.most-popular {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    right: 0.5rem;
    text-align: center;
    text-transform: uppercase;
    font-weight: bold;
}

.price-column.popular .cta {
    background: white;
    color: var(--color-dark-blue);
}

i {
    color: var(--color-dark-blue);
    padding: 4px;
    border-radius: 50%;
    margin-right: 8px;
}

.price-column.popular i {
    background-color: var(--standout-bg-color);
}

body[data-bs-theme="dark"] .price-column.popular i {
    color: var(--bs-primary-text-emphasis);
}

.btn-cta {
    border-radius: 0;
    background-color: var(--color-dark-blue);
    color: white;
}

.price-column {
    margin-bottom: 40px;
}

.price-column.popular i {
    background-color: var(--standout-bg-color);
    width: 25px;
    height: 25px;
    display: flex;
    justify-content: center;
}

/* Without this, the wide table adds to the scrollable overflow of every ancestor up to <body> on
   narrow viewports, adding blank horizontal scroll space beside the rest of the page instead of
   scrolling only the table. Layout containment keeps a box's overflow from propagating to its
   ancestors' scrollable area; .table-responsive's own overflow-x: auto scrolling is unaffected. */
.table-responsive {
    contain: layout;
}

body[data-bs-theme="dark"] i {
    color: var(--bs-primary-text-emphasis) ;
}
/* The optional integrated-payments panel in the Free card and its modal. Colors are Bootstrap's success
   subtle/emphasis variables, so both themes work. */
.payments-upgrade {
    margin: 1.25rem .5rem .25rem;
    padding: 1rem;
    border: 1.5px dashed var(--bs-success-border-subtle);
    border-radius: 8px;
    background: var(--bs-success-bg-subtle);
    color: var(--bs-success-text-emphasis);
    font-size: .95rem;
}

.payments-eyebrow {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .85;
}

.payments-title {
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.25;
    margin: .2rem 0 .35rem;
}

.payments-sub {
    margin-bottom: .75rem;
}

.pay-meter {
    height: .6rem;
}

.pay-meter-lg {
    height: .9rem;
}

.pay-ext {
    opacity: .7;
}

.pay-scale {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    font-size: .8rem;
    margin-top: .35rem;
}

    .pay-scale small {
        display: block;
        opacity: .85;
    }

    .pay-scale span:last-child {
        text-align: right;
    }

.payments-link {
    display: inline-block;
    margin-top: .75rem;
    font-weight: 600;
    /* the default link colour on the pale-green panel falls below 4.5:1 in light mode; the panel's own text colour clears it */
    color: var(--bs-success-text-emphasis);
    text-decoration: underline;
}

.payments-note {
    font-size: .78rem;
    color: var(--bs-success-text-emphasis);
    margin-top: .25rem;
}

.payments-col {
    background: var(--bs-success-bg-subtle) !important;
    color: var(--bs-success-text-emphasis);
}

.payments-steps {
    padding-left: 1.25rem;
    margin: 1.5rem 0;
}

    .payments-steps li {
        margin-bottom: .5rem;
    }

/* Starter's limits compared with Free's. */
.upgrade-delta {
    margin: .25rem .5rem 1rem;
    padding: .75rem 1rem;
    border-radius: 8px;
    background: var(--bs-secondary-bg);
    display: grid;
    gap: .4rem;
    font-size: .95rem;
}

    .upgrade-delta > div {
        display: flex;
        justify-content: space-between;
        gap: .5rem;
    }

    .upgrade-delta .from {
        opacity: .7;
    }

    .upgrade-delta b {
        color: var(--bs-primary-text-emphasis);
    }

/* Wide enough that the five columns stay readable; .table-responsive scrolls it on a phone. */
.compare-table {
    min-width: 640px;
}

    .compare-table i {
        margin: 0;
    }
