/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.4_webpack@5.106.2/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../node_modules/.pnpm/postcss-loader@8.2.1_postcss@8.5.14_typescript@6.0.3_webpack@5.106.2/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!./styles/portico/pricing_plans.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.portico-pricing {
    --icon-left-outward-tab-curve: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 fill=%27none%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27white%27 d=%27M0 16h16V0c0 8.837-7.163 16-16 16Z%27/%3e%3c/svg%3e");
    --icon-right-outward-tab-curve: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 fill=%27none%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27white%27 d=%27M16 16H0V0c0 8.837 7.163 16 16 16Z%27/%3e%3c/svg%3e");
    --icon-question-header-swoosh: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2733%27 height=%2756%27 fill=%27none%27 viewBox=%270 0 33 56%27%3e%3cpath fill=%27%23E2EBF4%27 d=%27M33 37 1 56C1 35-3.5 0 33 0 7.5 3 7.776 37 33 37Z%27/%3e%3c/svg%3e");
    --icon-current-plan-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2722%27 height=%2722%27 fill=%27none%27 viewBox=%270 0 22 22%27%3e%3cg fill=%27%230F8544%27%3e%3cpath d=%27M14.396 9.813a.914.914 0 1 0-1.293-1.293l-3.02 3.02-1.186-1.186a.914.914 0 1 0-1.294 1.293l1.834 1.833a.914.914 0 0 0 1.293 0l3.666-3.667Z%27/%3e%3cpath fill-rule=%27evenodd%27 d=%27M11 .923a4.58 4.58 0 0 0-3.495 1.62 4.581 4.581 0 0 0-4.961 4.949 4.58 4.58 0 0 0 0 7.016 4.58 4.58 0 0 0 4.96 4.949 4.583 4.583 0 0 0 7.003-.001 4.582 4.582 0 0 0 4.95-4.96 4.583 4.583 0 0 0 0-6.991 4.58 4.58 0 0 0-4.962-4.962A4.581 4.581 0 0 0 11 .923ZM9.678 3.09a2.752 2.752 0 0 1 3.64.932.914.914 0 0 0 .972.4 2.752 2.752 0 0 1 3.289 3.288.914.914 0 0 0 .4.971 2.753 2.753 0 0 1 0 4.638.914.914 0 0 0-.4.97 2.752 2.752 0 0 1-3.283 3.29.914.914 0 0 0-.97.401 2.75 2.75 0 0 1-4.644 0 .914.914 0 0 0-.971-.401 2.752 2.752 0 0 1-3.29-3.283.914.914 0 0 0-.403-.97 2.753 2.753 0 0 1 0-4.652.914.914 0 0 0 .404-.97A2.752 2.752 0 0 1 7.71 4.42a.914.914 0 0 0 .97-.4c.25-.389.592-.709.997-.93Z%27 clip-rule=%27evenodd%27/%3e%3c/g%3e%3c/svg%3e");
    --icon-discount-tooltip-curve: url("data:image/svg+xml,%3Csvg width=%2735%27 height=%2714%27 viewBox=%270 0 35 14%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M17.4814 14C16.3229 6.40469 8.98604 0 0.5 0L34.5 0C26.0153 0 18.4853 6.40469 17.4814 14Z%27 fill=%27%23F4F9FE%27/%3E%3C/svg%3E");
    --width-price-box-min: 240px;
    --width-price-box-max: 355px;
    --height-discounted-price-box: 98px;
    --height-price-details-min: 53px;

    padding: 102px 0 58px;
    background: linear-gradient(
        180deg,
        var(--color-background-gradient-start) 0%,
        var(--color-background-gradient-end) 100%
    );
}
@media (prefers-color-scheme: dark) {
    .portico-pricing {
        --color-background-box: hsl(221deg 35% 89%);

        background: linear-gradient(
            180deg,
            var(--color-background-gradient-start) 30%,
            var(--color-background-gradient-end) 100%
        );
}
    }
.portico-pricing ul {
        padding: 0;
        margin: 0;
    }
.portico-pricing h1 {
        font-weight: 500;
        font-size: 58px;
        line-height: 110%;
        text-align: center;
        color: hsl(0deg 0% 100%);
        margin: 10px;
    }
.portico-pricing .h1-subheader {
        font-family: var(--font-ops);
        font-weight: 400;
        font-size: 20px;
        line-height: 145%;
        text-align: center;
        font-feature-settings:
            "pnum" on,
            "lnum" on;
        color: hsl(0deg 0% 100%);
        max-width: 560px;
        padding: 0 10px;
        margin: 0 auto;

        /* There's never a button instance here, but we need
           this to correct for specificity against the overall
           marketing-page link styles.
           TODO: Integrate this link style so as to not add a
           :not() selector here. */
    }
.portico-pricing .h1-subheader a:not(.button) {
            color: inherit;
            -webkit-text-decoration: underline;
            text-decoration: underline;
            text-decoration-color: hsl(0deg 0% 100% / 50%);
            text-decoration-thickness: 1px;
            text-underline-offset: 2px;
            transition: -webkit-text-decoration 0.4s ease-out;
            transition: text-decoration 0.4s ease-out;
            transition: text-decoration 0.4s ease-out, -webkit-text-decoration 0.4s ease-out;
        }
.portico-pricing .h1-subheader a:not(.button):hover {
                text-decoration-color: hsl(0deg 0% 100%);
                text-decoration-thickness: 2px;
                color: inherit;
                transition: none;
            }
.portico-pricing li {
        list-style-type: none;
        display: flex;
        align-items: flex-start;
        /* Prevent flexbox from collapsing
           whitespace around links and other
           inline elements. */
        gap: 0.3em;
    }
.portico-pricing li::before {
            content: "";
            height: 6px;
            width: 6px;
            border-radius: 16px;
            /* 0.5333em, roughly 8px given the
               15px font-size on list items, will
               keep the bullet vertically centered
               with the first line of a list item
               as the page's text scales. */
            margin: 0.5333em 4px 0 0;
            /* Prevent "bullets" from being distorted
               on a multiline bullet point. */
            flex: 0 0 auto;
            background: currentcolor;
            opacity: 0.3;
        }
.portico-pricing .unlimited-push-notifications {
        padding-bottom: 21px;
    }
.portico-pricing .support-note {
        margin-top: 15px;
        font-size: 17px;
        font-weight: 550;
    }
.portico-pricing .support-note::before {
            /* Hide the bullet on the support note,
               but still keep its width to maintain
               lefthand alignment. */
            background: transparent;
        }
.portico-pricing a {
        color: var(--color-link);
        -webkit-text-decoration: underline;
        text-decoration: underline;
        text-decoration-color: var(--color-link-underline);
        text-underline-offset: 4px;
    }
.portico-pricing a:hover {
            color: var(--color-link-hover);
            -webkit-text-decoration: underline;
            text-decoration: underline;
            text-decoration-color: var(--color-link-underline-hover);
        }

/* Remove padding introduced in legacy_landing_page.css */
.portico-pricing .padded-content {
        padding: 0;
    }
@media (width <= 768px) {
        .portico-pricing .pricing-model .padded-content {
            padding: 0;
        }
    }
.portico-pricing .pricing-container {
        display: grid;
        grid-template:
            ".       .       cloud-title  self-hosted-title .       .      " auto
            "pricing pricing pricing      pricing           pricing pricing" auto / 56px 1fr minmax(
                0,
                420px
            )
            minmax(0, 420px) 1fr 56px;
        column-gap: 2px;
        margin: 50px auto 38px;
        /* We use the plan count on the respective `.showing-` class
           to determine a maximum width, beyond which the plans will
           grow no wider. */
        max-width: calc(
            (var(--count-plans) * var(--width-price-box-max)) + 40px
        );
    }
@media screen and (width <= 700px) {
    .portico-pricing .pricing-container {
            grid-template-columns:
                40px 1fr minmax(0, 420px)
                minmax(0, 420px) 1fr 40px;
    }
        }
.portico-pricing .request-sponsorship {
        margin-bottom: 10px;
    }
.portico-pricing .pricing-pane-scroll-container {
        grid-area: pricing;
        overflow-x: auto;
        scrollbar-width: none;
    }
.portico-pricing .cloud-plan-title {
        grid-area: cloud-title;
    }
.portico-pricing .self-hosted-plan-title {
        grid-area: self-hosted-title;
    }
.portico-pricing .pricing-tab,.portico-pricing .inactive-pricing-tab {
        cursor: pointer;
        background: var(--color-background-box);
        padding: 12px 12px 0;
        border-radius: 16px 16px 0 0;
        min-height: 40px;
    }
.portico-pricing .pricing-tab h2,.portico-pricing .inactive-pricing-tab h2 {
            color: var(--color-plan-tab-header);
            font-family: var(--font-ops);
            font-weight: 550;
            font-size: 30px;
            line-height: 32px;
            margin: 0;
            margin-bottom: 8px;
            text-align: center;
        }
.portico-pricing .pricing-tab p,.portico-pricing .inactive-pricing-tab p {
            color: var(--color-plan-tab-copy);
            font-weight: 400;
            font-size: 16px;
            line-height: 125%;
            margin: 0;
            text-align: center;
            padding-bottom: 14px;
        }
@media screen and (width <= 700px) {
    .portico-pricing .pricing-tab p,.portico-pricing .inactive-pricing-tab p {
                display: none;
        }
            }

/* Shared styles to handle tab curvature. */
.portico-pricing .pricing-tab::before {
            display: none;
            width: 16px;
            height: 16px;
            content: "";
            position: absolute;
            bottom: 0;
            left: -16px;
            background-color: var(--color-background-box);
            mask-position: center;
            mask-repeat: no-repeat;
            mask-image: var(--icon-left-outward-tab-curve);
        }
.portico-pricing .inactive-pricing-tab::before {
            display: none;
            width: 16px;
            height: 16px;
            content: "";
            position: absolute;
            bottom: 0;
            left: -16px;
            background-color: var(--color-background-box);
            mask-position: center;
            mask-repeat: no-repeat;
            mask-image: var(--icon-left-outward-tab-curve);
        }
.portico-pricing .pricing-tab::after {
            display: none;
            width: 16px;
            height: 16px;
            content: "";
            position: absolute;
            bottom: 0;
            right: -16px;
            background-color: var(--color-background-box);
            mask-position: center;
            mask-repeat: no-repeat;
            mask-image: var(--icon-right-outward-tab-curve);
        }
.portico-pricing .inactive-pricing-tab::after {
            display: none;
            width: 16px;
            height: 16px;
            content: "";
            position: absolute;
            bottom: 0;
            right: -16px;
            background-color: var(--color-background-box);
            mask-position: center;
            mask-repeat: no-repeat;
            mask-image: var(--icon-right-outward-tab-curve);
        }
.portico-pricing .inactive-pricing-tab {
        cursor: default;
    }
.portico-pricing .pricing-pane {
        display: grid;
        grid-template-columns: repeat(
            auto-fit,
            minmax(var(--width-price-box-min), 1fr)
        );
        grid-template-rows: auto;
        /* We use the plan count on the respective `.showing-` class
           to determine a minimum width, at which point the plans scroll. */
        min-width: calc(var(--count-plans) * var(--width-price-box-min));
        padding: 20px 5px;
        border-radius: 16px;
        color: var(--color-box-copy);
        background: var(--color-background-box);
        margin: 0 16px;
    }
@media screen and (width <= 700px) {
    .portico-pricing .pricing-pane {
            margin: 0 8px;
    }
        }
.portico-pricing .pricing-pane h2 {
            font-weight: 550;
            font-size: 28px;
            line-height: 28px;
            padding-left: 14px;
            margin: 8px 0 16px;
        }
.portico-pricing .pricing-pane h2.with-fine-print {
                display: flex;
                /* Keep fine-print to same distance from
                   the dashed border to the right as the
                   heading text is to the left. */
                padding: 0 14px;
            }
.portico-pricing .pricing-pane h2.with-fine-print small {
                    flex: 0 1 min-content;
                    margin-left: auto;
                    font-weight: 350;
                    font-size: 14px;
                    line-height: 14px;
                    text-align: right;
                    color: var(--color-box-copy-fine-print);
                }
.portico-pricing .pricing-pane ul {
            font-family: var(--font-ops);
            font-weight: 400;
            font-size: 15px;
        }
.portico-pricing .pricing-pane li {
            margin-bottom: 10px;
            line-height: 21px;
        }
.portico-pricing .pricing-pane .price-box {
            height: 100%;
            display: flex;
            flex-direction: column;
            border-right: 1px dashed hsl(223deg 40% 25% / 20%);
        }
.portico-pricing .pricing-pane .price-box:last-child {
                border-right: 0;
            }

/* Make sure flexing text-content boxes
               occupy their full with, but account
               for padding with border-box sizing. */
.portico-pricing .pricing-pane .price-box .text-content {
                box-sizing: border-box;
                width: 100%;
                margin: 0 auto;
            }

/* Set right and left padding on the
               bottom box so that buttons align
               to the text column above. */
.portico-pricing .pricing-pane .price-box .bottom {
                padding: 0 16px;
            }
.portico-pricing .pricing-pane .price-box .bottom .text-content {
                    /* But allow buttons and price info
                       a bit more breathing room. */
                    padding: 0;
                }
.portico-pricing .pricing-pane .text-content {
            padding: 0 16px;
        }
.portico-pricing .pricing-pane .bottom {
            /* Push to the bottom of the price box. */
            margin-top: auto;
        }
.portico-pricing .pricing-pane .standard-price-box {
            display: flex;
            /* Handle a discount line, when
               needed. */
            flex-wrap: wrap;
            align-items: flex-start;
            gap: 4px;
            margin: 24px 0 6px;
            font-weight: 400;

            /* For supporting browsers, constrain the height
               of the standard price box when it includes a
               discount. This keeps discount tooltips on the
               same horizontal line, while also maintaining
               alignment of non-discounted price box prices. */
        }
.portico-pricing .pricing-pane .standard-price-box:has(.discount) {
                height: var(--height-discounted-price-box);
            }
.portico-pricing .pricing-pane .standard-price-box .price {
                font-size: 38px;
                font-weight: 400;
                line-height: 1;
                letter-spacing: -1px;
            }
.portico-pricing .pricing-pane .standard-price-box .currency-symbol {
                opacity: 0.5;
            }
.portico-pricing .pricing-pane .standard-price-box .details {
                flex: 1 0 0;
            }
.portico-pricing .pricing-pane .standard-price-box .details p {
                    margin: 2px 0 0;
                    font-size: 15px;
                    line-height: 17px;
                }
.portico-pricing .pricing-pane .standard-price-box .discount {
                /* Keep the discount to its own
                   line in the wrapping flexbox. */
                flex: 0 0 100%;
                /* But move it to the top of the
                   flex area. */
                order: -1;
                text-align: center;
                padding: 9px 0 10px;
                margin-bottom: 9px;
                border-radius: 30px;
                background-color: hsl(210deg 83% 98%);
                position: relative;
                font-family: var(--font-ops);
                font-size: 15px;
                /* Use padding to better position
                   text within its single line. */
                line-height: 1;
            }
@media screen and (width <= 1240px) {
    .portico-pricing .pricing-pane .standard-price-box .discount {
                    /* Pad the discount balloon... */
                    padding: 8px 5px 9px;
                    /* But pull out the margins an equal
                       amount so it can breathe. */
                    margin: 0 -5px 9px;
            }
                }
.portico-pricing .pricing-pane .standard-price-box .discount b {
                    font-weight: 650;
                }
.portico-pricing .pricing-pane .standard-price-box .discount::after {
                    content: "";
                    background-image: var(--icon-discount-tooltip-curve);
                    display: block;
                    width: 35px;
                    height: 14px;
                    bottom: -14px;
                    left: calc(50% - 17.5px);
                    position: absolute;
                }
.portico-pricing .pricing-pane .standard-price-box .price,.portico-pricing .pricing-pane .standard-price-box .details {
                /* Preserve a height for allowing
                   price details to wrap as many
                   as three lines. */
                min-height: var(--height-price-details-min);
            }
.portico-pricing .additional-pricing-information {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: auto;
        column-gap: 32px;
        max-width: 912px;
        margin: 0 auto;
    }
@media screen and (width <= 810px) {
    .portico-pricing .additional-pricing-information {
            grid-template-columns: minmax(0, 456px);
            justify-content: center;
            row-gap: 32px;
    }
        }
.portico-pricing .additional-pricing-information header {
            position: relative;
            padding: 0 16px 0 32px;
        }
.portico-pricing .additional-pricing-information header::before {
                display: block;
                content: "";
                width: 32px;
                height: 56px;
                position: absolute;
                background-color: var(--color-background-box);
                top: 30px;
                left: -0.5px;
                mask-position: center;
                mask-repeat: no-repeat;
                mask-image: var(--icon-question-header-swoosh);
            }
.portico-pricing .additional-pricing-information header h2 {
                font-family: var(--font-ops);
                font-weight: 500;
                font-size: 30px;
                line-height: 38px;
                margin: 0;
            }
.portico-pricing .additional-pricing-information header p {
                font-weight: 400;
                font-size: 16px;
                margin: 0;
                margin-bottom: 6px;
            }
.portico-pricing .additional-pricing-information header a {
                color: inherit;
                text-decoration-color: var(--color-link-underline-alternate);
            }
.portico-pricing .additional-pricing-information header a:hover {
                    -webkit-text-decoration: underline;
                    text-decoration: underline;
                    text-decoration-color: var(
                        --color-link-underline-alternate-hover
                    );
                }
.portico-pricing .additional-pricing-information .text-content {
            color: var(--color-box-copy);
            background: var(--color-background-box);
            padding: 20px 32px;
            border-radius: 16px;
        }
.portico-pricing .additional-pricing-information .text-content b {
                font-weight: 600;
            }
.portico-pricing .additional-pricing-information h3 {
            margin: 0 0 6px;
            font-weight: 500;
            font-size: 22px;
            line-height: 28px;
        }
.portico-pricing .additional-pricing-information ul {
            margin-bottom: 12px;
        }
.portico-pricing .additional-pricing-information li {
            font-size: 15px;
            margin-bottom: 4px;
        }
.portico-pricing .additional-pricing-information p {
            margin: 0;
        }
.portico-pricing .additional-pricing-information .sponsorship-button {
            display: block;
            font-weight: 550;
            font-size: 15px;
            line-height: 20px;
            text-align: center;
            padding: 8px 10px;
            margin-bottom: 6px;
        }
.portico-pricing .additional-pricing-information .contact-note {
            font-weight: 400;
            font-size: 14px;
        }
@media screen and (width <= 500px) {
        .portico-pricing .additional-pricing-information {
            margin: 0 8px;
        }

            .portico-pricing .additional-pricing-information header {
                padding-bottom: 29px;
            }

            .portico-pricing .additional-pricing-information p {
                display: none;
            }
    }
.portico-pricing .button {
        display: block;
        font-family: var(--font-ss3);
        font-weight: 550;
        font-size: 15px;
        text-align: center;
        -webkit-text-decoration: none;
        text-decoration: none;
        letter-spacing: 0.06ch;
        padding: 8px 10px;
        border-radius: 4px;
        /* Position relatively for discount tab */
        position: relative;
        z-index: 5;
    }
.portico-pricing .button-placeholder {
        /* Empty element for maintaining the
           layout on plans that otherwise have
           no button. */
        height: 37.5px;
        visibility: hidden;
    }
.portico-pricing .get-started-button {
        color: hsl(0deg 0% 100%);
        background-color: hsl(146deg 92% 26%);
    }
.portico-pricing .get-started-button:hover {
            -webkit-text-decoration: none;
            text-decoration: none;
            color: hsl(0deg 0% 100%);
            background-color: hsl(146deg 92% 24%);
        }
.portico-pricing .upgrade-button {
        color: hsl(0deg 0% 100%);
        background-color: hsl(219deg 62% 54%);
    }
.portico-pricing .upgrade-button:hover {
            -webkit-text-decoration: none;
            text-decoration: none;
            color: hsl(0deg 0% 100%);
            background-color: hsl(219deg 62% 50%);
        }
.portico-pricing .current-plan-button,.portico-pricing .current-plan-descriptor {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5ch;
        color: hsl(147deg 57% 25%);
        background-color: hsl(152deg 79% 24% / 5%);
    }
.portico-pricing .current-plan-button .current-plan-icon,.portico-pricing .current-plan-descriptor .current-plan-icon {
            width: 22px;
            height: 22px;
            display: block;
            background-color: currentcolor;
            mask-position: center;
            mask-repeat: no-repeat;
            mask-image: var(--icon-current-plan-icon);
        }
.portico-pricing .current-plan-descriptor {
        /* Pad and lead the descriptor
           to better match other buttons */
        padding: 1.75px 0;
        line-height: 16px;
        background-color: transparent;
        border: 1px solid hsl(152deg 79% 24% / 10%);
        font-weight: normal;
    }
.portico-pricing .current-plan-button:hover {
        -webkit-text-decoration: none;
        text-decoration: none;
        color: hsl(147deg 57% 25%);
        background-color: hsl(152deg 79% 24% / 14%);
    }
.portico-pricing .sponsorship-button {
        color: hsl(147deg 57% 25%);
        background-color: hsl(152deg 79% 24% / 10%);
    }
.portico-pricing .sponsorship-button:hover {
            -webkit-text-decoration: none;
            text-decoration: none;
            color: hsl(147deg 57% 25%);
            background-color: hsl(146deg 92% 24% / 15%);
        }
.portico-pricing.showing-cloud {
        --count-plans: 3;
    }
.portico-pricing.showing-cloud .self-hosted-scroll,.portico-pricing.showing-cloud .self-hosted-plan-pricing,.portico-pricing.showing-cloud .self-hosted-additional-pricing {
            display: none;
        }
.portico-pricing.showing-cloud .cloud-plan-title {
            position: relative;

            /* Show curvature on cloud tab. */
        }
.portico-pricing.showing-cloud .cloud-plan-title::before {
                display: block;
            }
.portico-pricing.showing-cloud .cloud-plan-title::after {
                display: block;
            }
.portico-pricing.showing-cloud .cloud-plan-title p {
                border-bottom: 1px dashed hsl(223deg 40% 25% / 20%);
                margin: 0 10px;
            }
@media screen and (width <= 700px) {
                .portico-pricing.showing-cloud .cloud-plan-title h2 {
                    border-bottom: 1px dashed hsl(223deg 40% 25% / 20%);
                    height: 100%;
                    margin: 0 10px;
                }
            }
@media screen and (width <= 500px) {
                .portico-pricing.showing-cloud .cloud-plan-title h2 {
                    margin: 0;
                }
            }
.portico-pricing.showing-cloud .self-hosted-plan-title {
            border-radius: 16px 16px 0 14px;
            margin-bottom: 2px;
            background-color: var(--color-background-box-muted);
        }
.portico-pricing.showing-cloud .self-hosted-plan-title:hover {
                background-color: var(--color-background-box-muted-hover);
            }
.portico-pricing.showing-self-hosted {
        --count-plans: 4;
    }
.portico-pricing.showing-self-hosted .cloud-scroll,.portico-pricing.showing-self-hosted .cloud-plan-pricing,.portico-pricing.showing-self-hosted .cloud-additional-pricing {
            display: none;
        }
.portico-pricing.showing-self-hosted .cloud-plan-title {
            border-radius: 16px 16px 14px 0;
            margin-bottom: 2px;
            background-color: var(--color-background-box-muted);
        }
.portico-pricing.showing-self-hosted .cloud-plan-title:hover {
                background-color: var(--color-background-box-muted-hover);
            }
.portico-pricing.showing-self-hosted .self-hosted-plan-title {
            position: relative;

            /* Show curvature on self-hosted tab. */
        }
.portico-pricing.showing-self-hosted .self-hosted-plan-title::before {
                display: block;
            }
.portico-pricing.showing-self-hosted .self-hosted-plan-title::after {
                display: block;
            }
.portico-pricing.showing-self-hosted .self-hosted-plan-title p {
                border-bottom: 1px dashed hsl(223deg 40% 25% / 20%);
                margin: 0 10px;
            }
@media screen and (width <= 700px) {
                .portico-pricing.showing-self-hosted .self-hosted-plan-title h2 {
                    border-bottom: 1px dashed hsl(223deg 40% 25% / 20%);
                    height: 100%;
                    margin: 0 10px;
                }
            }
@media screen and (width <= 500px) {
                .portico-pricing.showing-self-hosted .self-hosted-plan-title h2 {
                    margin: 0;
                }
            }

/* Don't display buttons on cloud plans
           when viewed by self-hosters. */
.portico-pricing .is-self-hosted-realm .cloud-plan-pricing .bottom .text-content {
            display: none;
        }
@media screen and (width <= 1140px) {
            .portico-pricing .self-hosted-plan-pricing ul {
                font-size: 14px;
            }

            .portico-pricing .self-hosted-plan-pricing .standard-price-box {
                --height-price-details-min: 48px;
                --height-discounted-price-box: 91px;
            }

                .portico-pricing .self-hosted-plan-pricing .standard-price-box .price {
                    font-size: 32px;
                }
                    .portico-pricing .self-hosted-plan-pricing .standard-price-box .details p {
                        font-size: 13px;
                        line-height: 16px;
                    }

                .portico-pricing .self-hosted-plan-pricing .standard-price-box .discount {
                    font-size: 13px;
                }
    }
@media screen and (width <= 940px) {
        /* This block of styles duplicates the adjustments
           to .self-hosted-plan-pricing above; because of the
           fewer number of Cloud plans, we don't need these
           adjustments until this breakpoint. */
            .portico-pricing .cloud-plan-pricing ul {
                font-size: 14px;
            }

            .portico-pricing .cloud-plan-pricing .standard-price-box {
                --height-price-details-min: 48px;
                --height-discounted-price-box: 91px;
            }

                .portico-pricing .cloud-plan-pricing .standard-price-box .price {
                    font-size: 32px;
                }
                    .portico-pricing .cloud-plan-pricing .standard-price-box .details p {
                        font-size: 13px;
                        line-height: 16px;
                    }

                .portico-pricing .cloud-plan-pricing .standard-price-box .discount {
                    font-size: 13px;
                }

        .portico-pricing h1 {
            font-size: 40px;
        }

        .portico-pricing .h1-subheader {
            font-size: 16px;
        }
            .portico-pricing .pricing-tab h2 {
                font-size: 24px;
                line-height: 26px;
                margin-bottom: 5px;
            }

            .portico-pricing .pricing-tab p {
                font-size: 14px;
                padding-bottom: 10px;
            }
            .portico-pricing .pricing-pane h2 {
                font-size: 22px;
                margin: 4px 0 12px;
            }
    }
@media screen and (width <= 920px) {
        .portico-pricing .additional-pricing-information header h2 {
            font-size: 24px;
        }
    }
@media screen and (width <= 500px) {
        .portico-pricing .pricing-tab h2 {
            font-size: 20px;
        }
    }

/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/.pnpm/css-loader@7.1.4_webpack@5.106.2/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../node_modules/.pnpm/postcss-loader@8.2.1_postcss@8.5.14_typescript@6.0.3_webpack@5.106.2/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!./styles/portico/comparison_table.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.showing-cloud .self-hosted-comparison,
.showing-self-hosted .cloud-comparison {
    display: none;
}

.zulip-plans-comparison {
    --color-heading-text: hsl(0deg 0% 100%);
    --color-table-text: hsl(223deg 40% 25%);
    --color-table-background: hsl(0deg 0% 100% / 80%);
    --color-table-link: hsl(210deg 94% 30%);
    --color-table-link-hover: hsl(210deg 100% 45%);
    --color-table-link-active: hsl(210deg 100% 40%);
    --color-table-link-decoration: hsl(210deg 94% 30% / 20%);
    --color-table-link-decoration-hover: hsl(210deg 100% 45% / 70%);
    --color-table-link-decoration-active: hsl(210deg 100% 40%);
    --border-radius-table: 11px;
}

.zulip-plans-comparison .icon-cloud {
        --icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 fill=%27none%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27%23313F68%27 d=%27M4.333 13.333c-1.01 0-1.875-.35-2.591-1.05-.717-.7-1.075-1.555-1.075-2.566 0-.867.26-1.64.783-2.317A3.465 3.465 0 0 1 3.5 6.1a4.525 4.525 0 0 1 1.667-2.483A4.561 4.561 0 0 1 8 2.667c1.3 0 2.403.452 3.308 1.358.906.906 1.359 2.008 1.359 3.308a2.91 2.91 0 0 1 1.908.992c.506.572.758 1.242.758 2.008 0 .834-.291 1.542-.875 2.125a2.893 2.893 0 0 1-2.125.875h-8Z%27 opacity=%27.5%27/%3e%3c/svg%3e");
    }

.zulip-plans-comparison .icon-self-hosted {
        --icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 fill=%27none%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27%23313F68%27 fill-opacity=%27.5%27 d=%27M11.333 10.667a.98.98 0 0 0 .709-.284.957.957 0 0 0 .291-.716.964.964 0 0 0-.291-.709.965.965 0 0 0-.709-.291.957.957 0 0 0-.716.291.979.979 0 0 0-.284.709.971.971 0 0 0 1 1ZM1.333 6 3.6 3.733c.122-.122.264-.22.425-.291.161-.073.336-.109.525-.109h6.883c.19 0 .364.036.525.109.161.072.303.17.425.291L14.667 6H1.333Zm1.334 6.667a1.29 1.29 0 0 1-.95-.384 1.29 1.29 0 0 1-.384-.95v-4h13.334v4c0 .378-.13.695-.392.95a1.298 1.298 0 0 1-.942.384H2.667Z%27/%3e%3c/svg%3e");
    }

.zulip-plans-comparison .icon-infinity {
        --icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 fill=%27none%27 viewBox=%270 0 24 24%27%3e%3cpath fill=%27black%27 fill-rule=%27evenodd%27 d=%27M2.464 8.464A5 5 0 0 1 6 7c2.16 0 4.155 1.251 6 3.4C13.845 8.251 15.84 7 18 7a5 5 0 1 1 0 10c-2.16 0-4.155-1.251-6-3.4-1.845 2.149-3.84 3.4-6 3.4a5 5 0 0 1-3.536-8.536ZM10.731 12C8.983 9.857 7.4 9 6 9a3 3 0 1 0 0 6c1.4 0 2.983-.857 4.731-3Zm2.538 0c1.748 2.143 3.331 3 4.731 3a3 3 0 0 0 0-6c-1.4 0-2.983.857-4.731 3Z%27 clip-rule=%27evenodd%27/%3e%3c/svg%3e");
    }

.zulip-plans-comparison .icon-check {
        --icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 fill=%27none%27 viewBox=%270 0 24 24%27%3e%3cpath fill=%27black%27 fill-rule=%27evenodd%27 d=%27M20.707 5.793a1 1 0 0 1 0 1.414l-11 11a1 1 0 0 1-1.414 0l-5-5a1 1 0 1 1 1.414-1.414L9 16.086 19.293 5.793a1 1 0 0 1 1.414 0Z%27 clip-rule=%27evenodd%27/%3e%3c/svg%3e");
    }

.zulip-plans-comparison .icon-x {
        --icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 fill=%27none%27 viewBox=%270 0 24 24%27%3e%3cpath fill=%27black%27 d=%27M18.707 6.707a1 1 0 0 0-1.414-1.414L12 10.586 6.707 5.293a1 1 0 0 0-1.414 1.414L10.586 12l-5.293 5.293a1 1 0 1 0 1.414 1.414L12 13.414l5.293 5.293a1 1 0 0 0 1.414-1.414L13.414 12l5.293-5.293Z%27/%3e%3c/svg%3e");
    }

.zulip-plans-comparison .icon-wrench {
        --icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 fill=%27none%27 viewBox=%270 0 24 24%27%3e%3cpath fill=%27black%27 fill-rule=%27evenodd%27 d=%27M16.578 3.36a5.25 5.25 0 0 0-5.866 7.302.75.75 0 0 1-.153.84l-6.91 6.91a1.371 1.371 0 0 0 1.94 1.94l6.91-6.91a.75.75 0 0 1 .839-.154 5.25 5.25 0 0 0 7.301-5.866l-2.915 2.915a1.75 1.75 0 0 1-2.45 0l-.006-.005-1.605-1.606a1.75 1.75 0 0 1 0-2.45l.005-.005 2.91-2.91Zm-2.293-1.503a6.75 6.75 0 0 1 3.993.491.75.75 0 0 1 .22 1.214l-3.766 3.766a.25.25 0 0 0 0 .347l1.593 1.593a.25.25 0 0 0 .347 0L20.438 5.5a.75.75 0 0 1 1.214.221 6.75 6.75 0 0 1-8.445 9.131l-6.557 6.56a2.871 2.871 0 1 1-4.06-4.06l6.558-6.56a6.75 6.75 0 0 1 5.138-8.935Z%27 clip-rule=%27evenodd%27/%3e%3c/svg%3e");
    }

.zulip-plans-comparison .icon {
        vertical-align: middle;
        display: inline-block;
        flex-shrink: 0;
        background-color: currentcolor;
        mask-position: center;
        mask-repeat: no-repeat;
        mask-image: var(--icon);
        width: 24px;
        height: 24px;
    }

.zulip-plans-comparison .icon-plan {
        /* Smaller icons within the table headings. */
        width: 16px;
        height: 16px;
    }

.zulip-plans-comparison .icon-with-copy {
        /* Treat copy and a nearby icon as
           a unit when reflowing text for narrower
           viewports. */
        display: inline-block;
    }

.zulip-plans-comparison .grouped-icons {
        display: flex;
        justify-content: center;
        gap: 4px;
    }

.zulip-plans-comparison h2 {
        font-family: var(--font-ss3);
        font-weight: 450;
        font-size: 44px;
        line-height: 120%;
        text-align: center;
        margin: 64px 0 10px;
        color: var(--color-heading-text);
    }

.zulip-plans-comparison .h2-subheader {
        font-family: var(--font-ops);
        font-weight: 400;
        font-size: 16px;
        line-height: 145%;
        text-align: center;
        color: var(--color-heading-text);
        /* Let subheader text fill the same area as
           text in the comparison table below. */
        padding: 0 14px;
    }

.zulip-plans-comparison .h2-subheader a {
            color: inherit;
            -webkit-text-decoration: underline;
            text-decoration: underline;
            text-decoration-color: hsl(0deg 0% 100% / 50%);
            transition: -webkit-text-decoration 0.4s ease-out;
            transition: text-decoration 0.4s ease-out;
            transition: text-decoration 0.4s ease-out, -webkit-text-decoration 0.4s ease-out;
        }

.zulip-plans-comparison .h2-subheader a:hover {
                text-decoration-color: hsl(0deg 0% 100%);
                text-decoration-thickness: 2px;
                transition: none;
            }

.zulip-plans-comparison .comparison-tabs {
        width: max-content;
        margin: 0 auto;
        display: flex;
        justify-content: center;
        gap: 3px;
        background-color: hsl(0deg 0% 100% / 70%);
        padding: 3px;
        border-radius: 6px;
    }

.zulip-plans-comparison .comparison-tab {
        font-family: var(--font-ops);
        font-size: 14px;
        padding: 4px 16px;
        color: hsl(223deg 40% 30%);
        font-weight: 600;
        border: none;
        background-color: hsl(0deg 0% 100% / 0%);
        display: flex;
        flex-direction: column;
        justify-content: center;

        align-items: center;
        border-radius: 3px;
        cursor: pointer;
        transition: background-color 120ms ease-out;
    }

.zulip-plans-comparison .comparison-tab:hover {
        transition: none;
        background-color: hsl(0deg 0% 100% / 40%);
    }

.zulip-plans-comparison .comparison-tab:active {
        background-color: hsl(0deg 0% 100% / 70%);
    }

.zulip-plans-comparison .comparison-tab._selected {
        background-color: hsl(0deg 0% 100% / 80%);
        cursor: default;
    }

.zulip-plans-comparison .comparison-table {
        font-family: var(--font-ss3);
        font-size: 16px;
        line-height: 18px;
        text-align: center;
        border-collapse: collapse;
        margin: 24px auto 48px;
        border-radius: var(--border-radius-table);
        color: var(--color-table-text);
        background: var(--color-table-background);
    }

.zulip-plans-comparison.education-features-comparison {
        --zulip-cell-background-color: hsl(217deg 71% 78%);
        --zulip-cell-foreground-color: hsl(210deg 4% 10%);
        --zulip-column-border-width: 8px;
        --zulip-column-border-negative-offset: calc(
            var(--zulip-column-border-width) * -1
        );
        padding-bottom: 48px;
    }

.zulip-plans-comparison.education-features-comparison .comparison-table {
            font-weight: normal;
            table-layout: fixed;
            width: 100%;
            max-width: 800px;
        }

.zulip-plans-comparison.education-features-comparison .comparison-table-feature {
            width: 30%;
        }

.zulip-plans-comparison.education-features-comparison th.zulip-cell {
            padding: 0;
        }

.zulip-plans-comparison.education-features-comparison th.zulip-cell .label-zulip {
            display: block;
            /* We make the border larger by 1px to avoid an
               occasional rendering bug in Chrome that lets
               daylight in between the border here and the
               top of the table row. */
            border-top: calc(var(--zulip-column-border-width) + 1px) solid
                var(--zulip-cell-background-color);
            margin: var(--zulip-column-border-negative-offset)
                var(--zulip-column-border-negative-offset) 0;
            /* The hard-coded numeric values here keep the Zulip
               label aligned with other labels in the table-header
               row. */
            padding: calc(var(--zulip-column-border-width) + 7px)
                calc(var(--zulip-column-border-width) + 2px)
                calc(var(--zulip-column-border-width) + 5px);
        }

.zulip-plans-comparison.education-features-comparison .zulip-cell {
            color: var(--zulip-cell-foreground-color);
            background: var(--zulip-cell-background-color);
            border-left: var(--zulip-column-border-width) solid
                var(--zulip-cell-background-color);
            border-right: var(--zulip-column-border-width) solid
                var(--zulip-cell-background-color);
            /* Don't display stripes in the Zulip column. */
            border-top-color: var(--zulip-cell-background-color);
        }

.zulip-plans-comparison.education-features-comparison .zulip-cell .bottom-border {
            display: block;
            width: 100%;
            padding: 0 var(--zulip-column-border-width);
            border-bottom: var(--zulip-column-border-width) solid
                var(--zulip-cell-background-color);
            position: absolute;
            bottom: var(--zulip-column-border-negative-offset);
            left: var(--zulip-column-border-negative-offset);
        }

.zulip-plans-comparison .comparison-table a {
        color: var(--color-table-link);
        text-underline-offset: 4px;
        text-decoration-thickness: 1px;
        text-decoration-color: var(--color-table-link-decoration);
    }

.zulip-plans-comparison .comparison-table a:hover {
        color: var(--color-table-link-hover);
        text-decoration-color: var(--color-table-link-decoration-hover);
    }

.zulip-plans-comparison .comparison-table a:active {
        color: var(--color-table-link-active);
        text-decoration-color: var(--color-table-link-decoration-active);
    }

.zulip-plans-comparison .comparison-table th:first-child {
        border-top-left-radius: var(--border-radius-table);
    }

.zulip-plans-comparison .comparison-table th:last-child {
        border-top-right-radius: var(--border-radius-table);
    }

.zulip-plans-comparison .comparison-table th,.zulip-plans-comparison .comparison-table .subheader {
        position: sticky;
        font-weight: 700;
        color: hsl(223deg 40% 30% / 100%);
        background: hsl(209deg 41% 94%);
    }

.zulip-plans-comparison .comparison-table .competitor-cell {
        padding: 12px 10px 10px;
        font-weight: normal;

        /* Use gray color on competitor cells for
           checkmarks and warnings (language counts). */
    }

.zulip-plans-comparison .comparison-table .competitor-cell.comparison-value-positive,.zulip-plans-comparison .comparison-table .competitor-cell.comparison-value-warning {
            color: hsl(224deg 8% 50% / 100%);
        }

/* Use red color on competitor cells for
           X marks. */

.zulip-plans-comparison .comparison-table .competitor-cell.comparison-value-negative {
            color: hsl(0deg 36% 58%);
        }

.zulip-plans-comparison .comparison-table th .icon {
        display: none;
    }

.zulip-plans-comparison .subheader-filler {
        background: hsl(209deg 41% 94%);
    }

.zulip-plans-comparison .comparison-table th {
        padding: 12px 2px 10px;
        top: 60px;
        z-index: 1;
    }

.zulip-plans-comparison .comparison-table td.subheader.comparison-table-feature {
        font-weight: 600;
        color: hsl(223deg 40% 30% / 80%);
        top: 64px;
        z-index: 2;
        padding-top: 8px;
        padding-bottom: 8px;
        text-transform: uppercase;
        font-size: 15px;
        letter-spacing: 0.1ch;
    }

.zulip-plans-comparison .comparison-table td {
        padding: 8px;
        border-top: 1px solid hsl(209deg 40% 40% / 30%);
        line-height: 18px;
    }

.zulip-plans-comparison .comparison-table colgroup col:first-child {
        width: 340px;
    }

.zulip-plans-comparison .comparison-table colgroup col {
        width: 112px;
    }

.zulip-plans-comparison .comparison-table th.comparison-table-feature,.zulip-plans-comparison .comparison-table td.comparison-table-feature {
        text-align: left;
        padding-left: 14px;
    }

.zulip-plans-comparison .comparison-table td.comparison-table-feature {
        color: hsl(223deg 40% 16%);
    }

.zulip-plans-comparison .comparison-table-feature-desc {
        font-size: 14px;
        opacity: 0.7;
        margin-top: 4px;
    }

.zulip-plans-comparison .comparison-value-positive {
        color: hsl(147deg 80% 29% / 100%);
    }

.zulip-plans-comparison .comparison-value-warning {
        color: hsl(42deg 85% 35% / 100%);
    }

.zulip-plans-comparison .comparison-value-negative {
        color: hsl(224deg 8% 50% / 100%);
    }

.zulip-plans-comparison .comparison-value-positive,.zulip-plans-comparison .comparison-value-warning,.zulip-plans-comparison .comparison-value-negative {
        /* Set positioning context for use
           with tooltip hovers on icons. */
        position: relative;
        /* Make non-icon text (e.g., "Billed hourly")
           less prominent than other text in the table's
           rows or columns. */
        font-size: 0.9em;
    }

.zulip-plans-comparison:not(.education-features-comparison) .comparison-table tr {
            transition: background-color 200ms ease-out;
        }

.zulip-plans-comparison:not(.education-features-comparison) .comparison-table tbody tr:hover {
            background-color: hsl(0deg 0% 100% / 30%);
        }

.zulip-plans-comparison:not(.education-features-comparison) .comparison-value-positive::after,.zulip-plans-comparison:not(.education-features-comparison) .comparison-value-warning::after,.zulip-plans-comparison:not(.education-features-comparison) .comparison-value-negative::after {
            content: attr(data-title);
            white-space: nowrap;
            font-size: 14px;
            line-height: 14px;
            font-weight: 400;
            display: block;
            padding: 2px 4px;
            border-radius: 5px;
            background-color: hsl(208deg 43% 93%);
            /* the color of mixed hover row with bg */
            position: absolute;
            top: calc(50% + 11px);
            left: 50%;
            /* Keep tooltips over top of other elements,
            including the headers within the table. */
            z-index: 3;
            transform: translateX(-50%);
            visibility: hidden;
            opacity: 0;
            transition:
                visibility 301s linear,
                opacity 250ms ease-out;
        }

.zulip-plans-comparison:not(.education-features-comparison) .comparison-value-positive:hover::after,.zulip-plans-comparison:not(.education-features-comparison) .comparison-value-warning:hover::after,.zulip-plans-comparison:not(.education-features-comparison) .comparison-value-negative:hover::after {
            transition:
                visibility 0s linear,
                opacity 250ms ease-out;
            transition-delay: 200ms;
            visibility: visible;
            opacity: 1;
        }

@media (width <= 940px) {
        .zulip-plans-comparison h1 {
            font-size: 40px;
        }

        .zulip-plans-comparison .h1-subheader {
            font-size: 16px;
        }

        .zulip-plans-comparison h2 {
            font-size: 32px;
            margin-bottom: 4px;
        }

        .zulip-plans-comparison .h2-subheader {
            font-size: 14px;
        }
    }

@media (width <= 730px) {
        .zulip-plans-comparison .comparison-table th {
            font-size: 14px;
            line-height: 18px;
            box-sizing: border-box;
            height: 44px;
            padding: 4px 2px;
        }

        .zulip-plans-comparison .comparison-table td {
            font-size: 14px;
            line-height: 18px;
        }

        .zulip-plans-comparison .comparison-table td.subheader.comparison-table-feature {
            font-size: 13px;
            line-height: 16px;
            box-sizing: border-box;
            padding-top: 10px;
            padding-bottom: 8px;
        }

        .zulip-plans-comparison .comparison-table td.comparison-table-feature {
            font-size: 14px;
        }

        .zulip-plans-comparison .comparison-table-feature-desc {
            font-size: 12px;
            line-height: 14px;
        }
    }

@media (width <= 670px) {
        .zulip-plans-comparison .comparison-table .competitor-cell {
            padding: 12px 2px 10px;
        }
    }

@media (width <= 500px) {
        .zulip-plans-comparison .comparison-table th {
            font-size: 13px;
            line-height: 14px;
        }

        .zulip-plans-comparison .comparison-table th.comparison-table-feature,.zulip-plans-comparison .comparison-table td.comparison-table-feature {
            padding-left: 8px;
        }

        .zulip-plans-comparison .comparison-table td {
            padding: 4px 2px;
            border-top: 1px solid hsl(209deg 40% 40% / 30%);
            line-height: 18px;
        }

        .zulip-plans-comparison .comparison-table td.comparison-value-positive,.zulip-plans-comparison .comparison-table td.comparison-value-warning,.zulip-plans-comparison .comparison-table td.comparison-value-negative {
            font-size: 13px;
            line-height: 14px;
        }

        .zulip-plans-comparison .comparison-value-positive::after,.zulip-plans-comparison .comparison-value-warning::after,.zulip-plans-comparison .comparison-value-negative::after {
            display: none;
        }
    }

/* No header to accommodate on self-hosted realms,
   so keep sticky headers at the top of the viewport. */
.zulip-plans-comparison.is-self-hosted-realm .comparison-table th,.zulip-plans-comparison.is-self-hosted-realm .comparison-table td.subheader.comparison-table-feature {
            top: 0;
        }

/* Change comparison-table visibility on /plans
   based on active plan tab. */

#showing-tab-cloud .comparison-tab-cloud,#showing-tab-hosted .comparison-tab-cloud,#showing-tab-all .comparison-tab-cloud,#showing-tab-cloud .comparison-tab-self-hosted,#showing-tab-hosted .comparison-tab-self-hosted,#showing-tab-all .comparison-tab-self-hosted,#showing-tab-cloud .comparison-tab-all,#showing-tab-hosted .comparison-tab-all,#showing-tab-all .comparison-tab-all {
        background-color: hsl(0deg 0% 100% / 0%);
        cursor: pointer;
    }

#showing-tab-cloud .comparison-tab-cloud:hover,#showing-tab-hosted .comparison-tab-cloud:hover,#showing-tab-all .comparison-tab-cloud:hover,#showing-tab-cloud .comparison-tab-self-hosted:hover,#showing-tab-hosted .comparison-tab-self-hosted:hover,#showing-tab-all .comparison-tab-self-hosted:hover,#showing-tab-cloud .comparison-tab-all:hover,#showing-tab-hosted .comparison-tab-all:hover,#showing-tab-all .comparison-tab-all:hover {
            background-color: hsl(0deg 0% 100% / 40%);
        }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .comparison-tab-cloud {
        background-color: hsl(0deg 0% 100%);
        cursor: default;
    }

#showing-tab-cloud .comparison-tab-cloud {
        background-color: hsl(0deg 0% 100%);
        cursor: default;
    }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .comparison-tab-cloud:hover {
            background-color: hsl(0deg 0% 100%);
        }

#showing-tab-cloud .comparison-tab-cloud:hover {
            background-color: hsl(0deg 0% 100%);
        }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) #self-hosted-plan-comparison {
        display: none;
    }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) #all-plan-comparison {
        display: none;
    }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .subheader-open-source {
        display: none;
    }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .subheader-self-hosted-legend {
        display: none;
    }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .self-hosted-feature-only {
        display: none;
    }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .self-hosted-cell {
        display: none;
    }

#showing-tab-cloud #self-hosted-plan-comparison,#showing-tab-cloud #all-plan-comparison,#showing-tab-cloud .subheader-open-source,#showing-tab-cloud .subheader-self-hosted-legend,#showing-tab-cloud .self-hosted-feature-only,#showing-tab-cloud .self-hosted-cell {
        display: none;
    }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) #cloud-plan-comparison {
        display: revert;
    }

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .cloud-cell {
        display: revert;
    }

#showing-tab-cloud #cloud-plan-comparison,#showing-tab-cloud .cloud-cell {
        display: revert;
    }

/* When only Cloud plans appear in the comparison table,
       we need to set the border-radius here that is otherwise
       displayed on the table itself.

       TODO: Unset this property when the header row is stuck,
       so that the little flutter of feature-table lines cannot
       be seen by eagle-eyed users. */

.showing-cloud:not(:has(div[id^="showing-tab"])):not(#does-not-exist) th.last-cloud-th {
        border-top-right-radius: var(--border-radius-table);
    }

#showing-tab-cloud th.last-cloud-th {
        border-top-right-radius: var(--border-radius-table);
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .comparison-tab-self-hosted {
        background-color: hsl(0deg 0% 100%);
        cursor: default;
    }

#showing-tab-hosted .comparison-tab-self-hosted {
        background-color: hsl(0deg 0% 100%);
        cursor: default;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .comparison-tab-self-hosted:hover {
            background-color: hsl(0deg 0% 100%);
        }

#showing-tab-hosted .comparison-tab-self-hosted:hover {
            background-color: hsl(0deg 0% 100%);
        }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) #cloud-plan-comparison {
        display: none;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) #all-plan-comparison {
        display: none;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .cloud-cell {
        display: none;
    }

#showing-tab-hosted #cloud-plan-comparison,#showing-tab-hosted #all-plan-comparison,#showing-tab-hosted .cloud-cell {
        display: none;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) #self-hosted-plan-comparison {
        display: revert;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .subheader-open-source {
        display: revert;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .subheader-self-hosted-legend {
        display: revert;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .self-hosted-feature-only {
        display: revert;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) .self-hosted-cell {
        display: revert;
    }

#showing-tab-hosted #self-hosted-plan-comparison,#showing-tab-hosted .subheader-open-source,#showing-tab-hosted .subheader-self-hosted-legend,#showing-tab-hosted .self-hosted-feature-only,#showing-tab-hosted .self-hosted-cell {
        display: revert;
    }

.showing-self-hosted:not(:has(div[id^="showing-tab"])):not(#does-not-exist) th.last-cloud-th {
        border-top-right-radius: unset;
    }

#showing-tab-hosted th.last-cloud-th {
        border-top-right-radius: unset;
    }

#showing-tab-all .comparison-tab-all {
        background-color: hsl(0deg 0% 100%);
        cursor: default;
    }

#showing-tab-all .comparison-tab-all:hover {
            background-color: hsl(0deg 0% 100%);
        }

#showing-tab-all #cloud-plan-comparison,#showing-tab-all #self-hosted-plan-comparison {
        display: none;
    }

#showing-tab-all .subheader-open-source,#showing-tab-all .subheader-self-hosted-legend,#showing-tab-all #all-plan-comparison,#showing-tab-all .cloud-cell,#showing-tab-all .self-hosted-cell,#showing-tab-all .self-hosted-feature-only {
        display: revert;
    }

#showing-tab-all th.last-cloud-th {
        border-top-right-radius: unset;
    }

#showing-tab-all .comparison-table th .icon {
        display: revert;
    }

#showing-tab-all .comparison-table th {
        vertical-align: top;
    }

#showing-tab-all .comparison-table th.comparison-table-feature {
        padding-top: 28px;
    }

#showing-tab-all .comparison-table td.stuck {
        padding-top: 24px;
    }

@media (width <= 730px) {
        #showing-tab-all .comparison-table th {
            padding: 8px 2px;
        }

        #showing-tab-all .comparison-table th.comparison-table-feature {
            padding-top: 24px;
            padding-left: 14px;
        }

        #showing-tab-all .comparison-table td.subheader.comparison-table-feature {
            /* Line up features with plan titles. */
            line-height: 18px;
        }

        #showing-tab-all .comparison-table td.stuck {
            padding-top: 20px;
            padding-bottom: 6px;
            vertical-align: top;
        }
    }

@media (width <= 684px) {
        #showing-tab-all .comparison-table td.stuck {
            height: 60px;
        }
    }

@media (width <= 500px) {
        #showing-tab-all .comparison-table td.subheader.comparison-table-feature {
            /* Line up features with plan titles. */
            line-height: 14px;
            min-width: auto;
        }

        #showing-tab-all .comparison-table td.stuck {
            top: 64px;
            height: 55px;
        }
    }

@media (width <= 405px) {
        /* For very tiny views, we get rid of the luxury
           of any horizontal padding that's left. */
        #showing-tab-all .comparison-table-feature,#showing-tab-all .cloud-cell,#showing-tab-all .self-hosted-cell {
            padding-left: 0;
            padding-right: 0;
        }

        /* Keep the comparison-table features from
           colliding with the left screen edge, though. */
        #showing-tab-all .comparison-table-feature {
            padding-left: 2px;
        }
    }

@media (width <= 500px) {
    .comparison-table td.subheader.comparison-table-feature {
        min-width: max-content;
    }
}

@media (width <= 460px) {
    .zulip-plans-comparison .comparison-tab-all {
        display: none;
    }
}

@media (width <= 356px) {
    .zulip-plans-comparison
        .comparison-table
        td.subheader.comparison-table-feature {
        height: 51px;
        top: 60px;
    }

    .zulip-plans-comparison .comparison-table th {
        height: 51px;
    }
}

/* Always suppress subheadings on /features */

.features-page #cloud-plan-comparison,.features-page #self-hosted-plan-comparison,.features-page #all-plan-comparison {
        display: none !important;
    }

/* Maintain the margin-top ordinarily set on
       the subheadings. */

.features-page .comparison-tabs {
        margin-top: 64px;
    }


/*# sourceMappingURL=styles_portico_comparison_table_css-styles_portico_pricing_plans_css.css.map*/