@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: normal;
  src: local('Roboto Thin'), local('Roboto-Thin'), url(./robotothinwebfont.woff) format('woff');
}

body,html {
	background-color: #080808;
	margin: 0;
	padding: 0;
}

#perpetuumopenmenu {
	width: 32px;
	height: 32px;
	position: fixed;
	top: 20px;
	left: 20px;
	background: url(./menu.svg) no-repeat 0 0;
	z-index: 800;
	cursor: pointer;
}

#perpetuumopenmenu.perpetuumblack {
	background-position: 0 -32px;
}

#perpetuumscrolldown {
	width: 32px;
	height: 32px;
	position: absolute;
	bottom: 20px;
	left: 50%;
	margin-left: -16px;
	background: url(./down.svg) no-repeat 0 0;
	z-index: 800;
	cursor: pointer;
}

#perpetuumbullets {
	width: 16px;
	position: absolute;
	top: 50%;
	right: 20px;
	z-index: 210;
}

#perpetuumbullets>a {
	display: block;
	width: 16px;
	height: 16px;
	background: url(./bullet.svg) no-repeat 0 0;
	margin-bottom: 8px;
}

#perpetuumbullets>a.active {
	background-position: 0 -16px;
}


#perpetuumscrollup {
	width: 32px;
	height: 32px;
	position: fixed;
	right: 20px;
	bottom: 20px;
	background: url(./up.svg) no-repeat 0 0;
	z-index: 800;
	cursor: pointer;
	display: none;
}

#perpetuumscrollup.perpetuumblack {
	background-position: 0 -32px;
}


#perpetuumclosemenu {
	width: 32px;
	height: 32px;
	position: absolute;
	top: 20px;
	left: 20px;
	background: url(./close.svg) no-repeat 0 0;
	cursor: pointer;
}

nav {
	display: block;
	position: fixed;
	margin: 0;
	padding: 0;
	background-color: #71471a;
	width: 100%;
	height: 100%;
	transform: translateX(-100%);
	-webkit-transform: translateX(-100%);
	-ms-transform: translateX(-100%);
	transition: transform 0.5s ease;
	-webkit-transition: -webkit-transform 0.5s ease;
	z-index: 900;
	overflow: hidden;
}

nav.perpetuumisopen {
	transform: translateX(0);
	-webkit-transform: translateX(0);
	-ms-transform: translateX(0);
}

nav>img {
	display: block;
	margin: 10px auto 0px auto;
	height: 120px;
}

.perpetuumbreadcrumbs {
	display: block;
	width: 900px;
	margin: 0 auto;
	padding: 10px 0;
	text-align: center;
	color: #ce9449;
	text-transform: uppercase;
	letter-spacing: 1px;	
}

.perpetuumbreadcrumbs>a {
	color: #ea9900;
	text-decoration: none;	
}

.perpetuumbreadcrumbs>a:hover {
	color: #db8402;
}

#nav {
	width: 900px;
	margin: 0 auto;
	padding: 20px 0;
}

#nav>ul {
	transform: translateX(300px);
	transition: transform 0.3s ease;
	-webkit-transform: translateX(300px);
	-webkit-transition: -webkit-transform 0.3s ease;
	-ms-transform: translateX(300px);
}

nav ul {
	display: block;
	list-style: none;
	padding: 0;
	margin: 0;
	width: 300px;
	position: relative;
}

nav ul ul {
	position: absolute;
		left: 300px;
		top: 0;
	display: none;
}

nav li.ngperpetuumactive>ul {
	display: block;
}


nav li {
	display: block;
	padding: 0;
	margin: 0 10px;
}

nav li.ngperpetuumwithchilds {
	background: url(./more.svg) no-repeat right center;
}


nav li a {
	display: block;
	color: #f2d57b;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	
	padding: 10px 0;
	
	border-bottom: 1px solid #eacf91;
	transition: letter-spacing 0.3s ease, color 0.3s ease;
	-webkit-transition: letter-spacing 0.3s ease, color 0.3s ease;
}

nav li a:hover, nav li.ngperpetuumactive>a {
	letter-spacing: 1px;
	color: #db8402;
}

#search {
	position: absolute;
	bottom: 0;
	width: 100%;
	background-color: #080808;
}

#search form {
	width: 900px;
	margin: 20px auto 40px auto;
	border-bottom: 1px solid #3b3b3b; 
}

#search input {
	background: transparent;
	padding: 16px;
	border: none;
	color: #ffffff;
	width: 840px;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	float: left;
	outline: 0;
	font: 14px 'PT Sans',Tahoma,Helvetica,sans-serif;
}

#search button {
	background: url(./search.svg) no-repeat center center;
	display: block;
	width: 50px;
	height: 50px;
	border: none;
	outline: 0;
	cursor: pointer;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	float: right;
}

#search form:after {
	content: ' ';
	display: block;
	clear: both;
}

#perpetuumcontainer {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #8c5821;
}


#perpetuumcaption {
	position: absolute;
	width: 100%;
	bottom: 0;
	margin: 0;
	padding: 0 0 120px 0;
	z-index: 200;
	background: url(./fade.svg) repeat-x top left;
	}

.perpetuumcontainerchild {
	margin: 0;
	padding: 0;
	display: block;
	position: absolute;
	border: 0;
}

#perpetuumcaption>h1 {
	text-align: center;
	color: #fbebad;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
	margin: 0;
	padding: 0;
	font: 50px Roboto,Tahoma,Helvetica,sans-serif;
	line-height: 1.6;
}

#perpetuumcaption>p {
	text-align: center;
	color: #ffffff;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
	font-size: 160%;
	width: 900px;
	margin: 0 auto 0 auto;
	padding: 0;
}

#perpetuumcaption>p>a {
	color: #ffffff;
	text-decoration: none;
	font-style: italic;
}

#perpetuumcontainer img.perpetuumeyepri {
	z-index: 1;
	transition: none;
	-webkit-transition: none;
	opacity: 1;
}

#perpetuumcontainer img.perpetuumeyesec {
	z-index: 2;
	transition: none;
	-webkit-transition: none;
	opacity: 0;
}

#perpetuumcontainer img.perpetuumeyesecout {
	transition: opacity 0.5s;
	-webkit-transition: opacity 0.5s;
	opacity: 1;
}

#perpetuumlogobox {
	display: block;
	position: absolute;
	top: 0;
	z-index: 200;
	width: 100%;
	height: 120px;
	padding-top: 40px;
    background: url(./fadetop.svg) repeat-x top left;
		
}


#perpetuumlogo {
	display: block;
	z-index: 200;
	margin: 0 auto;
    height: 200px;
}

#perpettumlogoalt{
  display: flex;
  align-items: center;
  gap: 10px;

  position: absolute;
  top: 15px;
  right: 20px;
  z-index: 800;

  background: #caac66;
  border-radius: 8px;
  padding: 6px 10px;

  /* verhindert das riesige weiße Feld */
  width: auto;
  max-width: calc(100vw - 90px);

  box-shadow: 0 2px 10px rgba(0,0,0,.08);
}

/* Logo-Link */
#perpettumlogoalt .sl-topbrand__logo{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  line-height: 0;
}

#perpettumlogoalt .sl-topbrand__logo img{
  display: block;
  height: 42px;
  width: 42px;
}

/* Textblock */
#perpettumlogoalt .sl-topbrand__text{
  min-width: 0; /* wichtig für Umbruch in flex */
}

#perpettumlogoalt .sl-topbrand__line{
  margin: 0;
  font-size: 13px;
  line-height: 1.2;
  color: #222;
  white-space: normal;
}

#perpettumlogoalt .sl-topbrand__name{
  font-weight: 600;
}

#perpettumlogoalt .sl-topbrand__link{
  color: #222;
  text-decoration: none;
}

#perpettumlogoalt .sl-topbrand__link:hover,
#perpettumlogoalt .sl-topbrand__link:focus-visible{
  text-decoration: underline;
  outline: none;
}

#perpettumlogoalt .sl-topbrand__sep{
  padding: 0 6px;
  color: #666;
}

/* Mobile: nicht „absolut“ quetschen – lieber sauber untereinander/zentriert */
@media (max-width: 520px){
  #perpettumlogoalt{
    position: static;
    margin: 10px 12px 0;
    max-width: none;
    justify-content: flex-start;
  }

  #perpettumlogoalt .sl-topbrand__line{
    font-size: 12.5px;
  }

  #perpettumlogoalt .sl-topbrand__contact{
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }

  #perpettumlogoalt .sl-topbrand__sep{
    display: none;
  }
}


#headbox {
	top: 0;
	left: 0;
	width: 100%;
	position: fixed;
	z-index: 700;
}

#headboxnav {
	background-color: #825833;
	height: 72px;
}

#mainbox {
	background-color: #ffffff;
}

#perpetuumshadow {
	width: 1000px;
	height: 20px;
	margin: 0 auto;
	background: url(./shadow.png) no-repeat;
}

#maincontainer {
	padding: 40px 72px;
	margin: 0 auto;
	width: 856px;
}

#maincontainer:after {
	content: ' ';
	display: block;
	clear: both;
}

#sidebarright {
	float: left;
	margin-left: 40px;
	min-height: 1px;
}

footer {
	color: #ffffff;
	padding: 20px 0 20px 0;
	margin: 0;
	background: #7d5932;
}

footer>p {
	margin: 0 auto 10px auto;
	padding: 0;
	display: block;
	width: 856px;
	text-align: center;
}

footer a {
	color: #ffffff;
	text-decoration: none;
}

footer a:hover {
	color: #db8402;
	text-decoration: none;
}

#content {
	width: 600px;
	padding: 0;
	margin: 0;
		float: left;
	}

#sidebar {
	width: 200px;
	padding: 0;
	margin: 0;
		float: right;
	}

#audiowish, #audiomenu, #audioclose {
	display: none;
}

.profile-figure{
  margin: 0;
  max-width: 320px; /* Bildbreite */
}

.profile-link{
  display: inline-block;
  border-radius: 10px;
  overflow: hidden; /* rundet Bild + Fokusrahmen sauber */
  text-decoration: none;
}

/* Bildgröße fix, aber responsiv skalierbar */
.profile-img{
  display: block;
  width: 320px;
  height: 570px;
  max-width: 100%;
  height: auto; /* falls du es responsive machen willst */
}

/* Tastatur-Fokus (wichtig!) */
.profile-link:focus-visible{
  outline: 3px solid #000;     /* gut sichtbar */
  outline-offset: 4px;
}

/* Optional: Hover-Effekt ohne Flackern */
.profile-link:hover .profile-img{
  transform: scale(1.01);
}

.profile-img{
  transition: transform 150ms ease-in-out;
}

.profile-caption{
  margin-top: 8px;
  font-size: 0.95rem;
  line-height: 1.35;
  color: #333;
}
.contact-box{
  width: 230px;
  padding: 16px;
  background-color: #F6F6F0;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
  font-size: 0.95rem;
  line-height: 1.5;
  color: #222;
  top: 82px;
  position: relative;
  border: 1px solid #C9A24A;
}

/* Überschrift */
.contact-title{
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 1.05rem;
}

/* Textabsätze */
.contact-text{
  margin: 0 0 10px 0;
}

/* Links (Telefon & Mail) */
.contact-link{
  color: #000;
  text-decoration: underline;
  word-break: break-word;
}

/* Tastatur-Fokus (sehr wichtig für Barrierefreiheit) */
.contact-link:focus-visible{
  outline: 3px solid #000;
  outline-offset: 3px;
}
.urkunden-wrap{
  width: 960px;
  max-width: 100%;
  margin: 24px auto;
  padding: 18px;
  border: 1px solid #d4af37; /* Gold */
  border-radius: 10px;
  background: #fff;
  box-sizing: border-box;
}

.urkunden-title{
  margin: 0 0 16px 0;
  font-size: 1.4rem;
  line-height: 1.2;
}

/* Zwei Bilder nebeneinander, auf kleineren Screens untereinander */
.urkunden-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

/* Einzelne Urkunde */
.urkunde{
  margin: 0;
}

.urkunde-img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,0.08);
}

/* Untertitel */
.urkunde-caption{
  margin-top: 8px;
  font-size: 0.95rem;
  line-height: 1.35;
  color: #222;
}

/* Mobile */
@media (max-width: 760px){
  .urkunden-grid{
    grid-template-columns: 1fr;
  }
}
.urkunde-zoom:focus-visible{
  outline: 3px solid #000;
  outline-offset: 4px;
  border-radius: 8px;
  display: inline-block;
}
.placeholder-box{
  width: 230px;
  height: 200px;
  border-radius: 8px;
}
/* 3er-Kachelbereich (responsive & barrierearm) */
.sl-services{
  max-width: 1100px;
  margin: 30px auto;
  padding: 0 16px;
}

.sl-services__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

/* Card */
.sl-card{
  border: 1px solid #e5e1d6;
  border-radius: 14px;
  overflow: hidden;
  background: #b99e35;
  box-shadow: 0 8px 20px rgba(0,0,0,0.06);
}

.sl-card__link{
  display: grid;
  grid-template-rows: auto 1fr;
  text-decoration: none;
  color: inherit;
  height: 100%;
}

.sl-card__figure{
  margin: 0;
  background: #f6f6f0;
}

.sl-card img{
  display: block;
  width: 100%;
  height: auto;              /* bleibt korrekt proportional */
  aspect-ratio: 1 / 1;       /* 320x320 Look */
  object-fit: cover;
}

/* Body */
.sl-card__body{
  padding: 14px 14px 16px 14px;
}

.sl-card__title{
  margin: 0 0 8px 0;
  font-size: 1.15rem;
  line-height: 1.25;
}

.sl-card__text{
  margin: 0 0 12px 0;
  font-size: 0.98rem;
  line-height: 1.5;
  color: #2c2c2c;
}

/* CTA */
.sl-card__cta{
  display: inline-block;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Hover / Focus (wichtig für Tastatur) */
.sl-card__link:hover .sl-card__cta{
  text-decoration-thickness: 2px;
}

.sl-card__link:focus-visible{
  outline: 3px solid #b08d57; /* goldähnlich */
  outline-offset: 3px;
  border-radius: 14px;
}

/* Responsive */
@media (max-width: 980px){
  .sl-services__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px){
  .sl-services__grid{
    grid-template-columns: 1fr;
  }
}
.voucher {
  background: #F6F6F0;
  padding: 24px 16px;
}

.voucher__wrap {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  gap: 18px;
  grid-template-columns: 1fr;
}

.voucher__media {
  margin: 0;
  border: 1px solid #C9A24A;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.voucher__media img {
  display: block;
  width: 100%;
  height: auto;
}

.voucher__caption {
  padding: 10px 12px;
  font-size: 0.95rem;
  line-height: 1.4;
  color: #1F1F1F;
  background: #fff;
}

.voucher__content {
  border: 1px solid #C9A24A;
  border-radius: 12px;
  background: #fff;
  padding: 16px;
}

.voucher__title {
  margin: 0 0 10px 0;
  font-size: 1.4rem;
  line-height: 1.2;
  color: #1F1F1F;
}

.voucher__text {
  margin: 0 0 14px 0;
  font-size: 1rem;
  line-height: 1.6;
  color: #1F1F1F;
}

.voucher__form .field {
  margin: 0 0 12px 0;
}

.voucher__form label {
  display: inline-block;
  margin: 0 0 6px 0;
  font-weight: 600;
  color: #1F1F1F;
}

.voucher__form input,
.voucher__form textarea {
  width: 100%;
  padding: 12px 12px;
  border-radius: 10px;
  border: 1px solid #444;
  font-size: 1rem;
  line-height: 1.3;
  background: #fff;
  color: #1F1F1F;
}

.hint {
  margin: 6px 0 0 0;
  font-size: 0.92rem;
  line-height: 1.4;
  color: #2B2B2B;
}

.consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 12px 0 14px 0;
}

.consent input {
  width: 20px;
  height: 20px;
  margin-top: 2px;
}

.consent label {
  font-weight: 500;
  line-height: 1.5;
}

.voucher__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.btn {
  display: inline-block;
  padding: 12px 14px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 700;
  line-height: 1.2;
  background: #1F1F1F;
  color: #ffffff;
  border: 2px solid #1F1F1F;
}

.btn--secondary {
  background: #ffffff;
  color: #1F1F1F;
}

.btn:hover {
  filter: brightness(0.95);
}

.btn:focus,
.btn:focus-visible,
.voucher__form input:focus,
.voucher__form input:focus-visible,
.voucher__form textarea:focus,
.voucher__form textarea:focus-visible {
  outline: 3px solid #C9A24A;
  outline-offset: 3px;
}

.voucher__contact {
  margin: 12px 0 0 0;
  color: #1F1F1F;
}

.voucher__contact a {
  color: inherit;
  text-decoration: underline;
}

@media (min-width: 900px) {
  .voucher__wrap {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: start;
  }
}

.services{
  padding: 24px 12px;
}

.services__grid{
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

/* Card */
.card{
  background: #b57f01;
  border: 1px solid rgba(212,175,55,0.55); /* gold */
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 20px rgba(0,0,0,0.12);
}

.card__link{
  display: grid;
  grid-template-columns: 160px 1fr; /* Bild links, Text rechts */
  gap: 16px;
  padding: 16px;
  text-decoration: none;
  color: inherit;
}

.card__img{
  width: 160px;
  height: 160px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

.card__body{
  min-width: 0; /* wichtig gegen Text-Overflow */
}

.card__title{
  margin: 0 0 8px 0;
  font-size: 18px;
  line-height: 1.2;
}

.card__text{
  margin: 0 0 10px 0;
  font-size: 14px;
  line-height: 1.5;
}

.card__more{
	text-align: center;
	color: #ffff00;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
	margin: 0;
	padding: 0;
	font: 18px Roboto,Tahoma,Helvetica,sans-serif;
	line-height: 1.6;
	text-decoration: none;
}

/* Hover/Fokus (barrierefreundlich) */
.card__link:focus-visible{
  outline: 3px solid #d4af37;
  outline-offset: 4px;
}

/* Tablet: 2 Spalten */
@media (max-width: 980px){
  .services__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Handy: 1 Spalte + Bild oben */
@media (max-width: 640px){
  .services__grid{
    grid-template-columns: 1fr;
  }
  .card__link{
    grid-template-columns: 1fr;
  }
  .card__img{
    width: 100%;
    height: 220px;
  }
}


.clearfix {
	clear: both;
}
/* Barrierefrei-Hinweis-Lung-Sorn-1.0 */
#perpetuumscrollup {
	width: 225px;
	height: 58px;
	position: fixed;
	right: 128px;
	bottom: 40px;
	border-radius: 6px;
	background: #cccccc;
	z-index: 800;
	cursor: pointer;
	box-shadow: 5px 10px 8px #403333;;
}
#barrirefreiheit {
	width: 60px;
	height: 70px;
	position: fixed;
	right: 20px;
	bottom: 40px;
	border-radius: 6px;
	background: #cccccc;
	z-index: 800;
	cursor: pointer;
	box-shadow: 5px 10px 8px #403333;
}
#barrirefreiheit img {
	width: 60px;
	height: 60px;
}
#barrirefreiheit:hover {
  background-color: #0056b3;
}

#barrirefreiheit:focus {
  outline: 2px solid #007bff; /* or other suitable focus indicator */
}
/* Versteckt den Link visuell, macht ihn aber für Screenreader zugänglich */
.screenreader-only {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Sichtbarer Barrierefrei-Hinweis */
.accessibility-notice {
  padding: 20px;
  border-left: 5px solid #E28E02;
  border-right: 5px solid #E28E02;
  margin: 20px 0;
  font-family: sans-serif;
  border-radius: 6px;
  width: 960px;
  margin: 0 auto;
}
.accessibility-notice a {
	text-decoration: none;
	color: #fff;
}
.accessibility-notice h2 {
  margin-top: 0;
  color: #E28E02;
}

.accessibility-button {
  display: inline-block;
  margin-top: 10px;
  padding: 10px 16px;
  background-color: #AA3F15;
  text-decoration: none;
  border-radius: 4px;
}

.accessibility-button:hover {
  background-color: #005b99;
}