@charset "UTF-8";

*, *:before, *:after {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

body {
    margin:0;
    padding: 0;
    font-family: Arial;
}

.flex-container {
    width: 100vw;
    display: flex;
    position: fixed;
    flex-wrap: nowrap;
    height: 3rem;
    max-height: 3rem;
    z-index: 8;
    top: 0;
    left: 0;
    right: 0;
    transition: top 0.3s;
    background: rgb(170,183,207);
}

.flex-child {
    flex: content;
}

    .flex-child:first-child {
        min-width: 320px;
        white-space: nowrap;
        overflow: visible;        
    }

        .flex-child:first-child div {
            float: left;
            text-align: center;
        }

        .flex-child:first-child span {
            float: left;
            display: block;
            font-size: 2rem;
            line-height: 3rem;
        }

        .flex-child:first-child img {
            float: left;
            padding-left: .75rem;
            padding-right: .25rem;
            width: 3.75rem;
            height: 3rem;
        }

    .flex-child:nth-child(2) {
        height: 3rem;
        padding-right: 3rem;
        line-height: 3rem;
        text-align: right;
    }

        .flex-child:nth-child(2) span {
            line-height: 3.2rem;
            padding: 0 .5rem 0 .5rem;
            font-size: 1.2rem;
        }

    .flex-child:last-child {
        height: 2.75rem;
        width: 2.75rem;
        line-height: 2.75rem;
        margin: .25rem 1.5rem .25rem .5rem;
        font-size: 1.25rem;
        text-align: right;
        display: none;
    }

        .flex-child:last-child img {
            width: .25rem;
            height: 1.125rem;
            margin-right: .5rem;
            justify-content: center;
        }

sup {
    font-size: .75rem;
    line-height: 2.25rem;
}

.sharp {
    cursor: pointer;
    color: #000;
}

    .sharp:hover {
        text-decoration: underline;
    }

.dull {
    text-decoration: none;
    cursor: default;
    color: #888;
}

.container {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-content: center;
    align-self: center;
    margin-top: 3.75rem;
    padding: 0;
}

.c1 {
    flex: 2 1 auto;
}

    .c1 img {
        width: 100%;
        height: auto;
    }

.c2 {
    flex: 2 1 auto;
}

    .c2 img {
        width: 100%;
        height: auto;
    }

    .c2 div {
        position: absolute;
        top: 25%;
        left: 5%;
        transform: translate(0, -25%);
        width: auto;
        height: auto;
        background-color: transparent;
        white-space: nowrap;
        text-align: center;
    }

        .c2 div h2 {
            margin-top: 1.5rem;
            font-size: 1.5vw;
        }

    .c2 h1 {
        white-space: nowrap;
        filter: drop-shadow(0 5px 5px #ccc);
        color: #222;
        font-size: 2.5vw;
        gap: 0;
    }

    .c2 ul {
        font-size: 2.2vw;
        text-align: left;
    }

    .c2 li {
        margin-top: .8vw;
        cursor: pointer;
    }

        .c2 li::marker {
            color: red;
        }

        .c2 li a {
            color: #18272F;
            position: relative;
            text-decoration: none;
        }

            .c2 li a::before {
                content: '';
                position: absolute;
                width: 100%;
                height: .1vh;
                background-color: #18272F;
                bottom: 0;
                left: 0;
                transform-origin: right;
                transform: scaleX(0);
                transition: transform .1s ease-in-out;
            }

            .c2 li a:hover::before {
                transform-origin: left;
                transform: scaleX(1);
            }

    .c2 button {
        margin-top: .5rem;
        width: 20rem;
        height: 5rem;
        cursor: pointer;
        font-size: 1.5rem;
        border-radius: 6px;
        background-image: linear-gradient( rgb(48, 48, 48) 13%, rgb(30, 30, 30) 40%, #0c0d11 86% );
        color: rgba(255, 255, 255, 1);
        text-shadow: 0 -2px 0 black;
    }

.c3 {
    visibility: hidden;
}

    .c3 div {
        position: absolute;
        top: 75%;
        left: 50%;
        transform: translate(-50%, -50%);
        background-color: transparent;
        white-space: nowrap;
        text-align: center;
    }

        .c3 div h2 {
            margin-top: 1.5rem;
            font-size: 3vw;
        }

    .c3 h1 {
        white-space: nowrap;
        filter: drop-shadow(0 5px 5px #ccc);
        color: #222;
        font-size: 6vw;
        gap: 0;
    }

    .c3 ul {
        text-align: left;
    }

    .c3 li {
        margin-top: 1.6vw;
        cursor: pointer;
        font-size: 5vw;
    }

        .c3 li::marker {
            color: red;
        }

        .c3 li a {
            color: #18272F;
            position: relative;
            text-decoration: none;
        }

            .c3 li a::before {
                content: '';
                position: absolute;
                width: 100%;
                height: .1vh;
                background-color: #18272F;
                bottom: 0;
                left: 0;
                transform-origin: right;
                transform: scaleX(0);
                transition: transform .1s ease-in-out;
            }

            .c3 li a:hover::before {
                transform-origin: left;
                transform: scaleX(1);
            }

    .c3 button {
        width: 20rem;
        height: 5rem;
        cursor: pointer;
        font-size: 1.5rem;
        border-radius: 6px;
        background-image: linear-gradient( rgb(48, 48, 48) 13%, rgb(30, 30, 30) 40%, #0c0d11 86% );
        color: rgba(255, 255, 255, 1);
        text-shadow: 0 -2px 0 black;
    }

#a1 {
    width: 100%;
    height: auto;
    margin-top: .5rem;
    border-top: solid 1px #aaa;
    background-color: #fafafa;
}

#a2, #a3 {
    width: 100%;
    height: auto;
    margin-top: .5rem;
    border-top: solid 1px #aaa;
    background-color: #fafafa;
}

h2 {
    /*font-size: 1.8rem;
    line-height: 1.5;*/
    font-size: 1.5rem;
    margin: 1.5rem 0 1rem 4vw;
    padding-left: 1rem;
}

p {
    font-size: 1.125rem;
    line-height: 1.75rem;
    margin: 0 4vw 0 2vw;
    padding: 1rem;
    color: #444;
}

button {
    width: 5rem;
    height: 1.875rem;
    border: none;
    border-radius: 1rem;
    background-color: #315ab1;
    color: #fff;
    cursor: pointer;
    margin: 1.5rem 0 1.5rem 4vw;
    font-size: 1rem;
}

    button:hover {
        transform: scale(1.02);
    }

#demos {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: fixed;
    width: 50vw;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    background-color: #fff;
    border: solid 2px rgb(170,183,207);
    border-radius: .25rem;
    min-width: 20rem;
    display: none;
}

    #demos div {
        text-align: center;
        padding: .5rem 1.5rem .5rem 1.5rem;
    }

    #demos img {
        cursor: pointer;
    }

    #demos div:nth-child(2) {
        margin-top: .5rem;
        white-space: nowrap;
    }

        #demos div:nth-child(2) img {
            vertical-align: middle;
            cursor: default;
            padding-right: .5rem;
        }

        #demos div:nth-child(2) span {
            vertical-align: middle;
            font-weight: bold;
            font-size: 2.625rem;
            white-space: nowrap;
            padding-right: 1rem;
        }

#closer {
    position: absolute;
    padding: 0;
    margin-right: -1rem;
    top: 0;
    right: 0;
    background-color: transparent;
    color: #000;
    line-height: 1.25rem;
    font-size: 1.25rem;
    font-weight: bold;
    text-align: center;
    z-index: 100;
    cursor: pointer;
}

.upperdsg {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 10%;
    padding-right: 10%;
    padding-top: .625rem;
    padding-bottom: .625rem;
    width: 100%;
    margin: 5rem auto 2rem auto;
    background-color: #f8f8f8;
}

    .upperdsg div:last-child {
        width: 100%;
    }

        .upperdsg div:last-child p {
            color: #222;
            font-size: 1.125rem;
            text-align: left;
        }

.archdsg {
    padding: .625rem .9375rem .625rem 6.125rem;
}

.zonedsg {
    padding: .625rem .625rem .625rem 5.8125rem;
}

.lowerdsg {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .625rem;
    width: 70%;
    margin: 0 auto 2rem auto;
}

    .lowerdsg img {
        padding-bottom: .75rem;
    }

    .lowerdsg div {
        width: 100%;
        margin-left: 2.5rem;
        padding-right: 2.5rem;
        border: solid 2px #aab7cf;
        border-radius: .5rem;
    }

        .lowerdsg div ul {
            font-size: 1.125rem;
            line-height: 1.4;
        }

.abt {
    width: 100%;
    margin: 7.5rem 0 6.25rem 0;
    padding: 0 2rem 0 2rem
}

    .abt h1 {
        text-align: center;
    }

    .abt div:nth-child(2) {
        float: left;
    }

    .abt figure {
        text-align: center;
    }

    .abt p {
        padding: 1.5rem 0 0 .5rem;
    }

    .abt div:last-child {
        text-align: center;
        line-height: 1.4;
    }

.vcan {
    text-align: center;
    padding-bottom: 1.5rem;
}

    .vcan img {
        height: auto;
        max-width: 70%;
        margin-top: 6.25rem;
    }

    .vcan div {
        display: flex;
        align-content: center;
        justify-content: center;
    }

        .vcan div ul {
            text-align: left;
            font-size: 1.5rem;
            line-height: 1.5;
            white-space: nowrap;
        }

.ledge {
    width: 100%;
    margin: 7.5rem 0 6.25rem 0;
    padding: 0 2rem 0 2rem;
}

    .ledge h1 {
        text-align: center;
    }

    .ledge p {
        padding-top: 1.5rem 0 .75rem 0;
        text-align: center;
    }

footer div:first-child {
    width: 100%;
    height: 6.25rem;
}

footer div:nth-child(2) {
    display: inline-flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    padding-bottom: 1.5rem;
    cursor: default;
}

    footer div:nth-child(2) span {
        cursor: pointer;
        margin: 1.5rem;
    }

footer div:nth-child(3) {
    position: relative;
    height: 6.25rem;
    clear: both;
    width: 100%;
    padding-bottom: 6vh;
    text-align: center;
}

    footer div:nth-child(3) span {
        font-size: 1rem;
        white-space: nowrap;
    }

.rbar {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: fixed;
    right: 0;
    top: 2.75rem;
    background: rgb(170,183,207);
    display: none;
    z-index: 10;
}

    .rbar div {
        margin: .5rem;
        padding: .5rem;
    }

        .rbar div span {
            font-size: 1.25rem;
            cursor: pointer;
        }

@media all and (max-width:50rem) {
    .container {
        flex-direction: column-reverse;
        background-image: url('GHRY/bckslice.png');
        background-repeat: repeat-y;
    }

    .c2 {
        visibility: hidden;
    }

    .c3 {
        visibility: visible;
    }

    .flex-container {
        height: 2.75rem;
        max-height: 2.75rem;
    }

    .flex-child:nth-child(2) {
        display: none;
    }

    .flex-child:first-child span {
        font-size: calc(1rem + 2vw);
        line-height: 2.75rem;
        margin-left: -.25rem;
    }

    .flex-child:first-child img {
        padding-left: .25rem;
        width: 2.875rem;
        height: 2.625rem;
    }

    .flex-child:last-child {
        display: block;
    }

    .upperdsg {
        flex-direction: column;
    }

    .lowerdsg {
        flex-direction: column;
    }

    .archdsg {
        padding: .625rem 3.531rem .625rem 3.5315rem;
    }

    .zonedsg {
        padding: .625rem 3.2187rem .625rem 3.2188rem;
    }

    .vcan div ul {
        font-size: 1rem;
    }
}

@media all and (min-width:50rem) {
    .rbar div {
        display: none;
    }
}

#main {
    display: flex;
    min-height: calc(100vh - 60vh);
}

    #main > article {
        flex: 100%;
        background-color: floralwhite;
    }

    #main > nav,
    #main > aside {
        flex: 0 0 18vw;
        background-color: floralwhite;
    }

    #main > nav {
        order: -1;
    }

header, article, nav, aside {
    padding: 1em;
}

header {
    background: #ffffff;
    text-align: center;
    font-size: large;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 12px;
}

header {
    margin-top: 5rem;
    border-bottom: solid 1px #000;
}

.vmenu {
    width: 100%;
    text-align: center;
    font-family: Arial;
    font-size: 1.5rem;
    margin-top: 6rem;
}

    .vmenu a {
        color: blue;
        cursor: pointer;
    }

.xmenu {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top:16px;
}
    .xmenu li {
        margin: 10px 0;
        font-size: 1.2rem;
        line-height:1.5;
    }

.cv {
    justify-content: center;
    align-items: center;
    position: fixed;
    width:80vw;
    left: 50%;
    top:50%;
    margin-top:16px;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    background-color: #fff;
    border: solid 2px rgb(170,183,207);
    border-radius: .25rem;    
}
#cv1 {
    visibility: hidden;
}
#cv3 {
    visibility: hidden;
}
@media (max-width: 600px) {
    .cv {
        width: 100%;
    }
}
    .cv video {
        width: 100%;
        height: 100%;
        aspect-ratio: 16 / 9;
    }

.vcloser {
    position: absolute;
    top: 6px;
    right: 4px;
    background-color: #fff;
    color: #000;
    border:1px solid #000;
    border-radius:2px;
    padding:0 2px 0 2px;
    line-height: 1.25rem;
    font-size: 1.25rem;
    font-weight: bold;
    text-align: center;
    z-index: 100;
    cursor: pointer;
}
