/* Responsive tweaks */
@media (max-width: 768px) {
    /* Home landing header */
    .wave-background {
        /* Push the wave artwork lower on mobile */
        background-position: center calc(100% + 90px);
    }

    .logo-header {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }

    .logo-text {
        align-items: center;
        text-align: center;
    }

    .logo-text h1 {
        font-size: 2.75rem;
    }

    .logo-text p {
        font-size: 0.95rem;
    }

    .logo-image {
        max-width: 110px;
    }

    .landing-tagline {
        font-size: 1.6rem;
    }

    .tagline-break {
        display: block;
    }

    .service-panel {
        height: 300px;
    }

    .service-text {
        font-size: 1rem;
    }

    /* Forms */
    .form-container {
        padding: 2rem 1.5rem;
    }

    .page-title {
        font-size: 2rem;
    }

    /* Commercial navbar */
    .navbar {
        padding: 1rem;
        flex-direction: column;
        gap: 1rem;
    }

    .nav-links {
        gap: 1rem;
    }

    .nav-logo {
        font-size: 1.25rem;
        justify-content: center;
        width: 100%;
        text-align: center;
    }

    .nav-logo img {
        height: 35px;
    }

    /* Home sections */
    .home-section {
        padding: 3rem 1rem;
    }

    .home-section-title {
        font-size: 1.8rem;
    }

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

    .stat-card {
        min-height: 190px;
        padding: 1.35rem 0.95rem;
    }

    .stat-badge:not(.stat-badge--platinum) {
        width: 88px;
        height: 88px;
        padding: 0.65rem;
        border-radius: 999px;
    }

    .stat-badge--image {
        padding: 0.55rem;
    }

    .stat-badge--platinum {
        width: min(100%, 150px);
        height: auto;
        aspect-ratio: 186 / 74;
        padding: 0;
        border-radius: 999px;
    }

    .stat-platinum-text {
        font-size: 1.75rem;
    }

    .stat-icon {
        width: 44px;
        height: 44px;
    }

    .stat-title {
        font-size: 0.92rem;
    }

    .stat-title::after {
        width: 44px;
        margin-top: 0.7rem;
    }

    .gold-cta-button {
        width: 100%;
        max-width: 420px;
    }

    /* Shared footer */
    .footer-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .footer-brand {
        justify-content: center;
    }

    /* Residential header */
    .header-logo-container {
        flex-direction: column;
        justify-content: center;
        gap: 0.75rem;
    }

    .header-logo-text {
        align-items: center;
        text-align: center;
    }

    .header-logo-text h1 {
        font-size: 2.4rem;
    }

    .header-logo-text p {
        font-size: 0.9rem;
    }

    .header-logo {
        max-width: 80px;
    }

    .header-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem 1rem;
        justify-items: center;
    }

    .header-nav-link {
        font-size: 0.9rem;
        padding: 0.5rem 0.6rem;
        width: 100%;
        text-align: center;
    }

    .carousel-container {
        width: 100%;
    }

    .carousel-images {
        grid-template-columns: 1fr;
        grid-auto-rows: 280px;
        gap: 1rem;
    }

    .carousel-slide {
        height: 280px;
    }

    .carousel-button {
        width: 40px;
        height: 40px;
        font-size: 1.5rem;
    }

    .carousel-prev {
        left: 10px;
    }

    .carousel-next {
        right: 10px;
    }
}

/* Extra small devices */
@media (max-width: 480px) {
    .carousel-images {
        grid-template-columns: 1fr;
        grid-auto-rows: 220px;
        gap: 0.75rem;
    }

    .carousel-slide {
        height: 220px;
        border-radius: 12px;
    }

    .carousel-section {
        padding: 2rem 1rem;
    }

    .carousel-image-overlay::after {
        font-size: 2rem;
    }
}
