/* =========================================================
   Responsive breakpoints
   1440 / 1280 / 1024 / 768 / 600 / 480 / 390 / 375
   ========================================================= */

@media (max-width: 1280px) {
    .services-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .services-page__grid {
        grid-template-columns: 1fr;
    }

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

    .footer__grid {
        grid-template-columns: 1.3fr repeat(2, 1fr);
    }

    .footer__brand {
        grid-column: 1 / -1;
    }

    .quote-panel {
        grid-template-columns: 1fr;
    }

    .quote-form {
        grid-template-columns: minmax(0, 1.85fr) minmax(190px, 0.65fr);
        align-items: stretch;
    }

    .quote-form__fields {
        grid-template-columns: 1fr 1fr 1fr 1fr;
        height: 100%;
    }
}

@media (max-width: 1024px) {
    .nav-desktop {
        display: none;
    }

    .menu-toggle {
        display: inline-flex;
    }

    .topbar__left .topbar__item:first-child {
        display: none;
    }

    .hero {
        padding-top: 72px;
    }

    .hero__content {
        max-width: 560px;
        padding-bottom: 56px;
    }

    .hero-cards__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .quote-panel {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .quote-form {
        grid-template-columns: minmax(0, 1.7fr) minmax(150px, 0.7fr);
        gap: 16px;
        align-items: stretch;
        height: auto;
    }

    .quote-form__fields {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: none;
        height: auto;
    }

    .quote-form__fields > .field {
        height: auto;
        min-height: 108px;
    }

    .quote-form__fields .field--model {
        grid-column: auto;
    }

    .quote-result {
        height: auto;
        min-height: 0;
    }

    .stats-section__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 22px;
    }

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

    .service-showcase {
        grid-template-columns: 1fr;
    }

    .service-detail__layout {
        grid-template-columns: 1fr;
    }

    .service-detail__aside {
        position: static;
    }

    .service-detail__cta-band {
        flex-direction: column;
        align-items: flex-start;
    }

    .blog-index__grid {
        grid-template-columns: 1fr;
    }

    .blog-post__layout {
        grid-template-columns: 1fr;
    }

    .blog-post__aside {
        position: static;
    }

    .blog-post__cta-band {
        flex-direction: column;
        align-items: flex-start;
    }

    .atelier-banner {
        margin-bottom: 32px;
    }

    .atelier-banner--corporate {
        margin: 10px 0 14px;
    }

    .atelier-banner--services {
        margin: 0;
    }

    .services-page {
        padding-top: 20px;
        padding-bottom: 16px;
    }

    .services-page-cta {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .atelier-banner__photos {
        width: 100%;
        opacity: 0.28;
        padding: 12px;
    }

    .atelier-banner__inner {
        min-height: 240px;
        padding-block: 36px;
    }

    .atelier-banner__copy {
        max-width: 100%;
    }



    .cta-section__inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .cta-section__actions {
        justify-content: flex-start;
        width: 100%;
    }

    .contact-page__grid {
        grid-template-columns: 1fr;
    }

    .page-hero__inner--contact {
        grid-template-columns: 1fr;
    }

    .contact-panel {
        position: static;
    }

    .contact-map__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .contact-map__frame {
        aspect-ratio: 4 / 3;
        min-height: 280px;
    }

    .corporate-about__grid {
        grid-template-columns: 1fr;
    }

    .page-hero__inner--corporate {
        grid-template-columns: 1fr;
    }

    .page-hero--corporate .page-hero__title {
        max-width: none;
    }

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

    .social-premium__grid .media-tile:last-child:nth-child(3) {
        grid-column: 1 / -1;
        max-width: 50%;
        justify-self: center;
        width: 100%;
    }
}

@media (max-width: 768px) {
    .container {
        width: min(100% - 32px, var(--container));
    }

    .section {
        padding: 72px 0;
    }

    .social-premium__grid {
        grid-template-columns: 1fr;
    }

    .social-premium__grid .media-tile:last-child:nth-child(3) {
        grid-column: auto;
        max-width: none;
        justify-self: stretch;
    }

    .topbar {
        display: none;
    }

    .navbar__inner {
        min-height: 68px;
    }

    .brand__tagline {
        display: none;
    }

    .hero {
        padding-top: 56px;
    }

    .hero__media {
        opacity: 0.9;
    }

    .hero__overlay {
        background:
            linear-gradient(180deg, rgba(11, 11, 11, 0.78) 0%, rgba(11, 11, 11, 0.88) 55%, rgba(11, 11, 11, 0.96) 100%);
    }

    .hero__content {
        max-width: 100%;
        padding-bottom: 40px;
    }

    .hero__title {
        font-size: clamp(2.1rem, 9vw, 2.8rem);
    }

    .hero__actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .hero__actions-pair {
        flex: 1 1 auto;
        min-width: min(100%, 320px);
    }

    .hero__actions .btn {
        flex: 0 1 auto;
    }

    .hero__actions-pair .btn {
        flex: 1 1 auto;
    }

    .hero-slider__caption {
        max-width: min(280px, 55vw);
        bottom: 56px;
        right: 16px;
    }

    .hero-slider__dots {
        right: 16px;
        bottom: 18px;
    }

    .hero-cards {
        margin-top: 0;
        padding-bottom: 28px;
    }

    .quote-section {
        padding: 28px 0 56px;
    }

    .quote-panel {
        padding: 24px 18px;
    }

    .quote-form {
        grid-template-columns: 1fr;
        gap: 14px;
        height: auto;
    }

    .quote-form__fields {
        grid-template-columns: 1fr;
        height: auto;
    }

    .quote-form__fields > .field {
        height: auto;
        min-height: 100px;
    }

    .quote-form__fields .field--model {
        grid-column: auto;
    }

    .quote-result {
        height: auto;
        min-height: 0;
    }

    .request-form__fields {
        grid-template-columns: 1fr;
    }

    .quote-panel__intro-cta {
        width: 100%;
    }

    .services-grid,
    .trust-grid {
        grid-template-columns: 1fr;
    }

    .services-page-cta__inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 28px;
    }

    .footer__bottom-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .footer__crafted-inner {
        gap: 12px;
    }

    .footer__crafted-line {
        max-width: 40px;
    }

    .footer__crafted-copy {
        font-size: 0.78rem;
        max-width: 20rem;
    }

    .footer__crafted-brand {
        letter-spacing: 0.08em;
        font-size: 0.84rem;
    }

    .contact-info {
        grid-template-columns: 1fr;
    }

    .page-hero {
        padding: 56px 0 40px;
    }
}

@media (max-width: 600px) {
    .navbar__cta span,
    .navbar__cta {
        padding-inline: 12px;
        font-size: 0.72rem;
    }

    .brand__logo-img {
        height: 42px;
        max-width: 160px;
    }

    .brand__logo {
        width: 42px;
        height: 42px;
    }

    .hero-cards__grid,
    .stats-section__grid,
    .services-grid,
    .trust-grid,
    .footer__grid {
        grid-template-columns: 1fr;
    }

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

    .hero__actions-pair {
        width: 100%;
        flex-direction: column;
    }

    .hero__actions .btn,
    .hero__actions-pair .btn {
        width: 100%;
        white-space: normal;
        justify-content: center;
        text-align: center;
    }

    .hero-slider__caption {
        max-width: calc(100% - 32px);
        left: 16px;
        right: 16px;
        bottom: 52px;
        padding: 12px 14px;
    }

    .hero-slider__title {
        font-size: 0.95rem;
    }

    .hero-slider__text {
        font-size: 0.8rem;
    }

    .hero-slider__dots {
        left: 16px;
        right: auto;
    }

    .cta-section__inner {
        padding: 28px 20px;
    }

    .cta-section__actions {
        flex-direction: column;
    }

    .cta-section__actions .btn {
        width: 100%;
    }

    .stat-item {
        justify-content: flex-start;
    }
}

@media (max-width: 480px) {
    .container {
        width: min(100% - 24px, var(--container));
    }

    .navbar__inner {
        gap: 10px;
        min-height: 64px;
    }

    .navbar__cta {
        min-height: 40px;
        padding-inline: 10px;
    }

    .hero {
        padding-top: 48px;
    }

    .hero__lead {
        font-size: 0.98rem;
    }

    .service-card--hero,
    .service-tile,
    .trust-card {
        padding: 20px 18px;
    }

    .quote-panel__intro h2 {
        font-size: 1.45rem;
    }

    .quote-result__price {
        font-size: 2rem;
    }

    .section__title {
        font-size: 1.55rem;
    }

    .footer__legal {
        gap: 12px;
    }
}

@media (max-width: 390px) {
    .brand__logo-img {
        height: 38px;
        max-width: 140px;
    }

    .hero__title {
        font-size: 2rem;
    }

    .btn {
        min-height: 46px;
        padding-inline: 16px;
        font-size: 0.8rem;
    }
}

@media (max-width: 375px) {
    .mobile-nav__panel {
        width: 100%;
    }

    .quote-panel {
        padding: 20px 14px;
    }
}

.contact-panel {
        padding: 24px 18px;
    }

    .contact-social {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
