:root {
    --bg-main: #292929;
    --green-main: #26D07C;
    --white: #FFFFFF;
    --black: #000;
    --transparent-black: rgba(0, 0, 0, 0.4);
    --gutter: 1rem;
    --bar-width: 1.5rem;
    --bar-height: .15rem;
    --bar-margin: .16rem;
    --bar-borderradius: 0.1rem;
    --bar-arrow-angle-value: 45;
    --bar-transition: cubic-bezier(.25, .01, .75, 1);
    --bar-transition-time: .3s;
    --bar-offset: calc( var(--bar-height) + var(--bar-margin) * 2);
    --bar-arrow-angle: calc( var(--bar-arrow-angle-value) * 1deg);
    --bar-arrow-offset: calc( var(--bar-height) * 1.2 + var(--bar-margin) * 2);
    --bar-arrow-offsetcenter: calc( 50% * var(--bar-arrow-angle-value) / 90);
    --nav-table-line-color: rgba(255, 255, 255, 0.5);
    --btn-close-color: var(--green-main)!important;
}

html {
    height: 100%!important;
}

body {
    background-color: var(--bg-main);
    color: var(--white);
    min-height: 100vh!important;
}

main .container {
    min-height: 74vh!important;
}

.main-bar {
    border-bottom: 2px solid rgb(190, 190, 190);
}

.container-fluid:not(#gallery-main) {
    background-color: var(--bg-main);
}

.dropdown-item,
.nav-link {
    color: var(--white)!important;
    font-size: 1.2rem;
    padding-right: 1.5rem!important;
    padding-left: 1.5rem!important;
    letter-spacing: .1rem;
}

.dropdown-item:hover,
.nav-link:hover {
    color: var(--green-main)!important;
}

.dropdown-item:hover,
.navbar .dropdown-menu {
    background-color: rgba(41, 41, 41, 0.5);
}

.nav-link:not(.first-nav-row)::before {
    content: "";
    position: absolute;
    height: 0.25rem;
    width: 0%;
    background-color: var(--green-main);
    bottom: 0;
    left: 10%;
    transition: ease .5s;
    transform: translateY(0.2rem);
    z-index: 9999;
}

.nav-link:not(.first-nav-row):hover::before {
    content: "";
    position: absolute;
    height: 0.25rem;
    width: 80%;
    background-color: var(--green-main);
    bottom: 0;
    left: 10%;
}

.dropdown-menu {
    min-width: 5rem!important;
}

.burger__input {
    display: none;
}

.burger__label {
    display: none;
    align-items: center;
    position: relative;
    z-index: 11000;
    padding: calc(var(--gutter) * .5);
    cursor: pointer;
    background-color: var(--green-main);
    border-radius: .1rem;
    padding-left: .5rem;
    padding-right: .5rem;
    padding-top: .5rem;
}

.burger__label {
    display: flex;
}

.burger__lines {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    transition: transform var(--bar-transition-time) var(--bar-transition);
}

.burger__line {
    display: block;
    width: var(--bar-width);
    height: var(--bar-height);
    margin-top: var(--bar-margin);
    margin-bottom: var(--bar-margin);
    border-radius: var(--bar-borderradius);
    background-color: var(--black);
    transition: all var(--bar-transition-time) var(--bar-transition);
}

.burger__input:checked~.burger__label--cross .burger__line:nth-child(2) {
    opacity: 0;
}

.burger__input:checked~.burger__label--cross .burger__line:nth-child(1) {
    transform: translateY(var(--bar-offset)) rotate(var(--bar-arrow-angle));
}

.burger__input:checked~.burger__label--cross .burger__line:nth-child(3) {
    transform: translateY( calc( var(--bar-offset) * -1)) rotate(calc( var(--bar-arrow-angle) * -1));
}

#footer-title {
    font-size: 1.2rem;
    font-weight: bold;
}

footer {
    background-color: var(--transparent-black);
    margin-top: auto;
}

.footer-subtitle {
    font-weight: bold;
}

.noto-serif-tc {
    font-family: 'Noto Serif TC';
}

@media all and (min-width: 992px) {
    .normal-nav {
        display: initial;
    }
    .mobile-nav {
        display: none;
    }
    .mobile-footer {
        display: none!important;
    }
    .navbar-brand img {
        max-width: 300px;
    }
    .navbar .dropdown-menu-end {
        right: 0;
        left: auto;
    }
    .navbar .nav-item .dropdown-menu {
        display: block;
        opacity: 0;
        visibility: hidden;
        transition: .5s;
        margin-top: 0;
    }
    .navbar .nav-item:hover .nav-link {
        color: #fff;
    }
    .navbar .dropdown-menu.fade-down {
        top: 80%;
        transform: rotateX(-75deg);
        transform-origin: 0% 0%;
    }
    .navbar .dropdown-menu.fade-up {
        top: 180%;
    }
    .navbar .nav-item:hover .dropdown-menu {
        transition: .3s;
        opacity: 1;
        visibility: visible;
        top: 100%;
        transform: rotateX(0deg);
    }
}

@media all and (max-width: 991px) {
    .normal-nav,
    .normal-footer {
        display: none;
    }
    .mobile-nav,
    .mobile-footer {
        display: initial;
    }
    .mobile-footer .row div {
        text-align: center;
    }
    .custom-toggler.navbar-toggler {
        background-color: var(--green-main)!important;
    }
    .custom-toggler .navbar-toggler-icon {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0,0,0, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E")!important;
    }
    .custom-toggler .navbar-toggler-icon:hover {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0,0,0, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E")!important;
    }
    /* mobile nav table style */
    .table.nav-table {
        background-color: rgba(0, 0, 0, .5)!important;
    }
    .table.nav-table tr td {
        border-color: var(--nav-table-line-color);
    }
    .table.nav-table tr td {
        border-bottom-width: .1px!important;
    }
    .table.nav-table tr:last-child td {
        border-bottom-width: 0px!important;
    }
    .table.nav-table tr td:nth-child(odd) {
        border-right-width: .05px!important;
    }
    .table.nav-table tr td:nth-child(even) {
        border-left-width: .05px!important;
    }
    /* link in nav table subitem */
    .nav-table-subitem .nav-link {
        font-size: 1rem!important;
        padding: .1rem .5rem;
    }
}