@charset "UTF-8";/* pt-sans – self hosted */



/* ============================================================
   FRONTEND-EDIT Ansicht – Begrenzung auf 1280px
   Gilt nur für Artikelbearbeitung im Frontend (view=form)
   ============================================================ */
body.view-form #maincontent {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  box-sizing: border-box;
}


.cc-custom-revoke {
  z-index: 100;
  position: fixed;
  display: inline-block;
  bottom: 10px;
  left: 10px;
  text-align: center;
  vertical-align: middle;
  overflow: hidden;
  font-weight: normal;}


/* ============================================================
   GDPR Placeholder (Maps) – universal
   ============================================================ */

/* 1) Wrapper, in dem der Placeholder liegen soll */
.contact-form,
.content-box-media.media-block--igallery{
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}

/* Kontakt: Höhe kommt vom iframe – optional absichern */
.contact-form{
  min-height: 650px;
}

/* Startseite: wenn GDPR den iframe ersetzt, braucht es eine Höhe */
.content-box-media.media-block--igallery{
  min-height: 650px;
}

/* Mobile-Höhe */
@media (max-width: 768px) {
  .contact-form,
  .content-box-media.media-block--igallery{
    min-height: 320px;
  }
}

/* 2) Placeholder immer als Overlay innerhalb des Wrappers */
.contact-form .gdprlock-placeholder,
.content-box-media.media-block--igallery > .gdprlock-placeholder{
  position: absolute !important;
  inset: 0 !important;
  z-index: 10 !important;

  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;

  background: rgba(0,0,0,.45) !important;
  color: #fff !important;
  padding: 1.25rem 1.5rem;
}

/* 3) Textbox schöner (nicht so breit) */
.gdprlock-placeholder .gdprlock-placeholder-text{
  max-width: 420px;
  font-size: .95rem;
  line-height: 1.45;
  padding: 1rem 1.25rem;
  background: rgba(0,0,0,.35);
  border-radius: 10px;
}

/* 4) iFrame sauber darstellen (Kontaktseite) */
.contact-form iframe{
  display: block;
  width: 100%;
  height: 650px;
}
@media (max-width: 768px) {
  .contact-form iframe{
    height: 320px;
  }
}

/* =========================================================
   ZOOM UI – FINAL (Toolbar + Hint breit, ohne Layout-Shift)
   ========================================================= */

/* Wrap bleibt breit */
.nsa-zoom__wrap{
  position: relative;
  display: block;
  width: min(96vw, 1800px);
  margin: 0 auto;
}

/* Viewport definiert die sichtbare Fläche */
.nsa-zoom__viewport{
  position: relative;
  width: 100%;
  height: min(92vh, 1200px);
  overflow: hidden;
  user-select: none;
  cursor: zoom-in;
}

/* Toolbar oben links */
.nsa-zoom__toolbar{
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 20;

  display: inline-flex;
  align-items: center;
  gap: .45rem;

  padding: .45rem .5rem;
  border-radius: .75rem;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}

/* Buttons */
.nsa-zoom__btn{
  padding: .35rem .55rem;
  border-radius: .45rem;
  line-height: 1;
}
.nsa-zoom__btn[disabled]{
  opacity: .5;
  cursor: not-allowed;
}

/* ✅ Hint: NICHT im Flow, sondern als Overlay UNTER der Toolbar – aber BREIT */
.nsa-zoom__toolbar .nsa-zoom__hint{
  position: absolute;
  top: calc(100% + 10px);   /* direkt unter Toolbar */
  left: 0;
  z-index: 19;
  pointer-events: none;

  /* wichtig: unabhängig von Toolbar-Breite */
  width: min(300px, calc(96vw - 28px));
  max-width: none;
  white-space: normal;

  font-size: .85rem;
  line-height: 1.25;
  opacity: .9;

  padding: .35rem .5rem;
  border-radius: .5rem;
  background: rgba(255,255,255,.80);
  backdrop-filter: blur(6px);
}

/* Cursor UX */
.nsa-zoom__viewport[data-zoomed="1"]{ cursor: grab; }
.nsa-zoom__viewport.is-panning{ cursor: grabbing; }

.nsa-zoom__stage{ will-change: transform; }

/* Bild darf nicht durch alte Modal-Regeln limitiert werden */
.nsa_modal-content--image .nsa-zoom__img{
  max-width: none !important;
  max-height: none !important;
  width: auto !important;
  height: auto !important;
  object-fit: unset !important;
  display: block;

  border-radius: 12px;
  box-shadow: 0 20px 40px rgba(0,0,0,.45), 0 4px 15px rgba(0,0,0,.3);
}

/* Selection/Highlight weg */
.nsa-zoom__viewport,
.nsa-zoom__viewport *{
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}
.nsa-zoom__img{
  -webkit-user-drag: none;
  user-drag: none;
}

/* Desktop: Drag/Zoom aktiv */
@media (pointer: fine) {
  .nsa-zoom__viewport{ touch-action: none; }
}
/* Touch: nix kaputt machen */
@media (pointer: coarse) {
  .nsa-zoom__viewport{ touch-action: auto; }
}

/* =========================================================
   BUSFINDER – wie page-content, nur breiter
   ========================================================= */

body.page-content.busfinder:not(.view-featured) #maincontent {
  --content-max: 1440px !important;
}


body.page-content.busfinder:not(.view-featured) #maincontent .com-content-article__body {
  background: #fff;
  box-shadow: none !important;
  padding: clamp(24px,4vw,60px);
  margin-block: clamp(40px,6vw,80px);
}

body.page-id-135.page-content.busfinder:not(.view-featured) #maincontent .page-header h1,
body.page-id-136.page-content.busfinder:not(.view-featured) #maincontent .page-header h1{
  max-width: 1400px !important;
  padding-inline:0 !important;
}

body.pageid-135.page-content:not(.view-featured) 
#maincontent .page-header h1,
body.pageid-135.page-content:not(.view-featured) 
#maincontent .page-header h2,
body.pageid-136.page-content:not(.view-featured) 
#maincontent .page-header h1,
body.pageid-136.page-content:not(.view-featured) 
#maincontent .page-header h2 {
  max-width: 1400px;
}


body.busfinder #maincontent .notice  {
	font-size:16px;}




button[data-submit-task="article.save2copy"] {
    display: none !important;
}

@media (max-width: 768px) {
  .header--fossilienwelt .header__overlay {
    display: none !important;
  }
}


/* =========================================================
  QUICK FIX – BESUCHERINFO
   ========================================================= */
/* Besucherinfo: Header als ganzer Block über content-top */
body.itemid-252 .header--hero,
body.itemid-264 .header--hero,
body.itemid-252 .header--fossilienwelt,
body.itemid-264 .header--fossilienwelt{
  position: relative;
  z-index: 20;
  overflow: visible;
}

/* Die Box selbst noch eine Ebene höher */
body.itemid-252 .header__box--overlay,
body.itemid-264 .header__box--overlay{
  position: relative;
  z-index: 30;
}

/* content-top bleibt darunter */
body.itemid-252 #content-top,
body.itemid-264 #content-top{
  position: relative;
  z-index: 1;
}




@keyframes fa-beat {0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce {0%{transform:scale(1)translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9))translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1))translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95))translateY(0)}57%{transform:scale(1,1)translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1)translateY(0)}to{transform:scale(1)translateY(0)}}@keyframes fa-fade {50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade {0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip {50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake {0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin {0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes progress-bar-stripes {
	0% {
		background-position-x: 1rem;
	}
}@keyframes progress-bar-stripes {
	0% {
		background-position-x: 1rem;
	}
}@keyframes spinner-border {
	to {
		-webkit-transform: rotate(360deg) /* rtl:ignore */;
		transform: rotate(360deg) /* rtl:ignore */;
	}
}@keyframes spinner-border {
	to {
		-webkit-transform: rotate(360deg) /* rtl:ignore */;
		transform: rotate(360deg) /* rtl:ignore */;
	}
}@keyframes spinner-grow {
	0% {
		-webkit-transform: scale(0);
		transform: scale(0);
	}
	50% {
		opacity: 1;
		-webkit-transform: none;
		transform: none;
	}
}@keyframes spinner-grow {
	0% {
		-webkit-transform: scale(0);
		transform: scale(0);
	}
	50% {
		opacity: 1;
		-webkit-transform: none;
		transform: none;
	}
}@keyframes joomla-alert-fade-in {0%{opacity:0}}@keyframes joomla-alert-fade-out {0%{opacity:1}to{opacity:0}}@keyframes deco-float {0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-14px) rotate(-.4deg)}50%{transform:translateY(10px) rotate(.3deg)}75%{transform:translateY(-10px) rotate(-.2deg)}}
