
body {
    min-height: 100vh;
    display: flex;
    flex-flow: column nowrap;
    margin: 0;
    font-family: 'Roboto';
    overflow-x: hidden;
    background: #171717;
    margin-top: 5vh;
}

            /*---Sidebar---*/
/*-------------------------------------*/

.midsection {
    display: flex;
    width: 100vw;
}

.sidebar-wrapper {
    display: flex;
}

.toggle-sidebar {
    background: #25272C;
    max-width: 60px;
    max-height: 60px;
    border-radius: 12px;
    position: relative;
    z-index: 2;
    cursor: pointer;
    border: 2px solid #ffffff60;
    min-height: 60px;
    left: 24px;
}

.sidebar {
    width: 13vw;
    display: flex;
    flex-flow: column nowrap;
    background: #25272C;
    height: 100%;
    min-height: 98vh;
    min-width: 270px;
    border-right: 2px solid #ffffff60;
}

.toggle-sidebar img {
    transition: transform 0.5s ease;
}

.sidebar-hidden {
    transform: translateX(-100%);
}

.sidebar-header {
    display: flex;
    flex-flow: column;
    align-items: center;
    padding-left: 15px;
    padding-right: 15px;
    color: white;
    text-align: center;
    border-bottom: 1px solid #33363d;
}

.info-text {
    margin-bottom: 15px;
    margin-top: 0px;
    font-weight: 200;
}

.sidebar-dropdown {
    background: #25272C;
    color: white;
    cursor: pointer;
    padding: 18px;
    width: 100%;
    border: none;
    text-align: left;
    font-size: 1.3rem;
    font-weight: bold;
    border-bottom: 1px solid #33363d;
}
  
.content {
    display: flex;
    flex-flow: column nowrap;
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
    background-color: #f1f1f1;
    font-weight: bold;
}
  
.active, .sidebar-dropdown:hover {
    background-color: #292b30;
}

.sidebar p {
    margin: 0;
}
  
.sidebar-dropdown:after {
    content: '\002B';
    color: white;
    font-weight: bold;
    float: right;
    margin-left: 5px;
}

location-name:hover {
    cursor: pointer;
}

.location {
    display: flex;
    justify-content: space-between;
    padding-left: 43px;
    padding-bottom: 10px;
    padding-top: 10px;
    padding-right: 18px;
}

.location:hover {
    background: #161616;
    opacity: 1;
}

.sidebar .city .milepost {
    margin-left: 5px;
}

.currentLocation {
    background: #161616;
    color: #15b476;
}

/*---Main Content---*/

#display {
    display: flex;
    flex: 1 1 0;
    text-align: center;
    color: white;
    transition: 0.2s ease;
}

.map-side {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: center;
    width: 30vw;
    padding-left: 4.5vw;
    padding-right: 2.25vw;
}

.map-top {
    display: flex;
    flex-direction: column;
    justify-content:  center;
    height: 4.5vw;
    min-height: 70px;
}

.map-bottom {
    display: flex;
    flex-flow: column nowrap;
    gap: 2vh;
    font-size: 1.2rem;
    align-items: center;
    width: 100%;
}

.location-information {
    display: flex;
    gap: 20px;
    flex-direction: column;
    align-items: center;
    margin-bottom: 3vh;
}

.interactive-map {
    min-height:150px;
    height: 65vh;
    width: 100%;
    border: 2px solid #ffffff60;
}

.coordinates {
    display: flex;
    width: 95%;
    gap: 3vw;
    align-items: center;
    justify-content: center;
  }
  

.location-information a:hover {
    cursor: pointer;
}

#right-spacing {
    text-align: left;
}

#left-spacing {
    text-align: right;
}

.coordinates .button {
    background: #25272C;
    padding: 16px;
    border-radius: 12px;
    display: inline-flex;
    font-size: 22px;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    border: 2px solid #15b476;
}

.coordinates .button:hover {
    opacity: 0.8;
    background-color: #15b476;
}
.flex-grow {
    flex: 1;
}

.fixed-width {
    flex: 0;
    margin: auto;
}

.vertical-center {
    -WEBKIT-TRANSFORM-ORIGIN-Y: 12.6px;
    display: flex;
    align-items: center;
}

.vertical-center img {
    max-height: 22px;
    width: auto;
}

.info {
    width: 85%;
}

.submitted-by {
    max-height: 3vh;
    display: flex;
    border-top: solid 4px;
    border-top-color: #15b476;
    padding-top: 2px;
}

.submitted-by p, .submitted-by a{
    display: flex;
    align-items: center;
    gap: 0.5rem;
}


.submitted-by img {
    border-radius: 50%;
    height: 2rem
}

/*-------------------------------------*/

            /*---Images---*/
/*-------------------------------------*/

.img-header {
    height: 4.5vw;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    min-height: 70px;
}

.img-side {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding-left: 2.25vw;
    padding-right: 4.5vw;
}

.images {
   display: flex;
   flex-direction: column;
   gap: 2vw;
}


#north-img, #south-img, #train-img {
    object-fit: cover;
    width: 100%;
    height: auto;
    min-height: 11vh;
    border: 3px solid #ffffff60;
    max-height: 20vh;
    border-radius: 12px;
}

#image-pos {
    display: none;
}

.button-side {
    display: flex;
    flex-flow: column nowrap;
    flex-grow: 1;
}

.spacer {
    height: 33.33%;
}

.modal {
    display: none;
    position: fixed;
    z-index: 10;
    padding-top: 10vh;
    left: 0;
    top: 0;
    width: 100vw;
    height: 95vh;
    overflow: auto;
    background-color: rgba(0,0,0,0.9);
}

.modal-image {
    display: flex;
    justify-content: center;
}

.modal-content {
    max-width: 80vw;
    max-height: 80vh;
    animation-name: zoom;
    animation-duration: 0.3s;
}

#modal-left, #modal-right {
    all: unset;
    cursor: pointer;
    flex-grow: 1;
    background: black;
    opacity: 0.8;
    display: flex;
    justify-content: center;
    align-items: center;
    animation-name: fadeInBtns;
    animation-duration: 0.6s;
}

.modal button img {
    max-width: 5vh;
    height:auto;
    opacity: 1;
}

@keyframes fadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
 }
@keyframes fadeInBtns {
    0% { opacity: 0; }
    100% { opacity: 0.5; }
 }
  
@keyframes zoom {
    from {transform:scale(0)}
    to {transform:scale(1)}
 }
 
#caption {
    margin: auto;
    width: 80%;
    text-align: center;
    color: #ccc;
    padding: 30px 0;
    animation: fadeIn 1s;
}

#in-modal-image {
    border: 3px solid #ffffff60;
    border-radius: 12px;
}

/*-------------------------------------*/




            /*---Misc---*/
/*-------------------------------------*/

a{
    text-decoration:none;  
    color: white;
  }

a:hover {
    opacity: .7;
}

.coordinates a:hover {
    opacity: 1;
}

#pointer:hover {
    cursor: pointer;
}

#nomargin {
    margin: 0px;
}

.green-color {
    color: #15b476;
}

.images img:hover {
    opacity: 0.75;
}

.bigger-font{
    font-size: 1.5rem;
}

#invisible {
    display: none;
}

#rotate-180 {
     transform: rotate(180deg)
}

.tooltip {
    position: relative;
    display: inline-block;
}
  
.tooltip .tooltiptext {
    visibility: hidden;
    width: 140px;
    background-color: #555;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 5px;
    position: absolute;
    z-index: 1;
    bottom: 110%;
    left: 50%;
    margin-left: -75px;
    opacity: 0;
    transition: opacity 0.3s;
}
  
.tooltip .tooltiptext::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: #555 transparent transparent transparent;
}
  
.tooltip:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
}

#copy-button {
    all: unset;
}