
/* override defaults */
/* override defaults */
/* override defaults */
/* override defaults */

.fa-spin {
    transform-origin: 50% 46% !important;
}

:root,
html,
body {
    --icom-default-border-radius: clamp(.5rem, 5vw, 1rem);
    --icom-default-gap: calc(var(--icom-default-border-radius) * 0.8);
    --icom-button-default-border-radius: .8em;
    --icom-button-default-padding-x: 2em;
    --icom-button-default-padding-y: 1.5em;
    --icom-heading-default-weight: 400;
    --icom-header-default-height: 3.5rem;
    --icom-header-default-nav-box-shadow: 
        0 0 .5rem rgba(0,0,0, .2),
        0 0 1rem rgba(0,0,0, .1);


    --mud-palette-black: rgba(39, 44, 52, 1) !important;
    --mud-palette-white: rgba(255, 255, 255, 1) !important;
    --mud-palette-primary: #102442 !important;
    --mud-palette-primary: #333 !important;
    --mud-palette-primary-text: #ffffff !important;
    --mud-palette-primary-darken: #0b223c !important;
    --mud-palette-primary-lighten: #254f79 !important;
    --mud-palette-primary-hover: #c9d9f5 !important;
    /* --mud-palette-primary: #06244D !important;
    --mud-palette-primary-text: #ffffff !important;
    --mud-palette-primary-darken: #03142e !important;
    --mud-palette-primary-lighten: #0f3d7e !important;
    --mud-palette-primary-hover: #F1F2F8 !important; */
    --mud-palette-secondary: #d8b141 !important;
    --mud-palette-secondary-text: var(--mud-palette-primary) !important;
    --mud-palette-secondary-darken: #927621 !important;
    --mud-palette-secondary-lighten: #efcb5f !important;
    --mud-palette-secondary-hover: #ebe5d5 !important;
    /* --mud-palette-secondary: #C82234 !important;
    --mud-palette-secondary-text: #ffffff !important;
    --mud-palette-secondary-darken: #931120 !important;
    --mud-palette-secondary-lighten: #e73b4f !important;
    --mud-palette-secondary-hover: #f5dbde !important; */
    --mud-palette-tertiary: #4f697e !important;
    --mud-palette-tertiary-rgb: 69, 80, 89 !important;
    --mud-palette-tertiary-text: #ffffff !important;
    --mud-palette-tertiary-darken: #212d37 !important;
    --mud-palette-tertiary-lighten: #567c9a !important;
    --mud-palette-tertiary-hover: #D8E7F3 !important;
    --mud-palette-info: rgba(33, 150, 243, 1) !important;
    --mud-palette-info-text: rgba(255, 255, 255, 1) !important;
    --mud-palette-info-darken: rgb(12, 128, 223) !important;
    --mud-palette-info-lighten: rgb(71, 167, 245) !important;
    --mud-palette-info-hover: rgba(33, 150, 243, 0.058823529411764705) !important;
    --mud-palette-success: rgba(0, 200, 83, 1) !important;
    --mud-palette-success-text: rgba(255, 255, 255, 1) !important;
    --mud-palette-success-darken: rgb(0, 163, 68) !important;
    --mud-palette-success-lighten: rgb(0, 235, 98) !important;
    --mud-palette-success-hover: rgba(0, 200, 83, 0.058823529411764705) !important;
    --mud-palette-warning: rgba(255, 152, 0, 1) !important;
    --mud-palette-warning-text: rgba(255, 255, 255, 1) !important;
    --mud-palette-warning-darken: rgb(214, 129, 0) !important;
    --mud-palette-warning-lighten: rgb(255, 167, 36) !important;
    --mud-palette-warning-hover: rgba(255, 152, 0, 0.058823529411764705) !important;
    --mud-palette-error: rgba(244, 67, 54, 1) !important;
    --mud-palette-error-text: rgba(255, 255, 255, 1) !important;
    --mud-palette-error-darken: rgb(242, 28, 13) !important;
    --mud-palette-error-lighten: rgb(246, 96, 85) !important;
    --mud-palette-error-hover: rgba(244, 67, 54, 0.058823529411764705) !important;
    --mud-palette-dark: rgba(66, 66, 66, 1) !important;
    --mud-palette-dark-text: rgba(255, 255, 255, 1) !important;
    --mud-palette-dark-darken: rgb(46, 46, 46) !important;
    --mud-palette-dark-lighten: rgb(87, 87, 87) !important;
    --mud-palette-dark-hover: rgba(66, 66, 66, 0.058823529411764705) !important;

    --icom-light: #f8f9fa;
    --icom-dark: #171819;

    --icom-error-light: color-mix(in srgb, var(--icom-error) 10%, transparent);
    /* --icom-primary: #06244D;
    --icom-primary-dark: #03142e;
    --icom-primary-light: #F1F2F8;
    --icom-secondary: #C82234;
    --icom-secondary-dark:  #560a13;
    --icom-secondary-light: #f5dbde;
    --icom-tertiary: #D8E7F3;
    --icom-tertiary-dark:  #64788a;
    --icom-tertiary-light: #e7f2fb; */

    /* --icom-header-default-nav-color: var(--icom-primary);
    --icom-header-default-nav-bg-color: white; */

    --font-heading: "Funnel Sans", "Noto Sans", sans-serif;
    --font-body: "Funnel Sans", "Lexend Deca", sans-serif;
    /* --font-body: "Noto Sans", sans-serif;
    --font-body: "Lexend Deca", sans-serif; */

    --layercolor-v1: rgb(233 244 254);
    --layercolor-v2: #e5e0da;
    --layercolor-v2: #dce2e5;
    --layercolor-v2: #eff2f5;
    --layercolor-v3: rgb(197 227 253);
    --layercolor-v4: rgb(24 54 99);

    --linkcolor: #3A76CF !important;
    --linkcolor-hover: #609af0 !important;

    interpolate-size: allow-keywords;
}

::selection {
    background-color: var(--icom-secondary);
    color: var(--icom-primary);
}

@font-face {
    font-family: "Colatera Soft";
    font-style: normal;
    font-weight: 400;
    src: url("https://wienerwaldmenu.blob.core.windows.net/menucard/ColateraSoft.ttf") format("truetype");
}

/* h1, h2, h3, h4, h5, h6 */
body, html{
    font-family: var(--font-body);
    scroll-padding: 4rem;
}

html, body {
  height: 100%;
  overflow: hidden; /* prevents Safari from shrinking viewport */
}

* {
    scroll-padding: 8rem;
    word-wrap: break-word;
}

a {
    color: var(--linkcolor);

    &:hover {
        color: var(--linkcolor-hover) !important;
    }
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-style: normal;
}

[class*="mud-input"] {
    font-family: var(--mud-typography-default-family);
}

img {
    width: 100%;
    max-width: 100%;
    display: block;
}

p {
    font-size: 1rem;
    font-weight: 400;
    &.big-p {
        font-size: 1.2rem;
    }
    &.small-p {
        font-size: 1rem;
    }

    & a {
        /* text-decoration: underline; */
        &:hover {
            color: var(--icom-secondary)
        }
    }
}

ul { 
    list-style-type: disc; 
    /* list-style-position: inside;  */
 }
 ol { 
    list-style-type: decimal; 
    /* list-style-position: inside;  */
 }
 ul ul, ol ul { 
    list-style-type: circle; 
    /* list-style-position: inside;  */
    margin-left: .5em; 
 }
 ol ol, ul ol { 
    list-style-type: lower-latin; 
    /* list-style-position: inside;  */
    margin-left: .5em; 
 }


#body {
    hr {
        margin: 2em 0 !important;
        height: 0px !important;
        border: none !important;
        border-bottom: 3px dotted currentColor !important;
        background: transparent !important;
        opacity: .66 !important;
    
        &.wave {
            border: none !important;
            outline: none !important;
            width: 100%;
            margin: 4rem 0;
            height: 0px;
            position: relative;
            background-image: url("/img/wave3.svg");
            background-size: calc(3rem - .5rem);
            background-position: 50% 50%;
            background-repeat: repeat-x;
            height: 3rem !important;
            background-color: transparent !important;
            opacity: 1 !important;
            /* animation: moveBgX 5s linear infinite; */
        }
    }
}


.meta-chip {
    font-size: 1em;
    border: 2px solid currentColor;
    padding: .5em 1em;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5em;

    &.alt {
        background-color: var(--mud-palette-primary-hover);
        color: var(--mud-palette-primary);
        border: none;
    }
}

.book-section {
    /* background-color: var(--layercolor-v2); */
    /* border: 1px solid rgba(33, 150, 243, 1); */
    padding: 1rem 1rem;
    margin-bottom: 1rem;
    margin-bottom: 2rem;
    /* padding-left: 0rem; */

     & h2 {
        text-transform: uppercase;
        font-size: 1rem;
     }
}

.book-sub-section {
    /* background: rgba(33, 150, 243, .1); */
    /* background: rgba(138, 33, 243, 0.1); */
    /* border: 1px solid rgba(138, 33, 243, 1); */
    /* padding: 1rem; */
    /* background-color: var(--layercolor-v2); */
    &:not(:last-child) {
        margin-bottom: 4rem;
    }
}

.book-page {
    background: white;
    background: hsl(0 0% 95% / 1);
    
    border-radius: .5rem;
    /* border: 1px solid rgba(243, 33, 103, 1); */
    padding: 1.5rem;
    margin-bottom: 1rem;
    margin-top: 2rem;
    margin-bottom: 2rem;
    overflow: hidden;
    position: relative;

    & .page-location {
        cursor: pointer;
        color: var(--linkcolor);
        font-size: 1.1em;
        font-weight: 700;
    }

    & .edit-button {
        position: absolute;
        top: 0rem;
        right: 0rem;
    }
    
}

.page-index {
    min-width: 1em;
    padding: 0 .25em;
    height: 1em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: black;
    color: white;
    display: none;
}

#publication-disclaimer {
    padding: 2rem;
}

#bottom-menu {
    position: fixed;
    bottom: var(--vvh-bottom, 0px);
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
    padding: 0rem 0.5rem;
    height: 4rem;
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;

    & .inner {
        display: flex;
        align-items: center;
        justify-content: center;
        padding-bottom: .5rem;
        gap: 1rem;
        & > * {
            width: 3rem;
            height: 3rem;
            display: flex;
            align-items: center;
            flex-direction: column;
            justify-content: center;
            gap: .25em;
            font-size: .6rem;
            border-radius: .5rem;
            & i {
                font-size: 1.25rem;
            }
            &.active {
                background-color: rgba(255, 255, 255, 0.2);
            }
        }
    }
}

#publication-container {
    /* display: grid; */
    /* grid-template-columns: 0px auto; */
    position: relative;
    align-items: start;
    /* grid-gap: 3rem; */
    width: 100%;
    margin: 0 auto;
    max-width: 1024px;
    height: 100vh;
    
    @media(min-width: 1024px) {
        #publication-menu {
            transform: translateX(0) !important;
        }
        #publication {
            width: calc(100% - 300px) !important;
        }
    }

    &.open-sidebar {
        & #publication-menu {
            transform: translateX(0);
        }
        @media(min-width: 768px) {
            & #publication {
                width: calc(100% - 300px);
            }
        }
    }

    & > * {
        height: 100%;
    }
}

#publication-menu {
    /* background-color: var(--mud-palette-primary);
    background-color: var(--layercolor-v2); */
    height: 100%;
    transform: translateX(-100%);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    max-width: 300px;
    transition: .5s ease-in-out;
    z-index: 2;
    
    & > .inner {
        background-color: white;
        color: var(--mud-palette-primary-text);
        padding: 4rem 1rem;
        padding-bottom: 8rem;
        padding-right: 0;
        position: relative;
        z-index: 2;
        width: 100%;
        height: 100%;
        overflow-y: auto;
    }

    & #index-menu-underlay {
        position: fixed;
        z-index: 1;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        /* background-color: rgba(0,0,0, 0.5); */
        background-image: linear-gradient(to right, rgba(0,0,0, 0.4) 300px, rgba(0,0,0, 0.0));
        pointer-events: none;
        opacity: 0;
        transition: .25s ease-in-out;

        @media(min-width: 768px) {
            display: none !important;
        }

        &.open-sidebar {
            opacity: 1;
            pointer-events: auto;
        }
    }

    & .pm-publication {
        font-size: 1.25rem;
    }
    & .pm-section {
        padding:1rem;
        /* border-radius: .5rem; */
        display: flex;
        flex-direction: column;
        gap: .5rem;
        /* background-color: white; */
        color: black;
        margin-bottom: .5rem;
        & .pm-section-text {
            font-size: 1.2rem;
        }
        &:has(.active) {
        }
    }
    & .pm-sub-section {
        padding: .5rem .5rem;
        border-radius: .25rem;
        display: flex;
        flex-direction: column;
        gap: 0rem;
        & > .text {
            padding: 0 .75rem;
            font-size: .9rem;
        }
        &:has(.active) {
            /* background-color: var(--layercolor-v3); */
            /* background-color: white; */
        }
    }
    & .pm-page {
        & > .text {
            font-size: .9rem !important;
            padding: .2em .75rem;
            & a {
                color: inherit !important;
                width: 100%;
            }
            &:has(.active) {
                background-color: var(--layercolor-v2);
                background-color: var(--mud-palette-primary);
                /* background-color: white; */
                border-radius: .5rem;
                color: var(--mud-palette-primary-text) !important;
                font-weight: 700;
            }
        }
    }


    & #index-menu {
        /* height: 100%; */
    }
}

.menu-dropdown {

    &.closed:has(.active) {
        & > .menu-dropdown-title {
            background-color: var(--mud-palette-primary);
            color: var(--mud-palette-primary-text);
        } 
    }

    & > .menu-dropdown-title {
        font-size: 1.2rem;
        display: grid;
        grid-template-columns: 1fr auto;
        width: 100%;
        align-items: center;
        gap: .25rem;
        transition: .25s ease-in-out;
        padding: .25em;
        border-radius: .4em;

        &:hover {
            background-color: lightgray;
            cursor: pointer;
        }

        & > .menu-dropdown-title-text {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            min-width: 0; /* Important for grid children */
        }

        & > .menu-dropdown-toggler {
            transition: .25s ease-in-out;
            font-size: 1em;
            width: 1.5em;
            height: 1.5em;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: .25em;
            
            & > i {
                transition: .25s ease-in-out;
                transform: rotate(0deg);
            }
        }
    }

    & > .menu-dropdown-content {
        display: grid;
        grid-template-rows: 0fr;
        transition: .2s ease-in-out;
        margin-top: 0em;
        > .inner {
            overflow: hidden;
            .inner2 {
                
            }
        }
    }

    &.open,
    &:has(.active) {
        & > .menu-dropdown-content {
            grid-template-rows: 1fr;
            margin-top: .5em;
        }
        & > .menu-dropdown-title {
            & > .menu-dropdown-toggler {
                & > i {
                    transform: rotate(180deg);
                }
            }    
        }
    }
}


#publication {
    width: 100%;
    height: 100%;
    /* padding: 2rem; */
    overflow-y: scroll;
    transition: .5s ease-in-out;
    margin-left: auto;
    padding-top: 3rem;

    & #publication-title {
        
    }

    & #publication-content {
        /* padding: 2rem; */
    }
}

#publication-topbar {
    position: fixed;
    top: 0;
    top: var(--vvh-top, 0px);
    left: 0;
    width: 100%;
    height: 3rem;
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
    z-index: 1000;

    & .publication-title {
        font-size: 1rem;
        font-weight: 700;
        font-family: var(--font-heading);
        overflow: hidden;
        text-overflow: ellipsis;
        line-height: 1;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2; /* For legacy support */
        line-clamp: 2;         /* Modern syntax */
        box-orient: vertical;
        max-height: calc(2 * 1.2em); /* Adjust line height if needed */
        @media(max-width: 768px) {
            font-size: .75rem;
            -webkit-line-clamp: 2;
            line-clamp: 2;
            max-height: calc(2 * 1.2em);
        }
    }

    & .menu-toggler {
        @media(min-width: 1024px) {
            pointer-events: none;
            visibility: hidden;
        }
    }


}

#publication-searchbar {
    padding: .5em;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: white;
    height: auto !important;
    position: absolute;
    bottom: 0;
    left: 0;
    transform: translateY(100%);
    transition: .5s ease-in-out;
    opacity: 0;
    pointer-events: none;
    border-bottom: 1px solid var(--mud-palette-primary);

    &.show {
        opacity: 1;
        pointer-events: auto;
    }
}

.mark, mark {
    /* border: 2px solid currentColor !important; */
    color: var(--mud-palette-primary) !important;
    background-color: #fff4b6;
    
    &.active {
        background: var(--mud-palette-primary) !important;
        color: var(--mud-palette-primary-text) !important;
        animation: pulse-mark 2s infinite;
    }
}


@keyframes moveBgX {
  from {
    background-position-x: 0rem;
  }
  to {
    background-position-x: calc(3rem - .5rem);
  }
}


@keyframes pulse-mark {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    } 
}


.latest-publications {
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); 
    gap: 1rem;

    & > * {
        box-shadow: 
            0 8px 6px -1px rgba(0 0 30 / 0.15), 
            0 8px 18px -1px rgba(0 0 30 / 0.1) 
            !important;
    }
}



.open-street-map-container {
    position: relative;
    width: 100%;
    height: 100%;

    & .open-street-map-loader {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        gap: 1rem;
        align-items: center;
        justify-content: center;
        text-align: center;
        z-index: 1000;
        pointer-events: none;
        background-color: rgba(0,0,0, 0.5);
        opacity: 0;
        transition: 1s ease-in-out;
        color: white;
    }

    &.map-loading {
        & .open-street-map-loader {
            opacity: 1;
        }
    }
}


#individual-map {
    position: fixed;
    z-index: 10000;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    display: flex;
    background-color: rgba(0, 0, 0, 0.8);
    overflow-y: scroll;

    & > .inner {
        margin: auto;
        margin-top: 2rem;
        width: min(90dvh, 90dvw);
        max-width: 600px;
        background-color: white;
        border-radius: 1rem;
        overflow: hidden;
        & > .meta {
            color: black;
            padding: 1.25rem;
        }
        
        & > .map-container {
            width: 100%;
            aspect-ratio: 1 / 1;
            /* height: min(90dvh, 90dvw); */
            height: 100%;
        }
        
        & .sticky-top {
            height: 0px;
            overflow: visible;
            position: sticky;
            position: sticky;
            top: 0;
            width: 100%;
            z-index: 10001;
        }
        & .close-individual-map {
            position: absolute;
            top: 0;
            right: 0;
            z-index: 10001;
        }
    }

    &.show {
        pointer-events: auto;
        opacity: 1;
    }
}

.gm-style-iw-d {
    overflow-y: scroll !important;
}

#individual-map-container-infowindow-content {
    width: 100%;
    max-width: 100%;
    padding-right: 12px;
}


#publication-loader {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    overflow: auto;
    background-color: var(--mud-palette-primary);
    color: white;
    display: flex;
    z-index: 10000;

    & .inner {
        margin: auto;
        max-width: 80%;
        height: auto;
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 2rem;
        justify-content: center;
        align-items: center;
    }

    & .book-app-icon {
        width: 100%;
        max-width: 200px;
        border-radius: 20%;

        /* animation: book-app-icon-animation 1.2s forwards; */
        opacity: 1;
        transform: scale(.5);
    }
}

@keyframes book-app-icon-animation {
    0% {
        opacity: 1;
        transform: scale(0.5);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* ----------- */
/* ----------- */
/* ----------- */
/* ----------- */
/* ----------- */

#global-map-page {
    width: 100%;
    height: 100vh;
    position: relative;
}



.gm-style-iw-d {
    padding-right: 48px !important;
    padding-top: 8px
}

.gm-style-iw-chr {
    height: 0px !important;

    &[id] {
        display: none !important;
    }
    & button {
        position: absolute;
    }
}

.marker-icon-wrapper {
    position: relative;

    &.always-pulsing {
        &::after {
            content: "";
            position: absolute;
            top: 50%;
            left: 50%;
            width: 100%;
            height: 100%;
            background-color: var(--pulsing-color, red);
            border-radius: 50%;
            transform: translate(-50%, -50%);
            animation: marker-pulse 2s infinite;
            z-index: -1;
        }
    }
}

@keyframes marker-pulse {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: .66;
    }
    100% {
        transform: translate(-50%, -50%) scale(2);
        opacity: 0;
    }
}


.jg-caption {
    display: none !important;
}

.icom-media-gallery-item {
    border-radius: 0 !important;
}

.lightbox-image {
    cursor: pointer;
}