@media (max-width: 980px) {
    .hero-section {
        padding-top: 58px;
    }

    .hero-inner {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .hero-content {
        max-width: 760px;
        text-align: center;
        margin: 0 auto;
    }

    .hero-lead {
        margin-left: auto;
        margin-right: auto;
    }

    .hero-visual {
        min-height: 450px;
        max-width: 620px;
        width: 100%;
        margin: 0 auto;
    }

    .food-card-large {
        left: 50%;
        transform: translateX(-50%) rotate(4deg);
    }

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

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

    .result-card {
        grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
    }

    .result-content {
        justify-content: flex-start;
    }

    .shop-detail-inner {
        width: min(100% - 56px, 1040px);
        grid-template-columns: minmax(0, 1fr) 220px;
        gap: 28px;
    }
}

@media (max-width: 720px) {
    .header-inner {
        width: min(100% - 28px, var(--container));
        min-height: 68px;
    }

    .section-inner,
    .hero-inner,
    .results-hero-inner,
    .results-layout,
    .shop-detail-inner {
        width: min(100% - 28px, var(--container));
    }

    .hero-section {
        padding: 44px 0 56px;
    }

    .hero-inner {
        min-height: auto;
    }

    .hero-content {
        text-align: center;
    }

    .hero-lead {
        margin-left: auto;
        margin-right: auto;
    }

    .hero-visual {
        min-height: 350px;
    }

    .floating-food-card {
        border-width: 7px;
        border-radius: 22px;
    }

    .food-card-large {
        width: 245px;
        height: 300px;
        top: 36px;
    }

    .food-card-small {
        width: 126px;
        height: 126px;
    }

    .food-card-medium {
        width: 164px;
        height: 136px;
    }

    .food-card-one {
        left: 0;
        top: 0;
    }

    .food-card-two {
        right: 0;
        top: 42px;
    }

    .food-card-three {
        right: 10px;
        bottom: 8px;
    }

    .section-heading-row {
        display: block;
    }

    .section-heading-row > p {
        text-align: left;
    }

    .search-section {
        padding-bottom: 68px;
    }

    .results-page {
        padding: 38px 0 72px;
    }

    .results-hero {
        padding-bottom: 26px;
    }

    .results-hero::before {
        width: 190px;
        height: 190px;
        right: -48px;
        top: -32px;
    }

    .shop-detail-page {
        padding: 42px 0 72px;
    }

    .shop-title {
        font-size: 2.2rem;
    }

    .shop-detail-inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .shop-article {
        padding: 22px;
        border-radius: 10px;
    }

    .shop-article-main-photo img {
        aspect-ratio: 4 / 3;
    }

    .shop-article-body img {
        height: 260px;
    }

    .shop-photo-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .shop-sidebar-section {
        padding: 18px;
    }

    .shop-info-list .result-detail span {
        display: inline;
        margin-right: 10px;
    }

    .search-card {
        padding: 22px;
        border-radius: 26px;
    }

    .search-grid,
    .restaurant-grid {
        grid-template-columns: 1fr;
    }

    .restaurant-card p {
        min-height: auto;
    }

    .result-card {
        grid-template-columns: 1fr;
        gap: 18px;
        padding: 14px;
        border-radius: 26px;
    }

    .result-main-image-wrap {
        width: 100%;
        border-radius: 20px;
    }

    .gallery-controls {
        right: 10px;
        bottom: 10px;
    }

    .gallery-button {
        width: 34px;
        height: 34px;
    }

    .results-pager {
        flex-wrap: wrap;
        gap: 12px;
    }

    .pager-status {
        width: 100%;
        order: -1;
        text-align: center;
    }

    .footer-inner {
        width: min(100% - 28px, var(--container));
        display: block;
    }

    .copyright {
        margin-top: 18px;
        text-align: left;
    }
}

@media (max-width: 420px) {
    .site-logo img {
        width: 104px;
    }

    .hero-title {
        font-size: 1.9rem;
    }

    .hero-visual {
        min-height: 320px;
    }

    .food-card-large {
        width: 220px;
        height: 276px;
    }

    .food-card-two {
        top: 58px;
    }
}
