*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

img,
svg,
video,
canvas {
    max-width: 100%;
    height: auto;
}

iframe {
    max-width: 100%;
}

.footer {
    white-space: normal;
}

.pdm-unified-footer {
    font-family: "Manrope", sans-serif;
}

.pdm-unified-footer a {
    color: inherit;
    text-decoration: none;
}

.pdm-unified-footer a:hover {
    color: #fff;
}

.pdm-unified-footer .container {
    width: min(1180px, calc(100% - 36px));
    margin: 0 auto;
    padding-left: 0;
    padding-right: 0;
}

.footer-grid {
    display: grid;
    gap: 18px;
}

/* Landing page and shared grids: mobile-first defaults */
.sw-hero-grid,
.sw-about-grid,
.sw-features-grid,
.sw-services-grid,
.sw-counter-grid,
.sw-testimonial-grid,
.sw-contact-grid,
.grid-2,
.grid-3,
.footer-grid,
.sw-contact-form {
    grid-template-columns: 1fr;
}

.sw-points {
    grid-template-columns: 1fr;
}

.sw-about-stats {
    grid-template-columns: 1fr;
}

.sw-image-wrap {
    order: -1;
    justify-content: center;
}

/* Service pages: mobile-first defaults */
.service-hero,
.service-split,
.service-cards,
.service-theme-footer-grid {
    grid-template-columns: 1fr;
}

.service-actions {
    flex-direction: column;
    align-items: stretch;
}

.service-btn {
    width: 100%;
}

.service-newsletter {
    flex-direction: column;
}

/* About page grids: mobile-first defaults */
.about-overview-grid,
.about-mini-grid,
.principles-grid,
.process-grid,
.band-grid {
    grid-template-columns: 1fr;
}

@media (min-width: 680px) {
    .grid-2,
    .grid-3,
    .footer-grid,
    .sw-features-grid,
    .sw-services-grid,
    .sw-counter-grid,
    .sw-contact-form,
    .sw-about-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sw-points {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-actions {
        flex-direction: row;
        align-items: center;
    }

    .service-btn {
        width: auto;
    }

    .service-newsletter {
        flex-direction: row;
    }

    .service-cards,
    .service-theme-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .about-overview-grid,
    .about-mini-grid,
    .principles-grid,
    .process-grid,
    .band-grid,
    .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1080px) {
    .service-hero,
    .service-split {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    }

    .service-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .service-theme-footer-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1120px) {
    .sw-hero-grid {
        grid-template-columns: 5fr 7fr;
    }

    .sw-image-wrap {
        order: 0;
        justify-content: flex-end;
    }

    .sw-about-grid {
        grid-template-columns: 7fr 5fr;
    }

    .sw-services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sw-counter-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sw-testimonial-grid {
        grid-template-columns: 5fr 6fr;
    }

    .sw-contact-grid {
        grid-template-columns: 4fr 8fr;
    }

    .sw-about-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .grid-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .footer-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .about-overview-grid {
        grid-template-columns: 6fr 6fr;
    }

    .about-mini-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .principles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .process-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .band-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Footer size normalization for template layouts */
.container-fluid.footer {
    margin-top: 0 !important;
    padding-top: 48px !important;
    padding-bottom: 24px !important;
}

.container-fluid.footer .container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.container-fluid.footer h4 {
    font-size: 18px;
    margin-bottom: 16px;
}

.container-fluid.footer p,
.container-fluid.footer a.btn.btn-link {
    font-size: 16px;
    line-height: 1.6;
}

.container-fluid.footer .btn.btn-link {
    margin-top: 8px;
}

.container-fluid.copyright {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    font-size: 12px;
}

.container-fluid.copyright .container {
    padding-top: 0;
    padding-bottom: 0;
}
