/* Global Styles */

    /* All Devices */

    html {
        -webkit-text-size-adjust: 100%;
        text-rendering: optimizeLegibility;
    }
    
    h1 {
        margin: 0;
        font-family: bookmania, "Times New Roman", Times, serif;
        line-height: 1;
    }
    
    a, a:active, a:visited, a:hover {
        color: inherit;
        text-decoration: none;
    }

    p {
        margin: 1em 0;
        font-family: bookmania, "Times New Roman", Times, serif;
        line-height: 1.5;
    }

        p:last-child {
            margin-bottom: 0;
        }

        p a {
            transition: border-bottom-color 0.25s;
            border-bottom: 0.125em solid rgba(68,214,44,0.75);
        }

            p a:hover {
                border-bottom: 0.125em solid rgba(68,214,44,1);
            }

    .centred-sans-serif {
        margin: 1em 0 0 0;
        font-family: acumin-pro, Helvetica, Arial, sans-serif;
        text-align: center;
        line-height: 1.35;
    }

    input, textarea, button {
        transition: outline-color 0.25s ease-in;
        outline: 0.125em solid rgba(68,214,44,0);
        box-sizing: border-box;
        border: none;
        border-radius: 0;
        padding: 0.625em;
        font-family: acumin-pro, Helvetica, Arial, sans-serif;
        background-color: white;
    }

        input:focus, textarea:focus, button:focus {
            outline: 0.125em solid rgba(68,214,44,1);
        }

    button {
        transition: background-color 0.25s;
        font-weight: 600;
        cursor: pointer;
    }

        button:hover {
            background-color: #44D62C;
        }

        button:active {
            color: black;
        }

    .invisible {
        opacity: 0;
    }

    /* Desktop and Tablet */

    @media ( min-width: 768px ) {

        h1 {
            font-size: 2.25em;
        }

        p {
            font-size: 1.375em;
        }

        input, textarea, button {
            margin: 0;
            font-size: 1.0625em;
        }

    }

    /* Mobile */

    @media ( max-width: 767px ) {
        
        h1 {
            font-size: 1.75em;
        }

        p {
            font-size: 1.125em;
        }

        input, textarea, button {
            margin: 0;
            font-size: 1em;
        }

    }

/* Sections */

    /* All Devices */

    header {
        background-color: #F1E8DF;
        font-family: acumin-pro, Helvetica, Arial, sans-serif;
        color: #5F4B8B;
    }

        header nav {
            display: table;
            width: 100%;
        }

            header h1 {
                margin: 0;
                font-size: initial;
                line-height: 0;
            }

            #menu ul {
                margin: 0;
                padding: 0;
                font-weight: 600;
                letter-spacing: 0.05em;
                list-style: none;
            }

                #menu ul li {
                    display: inline-block;
                    text-transform: uppercase;
                    margin: 0 0.375em;
                }

                #menu ul li:first-child {
                    margin: 0 0.375em 0 0;
                }

                #menu ul li:last-child {
                    margin: 0 0 0 0.375em;
                }

    #splash {
        position: relative;
        overflow: hidden;
    }

        #splash video {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%,-50%);
            min-width: 100%;
            min-height: 100%;
            width: auto;
            height: auto;
            z-index: -1;
        }

        #overlay {
            height: 100%;
            background-color: rgba(95, 75, 139, 0.5);
            color: white;
        }

            #frame {
                display: table;
                margin: 0 auto;
                height: 100%;
            }

                #splash .content {
                    display: table-cell;
                    vertical-align: middle;
                    height: 100%;
                }

                    #splash .content h1 {
                        margin: 0 0 0.25em 0;
                        line-height: 1.1;
                    }

                    #splash .content h2 {
                        margin: 0.25em 0;
                        font-family: acumin-pro, Helvetica, Arial, sans-serif;
                        line-height: 1.35;
                        font-weight: 400;
                    }

                        #typed {
                            font-style: italic;
                        }

                    #more {
                        margin: 0.25em 0 0 0;
                        width: 100%;
                        font-weight: 700;
                        text-align: center;
                    }
    
    main {
        background-color: #5F4B8B;
        color: white;
    }

        main .content {
            margin: 0 auto;
        }

            a.linkedin {
                position: absolute;
                left: calc(50% - 1em);
                margin-top: 0.75em;
                width: 2em;
                height: 2em;
            }

                a.linkedin:hover + svg path {
                    fill: #44D62C;
                }
        
            svg.linkedin {
                display: block;
                margin: 0.75em auto 0 auto;
                width: 2em;
            }

                svg.linkedin path {
                    transition: all 0.25s;
                    fill: white;
                }

    #contact {
        background-color: #773376;
        color: white;
    }

        #contact .content {
            margin: 0 auto;
        }

            #contact textarea {
                display: block;
                width: calc(100% / 3 * 2);
                margin: 0.5em auto;
            }

            #contact button {
                display: block;
                margin: 1em auto 0 auto;
            }

    footer {
        background-color: #D2738F;
    }

        footer p {
            margin: 0;
            font-family: acumin-pro, Helvetica, Arial, sans-serif;
            font-size: 1em;
            text-align: center;
        }

            footer p:first-child {
                margin-bottom: 0.215em;
            }

            footer p:last-child {
                margin-top: 0.125em;
            }

    /* Desktop and Tablet */

    @media ( min-width: 768px ) {

        body {
            margin: 1.5em;
        }
        
            header, #splash, main, #contact, footer {
                margin: 1.5em 0;
            }

            header, #frame, main, #contact {
                padding: 2.25em 2em;
            }
    
                header nav div {
                    display: table-cell;
                    vertical-align: middle;
                }
    
                    header h1 img {
                        height: 4.5em;
                    }

                    #hamburger {
                        display: none;
                    }

                    #menu {
                        font-size: 1.25em;
                        text-align: right;
                    }
        
                        #menu ul li a {
                            transition: border-bottom-color 0.25s;
                            border-bottom: 0.125em solid rgba(68,214,44,0)
                        }

                            #menu ul li a:hover {
                                border-bottom: 0.125em solid rgba(68,214,44,1);
                            }

                        #menu div {
                            display: none;
                        }

            #splash {
                height: calc(100vh - 13.5em);
            }

                #frame {
                    max-width: 656px;
                }

                    #splash .content h1 {
                        font-size: 4em;
                    }

                    #splash .content h2 {
                        min-height: 4.05em;
                        font-size: 2em;
                    }

                    #more {
                        font-size: 3em;
                    }

            main .content, #contact .content {
                max-width: 656px;
            }

                #contact input {
                    width: calc(50% - 0.5em);
                }

                #contact input:nth-child(odd) {
                    margin-right: 0.5em;
                }

                #contact input:nth-child(even) {
                    margin-left: 0.5em;
                }

                #contact input:nth-child(1), input:nth-child(2) {
                    margin-bottom: 0.5em;
                }

                #contact input:nth-child(3), input:nth-child(4) {
                    margin-top: 0.5em;
                    margin-bottom: 0.5em;
                }

            footer {
                padding: 1.25em 2em;
            }

    }

    /* Mobile */

    @media ( max-width: 767px ) {

        body {
            margin: 1em;
        }
        
            header, #splash, main, #contact, footer {
                margin: 1em 0;
            }

            header, #frame, main, #contact {
                padding: 1.75em 1.5em;
            }

                #logomark, #hamburger {
                    display: table-cell;
                    vertical-align: middle;
                }

                    header h1 img {
                        height: 3em;
                    }

                #hamburger {
                    text-align: right;
                }

                    #hamburger svg {
                        display: inline-block;
                        height: 1.5em;
                        fill: #5F4B8B;
                        vertical-align: top;
                    }

                #menu {
                    position: absolute;
                    top: 0;
                    left: 0;
                    visibility: hidden;
                    display: table;
                    opacity: 0;
                    transition: visibility 0.25s, opacity 0.25s;
                    box-sizing: border-box;
                    margin: 1em;
                    padding: 1.75em 1.5em;
                    width: calc(100% - 2em);
                    height: 6.5em;
                    background-color: #F1E8DF;
                }

                #menu.visible {
                    visibility: visible;
                    opacity: 1;
                }

                    #menu ul {
                        display: table-cell;
                        top: 0;
                        left: 0;
                        vertical-align: middle;
                        font-size: 1.125em;
                    }

                    #menu #close {
                        display: table-cell;
                        text-align: right;
                        vertical-align: middle;
                    }

                        #menu #close svg {
                            height: 1.5em;
                            fill: #5F4B8B;
                            vertical-align: top;
                        }

            #splash {
                height: calc(100vh - 9.5em);
            }

                #frame {
                    max-width: 334px;
                }

                    #splash .content h1 {
                        font-size: 2.5em;
                    }

                    #splash .content h2 {
                        min-height: 5.4em;
                        font-size: 1.5em;
                    }

                    #more {
                        font-size: 2em;
                    }

                
                #contact input, #contact textarea {
                    display: block;
                    margin: 1em auto;
                    width: 100%;
                    max-width: 294px;
                    font-size: 1em;
                }

                #contact textarea {
                    height: 7em;
                }

                    #contact input:first-child {
                        margin: 0 auto 0.5em auo;
                    }

            footer {
                padding: 1.25em 1.5em;
            }       

    }
