* {
    box-sizing: border-box;
}
html, body {
    overscroll-behavior-x: none;
}
body {
    height: 100%;
    width: 100%;
    padding: 0;
    font-family: sans-serif;
}

.hide {
    display: none;
}

p {
    margin: 0;
    padding: 0;
}

a,
a:visited {
    color: rgb(203, 51, 0);
}

button,
select {
    all: unset;
    cursor: pointer;
    text-align: center;
    font-size: 1rem;
}

button:hover,
select:hover {
    cursor: pointer;
}

select {
    text-align: left;
}

.bold {
    font-weight: bold;
}

#map {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}


.info-div {
    cursor: grab;
    overscroll-behavior: none;
    position: absolute;
    left: 0 !important;
    background-color: rgba(255, 255, 255, 0.8);
    z-index: 999999999;
    padding: 1.5em;
    padding-top: 0;
    box-sizing: border-box;
    padding-bottom: 0;
    backdrop-filter: blur(8px);
    overflow-y: hidden;
}

.info-div h3 {
    display: inline-block;
    position: sticky;
    top: 1.5em;
    left: 0;
    width: auto;
    font-size: 1.45em;
}

.info-div h3:hover {
    cursor: alias;
}

.info-div table {
    margin-top: .2em;
    border-collapse: collapse;
    width: 100%;
    float: left;
    box-sizing: border-box;
    margin-bottom: 1.5em;

}

.info-div th,
.info-div td {
    padding: .5em .3em;
}

.info-div th {
    background-color: #f2f2f2;
}

.info-div td {
    text-align: center;
    position: relative;
    background: #fff;
    white-space: nowrap;

}

.info-div tr:first-child td,
.info-div td:first-child {
    text-align: left;
    font-weight: bold;
    background: transparent;
}

tr:not(:first-child) td:hover::after,
tr:not(:first-child) th:hover::after {
    content: "";
    position: absolute;
    background-color: rgba(255, 255, 255, 0.3);
    left: 0;
    top: -5000px;
    height: 10000px;
    width: 100%;
    z-index: 9999;
}

.direction,
.wave-period {
    background-color: #fff;
}

.info-div tr:first-child td {
    position: sticky;
    left: 0;
    z-index: 1;
    border: none;
    padding-left: 0;
}

.info-div tr:first-child td:first-child {
    position: relative;
}

.info-div td:first-child {
    border: none;
    padding-left: 0;
    padding-right: 1em;
}

.info-div {
    width: 100%;
    overflow-x: auto;
}

iframe {
    position: relative;
}
.desc-buttons {
    display: inline-block;
    position: sticky;
    top: 1rem;
    left: calc(100% - 7rem);
    width: 7rem;
    z-index: 9999999;
    text-align: right;
}
.desc-button {
    border: 1px solid black;
    text-align: center;
    background: black;
    font-weight: bold;
    line-height: 1.5rem;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    color: #fff;
    margin-left: 0.25rem;
}
.event-button {
    font-weight: normal;
        background:black;
            border-color: black;
}
#desc-close {
    position: fixed;
    top: 1rem;
    right: 1rem;
    width: 1.75rem;
    height: 1.75rem;
    line-height: 1.75rem;
    font-size: 1rem;
    border: 1px solid #666;
    background: #fff;
    color: #222;
    border-radius: 50%;
    z-index: 9999999;
}

.desc-div {
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
    max-width: 500px;
    height: 100vh;
    background-color: rgba(255, 255, 255, 0.9);
    z-index: 9999999999;
    backdrop-filter: blur(8px);
    overflow-y: hidden;
    padding: 1.5rem;
    padding-bottom: 1.5rem;
    overflow: hidden;
    box-sizing: border-box;
}

.desc-content {
    line-height: 1.25em;
    height: 100%;
    overflow-y: auto;
}

.desc-content p {
    margin-bottom: 1rem;
}

.desc-content h1 {
    margin-top: 2rem;
    font-size: 1.5rem;
}

.desc-content h2 {
    font-size: 1.25rem;
    margin-top: 1.5em;
}

.desc-content .person {
    margin-top: 2rem;
}

.desc-content a,
.desc-content a:visited {}

.desc-content img {
    width: 100%;
    height: auto;
    margin-bottom: 1rem;
}
.desc-content ul {
    margin-left: 0;
    padding-left: 0;
}
.desc-content .photo-title {
    width: auto;
    float: right;
    text-align: right;
    margin-top: -1em;
    background-image: url("data:image/svg+xml,%3Csvg fill='%23000000' version='1.1' id='Capa_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='800px' height='800px' viewBox='0 0 344.928 344.928' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cpath d='M308.646,68.581h-58.343l-5.902-28.058c-1.411-6.671-7.296-11.448-14.105-11.448H114.623 c-6.812,0-12.697,4.777-14.105,11.448l-5.903,28.058H36.272C15.925,68.581,0,81.542,0,98.109v188.218 c0,16.555,15.931,29.525,36.272,29.525h272.375c20.351,0,36.281-12.959,36.281-29.525V98.109 C344.928,81.542,328.991,68.581,308.646,68.581z M172.458,260.885c-38.443,0-69.71-31.261-69.71-69.704 c0-38.434,31.267-69.7,69.71-69.7c38.431,0,69.691,31.267,69.691,69.7C242.149,229.624,210.895,260.885,172.458,260.885z'/%3E%3Cpath d='M172.458,150.318c-22.542,0-40.872,18.335-40.872,40.862c0,22.53,18.336,40.869,40.872,40.869 c22.53,0,40.856-18.339,40.856-40.869C213.314,168.653,194.988,150.318,172.458,150.318z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat no-repeat;
    background-position: left 0.15rem;
    background-size: 14px 14px;
    padding-left: 1.75em;
    font-size: 0.75rem;
}

.sticky {
    display: inline-block;
    width: auto;
    background-color: #fff;
    padding: .25em .5em;
}

.arrow {
    font-weight: bold;
    font-size: 1.3em;
    line-height: 1em;
}

/* menu */
.map-button {
    margin: 10px;
    font-weight: bold;
    background: white;
    height: 40px;
    line-height: 40px;
    border-radius: 2px;
    font-weight: bold;
    color: #666;
    display: block;
    transition: all .3s ease-in-out;
}

.map-button:hover {
    color: #000;
}

#logo {
    box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;
    outline: 0;
    cursor: pointer;
}

.menu-logo {}

.menu-logo svg {
    max-width: 360px;
    width: 100%;
    height: auto;
}

#menu {
    width: auto;
    position: fixed;
    top: 3.25rem;
    left: 0;
    background: white;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;
    transition: all .4s ease-in-out;
    padding: 1.5rem;
    padding-top: 1.75rem;
    border-radius: 2px;
    margin: 10px;
    transform: translateX(-110%);
    max-width: 100%;
    overflow-y: auto !important;
    max-height: 90vh;
}

#menu.open {
    transform: translateX(0);
}

#menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

#menu li {
    margin-bottom: .25rem;
}

#menu li:last-child {
    margin-bottom: 0;
}

#menu ul a,
#menu ul a:visited {
    text-decoration: none;
    display: block;
    padding: 0.25rem 0;
    color: blue;
    text-decoration: none;
}

#menu a:hover {
    text-decoration: underline;
}


.small {
    font-size: .85em;
    line-height: 1.75em;
}

#menu ul.legend {
    margin-top: .75rem;
    margin-left: .75rem;
}

#menu .small a {
    color: black;
    text-decoration: none;
}

#menu .small a:hover {
    text-decoration: underline;
}

.donate-button {
height: 44.39px;
    display: block;
    border-radius: 2px;
    padding: 1em;
    border: 2px solid green;;
    text-transform: uppercase;
    font-weight: bold;
    font-size: .8em;
    text-align: center;
    cursor: pointer;
    color: green;
    background: white;
    width: 100%;
    box-sizing: border-box;
    transition: all .3s ease-in-out;
}

.donate-button:hover {
    color: white;
    background-color: green;
}

.settings {
    margin-bottom: 1rem;
}
#what-to-show {
    box-sizing: border-box;
    width: 100%;
    margin-top: 1.25rem;
    margin-bottom: 0;
}
.update-time {
    margin-top: 1rem;
}

.update-time svg {
    margin-top: -.2rem;
    width: 1rem;
    height: 1rem;
    vertical-align: middle;
}

select {
    padding: .5em;
    padding-right: 3em;
    width: auto;
    border: none;
    background-image:
        linear-gradient(45deg, transparent 50%, gray 50%),
        linear-gradient(135deg, gray 50%, transparent 50%),
        linear-gradient(to right, #ccc, #ccc);
    background-position:
        calc(100% - 15px) calc(0.75em + 2px),
        calc(100% - 10px) calc(0.75em + 2px),
        calc(100% - 2.3em) 0.4em;
    background-size:
        5px 5px,
        5px 5px,
        1px 1.5em;
    background-repeat: no-repeat;
    border: 1px solid #999;
    font-size: .75rem;
    margin-bottom: 4px;
    border-radius: 2px;
}

select:focus {
    outline: 0;
}

#zoom,
#type {
    height: 40px;
}

#type {
    right: 90px !important;
}

#my-location {
    right: 140px !important;
}

#zoom button,
#type button {
    float: left;
    position: relative;
    margin: 0;
    width: 40px;
    height: 40px;
}

#zoom button:hover,
#type button:hover {
    cursor: pointer;
}

#zoom button::before,
#zoom button::after {
    position: absolute;
    content: '';
    background-color: #666;
    transition: background-color .3s ease-in-out;
}

#zoom button:hover::before,
#zoom button:hover::after {
    background-color: #000;
}

#zoom button::before {
    width: 18px;
    height: 2px;
    top: 19px;
    left: 11px;
}

#zoom-in::after {
    width: 2px;
    height: 18px;
    top: 11px;
    left: 19px;
}

#zoom-in {
    margin-left: 0
}

#zoom-out {
    margin-right: 0;
}

#zoom,
#my-location,
#logo,
#selectLayer,
#reset,
#menu,
#type {
    box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;
}

#reset,
#my-location {
    background-color: #fff !important;
    border: none;
    line-height: 1em;
    font-size: 1.5em;
    width: 40px;
    height: 40px;
    line-height: 40px;
}

#reset img {
    opacity: .6;
    transition: opacity .3s ease-in-out;
}

#reset:hover img {
    opacity: 1;
}

.tide {
    background-color: #fff;
}

.hightide::before {
    content: '';
    position: absolute;
    top: 0;
    left: 20%;
    width: 4px;
    height: 4px;
    background: black;
    margin: 0 .5em;
    z-index: 999;
    border-radius: 50%;
}

.lowtide::before {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 20%;
    width: 4px;
    height: 4px;
    background: black;
    margin: 0 .5em;
    z-index: 999;
    border-radius: 50%;
}

.map-button svg {
    margin: auto;
    margin-top: .45em;
    max-width: 60%;
    height: auto;
}

#caRecommendSpot {
    margin-top: 2em;
    margin-bottom: 0.5em;
}
#caAmbassador {
    margin-bottom: 1em;
}

.ca-button,
.btn-primary {
    display: block;
    border-radius: 2px;
    padding: 1em;
    border: 2px solid rgb(203, 51, 0);
    text-transform: uppercase;
    font-weight: bold;
    font-size: .8em;
    text-align: center;
    cursor: pointer;
    color: white;
    background: rgb(203, 51, 0);
    width: 100%;
    box-sizing: border-box;
    transition: all .3s ease-in-out;
}

.ca-button:hover,
.btn-primary:hover {
    color: rgb(203, 51, 0);
    background-color: #fff;
}

.btn-primary {
    background: rgb(203, 51, 0);
    color: #fff;
}

.btn-primary:hover {
    color: rgb(203, 51, 0);
    background-color: #fff;
}

.accordion {
    margin-top: 2rem;
}

.accordion-title {
    font-weight: bold;
}

.accordion-content {
    margin-bottom: 2rem;
}

/* typo3 content elements */
.frame-type-text {
    line-height: 1.5em;
}

.frame-type-text p {
    margin-bottom: 1em;
}

/* form */
#recommendSpotForm .arrow {
    border: solid #666;
    border-width: 0 2px 2px 0;
    display: inline-block;
    padding: 4px;
    margin-left: 4px;
    transform: rotate(135deg);
    -webkit-transform: rotate(135deg);
    transition: all .4s ease-in-out;
  }
  #recommendSpotForm.minimized .arrow {
        margin-left: -4px;
        transform: rotate(-45deg);
        -webkit-transform: rotate(-45deg);
    }


#recommendSpotForm {
    top: 3.9rem;
    left: .65rem;
    margin-right: .65rem;
    padding: 1em;
    background: #fff;
    max-width: 700px;
    position: absolute;
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;
    left: -720px;
    transition: all .3s ease-in-out;
    border-radius: 2px;
}

#recommendSpotForm.open {
    left: .65rem;
    display: block !important;
    z-index: 99999999999999;

}
#recommendSpotForm.minimized, #menu.minimized {
    left: -650px;
}
.minimize {
    position: sticky;
    border: 1px solid #bbb;
    display: block;
    width: 1.75rem;
    height: 1.75rem;
    line-height: 1rem;
  top: 0;
  right: 0;   
    background: #eee;
    box-sizing: border-box;
    transition: all .4s ease-in-out;
    float: right;
}
.minimized .minimize {
}



label {
    font-weight: bold;
    font-size: .9rem;
}

form>fieldset .form-group,
.col-3>.form-group {
    padding: 1em;
}

fieldset {
    margin-top: 1.5em;
    margin-bottom: 1.5em;
    background: #eee;
    border: 1px solid #bbb;
    padding: 0;
    padding-top: 2.5em;
}

legend {
    margin-top: -1.1em;
    margin-left: .7em;
    display: block;
    width: 100%;
    font-size: 1.25em;
    font-weight: bold;
    float: left;
}

.form-text {
    font-size: .8rem;
    line-height: 1.5em;
}

input,
textarea {
    font-size: 100%;
    width: 100%;
    padding: 0.5rem;
    margin-top: .25rem;
    margin-bottom: .25rem;
    border: 1px solid #bbb;
}

input[type=checkbox] {
    float: left;
    width: auto;
    margin-right: 1em;
    margin-bottom: 1em;
}

textarea {
    height: 9rem;
}

.row {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    flex-direction: row;
}

.row .col-3,
.row .col-2 {
    flex: 50%;
}

.donations {
    border: 2px solid #666;
    border-radius: 2px;
    margin-bottom: 2rem;
    box-sizing: border-box;
    overflow: hidden;
}

.donations.open {
    border: none;
}
.donations button.open-support {
    text-align: center;
    text-transform: uppercase;
    width: 100%;
    font-size: .8em;
    font-weight: bold;
    padding: 1em;
    box-sizing: border-box;
    color: #666;
    transition: color .4s ease-in-out, background .4s ease-in-out;
}

.donations.open button.open-support {
    text-align: left;
    padding-left: 0;
}
.donations>div {
    height: 1px;
    transition: all .4s ease-in-out;
}
.donations.open>div {
    height: 105px;
}
.donations p {
    font-size: .9em;
    line-height: 1.5em;
    width: 100%;
    max-width: 300px;
    margin-bottom: 1em;
    margin-left: .1em;
}
.donations form {
    display: flex;
    width: 100%;
}

#amount-select {
    text-indent: .2rem;
    height: 26px;
    font-size: .9rem;
    border: 2px solid #666;
    line-height: 26px;
    background-position:
        calc(100% - 15px) calc(1em + 2px),
        calc(100% - 10px) calc(1em + 2px),
        calc(100% - 2.3em) 0.6em;
}

.support-select {
    flex: 20%;
    padding-right: 6px;

}

.donate-button {
    flex: 75%;
}

.flatearth-message {
    position: absolute;
    left: 50%;
    top: 2rem;
    font-weight: bold;
    color: red;
    font-size: 1.5rem;
    animation: blinker .5s linear infinite;
    transform: translateX(-50%);
}
.marker-label{
  color:#333;
  margin-top:50px;
  padding:5px;
  border-radius:2px;
  position:relative;
  box-shadow:rgba(0,0,0,.3) 0 1px 4px -1px;
  background:#fff;
  font-weight:700;
}

@media only screen and (max-width:820px){
  .marker-label{
    padding:3px 5px;
    font-size:.95rem!important;
  }
}
@keyframes blinker {
    50% {
        opacity: 0;
    }
}

@media only screen and (max-width: 820px) {
    .info-div table {
        font-size: 0.85em;
    }
}

@media only screen and (max-width: 620px) {

    .row .col-3,
    .row .col-2 {
        flex: 100%;
    }
}