/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 1100px) {
	.footer-inner {
        grid-template-columns: 1fr 1fr;
    }
    .container {
        width: calc(100% - 32px);
    }

    .site-nav {
        gap: 0px 20px;
    }

    .service-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media (max-width: 900px) {
	.contact-hero {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .contact-hero-text p {
        margin: 0 auto;
    }

    .contact-hero-text h1::after {
        margin-left: auto;
        margin-right: auto;
    }

    .contact-card-grid {
        grid-template-columns: 1fr;
    }

    .contact-card {
        min-height: unset;
    }

    .contact-hours-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .contact-hours-item {
        justify-content: center;
        text-align: center;
    }

    .contact-hours-item + .contact-hours-item {
        border-left: 0;
        border-top: 1px solid rgba(18, 32, 42, 0.18);
        padding-top: 18px;
    }
    .footer-bottom-inner{

        flex-direction:column;

        justify-content:center;

        padding:18px 0;
		gap: 32px;
        text-align:center;

    }
	.recent-work-grid {
        grid-template-columns: repeat(2, 1fr);
    }
	.reviews-desktop-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .service-grid {
        grid-template-columns: 1fr;
    }
	.reviews-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .review-placeholder,
    .gallery-placeholder{

        padding:40px 20px;

    }

    .faq-cta-card {

        padding-left: 24px;

    }
	.gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
 	h2 {
		font-size: 1.2em;
	}
    .hero-grid {

       gap: 0px 20px;

    }

     .hero-left {

        max-width: 760px;

     }

    .hero-text {

        max-width: none;

    }

    .hero-features {

        justify-content: center;

    }
	.hero-left h1 {

    font-size: 1.5em;

	}
	.contact-hero {
        text-align: center;
    }

    .contact-hero-image {
        max-width: 220px;
        width: 100%;
    }
}

@media (max-width: 700px) {
    .recent-work-popup {
        padding: 12px;
    }

    .recent-work-popup-card {
        width: 96vw;
        padding: 20px;
    }

    .recent-work-popup-pair {
        gap: 8px;
    }

    .before-after-icon,
    .popup-before-after-icon {
        font-size: 11px;
        padding: 4px 6px;
    }
	
	
	
	.recent-work-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
	.btn-all_desktop_reviews {
		right: 20px;
	}
	.reviews-desktop-grid {
    width: calc(100% - 50px);
    margin: 0 auto;
	grid-template-columns: 1fr;
    }
	.site-logo img{

    height: 60px;

	}
	.review-nav {
	    display: flex;
	}

	.reviews-grid {
        display: block;
    }
    .intro-columns-large {
        display: none;
    }

    .intro-columns-small {
        display: block;
    }
    .intro-card{

        padding:12px;

    }
    .review-card.active {
        display: block;
    }
    .nav-inner {
        position: relative;
        min-height: 72px;
    }

    .mobile-menu {
        display: inline-flex;
        margin-left: auto;
        width: 48px;
        height: 48px;
        font-size: 1.45rem;
        font-weight: 700;
    }

    .portal-link {
        display: none;
    }

    .portal-mobile {
        display: block;
        margin: 14px 16px 16px;
        padding: 14px 18px;
        border-radius: var(--radius-pill);
        background: var(--primary);
        color: #fff !important;
        text-align: center;
        font-weight: 700;
    }

    .site-nav {
		transition: none;
        position: absolute;
        top: calc(100% + 10px);
        right: 0;
        left: auto;

        width: 260px;
        max-width: calc(100vw - 24px);

        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;

        margin: 0;
        background: #fff;
        border: 1px solid var(--border);
        border-radius: 18px;

        box-shadow:
            0 12px 30px rgba(0, 0, 0, .10),
            0 2px 6px rgba(0, 0, 0, .06);

        overflow: hidden;

        opacity: 0;
        visibility: hidden;
        pointer-events: none;

        transform: translateY(-12px) scale(.98);
        transform-origin: top right;
    }

    .site-nav.menu-ready {
        transition:
            opacity var(--transition),
            transform var(--transition),
            visibility var(--transition);
    }

    .site-nav.open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0) scale(1);
    }

    .site-nav a {
        padding: 17px 20px;
        border-bottom: 1px solid var(--border);
        font-size: 1rem;
        font-weight: 700;
    }

    .site-nav a:hover {
        background: var(--surface-alt);
    }

    .site-nav a::after {
        display: none;
    }

    .site-nav a:last-child {
        border-bottom: 0;
    }

    .reviews-page-grid .review-card {
        flex-basis: 100%;
    }
	.reviews-summary-platforms{
        display:none;
    }
    .service-review-row {
        gap: 10px;
    }

    .service-review-logo {
        flex: 0 0 64px;
    }

    .service-review-logo img {
        width: 56px;
    }

    .service-review-card {
        padding: 12px 14px;
        border-radius: 14px;
    }
	.service-review-platforms {
        margin-top: 10px;
    }

    .service-review-platform-logos {
        gap: 8px;
    }

    .service-review-platform-logos img {
        max-width: 64px;
        max-height: 24px;
    }
	.hero-grid {

       gap: 0px 4px;

    }

	.hero {
		padding: 8px 0 16px 0;
	}
	.hero-buttons {

        flex-direction: column;
		display: none;

    }
	.hero-buttonssmall {

        flex-direction: column;
		display: flex;
		gap: 14px;
		justify-content: center;
		margin: 0px 10px;

    }

    .hero-features {

        flex-direction: column;

        gap: 10px;

    }
	.image-viewer {
        padding: 10px;
    }

    .image-viewer-nav {
        width: 40px;
        font-size: 44px;
    }

    .image-viewer-prev {
        left: 2px;
    }

    .image-viewer-next {
        right: 2px;
    }
}
@media (max-width: 650px) {
    .auth-card {
        padding: 22px;
    }

    .form-row.two-cols {
        grid-template-columns: 1fr;
        gap: 0;
    }
	.gallery-grid {
        grid-template-columns: 1fr;
    }

    .gallery-filters {
        gap: 8px;
    }

    .gallery-filter {
        padding: 8px 13px;
        font-size: .9rem;
    }
}
@media (max-width: 600px) {
	.about-page {
        padding: 20px 14px 40px;
    }

    .why-grid {
        grid-template-columns: 1fr;
    }

    .about-cta {
        padding: 22px;
    }
	.default-page {
	     padding: 20px 20px 120px 20px;
	}
    .container {
        width: calc(100% - 24px);
    }

    h1 {
        font-size: 2.15rem;
    }

    h2 {
        font-size: 1.65rem;
    }


    .review-placeholder,
    .gallery-placeholder {
        padding: 32px 18px;
    }
	    .hero-grid {

        grid-template-columns: 1fr;

        grid-template-areas:
            "left"
            "image"
            "buttons";

        gap: 0px;
		
        justify-items: center;

        text-align: center;

    }

    .hero-left {
        text-align: center;
    }

    .hero-right {
        justify-self: center;
    }

    .hero-buttons {
        justify-content: center;
    }
	.hero-text {
    margin-bottom: 8px;
	}
}
@media (max-width: 550px) {

    .reviews-summary {
        flex-direction: column;
        gap: 4px;
    }

    .reviews-summary-stars,
    .reviews-summary-average {
        display: block;
        text-align: center;
    }

}
@media (max-width: 400px) {

    html {
        font-size: 15px;
    }

    h1 {
        font-size: 1.9rem;
    }

    h2 {
        font-size: 1.45rem;
    }

    .btn {
        padding: 12px 18px;
    }

}
