/* Generated for /pricing/ by migrations/wordpress-import/fetch-and-convert.py.
 * Elementor's own values, with its plumbing dropped and its repetition
 * collapsed into shared classes. Do not edit by hand: re-run the extractor. */
.kk-e1 { background-color: #ffffff; column-gap: 5px; gap: 5px 5px; padding: 3rem 0rem 3rem 0rem; row-gap: 5px }
.kk-e1 > .kk-row:not(.kk-row--nested) { column-gap: 5px; gap: 5px 5px; row-gap: 5px }
.kk-e2 .kk-feature { gap: 15px }
.kk-e2 .kk-feature__icon { border-color: #ffffff; color: #ffffff; fill: #ffffff; font-size: 93px }
.kk-e2 h3 { color: #ffffff; font-family: "Roboto", sans-serif; font-size: 20px; font-weight: 600 }
.kk-e2 p { color: #ffffff }
.kk-e3 { background-color: #212529; border-color: #212529; border-style: solid; border-width: 1px 1px 1px 1px }
.kk-e4 .kk-btn { background-color: #ffffff; border-radius: 10px 10px 10px 10px; border-style: solid; color: #a40021; fill: #a40021; font-family: "Roboto", sans-serif; font-size: 25px; font-weight: 500; padding: 18px 18px 18px 18px }
@media (max-width: 767px) { .kk-e4 .kk-btn { font-size: 20px } }
.kk-e5 { color: #212529; text-align: center }
.kk-e6 .kk-feature { gap: 15px }
.kk-e6 .kk-feature__icon { border-color: #ffffff; color: #ffffff; fill: #ffffff; font-size: 93px }
.kk-e6 h3 { color: #ffffff; font-family: "Roboto", sans-serif; font-size: 20px; font-weight: 600 }
.kk-e6 p { font-family: "Roboto", sans-serif }
.kk-e7 { padding: 30px 0px 30px 0px }
.kk-e8 { text-align: center }
.kk-e8 :is(h1, h2, h3, h4, h5, h6) { color: #212529 }
.kk-e9 { background-color: #a40021; column-gap: 5px; gap: 5px 5px; padding: 3rem 0rem 3rem 0rem; row-gap: 5px }
.kk-e9 > .kk-row:not(.kk-row--nested) { column-gap: 5px; gap: 5px 5px; row-gap: 5px }
.kk-e10 { color: #ffffff; font-family: "Roboto", sans-serif; font-size: 20px; margin: 0px 0px -40px 0px; text-align: center }
.kk-e11 { background-color: #ffffff; border-color: #0000002d; border-style: solid; border-width: 1px 1px 1px 1px; padding: 10px 0px 30px 0px }
.kk-e12 { background-color: #a40021; column-gap: 5px; gap: 5px 5px; padding: 3rem 0rem 1rem 0rem; row-gap: 5px }
.kk-e12 > .kk-row:not(.kk-row--nested) { column-gap: 5px; gap: 5px 5px; row-gap: 5px }
.kk-e13 .kk-feature { gap: 15px }
.kk-e13 .kk-feature__icon { font-size: 93px }
.kk-e14 { background-color: #a40021; border-color: #a40021; border-style: solid; border-width: 1px 1px 1px 1px }
.kk-e15 { margin: 15px 0px 0px 0px; padding: 30px 0px 0px 0px }
.kk-e16 .kk-feature { gap: 15px }
.kk-e16 .kk-feature__icon { border-color: #ffffff; color: #ffffff; fill: #ffffff; font-size: 93px }
.kk-e16 h3 { color: #ffffff; font-family: "Roboto", sans-serif; font-size: 20px; font-weight: 600 }
.kk-e17 { text-align: center }
.kk-e17 :is(h1, h2, h3, h4, h5, h6) { color: #ffffff }
.kk-e18 { column-gap: 0px; gap: 0px 0px; justify-content: flex-start; padding: 0rem 3rem 3rem 3rem; row-gap: 0px }
.kk-e18 > .kk-row:not(.kk-row--nested) { column-gap: 0px; gap: 0px 0px; row-gap: 0px }
.kk-e19 { column-gap: 0px; gap: 0px 0px; padding: 3rem; row-gap: 0px }
.kk-e19 > .kk-row:not(.kk-row--nested) { column-gap: 0px; gap: 0px 0px; row-gap: 0px }
@media (max-width: 767px) { .kk-e19 { padding: 1rem 1rem 3rem 1rem } }
.kk-e20 { text-align: center }
.kk-e20 :is(h1, h2, h3, h4, h5, h6) { color: #ffffff; font-family: "Roboto", sans-serif; font-weight: 700 }
@media (max-width: 767px) { .kk-e20 { margin: 10px 0px 0px 0px } }
.kk-e21 { column-gap: 0px; gap: 0px 0px; justify-content: flex-start; padding: 0rem 3rem 3rem 3rem; row-gap: 0px }
.kk-e21 > .kk-row:not(.kk-row--nested) { column-gap: 0px; gap: 0px 0px; row-gap: 0px }
@media (max-width: 767px) { .kk-e21 { margin: 15px 0px 0px 0px } }
.kk-e22 .kk-checklist li { color: #212529 }
@media (max-width: 767px) { .kk-e22 { padding: 0px 10px 0px 10px } }
.kk-e23 { background-color: #ffffff; column-gap: 5px; gap: 5px 5px; padding: 3rem 0rem 0rem 0rem; row-gap: 5px }
.kk-e23 > .kk-row:not(.kk-row--nested) { column-gap: 5px; gap: 5px 5px; row-gap: 5px }
@media (max-width: 767px) { .kk-e23 { padding: 2rem 1rem 0rem 1rem } }
.kk-e24 { text-align: center }
@media (max-width: 767px) { .kk-e25 { margin: 0px 10px 0px 10px } }
.kk-e26 .kk-btn { background-color: #a40021; border-radius: 10px 10px 10px 10px; font-family: "Roboto", sans-serif; font-size: 25px; font-weight: 500; padding: 18px 18px 18px 18px }
@media (max-width: 767px) { .kk-e26 .kk-btn { font-size: 20px } }
.kk-e27 { background-color: #a40021; column-gap: 5px; gap: 5px 5px; padding: 3rem 0rem 4rem 0rem; row-gap: 5px }
.kk-e27 > .kk-row:not(.kk-row--nested) { column-gap: 5px; gap: 5px 5px; row-gap: 5px }
.kk-e28 { color: #212529; margin: 0px 0px -25px 0px; text-align: center }

/* =============================================================================
 * HAND-WRITTEN, 2026-11-06. Everything above this line was generated from
 * Elementor by migrations/wordpress-import/fetch-and-convert.py; everything
 * below is ours. Kept separate rather than edited into the generated rules so
 * the two stay tellable apart, and placed last so it wins on source order
 * without needing !important anywhere.
 *
 * All four rules are scoped under .kk-e19, the plan-cards section, which occurs
 * exactly once in the page body. That matters: .kk-e21 and .kk-e11 are the
 * classes the three columns and the three white cards carry, and scoping means
 * these rules cannot reach anything else even if those classes are reused later.
 *
 * Worth knowing why that scope is enough on its own: this file is loaded ONLY on
 * /pricing/ -- every page gets its own marketing/css/pages/<slug>.css -- so
 * nothing here can affect another page whatever it selects.
 * ========================================================================== */

/*
 * 1. Ten pixels of padding on each of the three plan columns.
 *
 * .kk-e21 sets `padding: 0rem 3rem 3rem 3rem`, which is Elementor's value for a
 * two-column layout and far too much now there are three.
 *
 * **It was briefly set to 0 here, which left the cards touching.** That column
 * padding was not only outer padding -- it was the ONLY gutter between the
 * cards, because line 39 of this file zeroes the row's gap
 * (`.kk-e19 > .kk-row:not(.kk-row--nested) { gap: 0px 0px }`). With both at
 * zero there is nothing left to separate three adjacent cards. Padding rather
 * than restoring a row gap, because padding is per column and so also keeps the
 * outermost cards off the band edge.
 *
 * 10px a side gives 20px between neighbours and 10px outside, on top of the
 * section's own 3rem (.kk-e19) -- which is also what absorbs the cards' 15px
 * box-shadow offset.
 */
.kk-e19 > .kk-row > .kk-col { padding: 10px; }

/*
 * 2. Ten pixels of padding all round inside the white card, replacing
 *    .kk-e11's `10px 0px 30px 0px`.
 *
 * 3. ...and the white card fills whatever height its column has, so the three
 *    finish level despite their taglines being one, two and three lines.
 *
 * The columns were ALREADY equal height -- .kk-row is a flex container and its
 * items stretch by default. What differed was the white card inside each one,
 * which sized to its own content and left the shortest column with a ragged
 * gap at the bottom. `flex: 1 1 auto` hands it the leftover space. The dark
 * header cards are a single h3 each and so are already identical, which is why
 * growing only the body card levels everything.
 */
.kk-e19 .kk-e11 {
	padding: 10px;
	flex: 1 1 auto;
}

/*
 * 4. No 1.6em under paragraphs inside these cards.
 *
 * The space came from `.kk-band p { margin: 0 0 1.6em }` in site.css, which is
 * Astra's .entry-content value and correct for prose in a band -- so it is
 * scoped off here rather than changed there. Each <p> in a card is the only
 * child of its own wrapper div, and .kk-card already separates those wrappers
 * with `gap: var(--kk-gap)` (20px), so the margin was adding ~25px on top of a
 * gap that was already doing the job. Roughly 45px between a price and its
 * tagline.
 *
 * **Checked before writing this**: site.css:1455 warns that zeroing that margin
 * was once "an invention" which let a negative margin pull a button up over the
 * text it sat under. The only negative margins in this file are on .kk-e10 and
 * .kk-e28, and both are in other sections of the page -- neither is inside
 * .kk-e19 -- so that failure cannot be reached from here.
 */
.kk-e19 .kk-card p { margin: 0; }

/*
 * 3b. ...and the buttons line up with each other, not just the card edges.
 *
 * NOT asked for, and easy to drop: delete this one rule. Equal-height cards
 * whose buttons sit at three different heights -- because one tagline is one
 * line and another is three -- look like the height fix half worked, and lining
 * the buttons up is usually the reason for equalising in the first place.
 * `margin-top: auto` inside the column flex container pushes the actions row to
 * the bottom and lets the slack fall above it instead of below.
 */
.kk-e19 .kk-e11 > .kk-actions { margin-top: auto; }
