/*********************************************************/
/*****   Andreas N. Schubert Webdesign © 2026 ************/
/*****   www.andreas-n-schubert.de ***********************/
/*********************************************************/


/* inter-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/inter-v20-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 400;
  src: url('../fonts/inter-v20-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/inter-v20-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-600italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 600;
  src: url('../fonts/inter-v20-latin-600italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


/* playfair-display-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/playfair-display-v40-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* playfair-display-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/playfair-display-v40-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* playfair-display-600italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  src: url('../fonts/playfair-display-v40-latin-600italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* playfair-display-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/playfair-display-v40-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* playfair-display-800italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 800;
  src: url('../fonts/playfair-display-v40-latin-800italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


/*********************************************************/
/*********************************************************/

:root {
    --color-bluegrey: #126b93;
    --color-grey: #555;
    --color-lightgrey: #aaa;
    --color-yellow: #f4c52b;
    --bs-table-color: red;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
	font-family: 'Inter', Arial, sans-serif;
	scroll-behavior: smooth;
	color: #444;
	background: #fff;
    font-size: 15px;
}

@media (min-width: 768px) {

    body {
        font-size: 16px;
    }

}

@media (min-width: 1200px) {

  .container, .container-lg, .container-md, .container-sm, .container-xl {
    max-width: 1140px; /* max. Gesamtbreite */
  }

}

header {
	background-color: #fff;
}

header.navbar .container {
    margin-bottom: 1rem;
}

main {
    margin-top: 3rem;
	hyphens: auto;
}

main .rte-content figure img[src$=".jpg"],
main .rte-content figure img[src$=".jpeg"] {
	max-width: 100%;
    margin-bottom: 6px;
	height: auto;
	border-radius: 10px;
}

.img-align-center {
	text-align: center;
}

.line1 {
	 height: 2px;
	 margin: 4px 0;
	 width: 100%;
	 background: linear-gradient(
		  to right,
		  #6597ba 0%,
		  #6597ba 65%,
		  rgba(101, 151, 186, 0) 85%
	 );
}

.line2 {
	 height: 2px;
	 margin: 4px 0 0 0;
	 width: 100%;
	 background: linear-gradient(
		  to right,
		  #6597ba 0%,
		  #6597ba 50%,
		  rgba(101, 151, 186, 0) 75%
	 );
}

.line1-center {
	 height: 2px;
	 margin: 4px 0;
	 width: 100%;
    background: linear-gradient(
        to right,
        rgba(101, 151, 186, 0) 0%,
        #6597ba 35%,
        #6597ba 65%,
        rgba(101, 151, 186, 0) 100%
    );
}

.line2-center {
	 height: 2px;
	 margin: 4px 0;
	 width: 100%;
    background: linear-gradient(
        to right,
        rgba(101, 151, 186, 0) 5%,
        #6597ba 45%,
        #6597ba 55%,
        rgba(101, 151, 186, 0) 95%
    );
}

.line1-footer {
	height: 2px;
	margin: 4px 0;
	width: 100%;
	background: linear-gradient(
		to left,
		#6597ba 0%,
		#6597ba 75%,
		rgba(101, 151, 186, 0) 90%
	);
}

.line2-footer {
	height: 2px;
	margin: 4px 0;
	width: 100%;
	background: linear-gradient(
		to left,
		#6597ba 0%,
		#6597ba 65%,
		rgba(101, 151, 186, 0) 80%
	);
}

/***********************/
/***********************/
/***********************/

.hide {
	display: none !important;
}

a, a:hover {
	text-decoration: none;
	color: var(--color-bluegrey);
}

a:hover {
	color: var(--color-yellow);
}

main a:not(:has(img)):not([href^="tel:"]):not([href$= ".pdf"]):not(href^= "mailto:")::before {
	font-family: 'Font Awesome 7 Free';
	font-weight: 900;
	font-size: 1em;
	content: "\f0da";
	display: inline-block;
   margin-right: 0.4em;
}

a[href$= ".pdf"]:before {
	font-family: 'Font Awesome 7 Free';
	font-weight: 400;
	font-size: 2em;
	content: "\f1c1";
	display: inline-block;
   margin-right: 0.4em;
}

a[href$= ".pdf"]:hover:before {
	font-weight: 900;
}

h1, h2, h3, h4 {
	 font-family: 'Playfair Display', serif;
}
        
h1 {
	font-weight: normal;
	font-size: 30px;
	hyphens: none;
	color: var(--color-bluegrey);
	margin-bottom: 1rem;
}

h2 {
	hyphens: none;
    color: var(--color-bluegrey);
    font-size: 26px;
}

h3 {
	hyphens: none;
    color: var(--color-grey);
    font-size: 20px;
}

h4 {
    color: var(--color-bluegrey);
    margin-bottom: 0;
}

hr {
    margin-top: 2rem;
    height: 2rem;
    width: 50%;
}

main ul {
  list-style: none; /* Entfernt die Standard-Punkte komplett */
  padding-left: 15px;   /* Setzt den linken Einzug zurück */
}

main ul li {
  position: relative;
  padding-left: 20px; /* Schafft Platz für den Kreis links vom Text */
  margin-bottom: 4px; /* Abstand zwischen den Punkten */
}

/* Erstellt den transparenten Kreis mit blauer Linie */
main ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%); /* Zentriert den Kreis vertikal zum Text */

  width: 12px;        /* Breite des Kreises */
  height: 12px;       /* Höhe des Kreises */

  border: 2px solid #126b93; /* Blaue Außenlinie (2 Pixel dick) */
  border-radius: 50%;        /* Macht die Box perfekt rund */
  background: transparent;   /* Innen transparent */
}


.rot {
    color: rgba(204, 0, 0, 1);
}

.abstand-linien {
    margin-top: 3rem;
    margin-bottom: 3rem;
}

@media (min-width: 992px) {

	h1 {
		font-size: 30px;
	}

	h2 {
		font-size: 26px;
	}

	h3 {
		font-size: 20px;
	}

}



/*************************************/
/***** Elemente **********************/
/*************************************/

.hero {
    min-height: 200px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff !important;
}

.hero .container {
	padding: 2rem;
}

.hero .container * {
	color: #fff;
}

.hero .container h1 {
	font-size: 25px;
}

@media (min-width: 768px) {

	.hero {
    	min-height: 294px;
	}

	.hero .container {
		padding: 4rem;
	}

	.hero .container h1 {
		font-size: 32px;
	}

}

@media (min-width: 992px) {

	.hero {
    	min-height: 394px;
	}

	.hero .container {
		padding: 5rem;
	}
	
	.hero .container h1 {
		font-size: 37px;
	}

}

@media (min-width: 1200px) {

	.hero {
    	min-height: 470px;
	}

	.hero .container {
		padding: 5rem;
	}
	
	.hero .container h1 {
		font-size: 40px;
	}

}

@media (min-width: 1400px) {

	.hero {
    	min-height: 540px;
	}

	.hero .container {
		padding: 5rem;
	}
	
	.hero .container h1 {
		font-size: 40px;
	}

}

/*************************************/

.cms-columns {
    display: grid;
    gap: 1.5rem;
    padding: 0.5rem 2.5rem 1.5rem 2.5rem;
}

.cms-columns-1 {
    grid-template-columns: 1fr;
}

.cms-columns-2 {
    grid-template-columns: max-content 1fr;
}

.cms-columns-3 {
    grid-template-columns: max-content 1fr max-content;
}

.einspaltig, .zweispaltig, .dreispaltig {
    padding: 0.5rem 2.5rem 1.5rem 2.5rem;
}




@media (max-width: 767.98px) {
    .cms-columns-2,
    .cms-columns-3 {
        grid-template-columns: 1fr;
    }

    .cms-columns {
        padding-left: 0;
        padding-right: 0;
    }

    .einspaltig,
    .zweispaltig,
    .dreispaltig {
        padding-left: 0;
        padding-right: 0;
    }

    .zweispaltig figure.bild, .zweispaltig.willkommen .rte-content:first-child figure {
      height: 300px;       /* Die gewünschte finale Höhe des Bildes */
      border-radius: 10px;  /* Hier definierst du die runden Ecken */
      overflow: hidden;
      display: block;
    }

    .zweispaltig figure.bild img, .zweispaltig.willkommen .rte-content:first-child figure img {
      width: 100%;         /* Bild füllt die Breite des Containers */
      display: block;
    }

}

/*************************************/

main table {
    margin: 0;
    margin-bottom: 20px;
    line-height: 1.7;
}

main table td {
    padding: 5px;
    hyphens: none;
}

main table.table {
    --bs-table-color: #333;
}

main table.zeiten {
    white-space: nowrap;
}


@media (min-width: 768px) {

    main table {
        max-width: 75%;
    }

    main table.notfall {
        max-width: 100%;
    }

}

@media (min-width: 992px) {

    main table {
        max-width: 75%;
    }

    main table.notfall {
        max-width: 75%;
    }

}

/*** Accordion ****/

.accordion {
}

.accordion .accordion-button {
	hyphens: none;
    color: var(--color-bluegrey);
    font-size: 20px;
    background-color: rgba(18, 107, 147, .1);
}

.accordion .accordion-button:hover {
    background-color: rgba(18, 107, 147, .2);
}

.accordion .accordion-button:not(.collapsed) {
    /* background-color: rgba(204, 0, 0, .1); */
    background-color: rgba(0,0,0,.05);
}

.accordion .accordion-button:focus {
    box-shadow: none;
    border-color: rgba(0,0,0,.125);
}

.accordion .accordion-body .rte-content {
    margin-bottom: 2rem;
}


/***   Zitate   ***/

main blockquote {
    margin-top: 2.5rem;
    margin-bottom: 2rem;
    border-left: 10px solid rgba(18, 107, 147, .2);
    padding: .6rem 1.5rem;
    font-size: 1.2em;
    hyphens: none;
}

main blockquote div {
    font-style: italic;
    font-weight: bold;
    color: #888;
}

main blockquote footer {
    margin: 0;
    padding-top: 0;
    text-align: right;
    font-size: .85em;
    color: var(--color-grey);
}


/*************************************/
/***** FOOTER ************************/
/*************************************/

.btn.btn-top {
    background-color: var(--color-lightgrey);
    color: #fff;
}

.btn.btn-top:hover {
    background-color: var(--color-bluegrey);
    color: #fff;
}

footer {
 	background-color: #fff;
 	padding: 2rem 0 1rem 0;
 	margin-top: 2rem;
 	color: var(--color-grey);
 	font-size: 90%;
}

footer .container {
    margin-top: 1rem;
}

footer a {
	color: var(--color-grey);
}

footer p {
	margin-bottom: 0;
}

footer a:hover, footer a.active, footer .nav-item.active a {
	color: var(--color-lightgrey);
}

footer .ans {
	padding: .5rem 0;
	text-align: right;
}

footer .ans a {
	color: var(--color-lightgrey);
	font-size: 75%;
}

footer .ans a:hover {
	color: var(--color-grey);
}

footer .row > div {
    margin-bottom: 1rem;
}

footer .row > div:last-child p {
    text-align: left;
}

@media (min-width: 768px) {

    footer .row > div:last-child p {
        text-align: right;
    }

}
