* {
    font-family: sans-serif;
}

html {
    font-size: 14px;
}
body {
    color: black;
    background-color: white;
    background-image: linear-gradient(to right, #b4c7dc 3%, white 20%);
    padding: 0 10%;
}

h1, div.subheader, footer, body > h5 {
    text-align: left;
    margin-left: 2rem;
    margin-right: 2rem;
}
body > h1 {
    display: inline-block;
    vertical-align: middle;
}
body > h5 {
    display: inline-block;
    float: right;
    vertical-align: middle;
}
.subheader a {
    float: right;
    font-size: .75rem;
    margin-bottom: .25rem;
}

a, a:visited {
    color: navy;
    text-decoration: none;
}

.accordion a:hover {
    color: blue;
}

.accordion h2 {
    margin: 0;
    padding: 0;
}

.accordion h3 {
    display: inline-block;
    width: calc(35% - 4rem);
    margin: .5rem 2rem;
    padding: 0;
}

.accordion h4 {
    display: inline-block;
    width: calc(65% - 4rem);
    margin: .5rem 2rem;
    padding: 0;
}

.accordion p {
    display: inline-block;
    width: calc(65% - 4rem);
    margin: .5rem 2rem;
    padding: 0;
    right: 0;
}
.accordion .record {
    margin: .5rem 0;
}
.accordion .record p {
    margin: 0 2rem .25rem 2rem;
}
.accordion .record h4, .accordion .record h3 {
    margin: .5rem 2rem .25rem 2rem;
}

.accordion .record.record-profile p, .accordion .record.record-references p {
    width: calc(100% - 4rem);
}

.accordion .record.record-references p {
    display: list-item;
    list-style: none;
    padding-left: .6rem;
    position: relative;
}
.accordion .record.record-references p:before {
    content: '›';
    position: absolute;
    left: 0;
}

.accordion .record.emphasis p, .accordion .record.emphasis h4, .accordion .record.emphasis h3 {
    font-weight: normal;
    font-style: italic;
    font-size: 1rem;
}

.accordion div {
    margin-top: 0;
    margin-bottom: 0;
    padding: 0;
    vertical-align: top;
}

.accordion div > * {
    vertical-align: top;
}

section {
    width: 100%;
}

footer {
    width: 100%;
    margin-top: 1rem;
}

.accordion {
    margin: 0 0 2rem 0;
    padding: 0;
    border: 2px solid hsl(0deg 0% 52%);
    border-radius: 7px;
}

.accordion.contact .accordion-panel {
    background-image: url('/resources/portrait.png');
    background-size: 15%;
    background-position-x: calc(100% - 5%);
    background-position-y: 1rem;
    background-repeat: no-repeat;
    min-height: 12rem;
}
.accordion.contact.empty .accordion-panel {
    background-image: none;
}

.accordion:focus-within {
    border-color: hsl(216deg 94% 43%);
}

.accordion:focus-within h2 {
    background-color: hsl(0deg 0% 97%);
}

.accordion > * + * {
    border-top: 1px solid hsl(0deg 0% 52%);
}

.accordion-trigger {
    background: none;
    color: hsl(0deg 0% 13%);
    display: block;
    font-weight: normal;
    margin: 0;
    padding: 1rem 1.5rem;
    position: relative;
    text-align: left;
    width: 100%;
    outline: none;
}

.accordion-trigger:focus,
.accordion-trigger:hover {
    background: hsl(216deg 94% 94%);
}

.accordion-trigger:focus {
    outline: 4px solid transparent;
}

.accordion > *:first-child .accordion-trigger,
.accordion > *:first-child {
    border-radius: 5px 5px 0 0;
}

.accordion > *:last-child .accordion-trigger,
.accordion > *:last-child {
    border-radius: 0 0 5px 5px;
}

button {
    border-style: none;
}

.accordion button::-moz-focus-inner {
    border: 0;
}

.accordion-title {
    display: block;
    font-size: 1.5rem;
    font-weight: bold;
    pointer-events: none;
    border: transparent 2px solid;
    border-radius: 5px;
    padding: 0.25rem;
    outline: none;
}

.accordion-trigger:focus .accordion-title {
    border-color: hsl(216deg 94% 43%);
}

.accordion-icon {
    border: solid currentcolor;
    border-width: 0 2px 2px 0;
    height: 0.5rem;
    pointer-events: none;
    position: absolute;
    right: 2rem;
    top: 50%;
    transform: translateY(-60%) rotate(45deg);
    width: 0.5rem;
}

.accordion-trigger:focus .accordion-icon,
.accordion-trigger:hover .accordion-icon {
    border-color: hsl(216deg 94% 43%);
}

.accordion-trigger[aria-expanded="true"] .accordion-icon {
    transform: translateY(-50%) rotate(-135deg);
}

.accordion-panel {
    margin: 0;
    padding: 1rem 1.5rem;
}

/* For Edge bug https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/4806035/ */
.accordion-panel[hidden] {
    display: none;
}

@media screen and (width < 80rem) {
    html {
        font-size: 26px;
    }
    body {
        padding: 0 5%;
    }
    h1 {
        margin-left: 5%;
    }

    .accordion .record h4, .accordion .record h3 {
        width: calc(100% - 3rem);
        margin: .5rem 1.5rem;
    }

    .accordion .record p {
        width: calc(100% - 3rem);
        margin: 0 1.5rem 1rem 1.5rem;
    }

    .accordion .record h3.wide {
        display: none;
    }

    .accordion .record.record-career:not(:last-child) {
        border-bottom: dashed gray;
    }

    .accordion .record.record-career:not(:last-child).emphasis h4 {
        margin-bottom: 1rem;
    }


    body > h5 {
       display: none;
    }
}