/*
 * Modern look of the public website on top of the "Stack" theme (builds/front is the former Encore output,
 * not edited): Inter, calmer colours, white sticky header, rounded cards with soft shadows, clearer buttons
 * and forms, dark footer. Content and markup stay as they are.
 */

:root {
    --sm-primary: #4a90e2;
    --sm-primary-dark: #2f74c9;
    --sm-violet: #5448bd;
    --sm-ink: #0f172a;
    --sm-text: #475569;
    --sm-muted: #64748b;
    --sm-line: #e5e9f0;
    --sm-soft: #f5f7fb;
    --sm-radius: 10px;
    --sm-radius-lg: 16px;
    --sm-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 16px rgba(15, 23, 42, .06);
    --sm-shadow-hover: 0 2px 4px rgba(15, 23, 42, .05), 0 14px 32px rgba(15, 23, 42, .1);
    --sm-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* typography */
body {
    color: var(--sm-text);
    font-family: var(--sm-font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
p, .lead, li, label, blockquote,
input, textarea, select, button,
.btn, .btn .btn__text, .label, .breadcrumbs, .menu-horizontal, .dropdown__content {
    font-family: var(--sm-font);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--sm-ink);
    font-weight: 700;
    letter-spacing: -.02em;
}

h1, .h1 {
    line-height: 1.15;
}

h2, .h2 {
    line-height: 1.2;
}

h4, h5, h6 {
    font-weight: 600;
    letter-spacing: -.01em;
}

p, .lead {
    color: var(--sm-text);
}

.lead {
    line-height: 1.65;
}

a {
    color: var(--sm-primary);
    transition: color .15s ease;
}

a:hover {
    color: var(--sm-primary-dark);
}

.color--primary {
    color: var(--sm-primary) !important;
}

.imagebg h1, .imagebg h2, .imagebg h3, .imagebg h4, .imagebg h5,
.imagebg p, .imagebg .lead,
.bg--dark h1, .bg--dark h2, .bg--dark h3, .bg--dark h4, .bg--dark h5,
.bg--dark p, .bg--dark .lead {
    color: #fff;
}

.imagebg .lead,
.imagebg p {
    color: rgba(255, 255, 255, .88);
}

/* light photo behind the text: dark text instead of white */
.imagebg.image--light h1, .imagebg.image--light h2, .imagebg.image--light h3,
.imagebg.image--light h4, .imagebg.image--light h5 {
    color: var(--sm-ink);
}

.imagebg.image--light p,
.imagebg.image--light .lead {
    color: var(--sm-text);
}

/* top bar above the menu */
.bar-3 {
    border-bottom: 1px solid var(--sm-line);
    background: var(--sm-soft) !important;
    color: var(--sm-muted);
    font-size: .85rem;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

.bar-3 .bar__module,
.bar-3 .menu-horizontal,
.bar-3 .menu-horizontal > li {
    line-height: 20px;
}

.bar-3 .bar__module {
    margin-bottom: 0 !important;
}

.bar-3 .menu-horizontal > li > a {
    color: var(--sm-ink);
    font-weight: 600;
    opacity: 1;
}

.bar-3 .menu-horizontal > li > a:hover {
    color: var(--sm-primary);
}

/* main menu: white, stays at the top with a soft shadow */
.nav-container .bar,
.nav-container nav.bar {
    border-bottom: 1px solid var(--sm-line);
    background: rgba(255, 255, 255, .96);
}

.nav-container nav.bar.pos-fixed {
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 6px 24px rgba(15, 23, 42, .08);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
            backdrop-filter: saturate(180%) blur(12px);
}

.nav-container .menu-horizontal > li > a,
.nav-container .menu-horizontal > li > span,
.nav-container .dropdown__trigger {
    color: var(--sm-ink);
    font-size: .95rem;
    font-weight: 500;
    opacity: 1;
}

.nav-container .menu-horizontal > li > a:hover,
.nav-container .menu-horizontal > li > span:hover,
.nav-container .dropdown__trigger:hover {
    color: var(--sm-primary);
    opacity: 1;
}

.nav-container .menu-horizontal > li:not(:last-child) {
    margin-right: 1.6em;
}

.dropdown .dropdown__content {
    padding: 1.1em 1.4em;
    border: 1px solid var(--sm-line);
    border-radius: var(--sm-radius-lg);
    background: #fff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .12);
}

.dropdown .dropdown__content a {
    color: var(--sm-text);
    font-weight: 500;
}

.dropdown .dropdown__content a:hover {
    color: var(--sm-primary);
}

.dropdown .dropdown__content h5,
.dropdown .dropdown__content .h5 {
    color: var(--sm-muted);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* buttons: rounded, not circular */
.btn {
    border-radius: var(--sm-radius);
    font-weight: 600;
    letter-spacing: 0;
    box-shadow: none;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.btn .btn__text {
    font-weight: 600;
    letter-spacing: .01em;
}

.btn.type--uppercase .btn__text,
.btn.type--uppercase {
    letter-spacing: .06em;
}

.btn--primary,
.btn--primary:visited {
    border-color: transparent;
    background: linear-gradient(135deg, var(--sm-primary) 0%, var(--sm-violet) 140%);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08), 0 6px 18px rgba(74, 144, 226, .32);
}

.btn--primary:hover {
    background: linear-gradient(135deg, var(--sm-primary-dark) 0%, var(--sm-violet) 120%);
    box-shadow: 0 2px 4px rgba(15, 23, 42, .1), 0 10px 24px rgba(74, 144, 226, .38);
    transform: translateY(-1px);
}

.btn--primary .btn__text,
.btn--primary:visited .btn__text {
    color: #fff;
}

/* secondary buttons, used on light backgrounds (homepage slider, training prices) */
.btn.btn--primary-1,
.btn.btn--primary-2,
.btn.btn--primary-1:visited,
.btn.btn--primary-2:visited {
    border: 1px solid var(--sm-primary);
    background: #fff;
}

.btn.btn--primary-1 .btn__text,
.btn.btn--primary-2 .btn__text {
    color: var(--sm-primary-dark);
}

.btn.btn--primary-1:hover,
.btn.btn--primary-2:hover,
.btn.btn--primary-1:focus,
.btn.btn--primary-2:focus,
.btn.btn--primary-1:active,
.btn.btn--primary-2:active {
    border-color: var(--sm-primary-dark);
    background: #eef5fd;
}

/* sections */
.bg--secondary {
    background: var(--sm-soft);
}

section {
    position: relative;
}

.imagebg:not(.image--light) .background-image-holder {
    filter: saturate(1.05);
}

.imagebg[data-overlay]::before,
.imagebg .background-image-holder::before {
    background: linear-gradient(120deg, rgba(15, 23, 42, .78) 0%, rgba(30, 41, 99, .55) 100%) !important;
}

/* cards */
.boxed {
    border-radius: var(--sm-radius-lg);
}

.boxed--border {
    border: 1px solid var(--sm-line);
}

.boxed.boxed--border,
.feature.boxed,
.feature-2.boxed,
.feature-3.boxed,
.feature-4.boxed,
.pricing.boxed {
    background: #fff;
    box-shadow: var(--sm-shadow);
    transition: box-shadow .2s ease, transform .2s ease;
}

.boxed.boxed--border:hover,
.feature.boxed:hover,
.pricing.boxed:hover {
    box-shadow: var(--sm-shadow-hover);
    transform: translateY(-2px);
}

.bg--secondary .boxed.boxed--border {
    background: #fff;
}

.feature .icon,
.feature-2 .icon,
.feature-3 .icon,
.feature-4 .icon,
.feature i.icon {
    color: var(--sm-primary);
}

.feature-3 .icon,
.feature-4 .icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.img-fluid.border--round,
.border--round,
.rounded {
    border-radius: var(--sm-radius-lg) !important;
}

.boxed img.img-fluid {
    border-radius: var(--sm-radius);
}

/* labels and tags */
.label {
    border-radius: 6px;
    background: rgba(74, 144, 226, .12);
    color: var(--sm-primary-dark);
    font-weight: 600;
    letter-spacing: .02em;
}

.fe_mytag {
    display: inline-block;
    padding: .1em .55em;
    border-radius: 6px;
    letter-spacing: .03em;
}

.box-tags ul {
    display: flex;
    flex-wrap: wrap;
    gap: .45em;
    margin: .6em 0 0;
    padding: 0;
}

.box-tags a.mytag,
a.mytag {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: .3em .75em;
    border: 1px solid var(--sm-line);
    border-radius: 8px;
    background: var(--sm-soft);
    color: var(--sm-text);
    font-size: .85em;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

a.mytag span {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font-size: inherit;
}

a.mytag:hover {
    border-color: var(--sm-primary);
    background: rgba(74, 144, 226, .08);
    color: var(--sm-primary-dark);
    text-decoration: none;
}

/* blog */
.article__title h1,
.article__title .h1 {
    letter-spacing: -.025em;
}

.article__body p,
.article__body li {
    color: #334155;
    font-size: 1.05em;
    line-height: 1.75;
}

.article__body h2,
.article__body h3 {
    margin-top: 1.6em;
}

.article__body img {
    border-radius: var(--sm-radius-lg);
}

.private-border {
    border: 2px dashed #f59e0b !important;
}

.breadcrumbs {
    color: var(--sm-muted);
    font-size: .85rem;
}

.breadcrumbs li a {
    color: var(--sm-muted);
}

.breadcrumbs li a:hover {
    color: var(--sm-primary);
}

.important_button {
    border-radius: var(--sm-radius) !important;
}

/* pagination */
.pagination .page-item .page-link {
    margin: 0 3px;
    border: 1px solid var(--sm-line);
    border-radius: var(--sm-radius) !important;
    color: var(--sm-ink);
    font-weight: 600;
}

.pagination .page-item.active .page-link {
    border-color: var(--sm-primary);
    background: var(--sm-primary);
    color: #fff;
}

/* forms */
input[type='text'],
input[type='email'],
input[type='search'],
input[type='tel'],
input[type='password'],
textarea,
select,
.form-control {
    border: 1px solid #d6dde8;
    border-radius: var(--sm-radius);
    background: #fff;
    color: var(--sm-ink);
    transition: border-color .15s ease, box-shadow .15s ease;
}

input[type='text']:focus,
input[type='email']:focus,
input[type='search']:focus,
input[type='tel']:focus,
input[type='password']:focus,
textarea:focus,
select:focus,
.form-control:focus {
    border-color: var(--sm-primary);
    outline: 0;
    box-shadow: 0 0 0 4px rgba(74, 144, 226, .15);
}

label {
    color: var(--sm-ink);
    font-weight: 500;
}

/* testimonials, pricing */
.testimonial__image {
    border-radius: 50%;
}

.pricing .h1,
.pricing h1 {
    color: var(--sm-ink);
}

/* price box with a list beside it (coding): smaller price, space between the columns */
.pricing-2.row {
    align-items: center;
}

.pricing-2 .h1 {
    font-size: 2.4rem;
    line-height: 1.2;
    white-space: nowrap;
}

@media (min-width: 1200px) {
    .pricing-2.row > .col-lg-6 + .col-lg-6 {
        padding-left: 24px;
    }
}

/* narrower box: list under the price, centred */
@media (max-width: 1199px) {
    .pricing-2.row > .col-lg-6 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .pricing-2.row > .col-lg-6 + .col-lg-6 {
        margin-top: 24px;
        text-align: center;
    }

    .pricing-2.row > .col-lg-6 + .col-lg-6 ul {
        display: inline-block;
        text-align: left;
    }
}

.pricing-2 ul li {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* tick centred in its circle (the theme shifted it 4px up) */
.checkmark {
    flex: none;
    position: relative;
}

.checkmark:before {
    top: 0 !important;
    width: 100%;
    line-height: 21px !important;
    text-align: center;
}

/* footer */
footer.bg--dark,
.footer-6.bg--dark {
    background: #0f172a;
}

footer.bg--dark p,
footer.bg--dark li,
footer.bg--dark span {
    color: rgba(226, 232, 240, .78);
}

footer.bg--dark a {
    color: #fff;
    opacity: .85;
}

footer.bg--dark a:hover {
    color: #fff;
    opacity: 1;
}

footer .footer__lower {
    border-top: 1px solid rgba(148, 163, 184, .18);
    background: transparent;
}

/* back to top */
.back-to-top {
    border-radius: var(--sm-radius) !important;
    box-shadow: var(--sm-shadow);
}

@media (max-width: 767px) {
    .nav-container .menu-horizontal > li:not(:last-child) {
        margin-right: 0;
    }

    .dropdown .dropdown__content {
        border: 0;
        box-shadow: none;
    }
}

/* newsletter in the blog sidebar (assets/front-assets/js/ajax.js keeps working: #newsletter_mail, #nl_checkbox, div.submit) */
#newsletter.nl {
    display: flex;
    flex-direction: column;
    gap: .7em;
    margin-top: .5em;
}

#newsletter .nl-lead {
    margin: 0;
    color: var(--sm-muted);
    font-size: .9em;
    line-height: 1.5;
}

#newsletter .nl-row {
    display: flex;
    gap: .4em;
}

#newsletter .nl-row .item {
    margin: 0;
}

#newsletter .nl-input {
    flex: 1 1 auto;
    min-width: 0;
    height: 44px;
    margin: 0;
    padding: 0 .9em;
    font-size: .95em;
}

#newsletter .nl-submit {
    display: inline-flex;
    align-items: center;
    height: 44px;
    margin: 0;
    padding: 0 1.1em;
    color: #fff;
    font-size: .9em;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

#newsletter .nl-consent {
    display: flex;
    align-items: center;
    gap: .55em;
    margin: 0;
    color: var(--sm-text);
    font-size: .85em;
    font-weight: 400;
    cursor: pointer;
}

#newsletter .nl-consent input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--sm-primary);
}

#newsletter .ajax-box {
    margin: 0;
    font-size: .85em;
}

#newsletter .ajax-box .ok {
    color: #16a34a;
}

#newsletter .ajax-box .nook {
    color: #dc2626;
}

#newsletter .ajax-box:empty {
    display: none;
}

@media (max-width: 1199px) and (min-width: 992px) {
    #newsletter .nl-row {
        flex-direction: column;
    }
}

/* ===== Denser layout and a readable type scale (the theme had 14px text and paddings in multiples of it) ===== */
body {
    font-size: 16px;
    line-height: 1.65;
}

p, li, blockquote, td, th, label, .boxed p, .feature p {
    font-size: 17px;
    line-height: 1.65;
}

.lead {
    font-size: 19px;
    line-height: 1.6;
}

small, .type--fine-print, .breadcrumbs, .label {
    font-size: 14px;
}

h1, .h1 {
    margin-bottom: .45em;
    font-size: 44px;
    line-height: 1.15;
}

h2, .h2 {
    margin-bottom: .5em;
    font-size: 34px;
    line-height: 1.2;
}

h3, .h3 {
    margin-bottom: .5em;
    font-size: 26px;
    line-height: 1.25;
}

h4, .h4 {
    margin-bottom: .5em;
    font-size: 20px;
    line-height: 1.35;
}

h5, .h5 {
    margin-bottom: .4em;
    font-size: 17px;
    line-height: 1.4;
}

h6, .h6 {
    font-size: 14px;
}

p + h2, p + h3, p + h4, ul + h2, ul + h3, ul + h4 {
    margin-top: 1.2em;
}

/* sections: about half of the theme's padding */
section,
footer {
    padding-top: 72px;
    padding-bottom: 72px;
}

section.space--xxs, footer.space--xxs { padding-top: 24px; padding-bottom: 24px; }
section.space--xs, footer.space--xs { padding-top: 40px; padding-bottom: 40px; }
section.space--sm, footer.space--sm { padding-top: 56px; padding-bottom: 56px; }
section.space--md, footer.space--md { padding-top: 88px; padding-bottom: 88px; }
section.space--lg, footer.space--lg { padding-top: 104px; padding-bottom: 104px; }
section.space--xlg, footer.space--xlg { padding-top: 140px; padding-bottom: 140px; }

.height-10, .height-20, .height-30, .height-40, .height-50,
.height-60, .height-70, .height-80, .height-90, .height-100 {
    padding: 64px 0;
}

/* cards and buttons */
.boxed {
    margin-bottom: 24px;
    padding: 24px;
}

.boxed.boxed--lg {
    padding: 32px;
}

.boxed.boxed--sm {
    padding: 18px;
}

.btn {
    padding: 11px 24px;
    font-size: 15px;
    line-height: 1.4;
}

.btn--sm {
    padding: 8px 18px;
    font-size: 14px;
}

.btn--lg {
    padding: 14px 30px;
    font-size: 16px;
}

.btn .btn__text,
.btn.type--uppercase .btn__text {
    font-size: inherit;
    letter-spacing: .01em;
    text-transform: none;
}

/* button with an icon: icon inline before the text (the theme put it in a grey block over the text) */
.btn--icon {
    padding-left: 24px !important;
}

.btn--icon .btn__text i {
    position: static;
    height: auto;
    margin-right: .5em;
    padding: 0;
    background: none;
    line-height: inherit;
}

/* small tag on a button, e.g. "nezávazně" */
.btn .label {
    top: -11px;
    right: -14px;
    height: auto;
    padding: 2px 8px;
    border: 0;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .15);
    color: var(--sm-primary-dark);
    font-size: 11px !important;
    line-height: 1.5;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* main menu: normal case, readable size (the theme forced 14px grey uppercase with !important) */
.nav-container .menu-horizontal > li > a,
.nav-container .menu-horizontal > li > span,
.nav-container .menu-horizontal .dropdown__trigger,
.bar-1 .menu-horizontal > li > a,
.bar-1 .menu-horizontal > li > .dropdown__trigger {
    color: var(--sm-ink) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0;
    text-transform: none;
    opacity: 1 !important;
}

.nav-container .menu-horizontal > li > a:hover,
.nav-container .menu-horizontal > li > span:hover,
.nav-container .menu-horizontal .dropdown__trigger:hover {
    color: var(--sm-primary) !important;
}

.dropdown .dropdown__content li,
.dropdown .dropdown__content a {
    font-size: 15px;
}

.bar-3,
.bar-3 span,
.bar-3 .menu-horizontal > li > a {
    font-size: 14px !important;
}

/* blog list and sidebar */
.boxed strong {
    color: var(--sm-ink);
    font-size: 17px;
}

.feature__body h4,
.feature__body h5 {
    font-size: 20px;
}

/* footer */
footer p, footer li, footer a, footer span {
    font-size: 15px;
}

@media (max-width: 991px) {
    h1, .h1 { font-size: 36px; }
    h2, .h2 { font-size: 28px; }
    h3, .h3 { font-size: 23px; }

    section, footer { padding-top: 56px; padding-bottom: 56px; }
    section.space--md, footer.space--md,
    section.space--lg, footer.space--lg { padding-top: 72px; padding-bottom: 72px; }
    section.space--xlg, footer.space--xlg { padding-top: 96px; padding-bottom: 96px; }
}

@media (max-width: 575px) {
    body { font-size: 15px; }
    p, li, .boxed p, .feature p { font-size: 16px; }
    .lead { font-size: 17px; }
    h1, .h1 { font-size: 30px; }
    h2, .h2 { font-size: 25px; }
    h3, .h3 { font-size: 21px; }

    section, footer { padding-top: 44px; padding-bottom: 44px; }
    .height-10, .height-20, .height-30, .height-40, .height-50,
    .height-60, .height-70, .height-80, .height-90, .height-100 { padding: 48px 0; }
    .boxed, .boxed.boxed--lg { padding: 20px; }
}

/* ===== Testimonials on the homepage: the quote is a .h3 span, so tone it down to readable body text ===== */
.testimonial {
    align-items: center;
}

.testimonial__image {
    width: 100%;
    max-width: 150px;
    margin-bottom: 16px;
    box-shadow: 0 0 0 6px var(--sm-soft), var(--sm-shadow);
}

.testimonial .h3 {
    display: block;
    position: relative;
    margin-bottom: 18px;
    color: #1e293b;
    font-size: 20px;
    font-style: italic;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0;
}

.testimonial h5 {
    margin: 0;
    color: var(--sm-ink);
    font-size: 16px;
    font-weight: 600;
}

.testimonial h5 + span {
    color: var(--sm-muted);
    font-size: 14px;
}

/* ===== Blog cards (homepage and blog list): title, meta, tags and perex (an h5) ===== */
.col-md-6 > article {
    display: flex;
    height: 100%;
    padding-bottom: 24px;
}

article > .feature__body {
    display: flex;
    flex-direction: column;
}

.col-md-6 > article > .feature__body {
    width: 100%;
    margin-bottom: 0;
}

article > .feature__body > .row {
    margin-right: 0;
    margin-left: 0;
}

article > .feature__body > .row > .col-4 {
    padding-right: 20px;
    padding-left: 0;
}

article > .feature__body > .row > [class*='col-'] + [class*='col-'] {
    padding-right: 0;
    padding-left: 0;
}

article > .feature__body img.img-fluid {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.feature__body h3 {
    margin-bottom: 6px;
    font-size: 20px;
    line-height: 1.3;
    letter-spacing: -.01em;
}

.feature__body .blog-title-link {
    color: var(--sm-ink);
}

.feature__body .blog-title-link:hover {
    color: var(--sm-primary);
    text-decoration: none;
}

.feature__body h3 + span {
    color: var(--sm-muted);
    font-size: 14px;
}

.feature__body h3 + span a.text-muted {
    color: var(--sm-muted) !important;
    text-decoration: none;
}

.feature__body h3 + span a.text-muted:hover {
    color: var(--sm-primary) !important;
}

.feature__body h3 + span + div {
    margin: 6px 0 10px;
}

.feature__body h3 + span + div a:hover {
    text-decoration: none;
}

.feature__body .fe_mytag {
    margin: 0 4px 4px 0;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.7;
    text-transform: uppercase;
}

.feature__body h5.hidden-xs {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--sm-text);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}

.feature__body > a.float-right {
    align-self: flex-end;
    margin-top: auto;
    padding-top: 12px;
    float: none !important;
    font-size: 15px;
    font-weight: 600;
}

.feature__body > a.float-right::after {
    content: ' \2192';
}

@media (max-width: 575px) {
    .testimonial .h3 { font-size: 17px; }
    .feature__body h3 { font-size: 18px; }
}

/* ===== CTA strip above the footer (animated violet gradient): white button instead of the blue gradient ===== */
[data-gradient-bg] .cta {
    align-items: center;
}

[data-gradient-bg] .cta .lead {
    margin: 0;
    color: #fff;
    font-size: 22px;
    font-weight: 600;
}

[data-gradient-bg] .btn--primary,
[data-gradient-bg] .btn--primary:visited {
    border-color: #fff;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .18);
}

[data-gradient-bg] .btn--primary .btn__text {
    color: var(--sm-violet);
}

[data-gradient-bg] .btn--primary:hover {
    border-color: #fff;
    background: #f3f1ff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .24);
}

/* ===== Feature cards with an icon (IS modules on the homepage): equal height in a row, icon beside left-aligned text ===== */
.feature-2.boxed {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    height: calc(100% - 24px);
    text-align: left;
}

.feature-2.boxed .icon {
    flex: 0 0 auto;
    float: none;
    width: auto;
    margin: 2px 0 0;
    font-size: 48px;
    line-height: 1;
}

.feature-2.boxed .feature__body {
    flex: 1 1 auto;
    width: auto;
    float: none;
}

.feature-2.boxed .feature__body h5 {
    margin-bottom: 8px;
    font-size: 19px;
    font-weight: 700;
}

.feature-2.boxed .feature__body p {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
}
