@media screen and (max-width: 1199px) {
    .single-list img {
        width: 60px;
    }
    .cont-typ2 {
        font-size: 19px;
        font-weight: 500;
    }
    .cont-typ1 {
        line-height: 24px;
    }
    /* Drawer: slightly narrower on smaller desktops */
    .ff-drawer {
        width: min(380px, 85vw);
    }
}
@media screen and (max-width: 991px) {
    /* Step the whole type scale down in one place rather than per-section. */
    :root {
        --fs-h1: 40px;
        --lh-h1: 54px;
        --fs-h2: 40px;
        --lh-h2: 52px;
        --fs-h3: 34px;
        --lh-h3: 44px;
        --fs-h4: 20px;
        --lh-h4: 28px;
        --fs-lead: 17px;
        --lh-lead: 30px;
        --fs-body: 15px;
        --lh-body: 26px;
    }
    .btn-typ2 a {
        font-size: 15px;
    }
    .faq-row {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-bottom: 16px;
    }
    .accordion-section-title {
        font-size: 18px;
        line-height: 26px;
    }
    /* New sections: 3-up steps become 2-up, then 1-up at the mobile breakpoint. */
    .hiw-step {
        flex: 1 1 45%;
    }
    .post-block-single {
        padding: 20px;
        flex: 0 0 45%;
    }
    .cont-img {
        width: 100%;
    }

    .banner-img {
        height: 65vh;
    }
    .banner-cont-main {
        max-width: 100%;
        position: relative;
        top: 30px;
        transform: translateY(0);
    }
    .banner-content-img img {
        right: 5%;
    }
    .video-full {
        height: 80vh;
    }
    .video-full video {
        height: 80vh;
    }
    .about-img {
        margin: 40px auto;
    }
    .about-img img {
        width: 50%;
    }
    .about-background {
        height: 100%;
    }
    .about-right {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .single-list {
        padding-bottom: 25px;
        flex: 0 0 50%;
    }
    .sub-img-cont .img-cont-full {
        bottom: -120px;
    }
    .img-cont-full-back-color {
        bottom: -125px;
    }
    ul.foot-list li a,
    .foot-list.te li,
    ul.foot-list li,
    .te li {
        font-size: 12px;
        line-height: 15px;
    }
    .foot-title.red-cont {
        font-size: 19px;
    }
    .banner-img {
        height: 570px;
    }
}
@media screen and (max-width: 767px) {
    /* Drawer: wider on mobile */
    .ff-drawer {
        width: 90vw;
    }
    .banner-img {
        height: 100%;
    }
    .banner-content-img img {
        position: relative;
        right: 0;
    }
    .post-block-single {
        flex: 0 0 100%;
        margin: 20px 0;
    }
    .about-background {
        padding: 0 25px;
        border-radius: 70px;
    }
    .about-img img {
        width: 100%;
    }
    .single-list {
        flex: 0 0 100%;
    }
    .cont-img {
        width: 85%;
    }
    .sub-img-cont .img-cont-full {
        bottom: -110px;
    }
    .video-section.sec-padding {
        padding: 80px 0 60px 0;
    }
    .col-md-6.img-sec {
        padding-top: 20px;
        padding-bottom: 120px;
    }
    .sec-padding {
        padding: 40px 0 40px 0;
    }
    .col-md-6.cont-sec {
        padding-top: 45px;
    }
    .what-we-pro.sec-padding {
        padding-top: 130px;
    }
    .footer-full {
        height: auto;
        padding-top: 50px;
        padding-bottom: 0;
    }
    .b-sub-img-cont .img-cont-full {
        width: 200px;
        right: 20px;
        bottom: -150px;
    }
    .sec-padding-m {
        padding: 70px 0;
    }
    .img-cont-full-back-color {
        width: 270px;
    }
    .cont {
        font-size: 16px;
    }
    .progress-container,
    .progress {
        width: 100%;
    }
    .table.mile th,
    .table.mile td {
        font-size: 12px;
        padding: 5px;
    }
    .img-cont-full-back-color {
        padding: 10px 20px;
    }
    .banner-content-img {
        padding-top: 20px;
    }
    .foot-title.red-cont {
        padding: 0 0 10px;
    }
    .copy-r {
        margin-top: 35px;
    }
    .accordion-section-title {
        font-size: 16px;
        line-height: 24px;
    }
}
@media screen and (max-width: 576px) {
    :root {
        --fs-h1: 30px;
        --lh-h1: 42px;
        --fs-h2: 28px;
        --lh-h2: 38px;
        --fs-h3: 25px;
        --lh-h3: 34px;
        --fs-h4: 18px;
        --lh-h4: 26px;
        --fs-lead: 15px;
        --lh-lead: 28px;
        --fs-body: 15px;
        --lh-body: 26px;
    }
    /* Stack the new sections and the hero CTA pair on phones. */
    .hiw-steps {
        gap: 16px;
    }
    .hiw-step {
        flex: 1 1 100%;
        padding: 26px 22px;
    }
    .hiw-num {
        font-size: 32px;
    }
    .problem-list li {
        padding: 12px 16px;
    }
    .hero-actions {
        gap: 10px;
        padding-top: 22px;
    }
    .hero-actions .btn-typ1,
    .hero-actions .btn-typ2 {
        padding: 10px 20px;
    }
    .img-group img {
        height: 36px;
    }
    .banner-cont-main .cont-typ1 {
        font-size: 15px;
        line-height: 28px;
    }
    .btn-typ2 a {
        font-size: 14px;
    }
    .b-sub-img-cont .img-cont-full {
        width: 89px;
        right: 165px;
    }
    .what-we-pro.sec-padding.faq {
        padding-top: 40px;
    }
    .btn-typ1 {
        padding: 8px 15px;
    }
    /* Header & Drawer: compact on small phones */
    .ff-header,
    .ff-drawer__header {
        height: 56px;
        padding: 0 16px;
    }
    .ff-header__logo img,
    .ff-drawer__logo {
        height: 42px;
    }
    .ff-header__menu-btn,
    .ff-drawer__close {
        width: 44px;
        height: 44px;
    }
    .ff-header__menu-btn {
        font-size: 22px;
    }
    .ff-drawer__close {
        font-size: 18px;
    }
    .sub-img-cont .img-cont-full {
        width: 340px;
        bottom: -115px;
    }
    .first-task.sec-padding-m.mb-5 {
        margin-bottom: 0rem !important;
    }
    .set-icon {
        font-size: 11px;
    }
    .cont-typ1 {
        line-height: 19px;
    }
    .front-icon {
        font-size: 12px;
        width: fit-content;
    }
    .botm-cont {
        flex-wrap: nowrap;
    }
}
@media screen and (min-width: 576px) {
    .carousel-inner {
        display: flex;
        width: 100%;
        margin-inline: auto;
        padding: 1em 0;
        overflow: hidden;
    }
    .carousel-item {
        display: block;
        margin-right: 0;
        flex: 0 0 calc(100% / 2);
    }
}
@media screen and (min-width: 768px) {
    .carousel-item {
        display: block;
        margin-right: 0;
        flex: 0 0 calc(100% / 3);
    }
}
.carousel .card {
    margin: 0 0.5em;
    border: 0;
}

/* .carousel-control-prev,
.carousel-control-next {
    width: 3rem;
    height: 3rem;
    background-color: grey;
    border-radius: 50%;
    top: 50%;
    transform: translateY(-50%);
} */
