@font-face {
font-family: 'Nunito Sans';
font-style: normal;
font-weight: regular;
src: url('https://www.steffenkirchner.de/webfonts/nunito-sans-v15-latin-regular.woff2') format('woff2');
}

@font-face {
font-family: 'Nunito Sans';
font-style: normal;
font-weight: 900;
src: url('https://www.steffenkirchner.de/webfonts/nunito-sans-v15-latin-900.woff2') format('woff2');
}

@font-face {
font-family: 'Takota';
font-style: normal;
font-weight: normal;
src: url('https://www.steffenkirchner.de/webfonts/takota.woff') format('woff'),
url('https://www.steffenkirchner.de/webfonts/takota.svg') format('svg');
}

:root {
--color-weiss: #FFFFFF;
--colorrgba-weiss: 255,255,255;
--color-blau: #232A56;
--colorrgba-blau: 35,42,86;
--color-gelb: #F9C524;
--colorrgba-gelb: 249,197,36;
--fontsize-1: clamp(1rem, 1.25vw, 1.25rem);
--fontsize-2: clamp(1.5rem, 3vw, 3rem);
--lineheight-1: 1.4;
--lineheight-2: 1.0;
--margtop-1: clamp(2rem, 3vw, 3rem);
--margtop-2: clamp(1rem, 2vw, 2rem);
--margbot-1: clamp(1rem, 2vw, 2rem);
--borderrad: 5px;
--transition: all .2s ease-out;
}

html {
}

body {
margin: 0;
padding: 0;
font-family: 'Nunito Sans', Arial, sans-serif;
font-size: var(--fontsize-1);
line-height: var(--lineheight-1);
text-align: center;
color: var(--color-blau);
background-color: var(--color-weiss);
}

body.nofade .fade {
opacity: 1 !important;
transform: translateY(0) !important;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

h1, h2, h3 {
font-size: var(--fontsize-2);
line-height: var(--lineheight-2);
font-weight: 700;
margin: 0;
padding: 0;
color: var(--color-blau);
text-align: left;
}

h3.hlref, h3.hltext {
font-size: var(--fontsize-1);
line-height: var(--lineheight-1);
}

.eyebrow {
text-transform: uppercase;
color: var(--color-gelb);
}

.textsmall {
font-size: 0.7em;
line-height: var(--lineheight-1);
}

.textgelb {
color: var(--color-gelb);
}

img {
border: none;
display: block;
}

.imgsize {
max-width: 100%;
height: auto;
}

.imgborder {
border-radius: var(--borderrad);
}

.listethemen {
margin: 0 auto;
padding: 0;
display: flex;
flex-direction: column;
gap: 16px;
list-style: none;
counter-reset: listethemeneinzel;
}

.listethemeneinzel {
counter-increment: listethemeneinzel;
display: grid;
grid-template-columns: 48px minmax(0, 1fr);
align-items: start;
gap: 2em;
padding: 1.5em;
border: 1px solid rgba(var(--colorrgba-blau), 0.2);
border-radius: var(--borderrad);
}

.listethemeneinzel::before {
content: counter(listethemeneinzel);
display: grid;
place-items: center;
width: 46px;
height: 46px;
color: var(--color-blau);
background-color: rgba(var(--colorrgba-blau), 0.15);
border: 1px solid var(--color-blau);
border-radius: 50%;
font-weight: 700;
}

.listethemeneinzelcontent {
min-width: 0;
}

.listethemeneinzelcontenthl {
display: block;
font-weight: 700;
}

/**************************************************************************************/

.container {
margin: 0em auto;
width: 90%;
text-align: left;
}

.fade {
opacity: 0;
transform: translateY(50px);
transition: opacity 0.6s ease-out 0.3s, transform 0.6s ease-out 0.3s;
}

.fade.visible {
opacity: 1;
transform: translateY(0);
}

@media print {
.fade {
opacity: 1 !important;
transform: translateY(0) !important;
}
}

/**************************************************************************************/

header {
background-color: var(--color-blau);
padding: 15px 0;
position: fixed;
top: 0;
left; 0;
width: 100%;
border-bottom: 1px solid rgba(var(--colorrgba-weiss), 0.3);
z-index: 100;
}

.headercontainer, .footercontainer {
width: 90%;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
gap: 20px;
}

/**************************************************************************************/

.margtop {
margin-top: var(--margtop-1);
}

.margtop2 {
margin-top: var(--margtop-2);
}

.margtop3 {
margin-top: 90px;
}

.margbot {
margin-bottom: var(--margbot-1);
}

.btn {
display: inline-block;
padding: 0.6em 1.2em;
text-decoration: none;
transition: var(--transition);
color: var(--color-blau);
background-color: var(--color-gelb);
border-radius: var(--borderrad);
cursor: pointer;
font-weight: 700;
}

.btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 18px rgba(0,0,0,0.15);
}

.btn:active {
transform: translateY(0);
box-shadow: 0 3px 10px rgba(0,0,0,0.12);
}

.bgblau {
color: var(--color-weiss);
background-color: var(--color-blau);
padding: var(--margtop-1) 0;
}

.bgblau h1 {
color: var(--color-weiss);
}

.badge {
display: inline-block;
padding: 0.2em 0.9em;
border-radius: 999px;
}

.badgeblau {
color: var(--color-blau);
background-color: rgba(var(--colorrgba-blau), 0.15);
border: 1px solid var(--color-blau);
}

.badgegelb {
color: var(--color-gelb);
background-color: rgba(var(--colorrgba-gelb), 0.15);
border: 1px solid var(--color-gelb);
}

.datum {
display: flex;
flex-direction: column;
gap: 8px;
}

.datumzeile {
display: flex;
align-items: center;
gap: 10px;
}

.datumzeileicon {
flex: 0 0 24px;
width: 24px;
text-align: center;
}

.datumzeiletrenner {
margin: 0 5px;
}

.counter {
width: min(90%, 1000px);
margin: 0 auto;
padding: 0;
display: grid;
grid-template-columns: repeat(3, 1fr);
text-align: center;
}

.countereinzel {
position: relative;
padding: 0 1em;
opacity: 0;
transform: translateY(20px);
transition: opacity 0.7s ease, transform 0.7s ease;
}

.counter.is-visible .countereinzel {
opacity: 1;
transform: translateY(0);
}

.counter.is-visible .countereinzel:nth-child(2) {
transition-delay: 0.12s;
}

.counter.is-visible .countereinzel:nth-child(3) {
transition-delay: 0.24s;
}

.countereinzel + .countereinzel {
border-left: 1px solid rgba(255, 255, 255, 0.25);
}

.countereinzel dt {
margin: 0;
font-weight: 700;
color: var(--color-gelb);
}

@media (max-width: 600px) {
/********************************************/

.counter {
grid-template-columns: 1fr;
  }

.countereinzel {
padding: 25px 15px;
}

.countereinzel + .countereinzel {
border-left: 0;
border-top: 1px solid rgba(255, 255, 255, 0.25);
}

/********************************************/
}

/**************************************************************************************/

.popup {
position: fixed;
inset: 0;  z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
padding: 30px;
background-color: rgba(var(--colorrgba-blau), 0.9);
opacity: 0;
visibility: hidden;
pointer-events: none;
transition: var(--transition);
}

.popup.is-open {
opacity: 1;
visibility: visible;
pointer-events: auto;
}

.popupcontent {
position: relative;
width: min(100%, 800px);
max-height: 90vh;
overflow-y: auto;
padding: 2em;
color: var(--color-blau);
background-color: var(--color-weiss);
border-radius: var(--borderrad);
text-align: left;
}

.popupcontent .textsmall i {
margin-right: 0.5em;
}

.popupclose {
position: absolute;
top: 10px;
right: 15px;
padding: 0;
border: 0;  background: transparent;
cursor: pointer;
font-size: 1.3em;
color: var(--color-blau);
}

body.popupopen {
overflow: hidden;
}

/**************************************************************************************/

.tabzweier, .tabzweierwide {
display: grid;
gap: 1em;
}

.tabzweiereinzelborder {
gap: 2em;
padding: 1.5em;
border: 1px solid rgba(var(--colorrgba-blau), 0.2);
border-radius: var(--borderrad);
}

/**************************************************************************************/

footer {
color: rgba(var(--colorrgba-weiss), 0.4);
background-color: var(--color-blau);
padding: 15px 0;
}

footer a {
color: rgba(var(--colorrgba-weiss), 0.4);
margin-left: 1em;
text-decoration: none;
}

/****************************************************************************************************************************************************************************/

@media screen and (min-width : 1100px), print {
/**************************************************************************************/

.container {
width: 1100px;
margin: 0em auto;
}

.tabzweier {
grid-template-columns: 1fr 1fr;
gap: 3em;
}

.tabzweierwide {
grid-template-columns: 1fr 2fr;
gap: 3em;
}

/**************************************************************************************/
}