@media (max-width: 767px) {
    #cookie-settings-button {
        left: 16px !important;
    }

    #scroll-up-button {
        right: 16px !important;
    }

    .site-hero {
        padding: 80px 18px 32px !important;
    }

    .site-hero > .relative > img {
        height: 56px !important;
        margin-bottom: 14px !important;
    }

    .site-hero h1 {
        margin-bottom: 12px !important;
        font-size: 34px !important;
    }

    .site-hero p {
        margin-bottom: 20px !important;
        line-height: 1.55 !important;
    }

    .site-hero p + div {
        gap: 10px !important;
    }

    .site-hero p + div a {
        padding: 12px 18px !important;
    }

    #about {
        padding: 32px 18px 36px !important;
    }

    #about > div:first-child {
        gap: 20px !important;
        margin-bottom: 28px !important;
    }

    #about h2 {
        margin-bottom: 12px !important;
    }

    #about p {
        line-height: 1.55 !important;
    }

    #services {
        gap: 12px !important;
        padding-top: 24px !important;
    }

    #services > div {
        padding: 18px !important;
    }

    #services > div > div:first-child {
        margin-bottom: 12px !important;
    }

    #songwriters,
    #highlight,
    #contact {
        padding-top: 36px !important;
        padding-bottom: 36px !important;
    }

    #songwriters > div:first-child {
        margin-bottom: 24px !important;
    }

    #roster-slider {
        height: 410px !important;
    }

    #highlight {
        row-gap: 36px;
    }

    #highlight > div > div:first-child {
        margin-bottom: 20px !important;
    }

    .highlight-grid {
        gap: 10px !important;
    }

    #memberships {
        padding: 36px 18px !important;
    }

    #memberships h2 {
        margin-bottom: 20px !important;
    }

    .membership-logos {
        gap: 14px 10px !important;
    }

    .membership-logos a {
        min-height: 48px !important;
    }

    #contact {
        padding-right: 12px !important;
        padding-left: 12px !important;
    }

    #contact > div {
        padding: 14px !important;
    }

    #contact .text-center.mb-10 {
        margin-bottom: 20px !important;
    }

    #contact .flex.mb-12 {
        margin-bottom: 24px !important;
        gap: 8px !important;
    }

    #contact form > :not([hidden]) ~ :not([hidden]) {
        margin-top: 16px !important;
    }

    #contact form > .grid {
        gap: 14px !important;
    }

    #contact form ~ div.mt-14 {
        margin-top: 28px !important;
        padding-top: 24px !important;
    }

    #contact form ~ div.mt-14 .mb-8 {
        margin-bottom: 18px !important;
    }

    #contact form ~ div.mt-14 > .grid {
        display: grid;
        grid-template-columns: none !important;
        grid-auto-flow: column;
        grid-auto-columns: 88%;
        gap: 12px !important;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline mandatory;
        scrollbar-width: none;
    }

    #contact form ~ div.mt-14 > .grid::-webkit-scrollbar {
        display: none;
    }

    #contact form ~ div.mt-14 iframe {
        scroll-snap-align: start;
    }
}

@media (max-width: 660px) {
    .publishing-footer-main {
        padding: 28px 0 !important;
    }

    .publishing-footer-directory {
        gap: 24px 12px !important;
    }

    .publishing-footer-directory > div {
        gap: 24px !important;
    }

    .publishing-footer-directory > div:last-child {
        gap: 16px 12px !important;
    }

    .publishing-footer h3 {
        margin-bottom: 10px;
    }

    .publishing-footer-directory a,
    .publishing-footer .footer-soon {
        min-height: 36px !important;
        font-size: 12px !important;
    }

    .publishing-footer-locations {
        padding-top: 24px !important;
    }

    .publishing-footer .footer-addresses {
        gap: 4px !important;
    }

    .publishing-footer .footer-addresses p {
        margin-bottom: 8px;
    }

    .publishing-footer .footer-media {
        margin: 18px auto !important;
        padding-top: 18px;
    }

    .publishing-footer .footer-brand {
        width: min(220px, 100%);
        margin-top: 16px;
        margin-bottom: 12px;
    }

    .publishing-footer .footer-socials {
        margin-bottom: 64px;
    }

    .publishing-footer-bottom {
        gap: 10px !important;
        padding: 16px 16px 20px !important;
    }

    .publishing-footer-bottom > div {
        width: 100%;
        max-width: 440px;
    }

    .publishing-footer-bottom > div p {
        text-wrap: balance;
    }

    .publishing-footer-bottom nav a {
        min-height: 36px !important;
    }
}

@media (max-width: 360px) {
    .site-hero h1 {
        font-size: 30px !important;
    }
}
