header {
    display:grid
    grid-template-columns:1fr;
}


header div {
    align-items:center;
    box-sizing:border-box;    
    color:white;
    column-gap:0em;
    display:flex;
    flex-wrap:nowrap;
    font-size:4em;
    font-family:'EB Garamond';
    justify-content:center;
    padding:0.25em;
}


header div img {
    height:1.5em;
}


header nav, header input:checked ~ nav {
    display:flex;
    column-gap:1.5em;
    justify-content:center;
    padding-bottom:1em;
}


nav a, header input:checked ~ nav {
    color:white;
    font-size:1em;
    font-weight:100;
    text-decoration:none;
}


nav a:hover {
    color:red;
}


nav hr, header input:checked ~ nav hr {
    display:none;     
}


header label {
    cursor: pointer;
    display:none;
    height:1.68em;   
    position:absolute;
    right:1.5em;
    top:1.8em;
    width:2.28em;
}


header input {
    display:none;
}


label span {
    background: white;
    display:block;
    height:0.24em;
    left:0.24em;
    position: relative;
    top:0.72em;
    width: 1.8em;
}


label span::before, label span::after{
    background: white;
    content: ' ';
    display: block;
    height: 100%;
    position: absolute;
    transition: all .1s ease-out;
    width: 100%;
}


label span::before {
    top: 0.48em;
}

label span::after {
    top: -0.48em;
}


header input:checked ~ label span::before { 
    transform: rotate(-45deg); top:0;
} 

header input:checked ~ label span::after { 
    transform: rotate(45deg); top:0;
} 

header input:checked ~ label span { 
    background: transparent; 
}



@media only screen and (max-width:700px) {
 
    header div {
        font-size:2em;
        justify-content:start;
        padding:0.5em;
    }


    header nav {
        display:none;
    }


    header input:checked ~ nav  a {
        font-size:1.25em;
    }


    header label {
        display:block;
    }
 

    header input:checked ~ nav {
        display:grid;
        grid-template-rows:auto;
        justify-items:center;
    }


    header input:checked ~ nav hr {
        border: 0;
        border-top: 1px solid rgba(255,255,255,0.5);
        display:block;
        height: 1px;
        margin: 1em 0;
        padding: 0;
        width:4em;
    }

}


@media only screen and (max-width:650px) {header-branding {font-size:0.78em;}}
@media only screen and (max-width:600px) {header-branding {font-size:0.72em;}}
@media only screen and (max-width:550px) {header-branding {font-size:0.66em;}}
@media only screen and (max-width:500px) {header-branding {font-size:0.60em;}}
@media only screen and (max-width:450px) {header-branding {font-size:0.54em;}}
@media only screen and (max-width:400px) {header-branding {font-size:0.48em;}}