@media (max-width: 768px) {
    /* General styles */
    h1 { font-size: 1.8rem; }
    h2 { font-size: 1.6rem; }
    h3 { font-size: 1.4rem; }
    .desktop { display: none; }
    .mobile { display: block; }
    header.mobile { background: #b70000; }
    header.mobile > nav { display: none; }
    .navbar { display: block; clear: both; width: 100%; height: 4rem; }
    #logo { position: absolute; left: 20px; top: 1rem; width: 65%; height: 2rem; background: url('images/brush-logo-white.png') left center no-repeat; background-size: contain; }
    #menu_button { float: right; color: black; cursor: pointer; background: #b70000; color: white; height: 4rem; line-height: 4rem; padding: 0 0.5rem; font-size: 3rem; }
    #menu_button > img { height: 2rem; vertical-align: middle; }
    #menu_trigger { display: none; }
    #menu_trigger:checked + nav { display: block; }
    .main_column { width: 100%; display: block; float: none; }
    .page_marker { display: none; background: none; }

    img { max-width: 100%; }

    header.mobile > nav > a { display: block; background: white; font-size: 1.2rem; font-weight: bold; border-bottom: 1px solid #b70000; padding: 0.5rem 1rem; }

    .sidebar { width: 100%; float: none; display: block; position: static; max-width: none; }
    .sidebar > nav { padding-top: 0; }
    .sidebar > nav > a { color: #330000; display: inline-block; padding: 0.5rem; font-size: 1rem; }
    .sidebar > nav > a:hover, .sidebar > nav > a.current { color: white; background: #b70000; }

    #page_wrapper { padding-top: 0; }

    a.button { display: block; margin: 1rem; }
    a.button.primary { float: none; }
    a.button.secondary { float: none; }
    #newsletter-signup .desktop { display: none; }
    #newsletter-signup input { margin-bottom: 1rem; }
    #newsletter-signup input, #newsletter-signup button { height: 2rem; line-height: 2rem; }
    #newsletter-signup input[name=cm-name], #newsletter-signup input[type=email], #newsletter-signup button { width: 100%; padding: 0; }

    /* Forms */
    p.form-field > label { display: block; width: auto; }
    #rc-imageselect, .g-recaptcha {transform:scale(0.8);-webkit-transform:scale(0.8);transform-origin:0 0;-webkit-transform-origin:0 0;} /* Source: https://geekgoddess.com/how-to-resize-the-google-nocaptcha-recaptcha/ */

    /* Contact+People */
    #company_contact_details > .location { width: 100%; float: none; }
    #company_contact_details > .phone_number { text-align: left; width: 100%; float: none; }
    #company_contact_details > .location > .address { width: 100%; float: none; }
    #contact .person { padding-bottom: 2rem; }
    #contact .person > .picture { width: 35%; }
    #contact .person > .picture > img { width: 90%; height: auto; }
    #contact .person .contact_method { width: 100%; display: block; }
    #contact .our_people { padding-top: 0; }

    /* Portfolio */
    .portfolio_item .rightpic, .portfolio_item .leftpic { max-width: 40%; }
    .portfolio_item .rightpic > img, .portfolio_item .leftpic > img { width: 100%; }

    /* Web portfolio */
    .web_portfolio_item { float: none; width: 100%; text-align: center; }
    .web_portfolio_item .popup { margin-top: -300px; left: 0px; }

    /* Popups */
    .popup { width: 100%; margin: 0 auto; position: relative; padding: 1rem 0; box-shadow: none; }

    .blog-sidebar { display: none; } /* Quick fix for the fact that the blog sidebar is just ugly noise on mobile. Probably still need to put a search somewhere. */
    #page_wrapper { padding-top: 20px !important; } /* Override desktop header minimiser that sets #page_wrapper.padding-top on scroll */

    .content-full-width {
        margin-top: -20px;
    }
    .portfolio-header {
        padding: 100px 20px 5px 20px;
    }
    .portfolio-header h1 { font-size: 28px; }
    .project-image {
        width: 40%;
    }
    .project-text-wrapper {
        width: 60%;
    }
    .project-text {
        padding: 50px 50px 50px 30px;
    }
    .project-text {
        font-size: 0.8rem;
    }
    .project-text > a > h2 {
        font-size: 1.1rem;
    }
}

@media (max-width: 560px) {
    .project-image {
        width: 100%;
    }
    .project-text-wrapper {
        width: 100%;
    }
    .project-text {
        padding: 50px 30px 10px 20px;
    }
    .project-text-inner { padding-top: 20px; }
    .portfolio-header h1 { font-size: 22px; }
    .project {
        border-bottom: 80px solid #4C5266;
    }
}
