* {margin: 0; padding: 0; border: 0; box-sizing: border-box;}

html, body {
    font-family: "Open Sans";
    background-color: #ededed;
    width: 100vw; height: 100vh;
}

.bricolage-grotesque-regular {
    font-family: "Bricolage Grotesque", "Open Sans", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
.courier-prime-regular {
    font-family: "Courier Prime", serif;
    font-weight: 400;
    font-style: normal;
  }
  
.open-sans-regular {
    font-family: "Open Sans", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
h1, h2 {font-family: "Bricolage Grotesque";}
h3, h4 {font-family: "Open Sans";}
h1 {font-size: clamp(1.5rem, 4rem, 7rem); color: hsl(178, 50%, 26%)}

main {
    width: 95vw;
    margin-inline: auto;
    display: flex;
    flex-flow: column;
    padding: .5rem;
}
header {
    height: calc(40vh);
    background-image: url(/demos/images/creative.jpg);
    background-position: center 32%;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
        a {
            padding: 1rem;
            font-family: "Courier Prime"; 
            font-size: 1.5rem; color: #2e2453; 
            text-decoration: none;}
}

/* gives appearance of header image fading into background */
.fade-img:after {
    content:""; 
    position: absolute; 
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,.5) 50%, rgba(237, 237, 237, 1) 100%);
    height: 50%;  
}

.intro {
    z-index: 2;
    position: absolute;
    bottom: 0px;
    text-align: center;
    padding: 1rem 2rem;
    width: 100%;
        & h1{line-height: .8; padding: 1rem 0}
}

.intro p{padding-bottom: .5rem;}
.container {
    background-color:#1d4948;
    border-radius: .5rem 50px .5rem .5rem;
    min-width: 400px;
    margin: .5rem; padding: .5rem;
        h3{padding-left: .5rem;}
        h2, p {color: #ededed;}
}
.selector {
    position: relative;
    display: flex;
    flex-flow: row wrap;
    background-color: #ededed;
    border:#457e80 solid 2px;
    margin: .5rem 0;
    padding: .5rem 0;
        h3, p {padding: 0 .5rem .5rem .5rem; color: hsl(179, 43%, 10%);}
        @media (max-width:570px) {p:first-of-type{padding-top: 1rem;}}
}
.selector > div {flex-grow: 1; flex-basis: clamp(200px, 30%, 50%)}
.selector h3:hover, .selector p:hover, .close {cursor: pointer;}

.close{
    color: white;
    font-size: 1rem;
    margin: 1rem .5rem;
    padding: .5rem 1rem;
    border-radius: 10px;
    background-color:#1d4948;
    position: absolute;
    bottom: 0;
        @media (max-width:570px) {
            margin: .5rem;
            top: 0;
            right: 0;
            bottom: unset;
        }
}
.close:hover {
    background-color: #2e2453;
}
.code{
    flex-grow: 1;
    display: none;
    flex-flow: row wrap;
    gap: 5px;
}

.code div {
    min-width: 300px;
    margin: .5rem;
}
.hide {display: none;}

.hover a {
    display: inline-block;
    background-color:#f4c0be;
    padding: .5rem;
    border-radius: 5px;}

.hover a:hover {
    background-color: rgb(50, 182, 115);
    padding: .5rem;
    border-radius: 5px;
    color: white;}

@media all and (max-width: 480px){
    body, main {margin: 0px; padding: 0; width: 100%;}
    .container {
        margin: .5rem 0;
        min-width: 300px;
        display: flex;
        flex-flow: column;
        border-radius: 0;}
    .selector{
        flex-shrink: 1;
        margin-bottom: 0;
    }
    .code div {min-width: 250px;}
    header {
        background-position: 30%;}
}

/* HAMBURGER MENUS */

.wrapper {
    position: relative;
    display: flex;
    flex-flow: row wrap;
    padding: 1rem;
    justify-content: space-evenly;
    gap: 1rem;
}

.hamburger {
    height: 100%;
}

.wrapper div {
    padding: 2rem;
    display: flex;
    flex-flow: row wrap;
    aspect-ratio: 2/1;
    border: solid rgba(255, 255, 255, .5) 5px;
    flex: 1 1 20%;
    justify-content: center;
    align-content: center;
}

button {
    background-color: #ededed;
    font-family: "Open Sans";
    padding: 1rem;
    max-width: 200px;
    max-height: 75px;
    flex: 1 1 10%;
    border-radius: 5px;
    cursor: pointer;
    border: solid white 1px;
}
button span {font-family: "Bricolage Grotesque"; font-size: 1rem;}
button img {max-width: 2rem; max-height: 36px;}
#button1a img, #button1c img, #button2 img {transition: transform 1s ease-in-out;}

#button1a {
    color: #1D4948; 
    border: none; border-radius: 15px;
    background-color:#FAA285;
    font-weight: 500;
    transition-property: background-color;
    transition-duration: 1s;
}
    #button1a:hover {filter: drop-shadow(2px 2px 2px hsl(157, 76%, 3%));
    }
    #button1a.open {background-color:#ecd592;
    }

#button1c.open img {transform: rotate(-90deg);}


#button2.open img {transform: rotate(450deg);}
.hamburger .line {
    fill: #09b0a8;
    transition: transform 1s;
    transform-origin: center;
}

#button3:hover .top {
    transform: translateY(25px);
    transform: rotate(45deg);}
#button3:hover .bottom {
    transform: translateY(-25px);
    transform: rotate(-45deg);}
#button3:hover .middle {
    transform: opacity (0);
}

/* Toggles Exercise */

#toggles {
    flex-direction: row; 
    justify-content: center;
}

label {
    max-width: 200px;
    padding: 1em 0;
    /* border: solid red 1px; */
    color: white;
    font-family: 'Open Sans';}

input[type="checkbox"].toggle {
    opacity: 0;
    left: -9000px; top: -9000px;
    position: absolute;
    cursor: pointer;
}

input[type="checkbox"].toggle + label {
    position: relative;
    color: white;
    align-items: center;
    display: flex;
}

input[type="checkbox"].toggle:focus + label::before {
    outline: solid blue 2px;
}

input[type="checkbox"].toggle + label::before {
    content: "";
    color: white;
    width: 2em;
    height: 1.1em;
    background-color: hsl(4, 52%, 77%);
    border-radius: 1em;
    margin-right: .25em;
    transition: background-color 200ms ease-in-out;
}

input[type="checkbox"].toggle + label::after {
    position: absolute;
    content: "";
    color: white;
    width: .9em;
    height: .9em;
    background-color: hsl(4, 52%, 37%);
    border-radius: 1em;
    transform: translateX(.1em);
}

input[type="checkbox"].toggle:checked + label::before {
    background-color: hsl(179, 43%, 80%);
    transition: background-color 200ms ease-in-out;
}

input[type="checkbox"].toggle:checked + label::after {
    transform: translateX(1em);
    background-color: hsl(150, 37%, 45%);
    border-radius: 1em;
}