/* IMPORTS */

@font-face { font-family: 'standard';    src: url('../otf/Corporate S - Regular.otf');  font-display: swap;}
@font-face { font-family: 'headline';    src: url('../otf/Corporate E - Regular.otf');  font-display: swap;}
@font-face { font-family: 'handwriting'; src: url('../ttf/ArchitectsDaughter - Regular.ttf');  font-display: swap; }

/* ANIMATIONS */

@keyframes         dropdown { 0% { transform: scaleY(0); } 80% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@-webkit-keyframes dropdown { 0% { transform: scaleY(0); } 80% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@-moz-keyframes    dropdown { 0% { transform: scaleY(0); } 80% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }

/* RESETS */

html, body, div, span, applet, object, iframe   { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
h1, h2, h3, h4, h5, h6, p, blockquote, pre      { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
a, abbr, acronym, address, big, cite, code      { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
del, dfn, em, img, ins, kbd, q, s, samp         { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
small, strike, strong, sub, sup, tt, var        { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
b, u, i, center                                 { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
dl, dt, dd, ol, ul, li                          { margin: 0; padding: 0; border: 0; }
fieldset, form, label, legend                   { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
article, aside, canvas, details, embed          { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
figure, figcaption, footer, header, hgroup      { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
menu, nav, output, ruby, section, summary       { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
time, mark, audio, video                        { margin: 0; padding: 0; border: 0; box-sizing: border-box; }
html, body                                      { width: 100%; height: 100%; }
button, button:hover, a, a:hover                { cursor: pointer; }
table                                           { border-collapse: collapse; border-spacing: 0; }


strong { font-family: auto, sans-serif; font-weight:600; font-size: 17px; }
 
#adminbar-search { border: none !important; }

/* GENERAL */

body                          { font-size: 18px; font-family: 'standard'; line-height: 26px; background: white; }
a                             { text-decoration: none; text-underline-position: under; cursor: pointer; }
a.button                      { display: inline-block; padding: 8px 15px 6px; background: lightgray; border-radius: 3px; text-decoration: none; }
p                             { margin: 0 0 20px 0; }
p a                           { text-decoration: underline; }
h1                            { margin: 0 0 20px 0; font-size: 29px; font-weight: lighter; font-family: 'headline'; line-height: 39px; }
h1                            { text-decoration: underline; text-underline-position: under; text-decoration-thickness: 2px; }
h2                            { margin: 0 0 20px 0; font-size: 25px; font-weight: lighter; line-height: 30px; }
h3                            { margin: 0 0 20px 0; font-size: 22px; font-weight: lighter; line-height: 27px; }
h4                            { margin: 0 0 20px 0; font-size: 18px;  font-weight: lighter line-height: 23px; }
h5                            { margin: 0 0 0 0; font-size: 18px; line-height: 23px; font-weight: lighter; }
h6                            { margin: 10px 0 0 0; font-size: 22px; line-height: 23px; font-family: 'headline'; }
hr                            { margin: 0 0 20px 0; }
ul:not(.main ul, .sidebar ul) { margin: 0; list-style: none; }
ol:not(.main ol, .sidebar ol) { margin: 0; list-style: none; }

.overlay                  { z-index: 1000; display: none; position: fixed; width: 100%; height: 100%; top: 0; left: 0; background: #00000050; }
.overlay             .box { display: inline-block; position: fixed; max-width: calc(99% - 40px); max-height: calc(99% - 80px); top: 50%; left: 50%; transform: translate(-50%, -50%); }
.overlay             .box { padding: 15px; background: white; }
.overlay#cookie-note .box { max-width: 500px; }

/* WRAPPER */

.wrapper { display: inline-block; position: relative; width: 1300px; left: 50%; margin: 0 0 0 -650px; }

@media only screen and (max-width: 1300px) {
    .wrapper { left: 0; width: calc(100% - 30px); margin: 0 15px; }
}

/* HEADER */

.header              { width: 100%; background: white; }
.header .banner      { width: calc(100% - 30px); height: 80px; margin: 15px 15px 0; background: gray; }
.header .banner a    { display: flex; align-items: center; justify-content: center; float: left; width: calc(100% - 160px); height: 80px; }
.header .banner a    { font-size: 32px; font-weight: lighter; line-height: 36px; }
.header .banner span { float: left; width: 80px; height: 80px; background: lightgray; }

@media only screen and (max-width: 600px) {
    .header .banner a { font-size: 20px; line-height: 25px; text-align: center; }
}

.header > .wrapper                                 { margin-top: 15px; margin-bottom: -8px; }
.header > .wrapper img                           { float: left; height: 72px; }
.header > .wrapper nav { text-align: right;  }

.header > .wrapper nav img                         { float: right; height: 30px; margin: 0 0 0 10px; border-radius: 3px; }
.header > .wrapper nav img:not(.header form img)   { display: none; }
.header   .wrapper nav form                        { margin-bottom: 15px; }
.header   .wrapper nav form input[type=text]       { width: 350px; padding: 5px 8px 5px 40px; font-size: 15px; border: 1px solid gray; border-radius: 0px; }
.header   .wrapper nav form input[type=text]       { background: white url(../svg/icon-search.svg) no-repeat 5px center; }
.header   .wrapper nav form input[type=text]:focus { outline: 0; }

.header .hamburger                    { display: none; position: absolute; top: 5px; right: 0; width: 40px; height: 40px; margin-top: 15px; border: 3px solid #CCCCCC; border-radius: 3px; cursor: pointer; }
.header .hamburger        span,
.header .hamburger        span:before,
.header .hamburger        span:after  { position: absolute; content: ''; width: 25px; height: 3px; background: #CCCCCC; transition: all .2s ease; border-radius: 3px; }
.header .hamburger        span        { top: 16px; left: 5px; }
.header .hamburger        span:before { top: -10px; }
.header .hamburger        span:after  { top: 10px; }
.header .hamburger.active span        { background: transparent; transform: rotate(-135deg); }
.header .hamburger.active span:before,
.header .hamburger.active span:after  { top: 0; }
.header .hamburger.active span:before { transform: rotate(90deg); }

.header .wrapper nav                                          { float: right; margin: 0px 0 0; }
.header .wrapper nav  ul                                      { z-index: 1000; text-align: left; text-transform: uppercase; letter-spacing: 1px; } /* @Steve 4.08 - z-index von 100 auf 1000 erhöht um Menü über die Leafletmap zu stellen */
.header .wrapper nav  ul li                                   { float: left; margin: 0; padding: 0; }
.header .wrapper nav  ul li a                                 { display: block; padding: 12px 20px 10px; font-weight: bolder !important;  }
.header .wrapper nav  ul li:hover > ul                        { display: block; }
.header .wrapper nav  ul li:last-child:hover > ul:last-child  { left: auto; right: -1px; }
.header .wrapper nav  ul li ul                                { display: none; position: absolute; max-width: 100%; }
.header .wrapper nav  ul li ul                                { animation: dropdown 300ms ease-in-out forwards; transform-origin: top; }
.header .wrapper nav  ul li ul li                             { clear: both; width: 100%; }
.header .wrapper nav  ul li ul li a                           { width: 100%; padding: 12px 20px 10px; }
.header .wrapper nav .menu-footer-menu-container              { display: none; }
.header .wrapper nav .menu-betreiber-informationen-container  { display: none; }

.header ul li a                                               { color: black; }
.header ul li a:hover                                         { color: white; background: gray; }
.header ul li ul a                                            {                 background: darkgray; }
.header ul li.current_page_ancestor a                         { color: white; background: gray; }
.header ul li.current_page_ancestor ul li a                   { color: white; background: gray; } 
.header ul li.current_page_ancestor ul li.current-menu-item a { color: white; background: gray; }
.header ul li.current-menu-parent a                           { color: white; background: gray; }
.header ul li.current-menu-parent ul li a                     { color: black; background: darkgray; }
.header ul li.current-menu-parent ul li a:hover               { color: white; background: gray; }
.header ul li.current-menu-parent ul li.current-menu-item a   { color: white; background: gray; }
.header ul li.current-menu-item a                             { color: white; background: gray; } 
.header ul li.current-menu-item ul li a                       { color: white; background: gray; }

.header.sticky                     { z-index: 500; position: fixed; }
.header.sticky                     { box-shadow: 0 0 10px #00000050; -moz-box-shadow: 0 0 10px #00000050; -webkit-box-shadow: 0 0 10px #00000050; }
.header.sticky   .banner           { display: none; }
.header.sticky > .wrapper img      { height: 30px; margin: -10px 0 0 0; }
.header.sticky   .wrapper nav      { margin-top: -15px; }
.header.sticky   .wrapper nav form { display: none; }

@media screen and (min-width: 601px) {
    .header .menu-footer-menue-container { display: none; }
}

@media only screen and (max-width: 600px) {
    .header   .wrapper            { margin-bottom: -10px; }
    .header > .wrapper  a img     { height: 60px; margin-bottom: 15px; }
    .header > .wrapper .hamburger { display: block; }

    .header .wrapper nav                        { display: none; width: 100%; margin: 0 0 15px; padding: 15px 15px; background: #eeeeee; }
    .header .wrapper nav  ul                    { list-style: none; }
    .header .wrapper nav  ul li                 { width: 100%; }
    .header .wrapper nav  ul li a               { display: block; padding: 8px 15px; border-bottom: 1px solid #FFFFFF; }
    .header .wrapper nav  ul li ul              { display: block; width: calc(100% - 30px); border-bottom: 1px solid #FFFFFF; }
    .header .wrapper nav  ul li ul li           { width: 100%; }
    .header .wrapper nav  ul li ul li a         { display: block; padding: 8px 30px; border: none; }
    .header .wrapper nav  ul li:last-child:hover > ul:last-child  { right: none; left: 15px; }
    .header .wrapper nav  form                  { margin-bottom: 15px; }
    .header .wrapper nav  form img              { display: none; }
    .header .wrapper nav  form input[type=text] { width: calc(100% - 43px); }
    .header .wrapper nav .sub-menu              { display: none; }

    .header .wrapper nav .toggle-sub-menu               { display: flex; align-items: center; justify-content: right; float: right; width: 50px; margin-top: -38px; font-size: 30px; cursor: pointer; }
    .header .wrapper nav .toggle-sub-menu::after        { content: '+'; }
    .header .wrapper nav .toggle-sub-menu               { top: 1px; right: 0; height: 100%; }
    .header .wrapper nav .toggle-sub-menu.active::after { content: '-'; }

    .header .wrapper nav .menu-footer-menu-container         { display: block; font-weight: lighter; }
    .header .wrapper nav .menu-footer-menu-container ul      { margin-top: 45px; text-align: center; }
    .header .wrapper nav .menu-footer-menu-container ul li   { width: 100%; }
    .header .wrapper nav .menu-footer-menu-container ul li a { text-decoration: none; border: none; }

    .header .wrapper nav .menu-betreiber-informationen-container         { display: block; margin-top: 15px; font-weight: lighter; text-align: center; text-decoration: none; border: none; }
    .header .wrapper nav .menu-betreiber-informationen-container ul      { margin-top: 45px; text-align: center; }
    .header .wrapper nav .menu-betreiber-informationen-container ul li   { width: 100%; }
    .header .wrapper nav .menu-betreiber-informationen-container ul li a { text-decoration: none; border: none; }

    .header.sticky                  { z-index: 500; position: fixed; min-height: 55px; box-shadow: 0 0 10px #00000050; -moz-box-shadow: 0 0 10px #00000050; -webkit-box-shadow: 0 0 10px #00000050; }
    .header.sticky   .banner        { display: none !important; }
    .header.sticky   .hamburger     { margin-top: -12px; }
    .header.sticky > .wrapper a img { height: 40px !important; }
    .header.sticky   .wrapper nav   { margin: 15px 0 15px; }
}

img.panorama { margin: 0 0 -10px 0; }

@media only screen and (max-width: 600px) {
    #cookie-note .box { width: calc(100% - 60px); }
}

/* FOOTER */

.footer                                { width: 100%; margin: 0 0 100px 0; background: lightgray; }
.footer .wrapper:first-child           { height: 30px; margin-bottom: 8px; }
.footer .wrapper:first-child a         { text-decoration: none; }
.footer .wrapper:first-child a:hover   { text-decoration: underline; }
.footer .wrapper:first-child p         { float: left; height: 30px; line-height: 30px; }
.footer .wrapper:first-child nav       { display: flex; align-items: right; justify-content: right; float: right; height: 30px; line-height: 30px; }
.footer .wrapper:first-child nav ul li { display: inline; margin-right: 20px; }
.footer .wrapper:first-child nav img   { height: 30px; margin-left: 10px; border-radius: 3px; }
.footer .wrapper:last-child            { clear: both; width: 100%; left: 0; margin: 0; background: white; }
.footer .wrapper:last-child p          { display: inline-block; position: relative; width: 1300px; left: 50%; margin: 15px 0 0 -650px; padding: 0; }
.footer .wrapper:last-child ul         { display: flex; justify-content: space-between; position: relative; width: 1300px; left: 50%; margin: 0 0 0 -650px; }
.footer .wrapper:last-child ul li      { display: inline-block; margin: 20px 0 0; }
.footer .wrapper:last-child ul li img  { max-height: 80px; }

@media only screen and (max-width: 1300px) {
    .footer .wrapper:last-child p  { width: calc(100% - 30px); left: 0; margin: 15px 15px 0; }
    .footer .wrapper:last-child ul { width: calc(100% - 30px); left: 0; margin: 0 15px; }
}

@media only screen and (max-width: 600px) {
    .footer .wrapper:first-child p                        { width: 100%; text-align: center !important; }
    .footer .wrapper:first-child nav                      { display: inline-block; width: 100%; text-align: center !important; }
    .footer .wrapper:first-child nav div                  { width: 100%; }
    .footer .wrapper:first-child nav div ul               { width: 100%; }
    .footer .wrapper:first-child nav div ul li            { display: block; width: 100% !important; height: 40px; }
    .footer .wrapper:first-child nav div.social-icons     { width: 100%; }
    .footer .wrapper:first-child nav div.social-icons img { margin: 20px 7.5px 0; }
    .footer .wrapper:last-child                           { clear: both; margin-top: 170px; }
    .footer .wrapper:last-child ul                        { display: inline-block; justify-content: none; width: calc(100% - 0px); left: 0; margin: 0; }
    .footer .wrapper:last-child ul li                     { width: calc(50% - 33px); padding: 7.5px 15px; }
    .footer .menu-footer-menue-container                  { margin: 20px 0; }
}

/* STANDARD GRID */
.article-grid .grid .abstract.cols-12 { padding-bottom: 15px; } /* @Steve 10.10.2022: Added - Spezifisches Padding für Button in Blogübersicht */
.grid            { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: auto; grid-gap: 15px 15px; }
.grid .container { margin-bottom: 15px; padding: 15px 15px; background: white; }
.grid .abstract  { padding: 15px 15px ; background: white; position: relative; padding-bottom: 60px; } /* @steve 10.10. added position: relative + padding-bottom: 60px - für Button Positionierung am unteren Rand */
.grid > .cols-1  { grid-column: span 1;  }
.grid > .cols-2  { grid-column: span 2;  }
.grid > .cols-3  { grid-column: span 3;  }
.grid > .cols-4  { grid-column: span 4;  }
.grid > .cols-5  { grid-column: span 5;  }
.grid > .cols-6  { grid-column: span 6;  }
.grid > .cols-7  { grid-column: span 7;  }
.grid > .cols-8  { grid-column: span 8;  }
.grid > .cols-9  { grid-column: span 9;  }
.grid > .cols-10 { grid-column: span 10; }
.grid > .cols-11 { grid-column: span 11; }
.grid > .cols-12 { grid-column: span 12; }

@media only screen and (max-width: 900px) /*  @Steve 10.10.2022 Modified - max-width: von 600 auf 900 erhöht */
{
    .article-grid .grid .abstract.cols-12 { padding-bottom: 60px; } /* @Steve 10.10.2022: Added - Spezifisches Padding für Button in Blogübersicht */
    .grid > .cols-1  { grid-column: span 12; }
    .grid > .cols-2  { grid-column: span 12; }
    .grid > .cols-3  { grid-column: span 12; }
    .grid > .cols-4  { grid-column: span 12; }
    .grid > .cols-5  { grid-column: span 12; }
    .grid > .cols-6  { grid-column: span 12; }
    .grid > .cols-7  { grid-column: span 12; }
    .grid > .cols-8  { grid-column: span 12; }
    .grid > .cols-9  { grid-column: span 12; }
    .grid > .cols-10 { grid-column: span 12; }
    .grid > .cols-11 { grid-column: span 12; }
    .grid > .cols-12 { grid-column: span 12; }
    
.header > .wrapper nav { 
 
    width: 100%;
    width: -moz-available;          
    width: -webkit-fill-available;  
    width: fill-available; }
}

.placeholder { border: 3px dashed gray; background: none !important;  }

@media only screen and (max-width: 600px) {
    .grid .placeholder { display: none; }
}

.filter:not(.filter input.filter)          { margin: -15px 0 15px; }
.filter .filter-header                     { padding: 6px 15px 4px; background: white; }
.filter .filter-header a.button            { display: inline-block; margin: 0; padding: 0; line-height: 25px; background: none; }
.filter .filter-header a.button img        { float: left; margin: -1px 5px 0 0; height: 25px; }
.filter  form                              { display: none; background: lightgray; padding: 0 7.5px 0 7.5px; }
.filter  form fieldset                     { display: inline-block; width: 100%; }
.filter  form fieldset label               { float: left; display: block; width: 100%; padding: 0 7.5px 10px 7.5px; cursor: pointer; }
.filter  form fieldset label p             { margin: 0; }
.filter  form fieldset label select        { width: 100%; height: 40px; font-size: 16px !important; background: white; }
.filter  form fieldset label select option { height: 30px; cursor: pointer; }
.filter  form fieldset label input         { width: 100%; height: 40px; font-size: 18px !important; font-family: 'standard'; border: 1px solid lightgray; border-radius: 3px; cursor: pointer; }

.article-grid .filter  form fieldset label { width: 33.33%; }
.tool-grid    .filter  form fieldset label { width: 33.33%; }

@media only screen and (max-width: 600px) {
    .filter  form fieldset label { width: 100% !important; }
}

/* SPECIFIC GRIDS */
.grid .nlarchiv {background: white; padding:15px; margin-bottom: 15px;}
.content { padding: 60px 0 25px; background: lightgray; }
.abstract                         { font-size: 15px; font-weight: lighter; line-height: 23px; }
.abstract a.showcase              { display: block; height: 250px; margin-bottom: 10px; background-repeat: no-repeat !important; background-size: cover !important; background-position: center !important; } /* @Steve angepasst - 4.08 - 7.11.22 - um in der Artikelübersicht das Bild statt Cover zu containen */
.abstract h1                      { margin: 5px 0 12px; font-size: 25px; line-height: 35px; word-wrap: break-all; word-break: break-word; }
.abstract p                       { font-size: 17px; line-height: 25px; word-wrap: break-all; }
.abstract ul li                   { margin-left: 20px; font-size: 15px !important; font-weight: lighter !important; line-height: 23px !important; list-style: disc; }
.abstract a.button                { font-size: 18px !important; line-height: 26px !important; position: absolute; bottom: 15px;} /* @Steve 10.10.2022 Added - position: absolute; bottom: 15px; für Positionierung der Mehr erfahren Buttons am unteren Rand */ 
.abstract a.button:hover          { text-decoration: none; }
.abstract table                   { margin: 15px 0 15px; font-size: 17px; line-height: 25px; }
.abstract table tr td             { vertical-align: top; }
.abstract table tr td:first-child { padding-right: 10px; font-weight: 600; }
.abstract table tr first-child td { font-weight: lighter !important; }
.abstract.list a.showcase         { float: left; width: 100px; height: 60px; margin: 0; }
.abstract.list  .info             { float: left; width: calc(100% - 120px - 130px); margin-left: 20px; }
.abstract.list   h1               { margin: -3px 0 5px; }
.abstract.list a.button           { float: right; margin-top: 10px; }

@media screen and (max-width: 700px) {
    .abstract.list a.showcase { display: none; } 
    .abstract.list  .info     { width: calc(100% - 130px); margin-left: 0; } 
}

.article-grid, .event-grid, .item-grid, .person-grid, .project-grid, .tool-grid, .union-grid, .search-grid, .timetable-grid { margin: 0 0 40px; }

.article-grid button, .event-grid button, .item-grid button, .person-grid button, .project-grid button, .tool-grid button,
.union-grid button { width: 100%; margin: 15px 0 0; padding: 8px 15px 6px; background: darkgray; border: none; }
.union-grid .showcase              { aspect-ratio : 1/1; height: auto; max-height: 250px; margin: auto auto; } /* @ Steve 06.10.2022 deleted: "width: 200px !important; height: 200px !important;" added: "aspect-ratio:1/1 height: auto; max-height: 250px;; für mehr Responsiveness in der Personendarstellung
//@Steve 01.11. added background-size: cover !important; background-position: center !important; */
.union-grid .showcase              { background-repeat: no-repeat; background-size: contain !important; background-position: right !important; }
.article-grid button:hover, .event-grid button:hover, .item-grid button:hover, .person-grid button:hover,
.project-grid button:hover, .tool-grid button:hover, .union-grid button:hover { background: gray; }

.article-grid button.deactive, .event-grid button.deactive, .item-grid button.deactive, .person-grid button.deactive,
.project-grid button.deactive, .tool-grid button.deactive, .union-grid button.deactive { padding: 12px 15px 12px; }

.article-grid button img, .event-grid button img, .item-grid button img, .person-grid button img,
.project-grid button img, .tool-grid button img, .union-grid button img { transform: rotate(90deg); }

.article-grid a.showcase            { width: 100%; }
.article-grid a.showcase.screen     { display: flex; align-items: center; justify-content: center; position: relative; background: black; }
.article-grid a.showcase.screen img { max-width: 100%; max-height: 250px; }

@media only screen and (min-width: 600px)
{
    .article-grid .left  .showcase { float: left; width: calc(100% / 2 - 7.5px); min-height: 350px; margin: 0; }
    .article-grid .left  .info     { float: right; width: calc(100% / 2 - 7.5px); }
    .article-grid .right .showcase { float: right; width: calc(100% / 2 - 7.5px); min-height: 350px; margin: 0; }
    .article-grid .right .info     { float: left; width: calc(100% / 2 - 7.5px); }
}

.event-grid  .date        { float: left; width: 278px; margin: 0px 0 0 15px;  overflow: visible; padding: 15px 15px 8px 150px; background: #cccccc; font-family: 'headline'; font-size: 25px; }
.event-grid a.showcase    { margin: 0; position: absolute; width: 150px !important; height: 150px !important; border-radius: 50%; }
.event-grid a.showcase    { background-repeat: no-repeat; background-size: cover !important; background-position: center !important; }
.event-grid  .info        { padding-left: 15px; float: right; width: calc(100% - 278px - 15px); }
.event-grid  .abstract    { display: flex; align-items: center; padding-top: 35px;}
.event-grid  .abstract h1 { margin-top: -5px; }

@media only screen and (max-width: 600px)
{
    .event-grid  .date        { float: none; width: 278px; margin: 40px 0 0px 15px;  overflow: visible; padding: 15px 15px 10px 150px; background: #cccccc; font-family: 'headline'; font-size: 25px; }
    .event-grid a.showcase    { display: block; margin: -114px 0 0; width: 150px !important; height: 150px !important; border-radius: 50%; }
    .event-grid  .info        { margin-top: 55px; padding-left: 0; float: none; width: calc(100%); }
    .event-grid  .abstract    { display: block; align-items: none; }
    .event-grid  .abstract h1 { margin-top: -5px; }
}

.item-grid a:hover    { text-decoration: none; }
.item-grid a.button   { margin: 6px 0 0; width: calc(100% - 30px) !important; } /* @Steve 4.08 - 07.11.22 - added width calc - um Problem bei Buttondarstellung im Artikelgrid zu beheben */
.item-grid a.showcase { background-repeat: no-repeat; background-size: cover !important; background-position: center !important; }

.person-grid                         { font-size: 17px !important; line-height: 22px !important; }
.person-grid .showcase              { aspect-ratio : 1/1; height: auto; max-height: 250px; margin: auto auto; border-radius: 50%; background-size: cover !important; background-position: center !important; margin-bottom: 30px;} /* @ Steve 06.10.2022 deleted: "width: 200px !important; height: 200px !important;" added: "aspect-ratio:1/1 height: auto; max-height: 250px;; für mehr Responsiveness in der Personendarstellung
//@Steve 01.11. added background-size: cover !important; background-position: center !important; */
.person-grid .showcase              { background-repeat: no-repeat; background-size: cover !important; background-position: right !important; }
.person-grid .showcase              { filter: gray; filter: grayscale(100%); -webkit-filter: grayscale(100%); -webkit-filter: grayscale(1); }
.person-grid a                       { text-decoration: none!important; }
.person-grid p                       { font-size: 17px !important; line-height: 22px !important; }
.person-grid table                   { margin: 0 0 20px; font-size: 16px !important; line-height: 21px !important; }
.person-grid table tr td             { vertical-align: top; }
.person-grid table tr td:first-child { padding-right: 15px; font-weight: bolder; }
.person-grid table tr td:last-child  { font-weight: lighter; }

.timetable-grid .container                         { margin: 0 !important; }
.timetable-grid .container  h1                     { margin: 0; padding: 4px 15px 5px; font-size: 25px; line-height: 25px; text-decoration: none; background: lightgray; }
.timetable-grid .container .content                { position: relative; margin: 0 !important; padding: 10px 0 0 !important; background: white; }
.timetable-grid .container .content::after         { content: ''; position: absolute; width: 6px; top: 0; bottom: 0; left: 9px; background-color: gray; } /* the vertical line */
.timetable-grid .container .content .event         { position: relative; max-width: calc(100% - 15px); padding: 5px 0 5px 28px; background-color: inherit; }
.timetable-grid .container .content .event::after  { z-index: 1; content: ''; position: absolute; width: 20px; height: 20px; top: 8px; right: -18px; } /* circles */
.timetable-grid .container .content .event::after  { background-color: white; border: 4px solid lightgray; border-radius: 50%; } /* circles */
.timetable-grid .container .content .right         { left: 15px; }
.timetable-grid .container .content .right::before { z-index: 1; content: " "; position: absolute; width: 0; height: 0; top: 12px; left: 18px; } /* arrows */
.timetable-grid .container .content .right::before { border: medium solid white; border-width: 10px 10px 10px 0; border-color: transparent lightgray transparent transparent; } /* arrows */
.timetable-grid .container .content .right::after  { left: -16px; }
.timetable-grid .container .content .box           { position: relative; padding: 0; background-color: lightgray; }
.timetable-grid .container .content .box h2        { margin: 0; padding: 6px 10px; font-family: 'standard'; font-size: 20px; line-height: 26px; cursor: pointer; }
.timetable-grid .container .content .box h2 span   { display: block; width: 100%; margin-top: -5px; font-size: 15px; }
.timetable-grid .container .content .box .panel    { margin: 0; padding: 6px 10px; background: #f5f5f5; border-bottom: 4px solid lightgray; display: none; }
.timetable-grid .container .content .box .panel p:last-child { margin: 0; }

/* POST PAGE */

.post                                     { padding: 60px 0 25px; background: lightgray; }
.post  p img:not(.main img, .sidebar img) { margin: 0 0 -5px 10px; height: 20px; }
.post .cols-7                             { margin-bottom: 60px; }
.post .cols-7 > p a                       { text-decoration: none; }
.post .cols-7 > p a:hover                 { text-decoration: underline; }
.post .cols-7 > p:first-child             { margin: 0 0 5px !important; }
.post .cols-7 > p                         { }
.post .cols-7 > h1                        { margin: 0 0 15px !important; }

.post .main                              { margin: 40px 0 40px; }
.post .main p a:not(.main a, .sidebar a) { text-decoration: none; }
.post .main ul                           { margin: 0 0 20px 30px; }
.post .main ol                           { margin: 0 0 20px 30px; }
.post .main blockquote                   { margin: 0 0 20px 15px; padding: 0 0 0 15px; border-left: 3px solid gray; }

.post .authors               { width: 100%; }
.post .authors img           { height: 20px; margin: 0 0 -4px 10px;   }
.post .authors a             { text-decoration: none; }
.post .author-box            { display: inline-block; width: 100%; background: #D5E3ED !important; margin-top: 1px !important; padding: 15px; }
.post .author-box  .showcase { float: left; display: block; width: 90px; height: 90px; margin-right: 25px; text-decoration: none; border-radius: 50%; text-decoration: none !important; }
.post .author-box  .showcase { filter: gray; filter: grayscale(100%); -webkit-filter: grayscale(100%); -webkit-filter: grayscale(1); background-color: #F5F5F5; background-repeat: no-repeat; background-size: cover; background-position: center; text-decoration: none !important; }
.post .author-box span       { display: block; width: 100%; }
.post .author-box a          { display: inline-block; font-weight: bolder ; text-decoration: none; }
.post .author-box a.mark     { margin-top: 2px; padding: 2px 6px; font-weight: lighter; background: #CCCCCC; }

.post .container.author { display: block; /* background: gray; */}

.post .container.shop   { background: darkgray; }
.post .container.shop a { text-decoration: underline; }

.post .container.downloads .title         { margin-bottom: 10px; padding-bottom: 10px; font-weight: bolder; text-transform: uppercase; border-bottom: 1px solid #cccccc; }
.post .container.downloads  ul li         { margin-left: 15px; list-style-type: disc; }
.post .container.downloads  ul li a       { text-decoration: none !important; }
.post .container.downloads  ul li a:hover { text-decoration: underline !important; }

.post.article .main    { margin-right: 40px; }
.post.article .main hr { width: calc(100% + 40px); }

.post.event  h1:not(.post.event .main, .headline h1)    { margin-top: 0; margin-left: 40px; }
.post.event .info h1 { margin-left: 0px !important; }
.post.event .main                                       { margin-left: 40px; }
.post.event .sidebar .container                         { margin-bottom: 0 !important; }
.post.event .sidebar .container:first-child             { padding: 0; }
.post.event .sidebar .container:first-child img         { margin-bottom: -8px; }
.post.event .sidebar .container.event-header            { margin: 0 0 15px; padding: 6px 15px 6px; font-size: 28px; line-height: 38px; background: gray; }
.post.event .sidebar .container.event-info              { background: darkgray; }
.post.event .sidebar .container.event-info p:last-child { margin-bottom: 0; }

.post.item .sidebar .container.downloads { display: none; }

.post.member .main { margin-right: 40px; }

/* SIDEBAR */

span.video-datenschutz {
    font-size: 12px;
}
.sidebar            { margin-bottom: 60px; }
.sidebar ul         { margin: 0 0 20px 15px; }
.sidebar ol         { margin: 0 0 20px 15px; }
.sidebar blockquote { margin: 0 0 20px 0; padding: 0 0 0 15px; border-left: 3px solid gray; }

.sidebar .container { margin: 0 0 15px; }

.sidebar .image span { display: block; width: 100%; color: gray; }

.sidebar .video .screen                 { position: relative; }
.sidebar .video .screen img             { z-index: 50 !important; position: relative; width: 100%; }
.sidebar .video .button.youtube         { z-index: 100 !important; position: absolute; width: 4em; height: 3em; top: calc(50% - 22.5px); left: 50%; margin: 0 0 -50% -30px; padding: 0; }
.sidebar .video .button.youtube         { color: #FFFFFF; font-size: 15px; text-align: center; text-indent: 0.1em; background: red; border-radius: 50% / 10%;  transition: all 150ms ease-out; }
.sidebar .video .button.youtube:hover   { background: #00000050; cursor: pointer; }
.sidebar .video .button.youtube::before { content: ""; position: absolute; top: 9%; right: -5%; bottom: 9%; left: -5%; background: inherit; border-radius: 5% / 50%; }
.sidebar .video .button.youtube::after  { content: " "; position: absolute; width: 0; top: 50%; height: 0; margin: -1em 0 0 -0.75em; }
.sidebar .video .button.youtube::after  { font-size: 0.75em; border-width: 1em 0 1em 1.732em; border-style: solid; border-color: transparent transparent transparent rgba(255, 255, 255, 0.75); }

.sidebar .gallery .slick-list     { width: 0px; height: 250px; }
.sidebar .gallery .slick-list img { margin: 0 7px; height: 250px; cursor: pointer; }

.sidebar .downloads .title   { margin-bottom: 10px; padding-bottom: 10px; font-weight: bolder; text-transform: uppercase; border-bottom: 1px solid #cccccc; }
.sidebar .downloads  a:hover { text-decoration: underline; }

.sidebar .quotation blockquote { border-left: 4px solid #005780; }
.sidebar .quotation p          { margin: 0; }

.sidebar .text p  { margin: 0 0 20px; }
.sidebar .text h1 { margin: 0 0 20px 0; }
.sidebar .text h2 { margin: 0 0 20px 0; }
.sidebar .text h3 { margin: 0 0 20px 0; }

.sidebar .timetable .navi                   { display: inline-block; width: 100%; background: gray; border-bottom: 4px solid gray; }
.sidebar .timetable .navi h1                { margin: 0; padding: 6px 10px; font-family: 'standard'; font-size: 25px; line-height: 25px; text-decoration: none; }
.sidebar .timetable .navi a                 { display: block; float: left; text-decoration: none; text-align: center; background: lightgray; }
.sidebar .timetable .navi a:hover           { background: darkgray; } 
.sidebar .timetable .navi a.active          { background: darkgray; } 
.sidebar .timetable .content                { position: relative; margin: 0 !important; padding: 5px  0!important; background: #eeeeee; }
.sidebar .timetable .content::after         { content: ''; position: absolute; width: 6px; top: 0; bottom: 0; left: 20px; background-color: white; } /* the vertical line */
.sidebar .timetable .content .event         { position: relative; max-width: calc(100% - 35px); padding: 5px 0 5px 28px; background-color: inherit; }
.sidebar .timetable .content .event::after  { z-index: 1; content: ''; position: absolute; width: 20px; height: 20px; top: 8px; right: -18px; } /* circles */
.sidebar .timetable .content .event::after  { background-color: white; border: 4px solid lightgray; border-radius: 50%; } /* circles */
.sidebar .timetable .content .right         { left: 25px; }
.sidebar .timetable .content .right::before { z-index: 1; content: " "; position: absolute; width: 0; height: 0; top: 12px; left: 18px; } /* arrows */
.sidebar .timetable .content .right::before { border: medium solid white; border-width: 10px 10px 10px 0; border-color: transparent lightgray transparent transparent; } /* arrows */
.sidebar .timetable .content .right::after  { left: -16px; }
.sidebar .timetable .content .box           { position: relative; padding: 0; background-color: lightgray; }
.sidebar .timetable .content .box h2        { margin: 0; padding: 6px 10px; font-family: 'standard'; font-size: 20px; line-height: 26px; cursor: pointer; }
.sidebar .timetable .content .box h2 span   { display: block; width: 100%; margin-top: -5px; font-size: 15px; }
.sidebar .timetable .content .box .panel    { margin: 0; padding: 6px 10px; background: white; border-bottom: 4px solid lightgray; display: none; }
.sidebar .timetable .content .box .panel p  { margin: 0; }
.sidebar .gallery .slick-next, .sidebar .gallery .slick-prev { z-index:1; border: none; padding-top: 5px; padding-left: 10px; padding-right: 10px; position: absolute;}
.sidebar .gallery .slick-prev {bottom: calc(50% - 15px); left:0px}
.sidebar .gallery .slick-next {bottom: calc(50% - 15px); right:0px}

/* MODULES */

.heroslider                  { margin-bottom: 40px; }
.heroslider .slider          { clear: both; }
.heroslider .frame           { float: right; width: calc(50% - 7.5px); min-height: 400px; margin-left: 7.5px; padding: 15px; background: white; }
.heroslider .frame  a        { text-decoration: underline; }
.heroslider .frame .showcase { display: block; width: 100%; height: 100%; background-color: lightgray; background-repeat: no-repeat; background-size: cover; background-position: center; color: transparent; } /* @Steve angepasst - 4.08 - 7.11.22 - um im Heroslider das Bild statt Cover zu containen */
.heroslider .abstract        { float: left; width: calc(50% - 7.5px); min-height: 400px; margin-right: 7.5px; }
.heroslider .slick-prev                        { z-index: 50; border: none; position: absolute; top: 0; left: -40px; width: 40px; background: none; }
.heroslider .slick-prev:hover                  { background: gray; }
.heroslider .slick-next                        { z-index: 50; border: none; position: absolute; top: 0; right: -40px; width: 40px; background: none; }
.heroslider .slick-next:hover                  { background: gray; }
.heroslider .slick-next img                    { transform: rotate(0deg); }
.heroslider .slick-dots                        { margin: 0; padding: 0; margin-top: 15px; text-align: center; list-style-type: none; }
.heroslider .slick-dots li                     { display: inline; margin: 0; padding: 0; }
.heroslider .slick-dots li.slick-active button { color: gray; background: gray; border: 1px solid gray; }
.heroslider .slick-dots li button              { display: inline; color: darkgray; width: 18px; height: 18px; margin: 0 3px; padding: 0; background: darkgray; border: 1px solid darkgray; border-radius: 50%; }
.heroslider .slick-dots li button:hover        { color: gray; background: gray; border: 1px solid gray; }

@media only screen and (max-width: 1380px) {
    .heroslider .slick-prev { display: none !important; }
    .heroslider .slick-next { display: none !important; }
}

@media only screen and (max-width: 600px) {
    .heroslider .frame    { float: left !important; width: 100% !important; margin: 0 !important; }
    .heroslider .abstract { float: left !important; width: 100% !important; margin: 0 !important; padding-top: 0 !important; }
    .search-box form input { width: 100%; }
  

.headline p.topline     { margin-bottom: -5px; font-family: 'standard'; font-size: 22px; line-height: 26px; }
.headline p.subline     { margin-top: -25px; font-size: 20px; font-family: 'headline'; line-height: 24px; }
.headline h1            { margin-top: 0; font-size: 30px; font-family: 'headline'; line-height: 40px; text-decoration: underline; }
.headline.subline h1    { text-decoration: none; }
.headline.background p  { display: none; }
.headline.background h1 { margin: 0 0 15px; padding: 0px 15px 0px; font-size: 28px; font-family: 'headline'; line-height: 38px; background: gray; text-decoration: none; }

.text       { clear: both; }
.text ul    { margin: 0 0 20px 30px !important; }
.text ul li { list-style: disc !important; }
.text ol    { margin: 0 0 20px 30px !important; }
.text ol li { list-style: decimal !important; }
}
.search-box                  { margin: 0 0 60px; padding: 60px 40px; background: darkgray; }
.search-box p                { font-size: 29px; line-height: 34px; text-align: center; }
.search-box form             { text-align: center; }
.search-box form input       { width: 50%; padding-left: 40px !important; background: white url(../svg/icon-search.svg) no-repeat 5px center; border: 1px solid gray; border-radius: 3px; }
.search-box form input:focus { outline: 0; }

.fade-slider                         { margin: 0 !important; }
.fade-slider .quotation              { height: 100%; background: white; }
.fade-slider .quotation  p           { margin: 0; padding: 0 0 10px; color: #404040; text-align: center; }
.fade-slider .quotation  p a         { cursor: pointer; }
.fade-slider .quotation .handwriting { display: flex; align-items: center; justify-content: center; margin: 30px 5% 0 5%; }
.fade-slider .quotation .handwriting { color: #0083e6; font-family: 'headline'; font-size: 20px; line-height: 27px; text-align: left; }
.fade-slider .quotation .handwriting { font-size: 20px; line-height: 33px; }


/* SLICK LIGHTBOX */

.slick-lightbox .slick-description                   { display: block; margin: 10px 0 -5px !important; padding: 0 !important; color: black !important; font-size: 18px; text-align: left !important; }
.slick-lightbox .slick-caption                       { margin: 10px 0 -5px !important; font-size: 15px; text-align: left !important; color: gray !important; font-style: italic !important; }
.slick-lightbox .slick-lightbox-slick-item-inner     { display: inline-block; padding: 15px; background: white; }
.slick-lightbox .slick-lightbox-slick-item-inner img { max-width: 100%; max-height: 700px !important; margin: 0; padding: 0; }

.lightbox                               { z-index: 1000; display: none; position: fixed; width: 100%; height: 100%; top: 0; left: 0; background: #00000080; }
.lightbox .screen                       { display: inline-block; position: fixed; max-width: calc(99% - 40px); max-height: calc(99% - 80px); top: 50%; left: 50%; transform: translate(-50%, -50%); background: #ffffff;  }
.lightbox .screen  span                 { position: relative; float: right; margin: -37px 15px 0 0; padding: 3px 8px; color: #ffffff; background: #00000080;   }
.lightbox .screen  p                    { margin: -8px 15px 8px; }
.lightbox .screen  img.frame            { width: calc(100% - 30px); height: auto; margin: 15px 15px 8px; }
.lightbox .screen  button.close         { width: 40px; height: 40px; top: 7px; right: 8px; font-size: 25px; line-height: 25px; background: #ffffff; border: none; }
.lightbox .screen  button               { position: absolute; width: 40px; height: 100%; }
.lightbox .screen  button img           { width: 80%; margin: 0 auto; }
.lightbox .screen  button.preview       { top: -0px; left: -40px; background: #00000050; border: none; }
.lightbox .screen  button.preview:hover { background: #cccccc; }
.lightbox .screen  button.preview img   { transform: rotate(180deg); }
.lightbox .screen  button.next          { top: -0px; right: -40px; background: #00000050; border: none; }
.lightbox .screen  button.next:hover    { background: #cccccc; }
.lightbox .screen  button.next img      { transform: rotate(360deg); }
                 
/* CALDERA FORMS */

.caldera_forms_form       { padding: 0 25px 15px; }
.caldera_forms_form       { background: white; margin-bottom: 40px; font-weight: lighter; border: 3px solid gray; }
.caldera_forms_form p     { margin-top: 20px !important; padding: 0 !important; }
.caldera_forms_form label { margin: 20px 0 0 !important; padding: 0 !important; }
.caldera_forms_form.active { display: none; }

.caldera_forms_form input[type="submit"]       { border-radius: 3px; margin-top: 20px; display: inline-block; padding: 9px 20px 8px; text-decoration: none; font-family: 'standard'; font-size: 18px !important; }
.caldera_forms_form input[type="submit"]       { background: #ffffff; }
.caldera_forms_form input[type="submit"]       { background-color: #dddddd; }
.caldera_forms_form input[type="submit"]:hover { background-color: #cccccc; }

.caldera_forms_form .checkbox input    { margin: 0 0 0 0 !important; background: red; } 
.caldera_forms_form input[type="text"] { height: 40px !important; border: 1px solid lightgray !important; border-radius: 3px !important; font-size: 20px !important; line-height: 20px !important; }
.caldera_forms_form #fld_6009157_1     { height: 40px !important; border: 1px solid lightgray !important; border-radius: 3px !important; font-size: 20px !important; line-height: 20px !important; } 
.caldera_forms_form select             { cursor: pointer; height: 40px !important; border: 1px solid lightgray !important; border-radius: 3px !important; font-size: 20px !important; line-height: 20px !important; } 
.caldera_forms_form textarea           { border: 1px solid lightgray !important; border-radius: 3px !important; font-size: 20px !important; line-height: 20px !important; } 

.caldera_forms_form h1 { text-decoration: none; font-family: 'standard'; font-weight: lighter; margin: 20px 0 0; }
.caldera_forms_form h3 { text-decoration: none; font-family: 'standard'; font-weight: lighter; margin: 20px 0 20px; }

@media screen and (max-width: 601px) {
    .caldera_forms_form { padding: 0 25px 15px; }	
}

input[type="submit"]       { border-radius: 3px; margin-top: 20px; display: inline-block; padding: 9px 20px 8px; text-decoration: none; font-family: 'standard'; font-size: 18px !important; }
input[type="submit"]       { background: #ffffff; }
input[type="submit"]       { background-color: #dddddd; }
input[type="submit"]:hover { background-color: #cccccc; }

input[type="submit"]       { border-radius: 3px; margin-top: 20px; display: inline-block; padding: 9px 20px 8px; text-decoration: none; font-family: 'standard'; font-size: 18px !important; }
input[type="submit"]       { background: #ffffff; }
input[type="submit"]       { background-color: #dddddd; }
input[type="submit"]:hover { background-color: #cccccc; }
input[type="submit"]:hover { background-color: #cccccc; }

.gallery.nosidebar             { margin: 0 0 40px; padding: 0; }
.gallery.nosidebar .slick-list { margin: 0; padding: 0; border-left: 15px solid #ffffff !important; border-right: 15px solid #ffffff !important; }
.gallery.nosidebar  img        { height: 400px; margin: 0 0 -8px; padding: 0; border: none; }
.gallery.nosidebar  img        { border-left: 7.5px solid #ffffff !important; border-right: 7.5px solid #ffffff !important; }
.gallery.nosidebar .slick-next img, .gallery.nosidebar .slick-prev img { border: none !important; } // @Steve: 06.10.2022 - Pfeile neben Gallery ermöglichen

/* OTHER SOURCES */

.checkbox input                        { margin: 0 0 0 0 !important; background: red; } 
 
 input[type="text"]:not(.header input) { 
     font-weight: lighter; 
     padding-left: 10px;
     height: 40px !important; 
     border: 0px solid white !important; 
     border-radius: 0px !important; 
     font-size: 18px !important; 
     line-height: 20px !important; 
 }
.caldera_forms_form #fld_6009157_1     { height: 40px !important; border: 1px solid lightgray !important; border-radius: 3px !important; font-size: 20px !important; line-height: 20px !important; } 
 select                                { cursor: pointer; height: 40px !important; border: 1px solid lightgray !important; border-radius: 3px !important; font-size: 20px !important; line-height: 20px !important; } 
 textarea                              { border: 1px solid lightgray !important; border-radius: 3px !important; font-size: 18px !important; font-family: 'standard' !important; line-height: 20px !important; } 

.map { margin-bottom: 15px; }

.pagination                { margin-top: 15px; text-align: center; }
.pagination button         { width: 22px; margin: 0 2px; padding: 2px 0; background: white; border: 1px solid gray; }
.pagination button.current { background: gray; }

.fw.container                                       { padding: 15px 15px; }
.fw-page-builder-content, .fw-main-row              { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.fw-page-builder-content .fw-main-row .fw-container { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
/*
.gm-style-iw   { width: 300px !important; min-height: 500px !important; max-height: 600px !important; overflow: hidden !important; border-radius: 0 !important; }
.gm-style-iw-d { width: 275px !important; min-height: 500px !important; max-height: 600px !important; overflow: auto !important; }
.gm-style-iw-c { background: red; }
*/

.gm-style-iw             { overflow-y: auto !important; }
.gm-style-iw-c           { max-width: 450px !important; min-height: 430px !important; }
.gm-style-iw-c  p        { line-height: 19px; }
.gm-style-iw-c  h1       { margin: 8px 0 15px; font-size: 20px; font-weight: lighter; line-height: 29px; }
.gm-style-iw-c .showcase { display: block; width: 100%; height: 200px; margin-bottom: 10px; background-repeat: no-repeat; background-size: cover !important; background-position: center !important; }
.gm-style-iw-d           { min-height: 400px !important; }

.leaflet-popup-content  p        { line-height: 19px; }
.leaflet-popup-content  a       { color: black; }
.leaflet-popup-content  h1       { margin: 8px 0 15px; font-size: 20px; font-weight: lighter; line-height: 29px; }
.leaflet-popup-content .showcase { display: block; width: 300px; height: 200px; margin-bottom: 10px; background-repeat: no-repeat; background-size: cover !important; background-position: center !important; }

@media only screen and (max-width: 600px) {
    .gm-style-iw-c { width: 300px; }
}

.liste-anzeigen ul {
    list-style: disc !important;
    padding-bottom: 20px;
}
.liste-anzeigen li {
    margin-left:  16px !important;
    padding-bottom: 8px;

}

.fw-testimonials-2 .fw-testimonials-avatar img {
    max-height: 70px;
    max-width: 70px;
    object-fit: cover;
    position: relative;
    top: -23px;
}

blockquote {
    border-left: 3px dotted #005780;
    margin: 0 0 20px 15px;
    padding: 0 0 0 15px;
}