/* Grundregeln für das Seitenraster, Navigation und die Inhaltselemente.
   Die seitenspezifischen Abstände, Spalten und Schriften stehen im Grid-CSS
   jeder Seite und in site-head.css. */

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { -webkit-tap-highlight-color: transparent; text-decoration: none; outline: 0; }
a:not([href]) { cursor: default; }
img { user-select: none; }

/* ---------- Kopf, Navigation */
.sitetitle { line-height: 1; color: #000; white-space: nowrap; z-index: 20; }
.sitetitle.img { font-size: 0; }
.project-arrow { display: none; }
#search-region, .search-view { display: none; }
nav.laynav ul.sub-menu { display: none; }
.laynav.desktop-nav li.show-submenu-desktop > .sub-menu { display: block; }

/* Mobilmenü (Stil 1): Position setzt site.js inline, hier nur die Animation */
@media (max-width: 600px) {
  body.mobile-menu-style_1.mobile-menu-animation-possible nav.mobile-nav { transition: transform 300ms cubic-bezier(.52, .16, .24, 1); }
}

/* ---------- Raster */
.lay-content { position: relative; z-index: 0; }
.lay-empty { display: none !important; }
#grid { width: 100%; }
#footer-region { position: relative; width: 100%; }
.row { font-size: 0; position: relative; pointer-events: none; }
.row .col { pointer-events: auto; }
.row.empty:not(.rowcustomheight):not(._100vh) { padding-bottom: 20%; }
.row.empty._100vh { padding-bottom: 0; }
.row.hide-overflow { overflow: hidden; }
.row[data-collapsed="true"] { height: 0; overflow: hidden; }
._100vh { min-height: 100vh; min-height: 100svh; }
.column-wrap { width: 100%; height: 100%; box-sizing: border-box; }
.col { position: relative; display: inline-block; }
.col.type-text.absolute-position, .column-wrap._100vh > .col.absolute-position.type-text { z-index: 2; }
body.lay-transition-elements-on-scroll .row.no-y-offsets.no-stickies.no-horizontal-grid:last-child { overflow: hidden; }

/* Texte */
.lay-textformat-parent a, .projectlink .lay-textformat-parent { display: inline; }
.lay-textformat-parent > ol, .lay-textformat-parent > ul { padding: revert; }
.lay-textformat-parent a.laybutton, a.laybutton { display: inline-block; }

/* Bilder: Platzhalter hält das Seitenverhältnis, Bild liegt darüber */
.col img { transition: opacity .3s ease-out; }
.col:not(.type-html):not(.type-shortcode):not(.type-text) img { position: absolute; top: 0; left: 0; width: 100%; height: auto; }
.col.type-img .img { position: relative; }
.col[data-type=text] img { position: static; width: auto; height: auto; max-width: 100%; opacity: 1; transition: none; transform: none; }

/* Linien */
.lay-hr { width: 100%; }
.col.type-vl { height: 100%; }
.lay-vl { width: 1px; background-color: #000; height: 100%; }

/* ---------- Cover */
.cover-content { z-index: 2; position: relative; }
.hascover #footer-region, .cpl-hascover #footer-custom-phone-grid { position: relative; z-index: 2; }

/* ---------- Laufband (Marquee) */
.lay-marquee { overflow: hidden; cursor: default; }
.lay-marquee a { cursor: pointer; }
.lay-marquee-track { display: flex; width: max-content; will-change: transform; animation: lay-marquee var(--marquee-duration, 60s) linear infinite; }
.lay-marquee.reverse .lay-marquee-track { animation-direction: reverse; }
.lay-marquee.marquee-pause-on-hover:hover .lay-marquee-track { animation-play-state: paused; }
.lay-marquee-item { flex: none; display: flex; align-items: center; }
.col:not(.type-html):not(.type-shortcode):not(.type-text).type-marquee img { position: relative; width: auto; display: block; }
.col.type-marquee p { margin-top: 0; margin-bottom: 0; }
@keyframes lay-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .lay-marquee-track { animation: none; } }

/* ---------- Karussell */
.lay-carousel { position: relative; overflow: hidden; }
.lay-carousel-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 300ms ease-out; }
.lay-carousel-slide.is-active { opacity: 1; z-index: 1; }
.lay-carousel-slide .slide-inner { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; }
.lay-carousel.content-alignment-bottom .lay-carousel-slide-img .slide-inner { justify-content: flex-end; }
.col:not(.type-html):not(.type-shortcode):not(.type-text) .lay-carousel-slide .carousel-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lay-carousel:not(.autoplay) { cursor: pointer; }

/* ---------- Overlay-Seiten (Lay-Overlay) */
.lay-overlay { position: fixed; inset: 0; z-index: 99; display: none; opacity: 0; transition: opacity 300ms ease; }
.lay-overlay.display-block-overlay { display: block; }
.lay-overlay.lay-show-overlay { opacity: 1; }
.lay-overlay > .lay-content { overflow-y: auto; max-height: 100vh; max-height: 100svh; }
.overlay-close { position: fixed; z-index: 20; cursor: pointer; font-size: 0; }
.overlay-close.standard-overlay-close-icon::before { content: "×"; font-size: 40px; line-height: 1; font-family: UnitOffc-Light, sans-serif; }
html.overlay-open { overflow: hidden; }

/* ---------- Elemente beim Scrollen einblenden */
.lay-transition-elements-on-scroll .col.below { transform: translateY(var(--lay-scroll-offset, 40px)); opacity: 0; }
.lay-transition-elements-on-scroll .col.in-view { transform: translateY(0); opacity: 1; transition: transform 600ms cubic-bezier(.165, .84, .44, 1), opacity 600ms ease; }
@media (prefers-reduced-motion: reduce) { .lay-transition-elements-on-scroll .col.below { transform: none; opacity: 1; } }

/* FAQ (ehemals Plugin "Ultimate FAQs") */
.ic-faq-item { border-bottom: 2px solid #000; }
.ic-faq-item summary { cursor: pointer; list-style: none; padding: 10px 0; }
.ic-faq-item summary::-webkit-details-marker { display: none; }
.ic-faq-answer { padding: 0 0 15px; }

/* Hinweis „keine anstehenden Veranstaltungen“ (statt Kalender-Widget, Werte wie im Original) */
.tribe-events-widget-events-list .tribe-events-c-messages { display: flex; font-family: UnitOffc-Light, serif; font-size: 14px; line-height: 1.38; color: #141827; }
.tribe-events-widget-events-list .tribe-events-c-messages__message { display: flex; align-items: center; width: 100%; }
.tribe-events-widget-events-list .tribe-events-c-messages__message-icon-svg { display: block; flex: none; width: 22px; height: auto; margin-right: 12px; }
.tribe-events-widget-events-list .tribe-events-c-messages__message-icon-svg path { fill: none; stroke: #141827; }
.tribe-events-widget-events-list .tribe-events-c-messages__message-icon-svg .tribe-common-c-svgicon__svg-stroke { stroke: #cd3057; }
.tribe-events-widget-events-list .tribe-events-c-messages__message-list { list-style: none; margin: 0; padding: 0; }
