html {
    font-size: 100%;
    -ms-text-size-adjust: 100%; /* Prevent zooming on orientation change */
    -webkit-text-size-adjust: 100%; /* Prevent zooming on orientation change */
}

body {
    color: #555;
    font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    font-weight: normal;
    line-height: 1.5;
    margin: 1em;
}

a {
    color: #48b;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

a:active {
    color: #269;
}

h1 {
    color: #000;
    font-size: 3em;
    font-weight: inherit;
    margin-top: 2em;
    margin-bottom: 0;
}

h2 {
    color: #000;
    font-size: 2em;
    font-weight: inherit;
    margin-top: 0;
    margin-bottom: .5em;
}

h3 {
    color: #000;
    margin-top: 0;
    margin-bottom: .214em;
}

h4 {
    color: #000;
    margin-top: 0;
    margin-bottom: .25em;
}

p, dl, ol, ul {
    margin-top: 0;
}

address {
    font-style: normal;
}

figure {
    margin-left: 0;
    margin-right: 0;
}

img {
    max-width: 100%;
    width: 100%;
}

/* Header styles */
#masthead {
    margin-left: auto;
    margin-right: auto;
    max-width: 72em;
    overflow: auto;
}

#masthead p {
    color: #aaa;
    font-size: 2em;
    margin-bottom: 2em;
}

#masthead p:last-child {
    font-size: 1em;
    text-align: right;
}

#masthead dl {
    margin-bottom: 4em;
    max-width: 32em; 
}

#masthead dt {
    display: inline;
}

#masthead dd {
    color: #aaa;
    display: inline;
    margin-left: 0;
}

@media screen and (min-width: 56em) {
    h1 {
        font-size: 4em;
    }

    #masthead p {
        font-size: 2.5em; 
    }
}

@media screen and (min-width: 76em) {
    h1 {
        font-size: 6em;
    }

    #masthead p {
        font-size: 4em; 
    }
}

/* Info section styles */
#info {
    margin-left: auto;
    margin-right: auto;
    margin-top: 4em;
    max-width: 32em;
    overflow: auto;
}

#info h3 {
    font-size: 1em;
}

#info dt {
    clear: left;
    float: left;
    width: 3em;
}

#info dd {
    color: #aaa;
    overflow: auto;
}

@media screen and (min-width: 56em) {
    #info {
        max-width: 52em;
    }

    #info > div {
        overflow: auto;
    }

    #info > div > div {
        float: left;
        margin-right: 4em;
        width: 32em;
    }

    #info > div > footer {
        float: left;
        width: 16em;
    }
}

@media screen and (min-width: 76em) {
    #info {
        max-width: 72em;
    }

    #info > header {
        float: left;
        margin-right: 4em;
        width: 16em;
    }

    #info > div {
        float: left;
    }
}

/* Hotels section styles */
#hotels {
    margin-left: auto;
    margin-right: auto;
    margin-top: 4em;
    max-width: 32em;
    overflow: auto;
}

#hotels h3 + p {
    color: #aaa;
}

@media screen and (min-width: 56em) {
    #hotels {
        max-width: 52em;
    }

    #hotels > div > section {
        overflow: auto;
    }

    #hotels > div > section > div {
        float: left;
        margin-right: 4em;
        width: 32em;
    }

    #hotels > div > section > footer {
        float: left;
        width: 16em;
    }
}

@media screen and (min-width: 76em) {
    #hotels {
        max-width: 72em;
    }

    #hotels > header {
        float: left;
        margin-right: 4em;
        width: 16em;
    }

    #hotels > div {
        float: left;
    }
}

/* Checklist section styles */
#checklist {
    margin-left: auto;
    margin-right: auto;
    margin-top: 4em;
    max-width: 32em;
    overflow: auto;
}

@media screen and (min-width: 56em) {
    #checklist {
        max-width: 52em;
    }

    #checklist > div {
        width: 32em;
    }
}

@media screen and (min-width: 76em) {
    #checklist {
        max-width: 72em;
    }

    #checklist > header {
        float: left;
        margin-right: 4em;
        width: 16em;
    }

    #checklist > div {
        float: left;
    }
}

/* Trips section styles */
#trips {
    margin-left: auto;
    margin-right: auto;
    margin-top: 4em;
    max-width: 32em;
    overflow: auto;
}

#trips section {
    margin-top: 3em;
}

#trips h3 + p {
    color: #aaa;
}

#trips dt {
    display: inline;
}

#trips dd {
    color: #aaa;
    display: inline;
    margin-left: 0;
}

@media screen and (min-width: 56em) {
    #trips {
        max-width: 52em;
    }

    #trips > div > div {
        width: 32em;
    }

    #trips > div > section {
        overflow: auto;
    }

    #trips > div > section > div {
        float: left;
        margin-right: 4em;
        width: 32em;
    }

    #trips > div > section > footer {
        float: left;
        width: 16em;
    }
}

@media screen and (min-width: 76em) {
    #trips {
        max-width: 72em;
    }

    #trips > header {
        float: left;
        margin-right: 4em;
        width: 16em;
    }

    #trips > div {
        float: left;
    }
}

/* Separator styles */
#separator {
    border: none;
    border-bottom: 1px solid #eee;
    margin-left: auto;
    margin-right: auto;
    margin-top: 4em;
    max-width: 72em;
}
/* Footer styles */
#footer {
    margin-left: auto;
    margin-right: auto;
    max-width: 72em;
}

#footer p:first-of-type {
    float: left;
}

#footer p:last-of-type {
    float: right;
}

#footer #about {
    clear: left;
}

#footer #about:not(:target) {
    display: none;
}
