* {
    font-family: 'Open Sans', sans-serif;
}

:root {
    --color-border-light: #d4d4d4;
    --color-shadow-light: #e5e5e5;
    --color-primary: #3ea84f;
    --color-primary-hover: #1e4873;
    --color-light: white;
    --color-footer-link: #cacaca;
    --color-secondary-border: #b9b9b9;
    --color-range-thumb: #4CAF50;
    --color-range-track: #ddd;
    --color-bronze: #CD7F32;
    --color-silver: #C0C0C0;
    --color-gold: #FFD700;
    --color-dark: #000;
    --color-muted-rgb: rgb(96, 105, 123);
    --color-toggle-bg: #f8f9fa;
    --color-toggle-border: #dee2e6;
    --color-light-alt: #fff;
    --color-pricing-fade: rgb(246 247 249);
    --color-badge-bg: #EEF6F9;
    --color-badge-muted-bg: #f5f7fa;
    --color-heading-dark: #111827;
    --color-text-muted-dark: #4b5563;
}

.grecaptcha-badge {
    visibility: hidden;
}

input[type="checkbox"] {
    appearance: checkbox !important;
    width: 20px !important;
    height: 20px !important;
    margin-right: 5px;
    flex-shrink: 0;
}

button.close {
    display: none;
}

div.alert {
    margin-top: 1em;
}

.post-message {

    img,
    video {
        border: 1px solid var(--color-border-light);
        border-radius: 6px;
        box-shadow: 0px 0px 5px var(--color-shadow-light);
        max-width: 100% !important;
        height: auto !important;
        width: auto !important;
        margin: 10px 0;
    }

    jodit-media {
        max-width: 100% !important;
        height: auto !important;
        width: auto !important;
    }

    p,
    span {
        font-size: 16px !important;
    }
}

.navbar-brand img {
    width: 250px;
    height: auto;
}

.btn:not(.icon) {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: var(--color-light);
}

.btn:hover {
    background-color: var(--color-primary-hover) !important;
    border-color: var(--color-primary-hover) !important;
}


footer {

    p a,
    li a {
        color: var(--color-footer-link) !important;
        text-decoration: underline;

        &:hover {
            text-decoration: none;
        }
    }
}

a,
a:hover,
.dropdown-item:focus,
.dropdown-item:hover,
.dropdown-header,
.dropdown-item.active,
.dropdown-item:active,
.dropdown-menu-dark .dropdown-item.active,
.dropdown-menu-dark .dropdown-item:active,
.nav-pills .nav-link.active,
.nav-pills .show>.nav-link,
.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active,
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-text a,
.navbar-light .navbar-text a:focus,
.navbar-light .navbar-text a:hover,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .show>.nav-link,
.page-item.active .page-link,
.page-link:hover,
.page-link:focus,
.bg-dark.text-inverse a:not(.btn):not([class*="link-"]):hover,
.text-inverse a:not(.btn):hover,
[class*="offcanvas-"].text-inverse a:not(.btn):not([class*="link-"]):hover,
.filter:not(.basic-filter) ul li a.active,
.filter:not(.basic-filter) ul li a:hover,
.filter.basic-filter ul li a.active,
.filter.basic-filter ul li a:hover,
.icon-list.bullet-primary i,
.icon-list.bullet-soft-primary i,
.link-primary,
.unordered-list.bullet-primary li::before,
.link-primary:focus,
.link-primary:hover,
.post-meta li a:hover,
.accordion-wrapper .card-header button,
.accordion-wrapper .card-header button::before,
.accordion-wrapper .card-header button:hover,
.collapse-link,
.collapse-link:hover,
.breadcrumb-item a:hover,
.plyr--full-ui input[type="range"],
.progress-wrap::after,
.navbar-light.fixed .nav-link:focus,
.navbar-light.fixed .nav-link:hover,
.external:hover,
.external:hover::after,
.navbar-expand.navbar-light .navbar-nav .dropdown:not(.dropdown-submenu)>.dropdown-toggle::after,
.navbar-light .language-select .dropdown-toggle::after,
.text-inverse a:not(.btn):hover,
.bg-dark.text-inverse a:not(.btn):not([class*="link-"]):hover,
.bg-navy.text-inverse a:not(.btn):not([class*="link-"]):hover,
[class*="offcanvas-"].text-inverse a:not(.btn):not([class*="link-"]):hover {
    color: var(--color-primary-hover);
}

.news-post a {
    text-decoration: underline;

    &:hover {
        text-decoration: none;
    }
}

.main-image {
    width: 80%;
}

@media only screen and (max-width: 800px) {
    .large-icons img.img-fluid {
        max-width: 50%;
    }
}

.nobr {
    white-space: nowrap;
}

@media only screen and (max-width: 800px) {
    .text-center-sm {
        text-align: center !important;
    }
}

.navbar-stick.navbar-expand-lg {
    .navbar-brand {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
    }
}

.content-wrapper .btn-secondary {
    background: var(--color-light) !important;
    color: var(--color-primary) !important;
    border-color: var(--color-secondary-border) !important;
}

.blog-avatar {
    width: 55px;
    height: 55px;
    border-radius: 3px;
}

.pagination {
    display: flex;
    justify-content: center;
    background-color: unset;
    padding-top: 15px;
    padding-bottom: 15px;

    a,
    div.page-link {
        font-size: 18px;
    }
}

.link-underline-primary {
    text-decoration: underline;

    &:hover {
        text-decoration: none;
    }
}

/* pricing */
.range-container {
    touch-action: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

    input[type="range"] {
        width: 100%;
        -webkit-appearance: none;
        background: transparent;

        &::-webkit-slider-thumb {
            -webkit-appearance: none;
            height: 36px;
            width: 36px;
            border-radius: 50%;
            background: var(--color-range-thumb);
            cursor: pointer;
            margin-top: -14px;
        }

        &::-webkit-slider-runnable-track {
            width: 100%;
            height: 8px;
            background: var(--color-range-track);
            border-radius: 4px;
        }
    }

    input[type="range"]::-moz-range-thumb {
        height: 36px;
        width: 36px;
        border-radius: 50%;
        background: var(--color-range-thumb);
        cursor: pointer;
        border: none;
    }

    input[type="range"]::-moz-range-track {
        width: 100%;
        height: 8px;
        background: var(--color-range-track);
        border-radius: 4px;
    }

    .markers {
        width: 100%;
        display: block;
        position: absolute;
        top: 0.75rem;
        left: 0;
        font-weight: bold;
        user-select: none;
        pointer-events: none;
        font-size: 26px;

        span {
            position: absolute;
            top: 12px;
            height: 100%;
            display: flex;
            align-items: center;
        }
    }
}

input[type="checkbox"],
label {
    cursor: pointer;
}


/* Partner badges */
.badge-bronze {
    background-color: var(--color-bronze) !important;
    color: var(--color-dark) !important;
}

.badge-silver {
    background-color: var(--color-silver) !important;
    color: var(--color-dark) !important;
}

.badge-gold {
    background-color: var(--color-gold) !important;
    color: var(--color-dark) !important;
}

/* Terms and conditions pages (multiple) */
.terms-and-conditions-page {
    padding: 2rem;

    .terms-list,
    .terms-list ol {
        list-style: none;
    }

    a {
        text-decoration: underline;
    }

    .terms-list {
        counter-reset: section;
        margin: 0;
        padding-left: 0;

        >li {
            counter-increment: section;
            counter-reset: subsection;
            margin-bottom: 22px;

            &::before {
                content: counter(section) ". ";
                font-weight: 600;
            }

            >strong {
                font-size: 1.1em;
            }

            >ol {
                list-style: none;
                margin: 12px 0 0;
                padding-left: 28px;

                >li {
                    counter-increment: subsection;
                    counter-reset: subpoint;
                    margin-bottom: 8px;

                    &::before {
                        content: counter(section) "." counter(subsection) ". ";
                        font-weight: 600;
                    }

                    >ol {
                        list-style: none;
                        margin: 8px 0 0;
                        padding-left: 28px;

                        >li {
                            counter-increment: subpoint;
                            margin-bottom: 6px;

                            &::before {
                                content: counter(section) "." counter(subsection) "." counter(subpoint) ". ";
                                font-weight: 600;
                            }
                        }
                    }
                }
            }
        }
    }
}


/* Pricing period toggle (pricing page) */

/* clip horizontal overflow of the slider (offscreen tiers) without cutting card shadows vertically */
.pricing-section {
    overflow-x: clip;
}

#pricing-app {
    .small {
        font-size: 0.65rem;
    }

    .pricing-tiers-slider-wrapper {
        overflow: visible;
        padding: 8px;
        margin: -8px;
    }

    .pricing-tiers-slider {
        overflow: visible;

        .swiper {
            overflow: visible;
            /* hide the partially visible next tier while keeping card shadows; arrows are siblings, so they stay visible */
            clip-path: inset(-20px -12px);
        }

        .swiper-wrapper {
            align-items: stretch;
        }

        .swiper-slide {
            height: auto;

            /* tighter shadow so it fits the gap between tiers and is not cut by the clip above */
            .card {
                box-shadow: rgba(8, 60, 130, 0.06) 0 0 0 1px, rgba(30, 34, 40, 0.05) 0 2px 10px 0;
            }
        }

        /* arrows sit in the gutter outside the tiers, but never leave the viewport on narrow screens */
        .swiper-button-prev {
            left: max(-3.25rem, calc((100% - 100vw) / 2 + 4px));
            right: auto;
        }

        .swiper-button-next {
            right: max(-3.25rem, calc((100% - 100vw) / 2 + 4px));
            left: auto;
        }
    }

    .pricing-tier-card {
        border: 1px solid #cfe3ff;
        border-radius: 6px;
        overflow: hidden;
    }

    .card-header.pricing-tier-header {
        background-color: #eef8ff;
        border-bottom: 0;
        padding: 1rem 1rem;

        h4 {
            color: var(--color-primary-hover);
        }
    }

    .pricing-tier-turnover {
        min-height: 1.5rem;

    }

    .pricing-tier-price {
        padding: 0.5rem 0 1.25rem;
        color: var(--color-primary-hover);
    }

    .pricing-tier-divider {
        border: 0;
        border-top: 1px solid #b9d8ff;
        margin: 0 0 1.35rem;
        opacity: 1;
    }

    .pricing-tier-features {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .pricing-tier-feature {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
        line-height: 1.65;
        min-height: 1.5rem;
    }

    .pricing-tier-feature-icon {
        line-height: inherit;
        margin-top: 0.1rem;
    }

    .pricing-tier-feature.is-positive .pricing-tier-feature-icon {
        color: #00b83f;
    }

    .pricing-tier-feature.is-negative .pricing-tier-feature-icon {
        color: #ff1f1f;
    }

    .pricing-tier-feature.is-priority .pricing-tier-feature-icon {
        color: #ff8a00;
    }

    .pricing-tier-card form {
        display: block !important;
    }

    .pricing-tier-button {
        width: 100%;
        border-radius: 4px;
        background-color: #2fbd49 !important;
        border-color: #2fbd49 !important;
    }

    .pricing-tier-button:hover {
        background-color: #27aa3f !important;
        border-color: #27aa3f !important;
    }

    .pricing-scroll-top {
        text-decoration: none;
        color: inherit;

        &:hover {
            text-decoration: underline;
        }
    }

    .card-header {
        background-color: var(--color-badge-bg);
    }
}

@media only screen and (max-width: 768px) {
    #pricing-app {
        .small {
            font-size: 0.8rem;
        }

        h4 {
            font-size: 1.365rem;
        }
    }
}

/* Pill toggle (pricing, partners) */
.pill-toggle {
    background-color: var(--color-toggle-bg);
    border: 1px solid var(--color-toggle-border);
    border-radius: 999px;
    padding: 8px;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;

    .pill-toggle-btn {
        border: 0;
        border-radius: 999px;
        padding: 0.6rem 1.5rem;
        font-size: 16px !important;
        font-weight: 500;
        color: var(--color-light);
        background-color: transparent;
        transition: all 0.2s ease;
        display: flex;
        align-items: center;
        white-space: nowrap;

        &.active,
        &:hover {
            background-color: var(--color-primary-hover) !important;
            color: var(--color-light-alt) !important;

            .pill-toggle-badge {
                background-color: var(--color-primary);
            }
        }

        .pill-toggle-badge {
            background-color: var(--color-primary-hover);
            color: var(--color-light-alt);
            margin-left: 0.5rem;
            padding: 0.35em 0.65em;
            border-radius: 10rem;
            font-weight: 600;
            margin-top: 0.1rem;
        }
    }

    &.pill-toggle-sm {
        padding: 0;
        background-color: transparent;
        border: none;
        border-radius: 0;

        .pill-toggle-btn {
            padding: 0.35rem 1rem;
        }
    }

    @media only screen and (max-width: 768px) {
        flex-direction: column;
        width: 100%;
        max-width: 400px;
        border: 0;
        background-color: unset;

        .pill-toggle-btn {
            width: 100%;
            justify-content: center;
            padding: 0.7rem 1rem;
            margin-bottom: 0.25rem;

            &:last-child {
                margin-bottom: 0;
            }
        }
    }
}

/* Pricing page headings, links, and FAQ */
.pricing-features-collapse {
    @media (max-width: 767.98px) {
        position: relative;
        max-height: 8rem;
        overflow: hidden;

        &::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 2rem;
            background: linear-gradient(transparent, var(--color-pricing-fade));
            pointer-events: none;
        }

        &.is-expanded {
            max-height: none;

            &::after {
                display: none;
            }
        }
    }
}

.pricing-badge {
    display: inline-block;
    padding: 0.20rem 0.70rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--color-muted-rgb);
    background: var(--color-badge-bg);
    border-radius: 10rem;
    white-space: nowrap;
}

.pricing-badge-link {
    text-decoration: none;

    .pricing-badge-label {
        text-decoration: underline;
    }

    &:hover .pricing-badge-label {
        text-decoration: none;
    }
}

.pricing-badge-muted {
    color: var(--color-muted-rgb);
    background: var(--color-badge-muted-bg);
}

.pricing-badge-saving {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    white-space: normal;
    text-align: center;
    line-height: 1.3;

    span {
        white-space: nowrap;
    }

    small {
        display: block;
        font-size: 0.6rem;
        font-weight: 400;
        opacity: 0.8;
    }
}

.pricing-faq-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;

    .pricing-faq-question {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
        font-weight: 700;
        color: var(--color-heading-dark);
    }

    .pricing-faq-icon {
        color: var(--color-primary-hover);
        font-size: 1.2rem;
        line-height: 1.2;
    }

    .pricing-faq-answer {
        margin-left: 2rem;
        margin-top: 0.35rem;
        color: var(--color-text-muted-dark);
        line-height: 1.6;
    }
}

.pricing-contact-avatar {
    width: 80px;
    height: 80px;
}

/* The theme lets slides overflow so they peek outside the container, but with a single slide per view
   that only adds horizontal page scroll. Applies to every carousel on the homepage. */
@media (max-width: 575.98px) {
    .swiper.overflow-visible {
        overflow: hidden !important;
    }
}

/* nav-bottom hangs the arrows below the carousel, where they reach past the theme's mb-8
   and land on whatever follows. Reserve room for them. */
.swiper-container.nav-bottom {
    margin-bottom: 5rem !important;
}

.divider svg {
    display: block;
    width: 100%;
    height: 80px;
}

/* Reference gallery: a grid of uniform tiles. Screenshots range from 2:1 (desktop) to 1:2 (mobile),
   so fit each one whole into its tile; the grey backdrop makes the leftover space look deliberate. */
.reference-screen {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    overflow: hidden;
}

.reference-screen img {
    object-fit: contain;
}
