/* =========================================================
   RESPONSIVE — all breakpoints
   ========================================================= */

/* ---- 1399px ---- */
@media(max-width:1399px){
    .solution-card {
        padding: 24px 32px 0 32px;
    }
}

/* ---- 1199px ---- */
@media(max-width:1199px){
    .services_section .services_content {
        gap: 80px;
    }
}

/* ---- 991px (Bootstrap lg → stacks) ---- */
@media(max-width:991px){

    /* Header — keep on one line */
    header.header .row {
        flex-wrap: nowrap;
        align-items: center;
    }
    .header .site_logo .logo img {
        width: 180px;
    }
    .header .nav_menu .nav_ul {
        gap: 16px;
    }

    /* Hero */
    .hero_section .col-lg-6:first-child {
        display: none;
    }
    .hero_section .col-lg-6:last-child {
        flex: 0 0 100%;
        max-width: 100%;
    }
    .hero_badge img {
        width: 120px;
    }

    /* Solution cards — 2 per row */
    .solution_section .col-lg-4 {
        flex: 0 0 50%;
        max-width: 50%;
    }
    .solution-card {
        padding: 24px 16px 0 16px;
    }

    /* Services */
    .services_section .services_content {
        gap: 60px;
    }
    .services_section .services_content .service_List {
        gap: 32px;
    }

    /* Characteristics — 2 per row */
    .serviceCard .col-lg-3 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    /* Information steps — 2 per row */
    .information_section .col-lg-3 {
        flex: 0 0 50%;
        max-width: 50%;
    }
    .information_section .video_image {
        height: 56vw;
    }

    /* Paddings */
    .padding_md {
        padding-top: 60px;
        padding-bottom: 60px;
    }
    .padding_lg {
        padding-top: 80px;
        padding-bottom: 80px;
    }
    .pb-80, .services_section .row.pb-80 {
        padding-bottom: 60px !important;
    }

    /* Logo */
    .logo_section .logo_image {
        gap: 40px;
    }
    .logo_section .logo_image img {
        height: 72px;
    }

    /* Video */
    .video_image {
        height: 60vw;
    }

    /* Footer */
    .siteFooter .footer_icon,
    .siteFooter .footer-menu {
        justify-content: flex-start;
    }
}

/* ---- 767px (mobile) ---- */
@media(max-width:767px){

    /* Header */
    .header .site_logo .logo img {
        width: 120px;
    }
    .header .nav_menu .nav_ul {
        gap: 12px;
    }
    .header .nav_menu .nav_ul li a {
        font-size: 13px !important;
    }

    /* Hero */
    .hero_section {
        height: 90vh;
        align-items: flex-end;
        padding-bottom: 80px;
    }
    .hero_badge {
        bottom: 16px;
        right: 16px;
    }
    .hero_badge img {
        width: 88px;
    }

    /* Solution cards — 1 per row */
    .solution_section .col-lg-4 {
        flex: 0 0 100%;
        max-width: 100%;
        padding-bottom: 24px;
    }

    /* Characteristics — 1 per row */
    .serviceCard .col-lg-3 {
        flex: 0 0 100%;
        max-width: 100%;
        padding-bottom: 24px;
    }

    /* Information steps — 1 per row */
    .information_section .col-lg-3 {
        flex: 0 0 100%;
        max-width: 100%;
        padding-bottom: 24px;
    }
    .information_section .solution-card .icon_div h3 {
        font-size: 60px !important;
    }
    .information_section .video_image {
        height: 56vw;
        margin-top: 40px !important;
    }

    /* Video */
    .video_image {
        height: 56vw;
    }

    /* Paddings */
    .padding_md {
        padding-top: 40px;
        padding-bottom: 40px;
    }
    .padding_lg {
        padding-top: 60px;
        padding-bottom: 60px;
    }
    .pb-80 {
        padding-bottom: 40px !important;
    }
    .services_section .row.pb-80 {
        padding-bottom: 80px !important;
    }
    .borderTop.pt-3 {
        padding-top: 16px !important;
    }

    /* Logo */
    .logo_section .logo_image {
        gap: 24px;
        justify-content: flex-start;
    }
    .logo_section .logo_image img {
        height: 48px;
    }

    /* Solution card */
    .solution-card {
        padding: 20px 0 0 0;
    }

    /* Services */
    .services_section .services_content {
        gap: 40px;
    }
    .services_section .service_image {
        margin-top: 40px;
    }

    /* About */
    .about_section .about_image {
        margin-top: 40px;
    }

    /* Footer */
    .siteFooter .footer_icon,
    .siteFooter .footer-menu {
        justify-content: flex-start;
    }
    .siteFooter .footer_icon {
        margin-top: 32px;
    }
    .siteFooter .footer-menu ul {
        flex-wrap: wrap;
        gap: 12px;
    }

    /* Contact */
    .contact_form .form_row {
        padding: 32px 24px;
    }

    /* Font sizes — force all sub-24px text to 19px on mobile */
    :root {
        --bs-body-font-size: 19px;
    }
    body {
        font-size: 19px !important;
    }
    body h3, body .h3,
    .font24, .font24 p {
        font-size: 19px !important;
    }
    .p1 p,
    .solution-card .card_content p,
    .serviceCard .solution-card .card_content p,
    .information_section .solution-card .card_content p,
    .accordion_main_div .accoList .accoSingle .answer p {
        font-size: 19px !important;
    }

    /* Gravity Forms */
    .gform_wrapper .gform_description {
        font-size: 19px !important;
    }
    .gform_wrapper .gform_validation_errors,
    .gform_wrapper .gform_validation_errors > h2 {
        font-size: 19px !important;
    }
    .gform_wrapper form .gfield legend,
    .gform_wrapper form .gfield label {
        font-size: 19px !important;
    }
    .gform_wrapper form input[type="text"],
    .gform_wrapper form input[type="tel"],
    .gform_wrapper form input[type="email"],
    .gform_wrapper form input[type="number"],
    .gform_wrapper form select,
    .gform_wrapper form textarea {
        font-size: 19px !important;
    }
    .gform_wrapper .gform_fields .gfield--type-fileupload label {
        font-size: 19px !important;
    }

    /* Footer & document list */
    .siteFooter .footer-menu ul li {
        font-size: 19px !important;
    }
    .document_div .document_UL li a h5 {
        font-size: 19px !important;
    }
}
